Fix a problem causing the recovery extension to use excessive memory and CPU time...
[sqlite.git] / test / joinD.test
blobe4e4553b6c14aec0b5e9984f873da26cd227fe96
1 # 2022-05-04
2 # revised 2022-05-31
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 # TESTRUNNER: slow
15 # This file implements tests for JOINs that use Bloom filters.
17 # The test case output is (mostly) all generated by PostgreSQL 14.  This
18 # test module was created as follows:
20 #   1.   Run a TCL script (included at the bottom of this file) that
21 #        generates an input script for "psql" that will run man
22 #        diverse tests on joins.
24 #   2.   Run the script from step (1) through psql and collect the
25 #        output.
27 #   3.   Make a few minor global search-and-replace operations to convert
28 #        the psql output into a form suitable for this test module.
30 #   4.   Add this header, and the script content at the footer.
32 # A few extra tests that were not generated from postgresql output are
33 # added at the end.
35 set testdir [file dirname $argv0]
36 source $testdir/tester.tcl
37 db nullvalue -
38 db eval {
39   CREATE TABLE t1(a INT, b INT, c INT, d INT);
40   WITH RECURSIVE c(x) AS (VALUES(0) UNION ALL SELECT x+1 FROM c WHERE x<95)
41     INSERT INTO t1(a,b,c,d) SELECT x, x+100, x+200, x+300 FROM c;
42   CREATE TABLE t2(b INT, x INT);
43   INSERT INTO t2(b,x) SELECT b, a FROM t1 WHERE a%2=0;
44   CREATE INDEX t2b ON t2(b);
45   CREATE TABLE t3(c INT, y INT);
46   INSERT INTO t3(c,y) SELECT c, a FROM t1 WHERE a%3=0;
47   CREATE INDEX t3c ON t3(c);
48   CREATE TABLE t4(d INT, z INT);
49   INSERT INTO t4(d,z) SELECT d, a FROM t1 WHERE a%5=0;
50   CREATE INDEX t4d ON t4(d);
51   INSERT INTO t1(a,b,c,d) VALUES
52     (96,NULL,296,396),
53     (97,197,NULL,397),
54     (98,198,298,NULL),
55     (99,NULL,NULL,NULL);
56   ANALYZE;
58 do_execsql_test joinD-1 {
59   SELECT t1.*, t2.*, t3.*, t4.*
60   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
61   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
62   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
63   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
64 } {
65   30 130 230 330 130 30 230 30 330 30
66   60 160 260 360 160 60 260 60 360 60
67   90 190 290 390 190 90 290 90 390 90
69 do_execsql_test joinD-2 {
70   SELECT t1.*, t2.*, t3.*, t4.*
71   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
72   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
73   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
74   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
75 } {
76   30 130 230 330 130 30 230 30 330 30
77   60 160 260 360 160 60 260 60 360 60
78   90 190 290 390 190 90 290 90 390 90
80 do_execsql_test joinD-3 {
81   SELECT t1.*, t2.*, t3.*, t4.*
82   FROM t1 INNER JOIN t2 ON t1.b=t2.b
83   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
84   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
85   WHERE t2.x>0
86   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
87 } {
88   30 130 230 330 130 30 230 30 330 30
89   60 160 260 360 160 60 260 60 360 60
90   90 190 290 390 190 90 290 90 390 90
92 do_execsql_test joinD-4 {
93   SELECT t1.*, t2.*, t3.*, t4.*
94   FROM t1 INNER JOIN t2 ON t1.b=t2.b
95   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
96   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
97   WHERE (t2.x>0 OR t2.x IS NULL)
98   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
99 } {
100   30 130 230 330 130 30 230 30 330 30
101   60 160 260 360 160 60 260 60 360 60
102   90 190 290 390 190 90 290 90 390 90
104 do_execsql_test joinD-5 {
105   SELECT t1.*, t2.*, t3.*, t4.*
106   FROM t1 INNER JOIN t2 ON true
107   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
108   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
109   WHERE t1.b=t2.b AND t2.x>0
110   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
111 } {
112   30 130 230 330 130 30 230 30 330 30
113   60 160 260 360 160 60 260 60 360 60
114   90 190 290 390 190 90 290 90 390 90
116 do_execsql_test joinD-6 {
117   SELECT t1.*, t2.*, t3.*, t4.*
118   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
119   INNER JOIN t3 ON t1.c=t3.c
120   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
121   WHERE t3.y>0
122   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
123 } {
124   30 130 230 330 130 30 230 30 330 30
125   60 160 260 360 160 60 260 60 360 60
126   90 190 290 390 190 90 290 90 390 90
128 do_execsql_test joinD-7 {
129   SELECT t1.*, t2.*, t3.*, t4.*
130   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
131   INNER JOIN t3 ON t1.c=t3.c
132   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
133   WHERE t3.y>0 OR t3.y IS NULL
134   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
135 } {
136   30 130 230 330 130 30 230 30 330 30
137   60 160 260 360 160 60 260 60 360 60
138   90 190 290 390 190 90 290 90 390 90
140 do_execsql_test joinD-8 {
141   SELECT t1.*, t2.*, t3.*, t4.*
142   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
143   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
144   INNER JOIN t4 ON t1.d=t4.d
145   WHERE t4.z>0
146   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
147 } {
148   30 130 230 330 130 30 230 30 330 30
149   60 160 260 360 160 60 260 60 360 60
150   90 190 290 390 190 90 290 90 390 90
152 do_execsql_test joinD-9 {
153   SELECT t1.*, t2.*, t3.*, t4.*
154   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
155   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
156   INNER JOIN t4 ON t1.d=t4.d
157   WHERE t4.z IS NULL OR t4.z>0
158   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
159 } {
160   30 130 230 330 130 30 230 30 330 30
161   60 160 260 360 160 60 260 60 360 60
162   90 190 290 390 190 90 290 90 390 90
164 do_execsql_test joinD-10 {
165   SELECT t1.*, t2.*, t3.*, t4.*
166   FROM t1 INNER JOIN t2 ON t1.b=t2.b
167   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
168   INNER JOIN t4 ON t1.d=t4.d
169   WHERE t2.x>0 AND t4.z>0
170   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
171 } {
172   30 130 230 330 130 30 230 30 330 30
173   60 160 260 360 160 60 260 60 360 60
174   90 190 290 390 190 90 290 90 390 90
176 do_execsql_test joinD-11 {
177   SELECT t1.*, t2.*, t3.*, t4.*
178   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
179   INNER JOIN t3 ON t1.c=t3.c
180   INNER JOIN t4 ON t1.d=t4.d
181   WHERE t4.z>0 AND t3.y>0
182   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
183 } {
184   30 130 230 330 130 30 230 30 330 30
185   60 160 260 360 160 60 260 60 360 60
186   90 190 290 390 190 90 290 90 390 90
188 do_execsql_test joinD-12 {
189   SELECT t1.*, t2.*, t3.*, t4.*
190   FROM t1 INNER JOIN t2 ON t1.b=t2.b
191   INNER JOIN t3 ON t1.c=t3.c
192   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
193   WHERE t2.x>0 AND t3.y>0
194   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
195 } {
196   30 130 230 330 130 30 230 30 330 30
197   60 160 260 360 160 60 260 60 360 60
198   90 190 290 390 190 90 290 90 390 90
200 do_execsql_test joinD-13 {
201   SELECT t1.*, t2.*, t3.*, t4.*
202   FROM t1 INNER JOIN t2 ON t1.b=t2.b
203   INNER JOIN t3 ON t1.c=t3.c
204   INNER JOIN t4 ON t1.d=t4.d
205   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
206   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
207 } {
208   30 130 230 330 130 30 230 30 330 30
209   60 160 260 360 160 60 260 60 360 60
210   90 190 290 390 190 90 290 90 390 90
212 do_execsql_test joinD-14 {
213   SELECT t1.*, t2.*, t3.*, t4.*
214   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
215   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
216   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
217   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
218 } {
219   30 130 230 330 130 30 230 30 330 30
220   60 160 260 360 160 60 260 60 360 60
221   90 190 290 390 190 90 290 90 390 90
223 do_execsql_test joinD-15 {
224   SELECT t1.*, t2.*, t3.*, t4.*
225   FROM t1 INNER JOIN t2 ON t2.x>0
226   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
227   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
228   WHERE t1.b IS NOT DISTINCT FROM t2.b
229   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
230 } {
231   30 130 230 330 130 30 230 30 330 30
232   60 160 260 360 160 60 260 60 360 60
233   90 190 290 390 190 90 290 90 390 90
235 do_execsql_test joinD-16 {
236   SELECT t1.*, t2.*, t3.*, t4.*
237   FROM t1 INNER JOIN t2 ON t2.x>0
238   INNER JOIN t3 ON t3.y>0
239   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
240   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
241   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
242 } {
243   30 130 230 330 130 30 230 30 330 30
244   60 160 260 360 160 60 260 60 360 60
245   90 190 290 390 190 90 290 90 390 90
247 do_execsql_test joinD-17 {
248   SELECT t1.*, t2.*, t3.*, t4.*
249   FROM t1 INNER JOIN t2 ON t2.x>0
250   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
251   INNER JOIN t4 ON t4.z>0
252   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
253   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
254 } {
255   30 130 230 330 130 30 230 30 330 30
256   60 160 260 360 160 60 260 60 360 60
257   90 190 290 390 190 90 290 90 390 90
259 do_execsql_test joinD-18 {
260   SELECT t1.*, t2.*, t3.*, t4.*
261   FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
262   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
263   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
264   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
265 } {
266   30 130 230 330 130 30 230 30 330 30
267   60 160 260 360 160 60 260 60 360 60
268   90 190 290 390 190 90 290 90 390 90
270 do_execsql_test joinD-19 {
271   SELECT t1.*, t2.*, t3.*, t4.*
272   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
273   INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
274   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
275   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
276 } {
277   30 130 230 330 130 30 230 30 330 30
278   60 160 260 360 160 60 260 60 360 60
279   90 190 290 390 190 90 290 90 390 90
281 do_execsql_test joinD-20 {
282   SELECT t1.*, t2.*, t3.*, t4.*
283   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
284   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
285   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
286   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
287 } {
288    6 106 206 306 106  6 206  6   -  -
289   12 112 212 312 112 12 212 12   -  -
290   18 118 218 318 118 18 218 18   -  -
291   24 124 224 324 124 24 224 24   -  -
292   30 130 230 330 130 30 230 30 330 30
293   36 136 236 336 136 36 236 36   -  -
294   42 142 242 342 142 42 242 42   -  -
295   48 148 248 348 148 48 248 48   -  -
296   54 154 254 354 154 54 254 54   -  -
297   60 160 260 360 160 60 260 60 360 60
298   66 166 266 366 166 66 266 66   -  -
299   72 172 272 372 172 72 272 72   -  -
300   78 178 278 378 178 78 278 78   -  -
301   84 184 284 384 184 84 284 84   -  -
302   90 190 290 390 190 90 290 90 390 90
304 do_execsql_test joinD-21 {
305   SELECT t1.*, t2.*, t3.*, t4.*
306   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
307   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
308   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
309   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
310 } {
311    6 106 206 306 106  6 206  6   -  -
312   12 112 212 312 112 12 212 12   -  -
313   18 118 218 318 118 18 218 18   -  -
314   24 124 224 324 124 24 224 24   -  -
315   30 130 230 330 130 30 230 30 330 30
316   36 136 236 336 136 36 236 36   -  -
317   42 142 242 342 142 42 242 42   -  -
318   48 148 248 348 148 48 248 48   -  -
319   54 154 254 354 154 54 254 54   -  -
320   60 160 260 360 160 60 260 60 360 60
321   66 166 266 366 166 66 266 66   -  -
322   72 172 272 372 172 72 272 72   -  -
323   78 178 278 378 178 78 278 78   -  -
324   84 184 284 384 184 84 284 84   -  -
325   90 190 290 390 190 90 290 90 390 90
327 do_execsql_test joinD-22 {
328   SELECT t1.*, t2.*, t3.*, t4.*
329   FROM t1 INNER JOIN t2 ON t1.b=t2.b
330   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
331   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
332   WHERE t2.x>0
333   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
334 } {
335    6 106 206 306 106  6 206  6   -  -
336   12 112 212 312 112 12 212 12   -  -
337   18 118 218 318 118 18 218 18   -  -
338   24 124 224 324 124 24 224 24   -  -
339   30 130 230 330 130 30 230 30 330 30
340   36 136 236 336 136 36 236 36   -  -
341   42 142 242 342 142 42 242 42   -  -
342   48 148 248 348 148 48 248 48   -  -
343   54 154 254 354 154 54 254 54   -  -
344   60 160 260 360 160 60 260 60 360 60
345   66 166 266 366 166 66 266 66   -  -
346   72 172 272 372 172 72 272 72   -  -
347   78 178 278 378 178 78 278 78   -  -
348   84 184 284 384 184 84 284 84   -  -
349   90 190 290 390 190 90 290 90 390 90
351 do_execsql_test joinD-23 {
352   SELECT t1.*, t2.*, t3.*, t4.*
353   FROM t1 INNER JOIN t2 ON t1.b=t2.b
354   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
355   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
356   WHERE (t2.x>0 OR t2.x IS NULL)
357   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
358 } {
359    6 106 206 306 106  6 206  6   -  -
360   12 112 212 312 112 12 212 12   -  -
361   18 118 218 318 118 18 218 18   -  -
362   24 124 224 324 124 24 224 24   -  -
363   30 130 230 330 130 30 230 30 330 30
364   36 136 236 336 136 36 236 36   -  -
365   42 142 242 342 142 42 242 42   -  -
366   48 148 248 348 148 48 248 48   -  -
367   54 154 254 354 154 54 254 54   -  -
368   60 160 260 360 160 60 260 60 360 60
369   66 166 266 366 166 66 266 66   -  -
370   72 172 272 372 172 72 272 72   -  -
371   78 178 278 378 178 78 278 78   -  -
372   84 184 284 384 184 84 284 84   -  -
373   90 190 290 390 190 90 290 90 390 90
375 do_execsql_test joinD-24 {
376   SELECT t1.*, t2.*, t3.*, t4.*
377   FROM t1 INNER JOIN t2 ON true
378   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
379   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
380   WHERE t1.b=t2.b AND t2.x>0
381   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
382 } {
383    6 106 206 306 106  6 206  6   -  -
384   12 112 212 312 112 12 212 12   -  -
385   18 118 218 318 118 18 218 18   -  -
386   24 124 224 324 124 24 224 24   -  -
387   30 130 230 330 130 30 230 30 330 30
388   36 136 236 336 136 36 236 36   -  -
389   42 142 242 342 142 42 242 42   -  -
390   48 148 248 348 148 48 248 48   -  -
391   54 154 254 354 154 54 254 54   -  -
392   60 160 260 360 160 60 260 60 360 60
393   66 166 266 366 166 66 266 66   -  -
394   72 172 272 372 172 72 272 72   -  -
395   78 178 278 378 178 78 278 78   -  -
396   84 184 284 384 184 84 284 84   -  -
397   90 190 290 390 190 90 290 90 390 90
399 do_execsql_test joinD-25 {
400   SELECT t1.*, t2.*, t3.*, t4.*
401   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
402   INNER JOIN t3 ON t1.c=t3.c
403   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
404   WHERE t3.y>0
405   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
406 } {
407    6 106 206 306 106  6 206  6   -  -
408   12 112 212 312 112 12 212 12   -  -
409   18 118 218 318 118 18 218 18   -  -
410   24 124 224 324 124 24 224 24   -  -
411   30 130 230 330 130 30 230 30 330 30
412   36 136 236 336 136 36 236 36   -  -
413   42 142 242 342 142 42 242 42   -  -
414   48 148 248 348 148 48 248 48   -  -
415   54 154 254 354 154 54 254 54   -  -
416   60 160 260 360 160 60 260 60 360 60
417   66 166 266 366 166 66 266 66   -  -
418   72 172 272 372 172 72 272 72   -  -
419   78 178 278 378 178 78 278 78   -  -
420   84 184 284 384 184 84 284 84   -  -
421   90 190 290 390 190 90 290 90 390 90
423 do_execsql_test joinD-26 {
424   SELECT t1.*, t2.*, t3.*, t4.*
425   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
426   INNER JOIN t3 ON t1.c=t3.c
427   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
428   WHERE t3.y>0 OR t3.y IS NULL
429   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
430 } {
431    6 106 206 306 106  6 206  6   -  -
432   12 112 212 312 112 12 212 12   -  -
433   18 118 218 318 118 18 218 18   -  -
434   24 124 224 324 124 24 224 24   -  -
435   30 130 230 330 130 30 230 30 330 30
436   36 136 236 336 136 36 236 36   -  -
437   42 142 242 342 142 42 242 42   -  -
438   48 148 248 348 148 48 248 48   -  -
439   54 154 254 354 154 54 254 54   -  -
440   60 160 260 360 160 60 260 60 360 60
441   66 166 266 366 166 66 266 66   -  -
442   72 172 272 372 172 72 272 72   -  -
443   78 178 278 378 178 78 278 78   -  -
444   84 184 284 384 184 84 284 84   -  -
445   90 190 290 390 190 90 290 90 390 90
447 do_execsql_test joinD-27 {
448   SELECT t1.*, t2.*, t3.*, t4.*
449   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
450   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
451   LEFT JOIN t4 ON t1.d=t4.d
452   WHERE t4.z>0
453   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
454 } {
455   30 130 230 330 130 30 230 30 330 30
456   60 160 260 360 160 60 260 60 360 60
457   90 190 290 390 190 90 290 90 390 90
459 do_execsql_test joinD-28 {
460   SELECT t1.*, t2.*, t3.*, t4.*
461   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
462   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
463   LEFT JOIN t4 ON t1.d=t4.d
464   WHERE t4.z IS NULL OR t4.z>0
465   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
466 } {
467    6 106 206 306 106  6 206  6   -  -
468   12 112 212 312 112 12 212 12   -  -
469   18 118 218 318 118 18 218 18   -  -
470   24 124 224 324 124 24 224 24   -  -
471   30 130 230 330 130 30 230 30 330 30
472   36 136 236 336 136 36 236 36   -  -
473   42 142 242 342 142 42 242 42   -  -
474   48 148 248 348 148 48 248 48   -  -
475   54 154 254 354 154 54 254 54   -  -
476   60 160 260 360 160 60 260 60 360 60
477   66 166 266 366 166 66 266 66   -  -
478   72 172 272 372 172 72 272 72   -  -
479   78 178 278 378 178 78 278 78   -  -
480   84 184 284 384 184 84 284 84   -  -
481   90 190 290 390 190 90 290 90 390 90
483 do_execsql_test joinD-29 {
484   SELECT t1.*, t2.*, t3.*, t4.*
485   FROM t1 INNER JOIN t2 ON t1.b=t2.b
486   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
487   LEFT JOIN t4 ON t1.d=t4.d
488   WHERE t2.x>0 AND t4.z>0
489   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
490 } {
491   30 130 230 330 130 30 230 30 330 30
492   60 160 260 360 160 60 260 60 360 60
493   90 190 290 390 190 90 290 90 390 90
495 do_execsql_test joinD-30 {
496   SELECT t1.*, t2.*, t3.*, t4.*
497   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
498   INNER JOIN t3 ON t1.c=t3.c
499   LEFT JOIN t4 ON t1.d=t4.d
500   WHERE t4.z>0 AND t3.y>0
501   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
502 } {
503   30 130 230 330 130 30 230 30 330 30
504   60 160 260 360 160 60 260 60 360 60
505   90 190 290 390 190 90 290 90 390 90
507 do_execsql_test joinD-31 {
508   SELECT t1.*, t2.*, t3.*, t4.*
509   FROM t1 INNER JOIN t2 ON t1.b=t2.b
510   INNER JOIN t3 ON t1.c=t3.c
511   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
512   WHERE t2.x>0 AND t3.y>0
513   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
514 } {
515    6 106 206 306 106  6 206  6   -  -
516   12 112 212 312 112 12 212 12   -  -
517   18 118 218 318 118 18 218 18   -  -
518   24 124 224 324 124 24 224 24   -  -
519   30 130 230 330 130 30 230 30 330 30
520   36 136 236 336 136 36 236 36   -  -
521   42 142 242 342 142 42 242 42   -  -
522   48 148 248 348 148 48 248 48   -  -
523   54 154 254 354 154 54 254 54   -  -
524   60 160 260 360 160 60 260 60 360 60
525   66 166 266 366 166 66 266 66   -  -
526   72 172 272 372 172 72 272 72   -  -
527   78 178 278 378 178 78 278 78   -  -
528   84 184 284 384 184 84 284 84   -  -
529   90 190 290 390 190 90 290 90 390 90
531 do_execsql_test joinD-32 {
532   SELECT t1.*, t2.*, t3.*, t4.*
533   FROM t1 INNER JOIN t2 ON t1.b=t2.b
534   INNER JOIN t3 ON t1.c=t3.c
535   LEFT JOIN t4 ON t1.d=t4.d
536   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
537   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
538 } {
539   30 130 230 330 130 30 230 30 330 30
540   60 160 260 360 160 60 260 60 360 60
541   90 190 290 390 190 90 290 90 390 90
543 do_execsql_test joinD-33 {
544   SELECT t1.*, t2.*, t3.*, t4.*
545   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
546   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
547   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
548   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
549 } {
550    6 106 206 306 106  6 206  6   -  -
551   12 112 212 312 112 12 212 12   -  -
552   18 118 218 318 118 18 218 18   -  -
553   24 124 224 324 124 24 224 24   -  -
554   30 130 230 330 130 30 230 30 330 30
555   36 136 236 336 136 36 236 36   -  -
556   42 142 242 342 142 42 242 42   -  -
557   48 148 248 348 148 48 248 48   -  -
558   54 154 254 354 154 54 254 54   -  -
559   60 160 260 360 160 60 260 60 360 60
560   66 166 266 366 166 66 266 66   -  -
561   72 172 272 372 172 72 272 72   -  -
562   78 178 278 378 178 78 278 78   -  -
563   84 184 284 384 184 84 284 84   -  -
564   90 190 290 390 190 90 290 90 390 90
566 do_execsql_test joinD-34 {
567   SELECT t1.*, t2.*, t3.*, t4.*
568   FROM t1 INNER JOIN t2 ON t2.x>0
569   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
570   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
571   WHERE t1.b IS NOT DISTINCT FROM t2.b
572   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
573 } {
574    6 106 206 306 106  6 206  6   -  -
575   12 112 212 312 112 12 212 12   -  -
576   18 118 218 318 118 18 218 18   -  -
577   24 124 224 324 124 24 224 24   -  -
578   30 130 230 330 130 30 230 30 330 30
579   36 136 236 336 136 36 236 36   -  -
580   42 142 242 342 142 42 242 42   -  -
581   48 148 248 348 148 48 248 48   -  -
582   54 154 254 354 154 54 254 54   -  -
583   60 160 260 360 160 60 260 60 360 60
584   66 166 266 366 166 66 266 66   -  -
585   72 172 272 372 172 72 272 72   -  -
586   78 178 278 378 178 78 278 78   -  -
587   84 184 284 384 184 84 284 84   -  -
588   90 190 290 390 190 90 290 90 390 90
590 do_execsql_test joinD-35 {
591   SELECT t1.*, t2.*, t3.*, t4.*
592   FROM t1 INNER JOIN t2 ON t2.x>0
593   INNER JOIN t3 ON t3.y>0
594   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
595   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
596   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
597 } {
598    6 106 206 306 106  6 206  6   -  -
599   12 112 212 312 112 12 212 12   -  -
600   18 118 218 318 118 18 218 18   -  -
601   24 124 224 324 124 24 224 24   -  -
602   30 130 230 330 130 30 230 30 330 30
603   36 136 236 336 136 36 236 36   -  -
604   42 142 242 342 142 42 242 42   -  -
605   48 148 248 348 148 48 248 48   -  -
606   54 154 254 354 154 54 254 54   -  -
607   60 160 260 360 160 60 260 60 360 60
608   66 166 266 366 166 66 266 66   -  -
609   72 172 272 372 172 72 272 72   -  -
610   78 178 278 378 178 78 278 78   -  -
611   84 184 284 384 184 84 284 84   -  -
612   90 190 290 390 190 90 290 90 390 90
614 do_execsql_test joinD-36 {
615   SELECT t1.*, t2.*, t3.*, t4.*
616   FROM t1 INNER JOIN t2 ON t2.x>0
617   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
618   LEFT JOIN t4 ON t4.z>0
619   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
620   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
621 } {
622   30 130 230 330 130 30 230 30 330 30
623   60 160 260 360 160 60 260 60 360 60
624   90 190 290 390 190 90 290 90 390 90
626 do_execsql_test joinD-37 {
627   SELECT t1.*, t2.*, t3.*, t4.*
628   FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
629   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
630   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
631   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
632 } {
633    6 106 206 306 106  6 206  6   -  -
634   12 112 212 312 112 12 212 12   -  -
635   18 118 218 318 118 18 218 18   -  -
636   24 124 224 324 124 24 224 24   -  -
637   30 130 230 330 130 30 230 30 330 30
638   36 136 236 336 136 36 236 36   -  -
639   42 142 242 342 142 42 242 42   -  -
640   48 148 248 348 148 48 248 48   -  -
641   54 154 254 354 154 54 254 54   -  -
642   60 160 260 360 160 60 260 60 360 60
643   66 166 266 366 166 66 266 66   -  -
644   72 172 272 372 172 72 272 72   -  -
645   78 178 278 378 178 78 278 78   -  -
646   84 184 284 384 184 84 284 84   -  -
647   90 190 290 390 190 90 290 90 390 90
649 do_execsql_test joinD-38 {
650   SELECT t1.*, t2.*, t3.*, t4.*
651   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
652   INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
653   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
654   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
655 } {
656    6 106 206 306 106  6 206  6   -  -
657   12 112 212 312 112 12 212 12   -  -
658   18 118 218 318 118 18 218 18   -  -
659   24 124 224 324 124 24 224 24   -  -
660   30 130 230 330 130 30 230 30 330 30
661   36 136 236 336 136 36 236 36   -  -
662   42 142 242 342 142 42 242 42   -  -
663   48 148 248 348 148 48 248 48   -  -
664   54 154 254 354 154 54 254 54   -  -
665   60 160 260 360 160 60 260 60 360 60
666   66 166 266 366 166 66 266 66   -  -
667   72 172 272 372 172 72 272 72   -  -
668   78 178 278 378 178 78 278 78   -  -
669   84 184 284 384 184 84 284 84   -  -
670   90 190 290 390 190 90 290 90 390 90
672 do_execsql_test joinD-39 {
673   SELECT t1.*, t2.*, t3.*, t4.*
674   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
675   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
676   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
677   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
678 } {
679   30 130 230 330 130 30 230 30 330 30
680   60 160 260 360 160 60 260 60 360 60
681   90 190 290 390 190 90 290 90 390 90
682    -   -   -   -   -  -   -  - 300  0
683    -   -   -   -   -  -   -  - 305  5
684    -   -   -   -   -  -   -  - 310 10
685    -   -   -   -   -  -   -  - 315 15
686    -   -   -   -   -  -   -  - 320 20
687    -   -   -   -   -  -   -  - 325 25
688    -   -   -   -   -  -   -  - 335 35
689    -   -   -   -   -  -   -  - 340 40
690    -   -   -   -   -  -   -  - 345 45
691    -   -   -   -   -  -   -  - 350 50
692    -   -   -   -   -  -   -  - 355 55
693    -   -   -   -   -  -   -  - 365 65
694    -   -   -   -   -  -   -  - 370 70
695    -   -   -   -   -  -   -  - 375 75
696    -   -   -   -   -  -   -  - 380 80
697    -   -   -   -   -  -   -  - 385 85
698    -   -   -   -   -  -   -  - 395 95
700 do_execsql_test joinD-40 {
701   SELECT t1.*, t2.*, t3.*, t4.*
702   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
703   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
704   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
705   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
706 } {
707   30 130 230 330 130 30 230 30 330 30
708   60 160 260 360 160 60 260 60 360 60
709   90 190 290 390 190 90 290 90 390 90
710    -   -   -   -   -  -   -  - 300  0
711    -   -   -   -   -  -   -  - 305  5
712    -   -   -   -   -  -   -  - 310 10
713    -   -   -   -   -  -   -  - 315 15
714    -   -   -   -   -  -   -  - 320 20
715    -   -   -   -   -  -   -  - 325 25
716    -   -   -   -   -  -   -  - 335 35
717    -   -   -   -   -  -   -  - 340 40
718    -   -   -   -   -  -   -  - 345 45
719    -   -   -   -   -  -   -  - 350 50
720    -   -   -   -   -  -   -  - 355 55
721    -   -   -   -   -  -   -  - 365 65
722    -   -   -   -   -  -   -  - 370 70
723    -   -   -   -   -  -   -  - 375 75
724    -   -   -   -   -  -   -  - 380 80
725    -   -   -   -   -  -   -  - 385 85
726    -   -   -   -   -  -   -  - 395 95
728 do_execsql_test joinD-41 {
729   SELECT t1.*, t2.*, t3.*, t4.*
730   FROM t1 INNER JOIN t2 ON t1.b=t2.b
731   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
732   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
733   WHERE t2.x>0
734   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
735 } {
736   30 130 230 330 130 30 230 30 330 30
737   60 160 260 360 160 60 260 60 360 60
738   90 190 290 390 190 90 290 90 390 90
740 do_execsql_test joinD-42 {
741   SELECT t1.*, t2.*, t3.*, t4.*
742   FROM t1 INNER JOIN t2 ON t1.b=t2.b
743   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
744   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
745   WHERE (t2.x>0 OR t2.x IS NULL)
746   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
747 } {
748   30 130 230 330 130 30 230 30 330 30
749   60 160 260 360 160 60 260 60 360 60
750   90 190 290 390 190 90 290 90 390 90
751    -   -   -   -   -  -   -  - 300  0
752    -   -   -   -   -  -   -  - 305  5
753    -   -   -   -   -  -   -  - 310 10
754    -   -   -   -   -  -   -  - 315 15
755    -   -   -   -   -  -   -  - 320 20
756    -   -   -   -   -  -   -  - 325 25
757    -   -   -   -   -  -   -  - 335 35
758    -   -   -   -   -  -   -  - 340 40
759    -   -   -   -   -  -   -  - 345 45
760    -   -   -   -   -  -   -  - 350 50
761    -   -   -   -   -  -   -  - 355 55
762    -   -   -   -   -  -   -  - 365 65
763    -   -   -   -   -  -   -  - 370 70
764    -   -   -   -   -  -   -  - 375 75
765    -   -   -   -   -  -   -  - 380 80
766    -   -   -   -   -  -   -  - 385 85
767    -   -   -   -   -  -   -  - 395 95
769 do_execsql_test joinD-43 {
770   SELECT t1.*, t2.*, t3.*, t4.*
771   FROM t1 INNER JOIN t2 ON true
772   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
773   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
774   WHERE t1.b=t2.b AND t2.x>0
775   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
776 } {
777   30 130 230 330 130 30 230 30 330 30
778   60 160 260 360 160 60 260 60 360 60
779   90 190 290 390 190 90 290 90 390 90
781 do_execsql_test joinD-44 {
782   SELECT t1.*, t2.*, t3.*, t4.*
783   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
784   INNER JOIN t3 ON t1.c=t3.c
785   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
786   WHERE t3.y>0
787   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
788 } {
789   30 130 230 330 130 30 230 30 330 30
790   60 160 260 360 160 60 260 60 360 60
791   90 190 290 390 190 90 290 90 390 90
793 do_execsql_test joinD-45 {
794   SELECT t1.*, t2.*, t3.*, t4.*
795   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
796   INNER JOIN t3 ON t1.c=t3.c
797   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
798   WHERE t3.y>0 OR t3.y IS NULL
799   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
800 } {
801   30 130 230 330 130 30 230 30 330 30
802   60 160 260 360 160 60 260 60 360 60
803   90 190 290 390 190 90 290 90 390 90
804    -   -   -   -   -  -   -  - 300  0
805    -   -   -   -   -  -   -  - 305  5
806    -   -   -   -   -  -   -  - 310 10
807    -   -   -   -   -  -   -  - 315 15
808    -   -   -   -   -  -   -  - 320 20
809    -   -   -   -   -  -   -  - 325 25
810    -   -   -   -   -  -   -  - 335 35
811    -   -   -   -   -  -   -  - 340 40
812    -   -   -   -   -  -   -  - 345 45
813    -   -   -   -   -  -   -  - 350 50
814    -   -   -   -   -  -   -  - 355 55
815    -   -   -   -   -  -   -  - 365 65
816    -   -   -   -   -  -   -  - 370 70
817    -   -   -   -   -  -   -  - 375 75
818    -   -   -   -   -  -   -  - 380 80
819    -   -   -   -   -  -   -  - 385 85
820    -   -   -   -   -  -   -  - 395 95
822 do_execsql_test joinD-46 {
823   SELECT t1.*, t2.*, t3.*, t4.*
824   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
825   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
826   RIGHT JOIN t4 ON t1.d=t4.d
827   WHERE t4.z>0
828   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
829 } {
830   30 130 230 330 130 30 230 30 330 30
831   60 160 260 360 160 60 260 60 360 60
832   90 190 290 390 190 90 290 90 390 90
833    -   -   -   -   -  -   -  - 305  5
834    -   -   -   -   -  -   -  - 310 10
835    -   -   -   -   -  -   -  - 315 15
836    -   -   -   -   -  -   -  - 320 20
837    -   -   -   -   -  -   -  - 325 25
838    -   -   -   -   -  -   -  - 335 35
839    -   -   -   -   -  -   -  - 340 40
840    -   -   -   -   -  -   -  - 345 45
841    -   -   -   -   -  -   -  - 350 50
842    -   -   -   -   -  -   -  - 355 55
843    -   -   -   -   -  -   -  - 365 65
844    -   -   -   -   -  -   -  - 370 70
845    -   -   -   -   -  -   -  - 375 75
846    -   -   -   -   -  -   -  - 380 80
847    -   -   -   -   -  -   -  - 385 85
848    -   -   -   -   -  -   -  - 395 95
850 do_execsql_test joinD-47 {
851   SELECT t1.*, t2.*, t3.*, t4.*
852   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
853   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
854   RIGHT JOIN t4 ON t1.d=t4.d
855   WHERE t4.z IS NULL OR t4.z>0
856   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
857 } {
858   30 130 230 330 130 30 230 30 330 30
859   60 160 260 360 160 60 260 60 360 60
860   90 190 290 390 190 90 290 90 390 90
861    -   -   -   -   -  -   -  - 305  5
862    -   -   -   -   -  -   -  - 310 10
863    -   -   -   -   -  -   -  - 315 15
864    -   -   -   -   -  -   -  - 320 20
865    -   -   -   -   -  -   -  - 325 25
866    -   -   -   -   -  -   -  - 335 35
867    -   -   -   -   -  -   -  - 340 40
868    -   -   -   -   -  -   -  - 345 45
869    -   -   -   -   -  -   -  - 350 50
870    -   -   -   -   -  -   -  - 355 55
871    -   -   -   -   -  -   -  - 365 65
872    -   -   -   -   -  -   -  - 370 70
873    -   -   -   -   -  -   -  - 375 75
874    -   -   -   -   -  -   -  - 380 80
875    -   -   -   -   -  -   -  - 385 85
876    -   -   -   -   -  -   -  - 395 95
878 do_execsql_test joinD-48 {
879   SELECT t1.*, t2.*, t3.*, t4.*
880   FROM t1 INNER JOIN t2 ON t1.b=t2.b
881   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
882   RIGHT JOIN t4 ON t1.d=t4.d
883   WHERE t2.x>0 AND t4.z>0
884   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
885 } {
886   30 130 230 330 130 30 230 30 330 30
887   60 160 260 360 160 60 260 60 360 60
888   90 190 290 390 190 90 290 90 390 90
890 do_execsql_test joinD-49 {
891   SELECT t1.*, t2.*, t3.*, t4.*
892   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
893   INNER JOIN t3 ON t1.c=t3.c
894   RIGHT JOIN t4 ON t1.d=t4.d
895   WHERE t4.z>0 AND t3.y>0
896   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
897 } {
898   30 130 230 330 130 30 230 30 330 30
899   60 160 260 360 160 60 260 60 360 60
900   90 190 290 390 190 90 290 90 390 90
902 do_execsql_test joinD-50 {
903   SELECT t1.*, t2.*, t3.*, t4.*
904   FROM t1 INNER JOIN t2 ON t1.b=t2.b
905   INNER JOIN t3 ON t1.c=t3.c
906   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
907   WHERE t2.x>0 AND t3.y>0
908   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
909 } {
910   30 130 230 330 130 30 230 30 330 30
911   60 160 260 360 160 60 260 60 360 60
912   90 190 290 390 190 90 290 90 390 90
914 do_execsql_test joinD-51 {
915   SELECT t1.*, t2.*, t3.*, t4.*
916   FROM t1 INNER JOIN t2 ON t1.b=t2.b
917   INNER JOIN t3 ON t1.c=t3.c
918   RIGHT JOIN t4 ON t1.d=t4.d
919   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
920   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
921 } {
922   30 130 230 330 130 30 230 30 330 30
923   60 160 260 360 160 60 260 60 360 60
924   90 190 290 390 190 90 290 90 390 90
926 do_execsql_test joinD-52 {
927   SELECT t1.*, t2.*, t3.*, t4.*
928   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
929   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
930   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
931   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
932 } {
933   30 130 230 330 130 30 230 30 330 30
934   60 160 260 360 160 60 260 60 360 60
935   90 190 290 390 190 90 290 90 390 90
936    -   -   -   -   -  -   -  - 300  0
937    -   -   -   -   -  -   -  - 305  5
938    -   -   -   -   -  -   -  - 310 10
939    -   -   -   -   -  -   -  - 315 15
940    -   -   -   -   -  -   -  - 320 20
941    -   -   -   -   -  -   -  - 325 25
942    -   -   -   -   -  -   -  - 335 35
943    -   -   -   -   -  -   -  - 340 40
944    -   -   -   -   -  -   -  - 345 45
945    -   -   -   -   -  -   -  - 350 50
946    -   -   -   -   -  -   -  - 355 55
947    -   -   -   -   -  -   -  - 365 65
948    -   -   -   -   -  -   -  - 370 70
949    -   -   -   -   -  -   -  - 375 75
950    -   -   -   -   -  -   -  - 380 80
951    -   -   -   -   -  -   -  - 385 85
952    -   -   -   -   -  -   -  - 395 95
954 do_execsql_test joinD-53 {
955   SELECT t1.*, t2.*, t3.*, t4.*
956   FROM t1 INNER JOIN t2 ON t2.x>0
957   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
958   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
959   WHERE t1.b IS NOT DISTINCT FROM t2.b
960   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
961 } {
962   30 130 230 330 130 30 230 30 330 30
963   60 160 260 360 160 60 260 60 360 60
964   90 190 290 390 190 90 290 90 390 90
965    -   -   -   -   -  -   -  - 300  0
966    -   -   -   -   -  -   -  - 305  5
967    -   -   -   -   -  -   -  - 310 10
968    -   -   -   -   -  -   -  - 320 20
969    -   -   -   -   -  -   -  - 325 25
970    -   -   -   -   -  -   -  - 335 35
971    -   -   -   -   -  -   -  - 340 40
972    -   -   -   -   -  -   -  - 350 50
973    -   -   -   -   -  -   -  - 355 55
974    -   -   -   -   -  -   -  - 365 65
975    -   -   -   -   -  -   -  - 370 70
976    -   -   -   -   -  -   -  - 380 80
977    -   -   -   -   -  -   -  - 385 85
978    -   -   -   -   -  -   -  - 395 95
980 do_execsql_test joinD-54 {
981   SELECT t1.*, t2.*, t3.*, t4.*
982   FROM t1 INNER JOIN t2 ON t2.x>0
983   INNER JOIN t3 ON t3.y>0
984   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
985   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
986   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
987 } {
988   30 130 230 330 130 30 230 30 330 30
989   60 160 260 360 160 60 260 60 360 60
990   90 190 290 390 190 90 290 90 390 90
991    -   -   -   -   -  -   -  - 300  0
993 do_execsql_test joinD-55 {
994   SELECT t1.*, t2.*, t3.*, t4.*
995   FROM t1 INNER JOIN t2 ON t2.x>0
996   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
997   RIGHT JOIN t4 ON t4.z>0
998   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
999   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1000 } {
1001   30 130 230 330 130 30 230 30 330 30
1002   60 160 260 360 160 60 260 60 360 60
1003   90 190 290 390 190 90 290 90 390 90
1005 do_execsql_test joinD-56 {
1006   SELECT t1.*, t2.*, t3.*, t4.*
1007   FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
1008   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
1009   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
1010   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1011 } {
1012   30 130 230 330 130 30 230 30 330 30
1013   60 160 260 360 160 60 260 60 360 60
1014   90 190 290 390 190 90 290 90 390 90
1015    -   -   -   -   -  -   -  - 300  0
1016    -   -   -   -   -  -   -  - 305  5
1017    -   -   -   -   -  -   -  - 310 10
1018    -   -   -   -   -  -   -  - 315 15
1019    -   -   -   -   -  -   -  - 320 20
1020    -   -   -   -   -  -   -  - 325 25
1021    -   -   -   -   -  -   -  - 335 35
1022    -   -   -   -   -  -   -  - 340 40
1023    -   -   -   -   -  -   -  - 345 45
1024    -   -   -   -   -  -   -  - 350 50
1025    -   -   -   -   -  -   -  - 355 55
1026    -   -   -   -   -  -   -  - 365 65
1027    -   -   -   -   -  -   -  - 370 70
1028    -   -   -   -   -  -   -  - 375 75
1029    -   -   -   -   -  -   -  - 380 80
1030    -   -   -   -   -  -   -  - 385 85
1031    -   -   -   -   -  -   -  - 395 95
1033 do_execsql_test joinD-57 {
1034   SELECT t1.*, t2.*, t3.*, t4.*
1035   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
1036   INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
1037   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
1038   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1039 } {
1040   30 130 230 330 130 30 230 30 330 30
1041   60 160 260 360 160 60 260 60 360 60
1042   90 190 290 390 190 90 290 90 390 90
1043    -   -   -   -   -  -   -  - 300  0
1044    -   -   -   -   -  -   -  - 305  5
1045    -   -   -   -   -  -   -  - 310 10
1046    -   -   -   -   -  -   -  - 315 15
1047    -   -   -   -   -  -   -  - 320 20
1048    -   -   -   -   -  -   -  - 325 25
1049    -   -   -   -   -  -   -  - 335 35
1050    -   -   -   -   -  -   -  - 340 40
1051    -   -   -   -   -  -   -  - 345 45
1052    -   -   -   -   -  -   -  - 350 50
1053    -   -   -   -   -  -   -  - 355 55
1054    -   -   -   -   -  -   -  - 365 65
1055    -   -   -   -   -  -   -  - 370 70
1056    -   -   -   -   -  -   -  - 375 75
1057    -   -   -   -   -  -   -  - 380 80
1058    -   -   -   -   -  -   -  - 385 85
1059    -   -   -   -   -  -   -  - 395 95
1061 do_execsql_test joinD-58 {
1062   SELECT t1.*, t2.*, t3.*, t4.*
1063   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
1064   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
1065   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
1066   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1067 } {
1068    6 106 206 306 106  6 206  6   -  -
1069   12 112 212 312 112 12 212 12   -  -
1070   18 118 218 318 118 18 218 18   -  -
1071   24 124 224 324 124 24 224 24   -  -
1072   30 130 230 330 130 30 230 30 330 30
1073   36 136 236 336 136 36 236 36   -  -
1074   42 142 242 342 142 42 242 42   -  -
1075   48 148 248 348 148 48 248 48   -  -
1076   54 154 254 354 154 54 254 54   -  -
1077   60 160 260 360 160 60 260 60 360 60
1078   66 166 266 366 166 66 266 66   -  -
1079   72 172 272 372 172 72 272 72   -  -
1080   78 178 278 378 178 78 278 78   -  -
1081   84 184 284 384 184 84 284 84   -  -
1082   90 190 290 390 190 90 290 90 390 90
1083    -   -   -   -   -  -   -  - 300  0
1084    -   -   -   -   -  -   -  - 305  5
1085    -   -   -   -   -  -   -  - 310 10
1086    -   -   -   -   -  -   -  - 315 15
1087    -   -   -   -   -  -   -  - 320 20
1088    -   -   -   -   -  -   -  - 325 25
1089    -   -   -   -   -  -   -  - 335 35
1090    -   -   -   -   -  -   -  - 340 40
1091    -   -   -   -   -  -   -  - 345 45
1092    -   -   -   -   -  -   -  - 350 50
1093    -   -   -   -   -  -   -  - 355 55
1094    -   -   -   -   -  -   -  - 365 65
1095    -   -   -   -   -  -   -  - 370 70
1096    -   -   -   -   -  -   -  - 375 75
1097    -   -   -   -   -  -   -  - 380 80
1098    -   -   -   -   -  -   -  - 385 85
1099    -   -   -   -   -  -   -  - 395 95
1101 do_execsql_test joinD-59 {
1102   SELECT t1.*, t2.*, t3.*, t4.*
1103   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
1104   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
1105   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
1106   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1107 } {
1108    6 106 206 306 106  6 206  6   -  -
1109   12 112 212 312 112 12 212 12   -  -
1110   18 118 218 318 118 18 218 18   -  -
1111   24 124 224 324 124 24 224 24   -  -
1112   30 130 230 330 130 30 230 30 330 30
1113   36 136 236 336 136 36 236 36   -  -
1114   42 142 242 342 142 42 242 42   -  -
1115   48 148 248 348 148 48 248 48   -  -
1116   54 154 254 354 154 54 254 54   -  -
1117   60 160 260 360 160 60 260 60 360 60
1118   66 166 266 366 166 66 266 66   -  -
1119   72 172 272 372 172 72 272 72   -  -
1120   78 178 278 378 178 78 278 78   -  -
1121   84 184 284 384 184 84 284 84   -  -
1122   90 190 290 390 190 90 290 90 390 90
1123    -   -   -   -   -  -   -  - 300  0
1124    -   -   -   -   -  -   -  - 305  5
1125    -   -   -   -   -  -   -  - 310 10
1126    -   -   -   -   -  -   -  - 315 15
1127    -   -   -   -   -  -   -  - 320 20
1128    -   -   -   -   -  -   -  - 325 25
1129    -   -   -   -   -  -   -  - 335 35
1130    -   -   -   -   -  -   -  - 340 40
1131    -   -   -   -   -  -   -  - 345 45
1132    -   -   -   -   -  -   -  - 350 50
1133    -   -   -   -   -  -   -  - 355 55
1134    -   -   -   -   -  -   -  - 365 65
1135    -   -   -   -   -  -   -  - 370 70
1136    -   -   -   -   -  -   -  - 375 75
1137    -   -   -   -   -  -   -  - 380 80
1138    -   -   -   -   -  -   -  - 385 85
1139    -   -   -   -   -  -   -  - 395 95
1141 do_execsql_test joinD-60 {
1142   SELECT t1.*, t2.*, t3.*, t4.*
1143   FROM t1 INNER JOIN t2 ON t1.b=t2.b
1144   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
1145   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
1146   WHERE t2.x>0
1147   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1148 } {
1149    6 106 206 306 106  6 206  6   -  -
1150   12 112 212 312 112 12 212 12   -  -
1151   18 118 218 318 118 18 218 18   -  -
1152   24 124 224 324 124 24 224 24   -  -
1153   30 130 230 330 130 30 230 30 330 30
1154   36 136 236 336 136 36 236 36   -  -
1155   42 142 242 342 142 42 242 42   -  -
1156   48 148 248 348 148 48 248 48   -  -
1157   54 154 254 354 154 54 254 54   -  -
1158   60 160 260 360 160 60 260 60 360 60
1159   66 166 266 366 166 66 266 66   -  -
1160   72 172 272 372 172 72 272 72   -  -
1161   78 178 278 378 178 78 278 78   -  -
1162   84 184 284 384 184 84 284 84   -  -
1163   90 190 290 390 190 90 290 90 390 90
1165 do_execsql_test joinD-61 {
1166   SELECT t1.*, t2.*, t3.*, t4.*
1167   FROM t1 INNER JOIN t2 ON t1.b=t2.b
1168   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
1169   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
1170   WHERE (t2.x>0 OR t2.x IS NULL)
1171   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1172 } {
1173    6 106 206 306 106  6 206  6   -  -
1174   12 112 212 312 112 12 212 12   -  -
1175   18 118 218 318 118 18 218 18   -  -
1176   24 124 224 324 124 24 224 24   -  -
1177   30 130 230 330 130 30 230 30 330 30
1178   36 136 236 336 136 36 236 36   -  -
1179   42 142 242 342 142 42 242 42   -  -
1180   48 148 248 348 148 48 248 48   -  -
1181   54 154 254 354 154 54 254 54   -  -
1182   60 160 260 360 160 60 260 60 360 60
1183   66 166 266 366 166 66 266 66   -  -
1184   72 172 272 372 172 72 272 72   -  -
1185   78 178 278 378 178 78 278 78   -  -
1186   84 184 284 384 184 84 284 84   -  -
1187   90 190 290 390 190 90 290 90 390 90
1188    -   -   -   -   -  -   -  - 300  0
1189    -   -   -   -   -  -   -  - 305  5
1190    -   -   -   -   -  -   -  - 310 10
1191    -   -   -   -   -  -   -  - 315 15
1192    -   -   -   -   -  -   -  - 320 20
1193    -   -   -   -   -  -   -  - 325 25
1194    -   -   -   -   -  -   -  - 335 35
1195    -   -   -   -   -  -   -  - 340 40
1196    -   -   -   -   -  -   -  - 345 45
1197    -   -   -   -   -  -   -  - 350 50
1198    -   -   -   -   -  -   -  - 355 55
1199    -   -   -   -   -  -   -  - 365 65
1200    -   -   -   -   -  -   -  - 370 70
1201    -   -   -   -   -  -   -  - 375 75
1202    -   -   -   -   -  -   -  - 380 80
1203    -   -   -   -   -  -   -  - 385 85
1204    -   -   -   -   -  -   -  - 395 95
1206 do_execsql_test joinD-62 {
1207   SELECT t1.*, t2.*, t3.*, t4.*
1208   FROM t1 INNER JOIN t2 ON true
1209   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
1210   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
1211   WHERE t1.b=t2.b AND t2.x>0
1212   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1213 } {
1214    6 106 206 306 106  6 206  6   -  -
1215   12 112 212 312 112 12 212 12   -  -
1216   18 118 218 318 118 18 218 18   -  -
1217   24 124 224 324 124 24 224 24   -  -
1218   30 130 230 330 130 30 230 30 330 30
1219   36 136 236 336 136 36 236 36   -  -
1220   42 142 242 342 142 42 242 42   -  -
1221   48 148 248 348 148 48 248 48   -  -
1222   54 154 254 354 154 54 254 54   -  -
1223   60 160 260 360 160 60 260 60 360 60
1224   66 166 266 366 166 66 266 66   -  -
1225   72 172 272 372 172 72 272 72   -  -
1226   78 178 278 378 178 78 278 78   -  -
1227   84 184 284 384 184 84 284 84   -  -
1228   90 190 290 390 190 90 290 90 390 90
1230 do_execsql_test joinD-63 {
1231   SELECT t1.*, t2.*, t3.*, t4.*
1232   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
1233   INNER JOIN t3 ON t1.c=t3.c
1234   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
1235   WHERE t3.y>0
1236   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1237 } {
1238    6 106 206 306 106  6 206  6   -  -
1239   12 112 212 312 112 12 212 12   -  -
1240   18 118 218 318 118 18 218 18   -  -
1241   24 124 224 324 124 24 224 24   -  -
1242   30 130 230 330 130 30 230 30 330 30
1243   36 136 236 336 136 36 236 36   -  -
1244   42 142 242 342 142 42 242 42   -  -
1245   48 148 248 348 148 48 248 48   -  -
1246   54 154 254 354 154 54 254 54   -  -
1247   60 160 260 360 160 60 260 60 360 60
1248   66 166 266 366 166 66 266 66   -  -
1249   72 172 272 372 172 72 272 72   -  -
1250   78 178 278 378 178 78 278 78   -  -
1251   84 184 284 384 184 84 284 84   -  -
1252   90 190 290 390 190 90 290 90 390 90
1254 do_execsql_test joinD-64 {
1255   SELECT t1.*, t2.*, t3.*, t4.*
1256   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
1257   INNER JOIN t3 ON t1.c=t3.c
1258   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
1259   WHERE t3.y>0 OR t3.y IS NULL
1260   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1261 } {
1262    6 106 206 306 106  6 206  6   -  -
1263   12 112 212 312 112 12 212 12   -  -
1264   18 118 218 318 118 18 218 18   -  -
1265   24 124 224 324 124 24 224 24   -  -
1266   30 130 230 330 130 30 230 30 330 30
1267   36 136 236 336 136 36 236 36   -  -
1268   42 142 242 342 142 42 242 42   -  -
1269   48 148 248 348 148 48 248 48   -  -
1270   54 154 254 354 154 54 254 54   -  -
1271   60 160 260 360 160 60 260 60 360 60
1272   66 166 266 366 166 66 266 66   -  -
1273   72 172 272 372 172 72 272 72   -  -
1274   78 178 278 378 178 78 278 78   -  -
1275   84 184 284 384 184 84 284 84   -  -
1276   90 190 290 390 190 90 290 90 390 90
1277    -   -   -   -   -  -   -  - 300  0
1278    -   -   -   -   -  -   -  - 305  5
1279    -   -   -   -   -  -   -  - 310 10
1280    -   -   -   -   -  -   -  - 315 15
1281    -   -   -   -   -  -   -  - 320 20
1282    -   -   -   -   -  -   -  - 325 25
1283    -   -   -   -   -  -   -  - 335 35
1284    -   -   -   -   -  -   -  - 340 40
1285    -   -   -   -   -  -   -  - 345 45
1286    -   -   -   -   -  -   -  - 350 50
1287    -   -   -   -   -  -   -  - 355 55
1288    -   -   -   -   -  -   -  - 365 65
1289    -   -   -   -   -  -   -  - 370 70
1290    -   -   -   -   -  -   -  - 375 75
1291    -   -   -   -   -  -   -  - 380 80
1292    -   -   -   -   -  -   -  - 385 85
1293    -   -   -   -   -  -   -  - 395 95
1295 do_execsql_test joinD-65 {
1296   SELECT t1.*, t2.*, t3.*, t4.*
1297   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
1298   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
1299   FULL JOIN t4 ON t1.d=t4.d
1300   WHERE t4.z>0
1301   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1302 } {
1303   30 130 230 330 130 30 230 30 330 30
1304   60 160 260 360 160 60 260 60 360 60
1305   90 190 290 390 190 90 290 90 390 90
1306    -   -   -   -   -  -   -  - 305  5
1307    -   -   -   -   -  -   -  - 310 10
1308    -   -   -   -   -  -   -  - 315 15
1309    -   -   -   -   -  -   -  - 320 20
1310    -   -   -   -   -  -   -  - 325 25
1311    -   -   -   -   -  -   -  - 335 35
1312    -   -   -   -   -  -   -  - 340 40
1313    -   -   -   -   -  -   -  - 345 45
1314    -   -   -   -   -  -   -  - 350 50
1315    -   -   -   -   -  -   -  - 355 55
1316    -   -   -   -   -  -   -  - 365 65
1317    -   -   -   -   -  -   -  - 370 70
1318    -   -   -   -   -  -   -  - 375 75
1319    -   -   -   -   -  -   -  - 380 80
1320    -   -   -   -   -  -   -  - 385 85
1321    -   -   -   -   -  -   -  - 395 95
1323 do_execsql_test joinD-66 {
1324   SELECT t1.*, t2.*, t3.*, t4.*
1325   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
1326   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
1327   FULL JOIN t4 ON t1.d=t4.d
1328   WHERE t4.z IS NULL OR t4.z>0
1329   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1330 } {
1331    6 106 206 306 106  6 206  6   -  -
1332   12 112 212 312 112 12 212 12   -  -
1333   18 118 218 318 118 18 218 18   -  -
1334   24 124 224 324 124 24 224 24   -  -
1335   30 130 230 330 130 30 230 30 330 30
1336   36 136 236 336 136 36 236 36   -  -
1337   42 142 242 342 142 42 242 42   -  -
1338   48 148 248 348 148 48 248 48   -  -
1339   54 154 254 354 154 54 254 54   -  -
1340   60 160 260 360 160 60 260 60 360 60
1341   66 166 266 366 166 66 266 66   -  -
1342   72 172 272 372 172 72 272 72   -  -
1343   78 178 278 378 178 78 278 78   -  -
1344   84 184 284 384 184 84 284 84   -  -
1345   90 190 290 390 190 90 290 90 390 90
1346    -   -   -   -   -  -   -  - 305  5
1347    -   -   -   -   -  -   -  - 310 10
1348    -   -   -   -   -  -   -  - 315 15
1349    -   -   -   -   -  -   -  - 320 20
1350    -   -   -   -   -  -   -  - 325 25
1351    -   -   -   -   -  -   -  - 335 35
1352    -   -   -   -   -  -   -  - 340 40
1353    -   -   -   -   -  -   -  - 345 45
1354    -   -   -   -   -  -   -  - 350 50
1355    -   -   -   -   -  -   -  - 355 55
1356    -   -   -   -   -  -   -  - 365 65
1357    -   -   -   -   -  -   -  - 370 70
1358    -   -   -   -   -  -   -  - 375 75
1359    -   -   -   -   -  -   -  - 380 80
1360    -   -   -   -   -  -   -  - 385 85
1361    -   -   -   -   -  -   -  - 395 95
1363 do_execsql_test joinD-67 {
1364   SELECT t1.*, t2.*, t3.*, t4.*
1365   FROM t1 INNER JOIN t2 ON t1.b=t2.b
1366   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
1367   FULL JOIN t4 ON t1.d=t4.d
1368   WHERE t2.x>0 AND t4.z>0
1369   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1370 } {
1371   30 130 230 330 130 30 230 30 330 30
1372   60 160 260 360 160 60 260 60 360 60
1373   90 190 290 390 190 90 290 90 390 90
1375 do_execsql_test joinD-68 {
1376   SELECT t1.*, t2.*, t3.*, t4.*
1377   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
1378   INNER JOIN t3 ON t1.c=t3.c
1379   FULL JOIN t4 ON t1.d=t4.d
1380   WHERE t4.z>0 AND t3.y>0
1381   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1382 } {
1383   30 130 230 330 130 30 230 30 330 30
1384   60 160 260 360 160 60 260 60 360 60
1385   90 190 290 390 190 90 290 90 390 90
1387 do_execsql_test joinD-69 {
1388   SELECT t1.*, t2.*, t3.*, t4.*
1389   FROM t1 INNER JOIN t2 ON t1.b=t2.b
1390   INNER JOIN t3 ON t1.c=t3.c
1391   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
1392   WHERE t2.x>0 AND t3.y>0
1393   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1394 } {
1395    6 106 206 306 106  6 206  6   -  -
1396   12 112 212 312 112 12 212 12   -  -
1397   18 118 218 318 118 18 218 18   -  -
1398   24 124 224 324 124 24 224 24   -  -
1399   30 130 230 330 130 30 230 30 330 30
1400   36 136 236 336 136 36 236 36   -  -
1401   42 142 242 342 142 42 242 42   -  -
1402   48 148 248 348 148 48 248 48   -  -
1403   54 154 254 354 154 54 254 54   -  -
1404   60 160 260 360 160 60 260 60 360 60
1405   66 166 266 366 166 66 266 66   -  -
1406   72 172 272 372 172 72 272 72   -  -
1407   78 178 278 378 178 78 278 78   -  -
1408   84 184 284 384 184 84 284 84   -  -
1409   90 190 290 390 190 90 290 90 390 90
1411 do_execsql_test joinD-70 {
1412   SELECT t1.*, t2.*, t3.*, t4.*
1413   FROM t1 INNER JOIN t2 ON t1.b=t2.b
1414   INNER JOIN t3 ON t1.c=t3.c
1415   FULL JOIN t4 ON t1.d=t4.d
1416   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
1417   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1418 } {
1419   30 130 230 330 130 30 230 30 330 30
1420   60 160 260 360 160 60 260 60 360 60
1421   90 190 290 390 190 90 290 90 390 90
1423 do_execsql_test joinD-71 {
1424   SELECT t1.*, t2.*, t3.*, t4.*
1425   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
1426   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
1427   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
1428   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1429 } {
1430    6 106 206 306 106  6 206  6   -  -
1431   12 112 212 312 112 12 212 12   -  -
1432   18 118 218 318 118 18 218 18   -  -
1433   24 124 224 324 124 24 224 24   -  -
1434   30 130 230 330 130 30 230 30 330 30
1435   36 136 236 336 136 36 236 36   -  -
1436   42 142 242 342 142 42 242 42   -  -
1437   48 148 248 348 148 48 248 48   -  -
1438   54 154 254 354 154 54 254 54   -  -
1439   60 160 260 360 160 60 260 60 360 60
1440   66 166 266 366 166 66 266 66   -  -
1441   72 172 272 372 172 72 272 72   -  -
1442   78 178 278 378 178 78 278 78   -  -
1443   84 184 284 384 184 84 284 84   -  -
1444   90 190 290 390 190 90 290 90 390 90
1445    -   -   -   -   -  -   -  - 300  0
1446    -   -   -   -   -  -   -  - 305  5
1447    -   -   -   -   -  -   -  - 310 10
1448    -   -   -   -   -  -   -  - 315 15
1449    -   -   -   -   -  -   -  - 320 20
1450    -   -   -   -   -  -   -  - 325 25
1451    -   -   -   -   -  -   -  - 335 35
1452    -   -   -   -   -  -   -  - 340 40
1453    -   -   -   -   -  -   -  - 345 45
1454    -   -   -   -   -  -   -  - 350 50
1455    -   -   -   -   -  -   -  - 355 55
1456    -   -   -   -   -  -   -  - 365 65
1457    -   -   -   -   -  -   -  - 370 70
1458    -   -   -   -   -  -   -  - 375 75
1459    -   -   -   -   -  -   -  - 380 80
1460    -   -   -   -   -  -   -  - 385 85
1461    -   -   -   -   -  -   -  - 395 95
1463 do_execsql_test joinD-72 {
1464   SELECT t1.*, t2.*, t3.*, t4.*
1465   FROM t1 INNER JOIN t2 ON t2.x>0
1466   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
1467   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
1468   WHERE t1.b IS NOT DISTINCT FROM t2.b
1469   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1470 } {
1471    6 106 206 306 106  6 206  6   -  -
1472   12 112 212 312 112 12 212 12   -  -
1473   18 118 218 318 118 18 218 18   -  -
1474   24 124 224 324 124 24 224 24   -  -
1475   30 130 230 330 130 30 230 30 330 30
1476   36 136 236 336 136 36 236 36   -  -
1477   42 142 242 342 142 42 242 42   -  -
1478   48 148 248 348 148 48 248 48   -  -
1479   54 154 254 354 154 54 254 54   -  -
1480   60 160 260 360 160 60 260 60 360 60
1481   66 166 266 366 166 66 266 66   -  -
1482   72 172 272 372 172 72 272 72   -  -
1483   78 178 278 378 178 78 278 78   -  -
1484   84 184 284 384 184 84 284 84   -  -
1485   90 190 290 390 190 90 290 90 390 90
1486    -   -   -   -   -  -   -  - 300  0
1487    -   -   -   -   -  -   -  - 305  5
1488    -   -   -   -   -  -   -  - 310 10
1489    -   -   -   -   -  -   -  - 320 20
1490    -   -   -   -   -  -   -  - 325 25
1491    -   -   -   -   -  -   -  - 335 35
1492    -   -   -   -   -  -   -  - 340 40
1493    -   -   -   -   -  -   -  - 350 50
1494    -   -   -   -   -  -   -  - 355 55
1495    -   -   -   -   -  -   -  - 365 65
1496    -   -   -   -   -  -   -  - 370 70
1497    -   -   -   -   -  -   -  - 380 80
1498    -   -   -   -   -  -   -  - 385 85
1499    -   -   -   -   -  -   -  - 395 95
1501 do_execsql_test joinD-73 {
1502   SELECT t1.*, t2.*, t3.*, t4.*
1503   FROM t1 INNER JOIN t2 ON t2.x>0
1504   INNER JOIN t3 ON t3.y>0
1505   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
1506   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
1507   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1508 } {
1509    6 106 206 306 106  6 206  6   -  -
1510   12 112 212 312 112 12 212 12   -  -
1511   18 118 218 318 118 18 218 18   -  -
1512   24 124 224 324 124 24 224 24   -  -
1513   30 130 230 330 130 30 230 30 330 30
1514   36 136 236 336 136 36 236 36   -  -
1515   42 142 242 342 142 42 242 42   -  -
1516   48 148 248 348 148 48 248 48   -  -
1517   54 154 254 354 154 54 254 54   -  -
1518   60 160 260 360 160 60 260 60 360 60
1519   66 166 266 366 166 66 266 66   -  -
1520   72 172 272 372 172 72 272 72   -  -
1521   78 178 278 378 178 78 278 78   -  -
1522   84 184 284 384 184 84 284 84   -  -
1523   90 190 290 390 190 90 290 90 390 90
1524    -   -   -   -   -  -   -  - 300  0
1526 do_execsql_test joinD-74 {
1527   SELECT t1.*, t2.*, t3.*, t4.*
1528   FROM t1 INNER JOIN t2 ON t2.x>0
1529   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
1530   FULL JOIN t4 ON t4.z>0
1531   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
1532   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1533 } {
1534   30 130 230 330 130 30 230 30 330 30
1535   60 160 260 360 160 60 260 60 360 60
1536   90 190 290 390 190 90 290 90 390 90
1538 do_execsql_test joinD-75 {
1539   SELECT t1.*, t2.*, t3.*, t4.*
1540   FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
1541   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
1542   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
1543   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1544 } {
1545    6 106 206 306 106  6 206  6   -  -
1546   12 112 212 312 112 12 212 12   -  -
1547   18 118 218 318 118 18 218 18   -  -
1548   24 124 224 324 124 24 224 24   -  -
1549   30 130 230 330 130 30 230 30 330 30
1550   36 136 236 336 136 36 236 36   -  -
1551   42 142 242 342 142 42 242 42   -  -
1552   48 148 248 348 148 48 248 48   -  -
1553   54 154 254 354 154 54 254 54   -  -
1554   60 160 260 360 160 60 260 60 360 60
1555   66 166 266 366 166 66 266 66   -  -
1556   72 172 272 372 172 72 272 72   -  -
1557   78 178 278 378 178 78 278 78   -  -
1558   84 184 284 384 184 84 284 84   -  -
1559   90 190 290 390 190 90 290 90 390 90
1560    -   -   -   -   -  -   -  - 300  0
1561    -   -   -   -   -  -   -  - 305  5
1562    -   -   -   -   -  -   -  - 310 10
1563    -   -   -   -   -  -   -  - 315 15
1564    -   -   -   -   -  -   -  - 320 20
1565    -   -   -   -   -  -   -  - 325 25
1566    -   -   -   -   -  -   -  - 335 35
1567    -   -   -   -   -  -   -  - 340 40
1568    -   -   -   -   -  -   -  - 345 45
1569    -   -   -   -   -  -   -  - 350 50
1570    -   -   -   -   -  -   -  - 355 55
1571    -   -   -   -   -  -   -  - 365 65
1572    -   -   -   -   -  -   -  - 370 70
1573    -   -   -   -   -  -   -  - 375 75
1574    -   -   -   -   -  -   -  - 380 80
1575    -   -   -   -   -  -   -  - 385 85
1576    -   -   -   -   -  -   -  - 395 95
1578 do_execsql_test joinD-76 {
1579   SELECT t1.*, t2.*, t3.*, t4.*
1580   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
1581   INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
1582   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
1583   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1584 } {
1585    6 106 206 306 106  6 206  6   -  -
1586   12 112 212 312 112 12 212 12   -  -
1587   18 118 218 318 118 18 218 18   -  -
1588   24 124 224 324 124 24 224 24   -  -
1589   30 130 230 330 130 30 230 30 330 30
1590   36 136 236 336 136 36 236 36   -  -
1591   42 142 242 342 142 42 242 42   -  -
1592   48 148 248 348 148 48 248 48   -  -
1593   54 154 254 354 154 54 254 54   -  -
1594   60 160 260 360 160 60 260 60 360 60
1595   66 166 266 366 166 66 266 66   -  -
1596   72 172 272 372 172 72 272 72   -  -
1597   78 178 278 378 178 78 278 78   -  -
1598   84 184 284 384 184 84 284 84   -  -
1599   90 190 290 390 190 90 290 90 390 90
1600    -   -   -   -   -  -   -  - 300  0
1601    -   -   -   -   -  -   -  - 305  5
1602    -   -   -   -   -  -   -  - 310 10
1603    -   -   -   -   -  -   -  - 315 15
1604    -   -   -   -   -  -   -  - 320 20
1605    -   -   -   -   -  -   -  - 325 25
1606    -   -   -   -   -  -   -  - 335 35
1607    -   -   -   -   -  -   -  - 340 40
1608    -   -   -   -   -  -   -  - 345 45
1609    -   -   -   -   -  -   -  - 350 50
1610    -   -   -   -   -  -   -  - 355 55
1611    -   -   -   -   -  -   -  - 365 65
1612    -   -   -   -   -  -   -  - 370 70
1613    -   -   -   -   -  -   -  - 375 75
1614    -   -   -   -   -  -   -  - 380 80
1615    -   -   -   -   -  -   -  - 385 85
1616    -   -   -   -   -  -   -  - 395 95
1618 do_execsql_test joinD-77 {
1619   SELECT t1.*, t2.*, t3.*, t4.*
1620   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
1621   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
1622   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
1623   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1624 } {
1625   10 110 210 310 110 10   -  - 310 10
1626   20 120 220 320 120 20   -  - 320 20
1627   30 130 230 330 130 30 230 30 330 30
1628   40 140 240 340 140 40   -  - 340 40
1629   50 150 250 350 150 50   -  - 350 50
1630   60 160 260 360 160 60 260 60 360 60
1631   70 170 270 370 170 70   -  - 370 70
1632   80 180 280 380 180 80   -  - 380 80
1633   90 190 290 390 190 90 290 90 390 90
1635 do_execsql_test joinD-78 {
1636   SELECT t1.*, t2.*, t3.*, t4.*
1637   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
1638   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
1639   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
1640   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1641 } {
1642   10 110 210 310 110 10   -  - 310 10
1643   20 120 220 320 120 20   -  - 320 20
1644   30 130 230 330 130 30 230 30 330 30
1645   40 140 240 340 140 40   -  - 340 40
1646   50 150 250 350 150 50   -  - 350 50
1647   60 160 260 360 160 60 260 60 360 60
1648   70 170 270 370 170 70   -  - 370 70
1649   80 180 280 380 180 80   -  - 380 80
1650   90 190 290 390 190 90 290 90 390 90
1652 do_execsql_test joinD-79 {
1653   SELECT t1.*, t2.*, t3.*, t4.*
1654   FROM t1 INNER JOIN t2 ON t1.b=t2.b
1655   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
1656   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
1657   WHERE t2.x>0
1658   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1659 } {
1660   10 110 210 310 110 10   -  - 310 10
1661   20 120 220 320 120 20   -  - 320 20
1662   30 130 230 330 130 30 230 30 330 30
1663   40 140 240 340 140 40   -  - 340 40
1664   50 150 250 350 150 50   -  - 350 50
1665   60 160 260 360 160 60 260 60 360 60
1666   70 170 270 370 170 70   -  - 370 70
1667   80 180 280 380 180 80   -  - 380 80
1668   90 190 290 390 190 90 290 90 390 90
1670 do_execsql_test joinD-80 {
1671   SELECT t1.*, t2.*, t3.*, t4.*
1672   FROM t1 INNER JOIN t2 ON t1.b=t2.b
1673   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
1674   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
1675   WHERE (t2.x>0 OR t2.x IS NULL)
1676   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1677 } {
1678   10 110 210 310 110 10   -  - 310 10
1679   20 120 220 320 120 20   -  - 320 20
1680   30 130 230 330 130 30 230 30 330 30
1681   40 140 240 340 140 40   -  - 340 40
1682   50 150 250 350 150 50   -  - 350 50
1683   60 160 260 360 160 60 260 60 360 60
1684   70 170 270 370 170 70   -  - 370 70
1685   80 180 280 380 180 80   -  - 380 80
1686   90 190 290 390 190 90 290 90 390 90
1688 do_execsql_test joinD-81 {
1689   SELECT t1.*, t2.*, t3.*, t4.*
1690   FROM t1 INNER JOIN t2 ON true
1691   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
1692   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
1693   WHERE t1.b=t2.b AND t2.x>0
1694   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1695 } {
1696   10 110 210 310 110 10   -  - 310 10
1697   20 120 220 320 120 20   -  - 320 20
1698   30 130 230 330 130 30 230 30 330 30
1699   40 140 240 340 140 40   -  - 340 40
1700   50 150 250 350 150 50   -  - 350 50
1701   60 160 260 360 160 60 260 60 360 60
1702   70 170 270 370 170 70   -  - 370 70
1703   80 180 280 380 180 80   -  - 380 80
1704   90 190 290 390 190 90 290 90 390 90
1706 do_execsql_test joinD-82 {
1707   SELECT t1.*, t2.*, t3.*, t4.*
1708   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
1709   LEFT JOIN t3 ON t1.c=t3.c
1710   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
1711   WHERE t3.y>0
1712   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1713 } {
1714   30 130 230 330 130 30 230 30 330 30
1715   60 160 260 360 160 60 260 60 360 60
1716   90 190 290 390 190 90 290 90 390 90
1718 do_execsql_test joinD-83 {
1719   SELECT t1.*, t2.*, t3.*, t4.*
1720   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
1721   LEFT JOIN t3 ON t1.c=t3.c
1722   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
1723   WHERE t3.y>0 OR t3.y IS NULL
1724   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1725 } {
1726   10 110 210 310 110 10   -  - 310 10
1727   20 120 220 320 120 20   -  - 320 20
1728   30 130 230 330 130 30 230 30 330 30
1729   40 140 240 340 140 40   -  - 340 40
1730   50 150 250 350 150 50   -  - 350 50
1731   60 160 260 360 160 60 260 60 360 60
1732   70 170 270 370 170 70   -  - 370 70
1733   80 180 280 380 180 80   -  - 380 80
1734   90 190 290 390 190 90 290 90 390 90
1736 do_execsql_test joinD-84 {
1737   SELECT t1.*, t2.*, t3.*, t4.*
1738   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
1739   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
1740   INNER JOIN t4 ON t1.d=t4.d
1741   WHERE t4.z>0
1742   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1743 } {
1744   10 110 210 310 110 10   -  - 310 10
1745   20 120 220 320 120 20   -  - 320 20
1746   30 130 230 330 130 30 230 30 330 30
1747   40 140 240 340 140 40   -  - 340 40
1748   50 150 250 350 150 50   -  - 350 50
1749   60 160 260 360 160 60 260 60 360 60
1750   70 170 270 370 170 70   -  - 370 70
1751   80 180 280 380 180 80   -  - 380 80
1752   90 190 290 390 190 90 290 90 390 90
1754 do_execsql_test joinD-85 {
1755   SELECT t1.*, t2.*, t3.*, t4.*
1756   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
1757   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
1758   INNER JOIN t4 ON t1.d=t4.d
1759   WHERE t4.z IS NULL OR t4.z>0
1760   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1761 } {
1762   10 110 210 310 110 10   -  - 310 10
1763   20 120 220 320 120 20   -  - 320 20
1764   30 130 230 330 130 30 230 30 330 30
1765   40 140 240 340 140 40   -  - 340 40
1766   50 150 250 350 150 50   -  - 350 50
1767   60 160 260 360 160 60 260 60 360 60
1768   70 170 270 370 170 70   -  - 370 70
1769   80 180 280 380 180 80   -  - 380 80
1770   90 190 290 390 190 90 290 90 390 90
1772 do_execsql_test joinD-86 {
1773   SELECT t1.*, t2.*, t3.*, t4.*
1774   FROM t1 INNER JOIN t2 ON t1.b=t2.b
1775   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
1776   INNER JOIN t4 ON t1.d=t4.d
1777   WHERE t2.x>0 AND t4.z>0
1778   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1779 } {
1780   10 110 210 310 110 10   -  - 310 10
1781   20 120 220 320 120 20   -  - 320 20
1782   30 130 230 330 130 30 230 30 330 30
1783   40 140 240 340 140 40   -  - 340 40
1784   50 150 250 350 150 50   -  - 350 50
1785   60 160 260 360 160 60 260 60 360 60
1786   70 170 270 370 170 70   -  - 370 70
1787   80 180 280 380 180 80   -  - 380 80
1788   90 190 290 390 190 90 290 90 390 90
1790 do_execsql_test joinD-87 {
1791   SELECT t1.*, t2.*, t3.*, t4.*
1792   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
1793   LEFT JOIN t3 ON t1.c=t3.c
1794   INNER JOIN t4 ON t1.d=t4.d
1795   WHERE t4.z>0 AND t3.y>0
1796   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1797 } {
1798   30 130 230 330 130 30 230 30 330 30
1799   60 160 260 360 160 60 260 60 360 60
1800   90 190 290 390 190 90 290 90 390 90
1802 do_execsql_test joinD-88 {
1803   SELECT t1.*, t2.*, t3.*, t4.*
1804   FROM t1 INNER JOIN t2 ON t1.b=t2.b
1805   LEFT JOIN t3 ON t1.c=t3.c
1806   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
1807   WHERE t2.x>0 AND t3.y>0
1808   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1809 } {
1810   30 130 230 330 130 30 230 30 330 30
1811   60 160 260 360 160 60 260 60 360 60
1812   90 190 290 390 190 90 290 90 390 90
1814 do_execsql_test joinD-89 {
1815   SELECT t1.*, t2.*, t3.*, t4.*
1816   FROM t1 INNER JOIN t2 ON t1.b=t2.b
1817   LEFT JOIN t3 ON t1.c=t3.c
1818   INNER JOIN t4 ON t1.d=t4.d
1819   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
1820   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1821 } {
1822   30 130 230 330 130 30 230 30 330 30
1823   60 160 260 360 160 60 260 60 360 60
1824   90 190 290 390 190 90 290 90 390 90
1826 do_execsql_test joinD-90 {
1827   SELECT t1.*, t2.*, t3.*, t4.*
1828   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
1829   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
1830   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
1831   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1832 } {
1833   10 110 210 310 110 10   -  - 310 10
1834   20 120 220 320 120 20   -  - 320 20
1835   30 130 230 330 130 30 230 30 330 30
1836   40 140 240 340 140 40   -  - 340 40
1837   50 150 250 350 150 50   -  - 350 50
1838   60 160 260 360 160 60 260 60 360 60
1839   70 170 270 370 170 70   -  - 370 70
1840   80 180 280 380 180 80   -  - 380 80
1841   90 190 290 390 190 90 290 90 390 90
1843 do_execsql_test joinD-91 {
1844   SELECT t1.*, t2.*, t3.*, t4.*
1845   FROM t1 INNER JOIN t2 ON t2.x>0
1846   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
1847   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
1848   WHERE t1.b IS NOT DISTINCT FROM t2.b
1849   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1850 } {
1851   10 110 210 310 110 10   -  - 310 10
1852   20 120 220 320 120 20   -  - 320 20
1853   30 130 230 330 130 30 230 30 330 30
1854   40 140 240 340 140 40   -  - 340 40
1855   50 150 250 350 150 50   -  - 350 50
1856   60 160 260 360 160 60 260 60 360 60
1857   70 170 270 370 170 70   -  - 370 70
1858   80 180 280 380 180 80   -  - 380 80
1859   90 190 290 390 190 90 290 90 390 90
1861 do_execsql_test joinD-92 {
1862   SELECT t1.*, t2.*, t3.*, t4.*
1863   FROM t1 INNER JOIN t2 ON t2.x>0
1864   LEFT JOIN t3 ON t3.y>0
1865   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
1866   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
1867   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1868 } {
1869   30 130 230 330 130 30 230 30 330 30
1870   60 160 260 360 160 60 260 60 360 60
1871   90 190 290 390 190 90 290 90 390 90
1873 do_execsql_test joinD-93 {
1874   SELECT t1.*, t2.*, t3.*, t4.*
1875   FROM t1 INNER JOIN t2 ON t2.x>0
1876   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
1877   INNER JOIN t4 ON t4.z>0
1878   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
1879   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1880 } {
1881   10 110 210 310 110 10   -  - 310 10
1882   20 120 220 320 120 20   -  - 320 20
1883   30 130 230 330 130 30 230 30 330 30
1884   40 140 240 340 140 40   -  - 340 40
1885   50 150 250 350 150 50   -  - 350 50
1886   60 160 260 360 160 60 260 60 360 60
1887   70 170 270 370 170 70   -  - 370 70
1888   80 180 280 380 180 80   -  - 380 80
1889   90 190 290 390 190 90 290 90 390 90
1891 do_execsql_test joinD-94 {
1892   SELECT t1.*, t2.*, t3.*, t4.*
1893   FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
1894   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
1895   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
1896   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1897 } {
1898   10 110 210 310 110 10   -  - 310 10
1899   20 120 220 320 120 20   -  - 320 20
1900   30 130 230 330 130 30 230 30 330 30
1901   40 140 240 340 140 40   -  - 340 40
1902   50 150 250 350 150 50   -  - 350 50
1903   60 160 260 360 160 60 260 60 360 60
1904   70 170 270 370 170 70   -  - 370 70
1905   80 180 280 380 180 80   -  - 380 80
1906   90 190 290 390 190 90 290 90 390 90
1908 do_execsql_test joinD-95 {
1909   SELECT t1.*, t2.*, t3.*, t4.*
1910   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
1911   LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
1912   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
1913   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1914 } {
1915   10 110 210 310 110 10   -  - 310 10
1916   20 120 220 320 120 20   -  - 320 20
1917   30 130 230 330 130 30 230 30 330 30
1918   40 140 240 340 140 40   -  - 340 40
1919   50 150 250 350 150 50   -  - 350 50
1920   60 160 260 360 160 60 260 60 360 60
1921   70 170 270 370 170 70   -  - 370 70
1922   80 180 280 380 180 80   -  - 380 80
1923   90 190 290 390 190 90 290 90 390 90
1925 do_execsql_test joinD-96 {
1926   SELECT t1.*, t2.*, t3.*, t4.*
1927   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
1928   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
1929   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
1930   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1931 } {
1932    2 102 202 302 102  2   -  -   -  -
1933    4 104 204 304 104  4   -  -   -  -
1934    6 106 206 306 106  6 206  6   -  -
1935    8 108 208 308 108  8   -  -   -  -
1936   10 110 210 310 110 10   -  - 310 10
1937   12 112 212 312 112 12 212 12   -  -
1938   14 114 214 314 114 14   -  -   -  -
1939   16 116 216 316 116 16   -  -   -  -
1940   18 118 218 318 118 18 218 18   -  -
1941   20 120 220 320 120 20   -  - 320 20
1942   22 122 222 322 122 22   -  -   -  -
1943   24 124 224 324 124 24 224 24   -  -
1944   26 126 226 326 126 26   -  -   -  -
1945   28 128 228 328 128 28   -  -   -  -
1946   30 130 230 330 130 30 230 30 330 30
1947   32 132 232 332 132 32   -  -   -  -
1948   34 134 234 334 134 34   -  -   -  -
1949   36 136 236 336 136 36 236 36   -  -
1950   38 138 238 338 138 38   -  -   -  -
1951   40 140 240 340 140 40   -  - 340 40
1952   42 142 242 342 142 42 242 42   -  -
1953   44 144 244 344 144 44   -  -   -  -
1954   46 146 246 346 146 46   -  -   -  -
1955   48 148 248 348 148 48 248 48   -  -
1956   50 150 250 350 150 50   -  - 350 50
1957   52 152 252 352 152 52   -  -   -  -
1958   54 154 254 354 154 54 254 54   -  -
1959   56 156 256 356 156 56   -  -   -  -
1960   58 158 258 358 158 58   -  -   -  -
1961   60 160 260 360 160 60 260 60 360 60
1962   62 162 262 362 162 62   -  -   -  -
1963   64 164 264 364 164 64   -  -   -  -
1964   66 166 266 366 166 66 266 66   -  -
1965   68 168 268 368 168 68   -  -   -  -
1966   70 170 270 370 170 70   -  - 370 70
1967   72 172 272 372 172 72 272 72   -  -
1968   74 174 274 374 174 74   -  -   -  -
1969   76 176 276 376 176 76   -  -   -  -
1970   78 178 278 378 178 78 278 78   -  -
1971   80 180 280 380 180 80   -  - 380 80
1972   82 182 282 382 182 82   -  -   -  -
1973   84 184 284 384 184 84 284 84   -  -
1974   86 186 286 386 186 86   -  -   -  -
1975   88 188 288 388 188 88   -  -   -  -
1976   90 190 290 390 190 90 290 90 390 90
1977   92 192 292 392 192 92   -  -   -  -
1978   94 194 294 394 194 94   -  -   -  -
1980 do_execsql_test joinD-97 {
1981   SELECT t1.*, t2.*, t3.*, t4.*
1982   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
1983   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
1984   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
1985   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
1986 } {
1987    2 102 202 302 102  2   -  -   -  -
1988    4 104 204 304 104  4   -  -   -  -
1989    6 106 206 306 106  6 206  6   -  -
1990    8 108 208 308 108  8   -  -   -  -
1991   10 110 210 310 110 10   -  - 310 10
1992   12 112 212 312 112 12 212 12   -  -
1993   14 114 214 314 114 14   -  -   -  -
1994   16 116 216 316 116 16   -  -   -  -
1995   18 118 218 318 118 18 218 18   -  -
1996   20 120 220 320 120 20   -  - 320 20
1997   22 122 222 322 122 22   -  -   -  -
1998   24 124 224 324 124 24 224 24   -  -
1999   26 126 226 326 126 26   -  -   -  -
2000   28 128 228 328 128 28   -  -   -  -
2001   30 130 230 330 130 30 230 30 330 30
2002   32 132 232 332 132 32   -  -   -  -
2003   34 134 234 334 134 34   -  -   -  -
2004   36 136 236 336 136 36 236 36   -  -
2005   38 138 238 338 138 38   -  -   -  -
2006   40 140 240 340 140 40   -  - 340 40
2007   42 142 242 342 142 42 242 42   -  -
2008   44 144 244 344 144 44   -  -   -  -
2009   46 146 246 346 146 46   -  -   -  -
2010   48 148 248 348 148 48 248 48   -  -
2011   50 150 250 350 150 50   -  - 350 50
2012   52 152 252 352 152 52   -  -   -  -
2013   54 154 254 354 154 54 254 54   -  -
2014   56 156 256 356 156 56   -  -   -  -
2015   58 158 258 358 158 58   -  -   -  -
2016   60 160 260 360 160 60 260 60 360 60
2017   62 162 262 362 162 62   -  -   -  -
2018   64 164 264 364 164 64   -  -   -  -
2019   66 166 266 366 166 66 266 66   -  -
2020   68 168 268 368 168 68   -  -   -  -
2021   70 170 270 370 170 70   -  - 370 70
2022   72 172 272 372 172 72 272 72   -  -
2023   74 174 274 374 174 74   -  -   -  -
2024   76 176 276 376 176 76   -  -   -  -
2025   78 178 278 378 178 78 278 78   -  -
2026   80 180 280 380 180 80   -  - 380 80
2027   82 182 282 382 182 82   -  -   -  -
2028   84 184 284 384 184 84 284 84   -  -
2029   86 186 286 386 186 86   -  -   -  -
2030   88 188 288 388 188 88   -  -   -  -
2031   90 190 290 390 190 90 290 90 390 90
2032   92 192 292 392 192 92   -  -   -  -
2033   94 194 294 394 194 94   -  -   -  -
2035 do_execsql_test joinD-98 {
2036   SELECT t1.*, t2.*, t3.*, t4.*
2037   FROM t1 INNER JOIN t2 ON t1.b=t2.b
2038   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
2039   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
2040   WHERE t2.x>0
2041   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2042 } {
2043    2 102 202 302 102  2   -  -   -  -
2044    4 104 204 304 104  4   -  -   -  -
2045    6 106 206 306 106  6 206  6   -  -
2046    8 108 208 308 108  8   -  -   -  -
2047   10 110 210 310 110 10   -  - 310 10
2048   12 112 212 312 112 12 212 12   -  -
2049   14 114 214 314 114 14   -  -   -  -
2050   16 116 216 316 116 16   -  -   -  -
2051   18 118 218 318 118 18 218 18   -  -
2052   20 120 220 320 120 20   -  - 320 20
2053   22 122 222 322 122 22   -  -   -  -
2054   24 124 224 324 124 24 224 24   -  -
2055   26 126 226 326 126 26   -  -   -  -
2056   28 128 228 328 128 28   -  -   -  -
2057   30 130 230 330 130 30 230 30 330 30
2058   32 132 232 332 132 32   -  -   -  -
2059   34 134 234 334 134 34   -  -   -  -
2060   36 136 236 336 136 36 236 36   -  -
2061   38 138 238 338 138 38   -  -   -  -
2062   40 140 240 340 140 40   -  - 340 40
2063   42 142 242 342 142 42 242 42   -  -
2064   44 144 244 344 144 44   -  -   -  -
2065   46 146 246 346 146 46   -  -   -  -
2066   48 148 248 348 148 48 248 48   -  -
2067   50 150 250 350 150 50   -  - 350 50
2068   52 152 252 352 152 52   -  -   -  -
2069   54 154 254 354 154 54 254 54   -  -
2070   56 156 256 356 156 56   -  -   -  -
2071   58 158 258 358 158 58   -  -   -  -
2072   60 160 260 360 160 60 260 60 360 60
2073   62 162 262 362 162 62   -  -   -  -
2074   64 164 264 364 164 64   -  -   -  -
2075   66 166 266 366 166 66 266 66   -  -
2076   68 168 268 368 168 68   -  -   -  -
2077   70 170 270 370 170 70   -  - 370 70
2078   72 172 272 372 172 72 272 72   -  -
2079   74 174 274 374 174 74   -  -   -  -
2080   76 176 276 376 176 76   -  -   -  -
2081   78 178 278 378 178 78 278 78   -  -
2082   80 180 280 380 180 80   -  - 380 80
2083   82 182 282 382 182 82   -  -   -  -
2084   84 184 284 384 184 84 284 84   -  -
2085   86 186 286 386 186 86   -  -   -  -
2086   88 188 288 388 188 88   -  -   -  -
2087   90 190 290 390 190 90 290 90 390 90
2088   92 192 292 392 192 92   -  -   -  -
2089   94 194 294 394 194 94   -  -   -  -
2091 do_execsql_test joinD-99 {
2092   SELECT t1.*, t2.*, t3.*, t4.*
2093   FROM t1 INNER JOIN t2 ON t1.b=t2.b
2094   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
2095   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
2096   WHERE (t2.x>0 OR t2.x IS NULL)
2097   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2098 } {
2099    2 102 202 302 102  2   -  -   -  -
2100    4 104 204 304 104  4   -  -   -  -
2101    6 106 206 306 106  6 206  6   -  -
2102    8 108 208 308 108  8   -  -   -  -
2103   10 110 210 310 110 10   -  - 310 10
2104   12 112 212 312 112 12 212 12   -  -
2105   14 114 214 314 114 14   -  -   -  -
2106   16 116 216 316 116 16   -  -   -  -
2107   18 118 218 318 118 18 218 18   -  -
2108   20 120 220 320 120 20   -  - 320 20
2109   22 122 222 322 122 22   -  -   -  -
2110   24 124 224 324 124 24 224 24   -  -
2111   26 126 226 326 126 26   -  -   -  -
2112   28 128 228 328 128 28   -  -   -  -
2113   30 130 230 330 130 30 230 30 330 30
2114   32 132 232 332 132 32   -  -   -  -
2115   34 134 234 334 134 34   -  -   -  -
2116   36 136 236 336 136 36 236 36   -  -
2117   38 138 238 338 138 38   -  -   -  -
2118   40 140 240 340 140 40   -  - 340 40
2119   42 142 242 342 142 42 242 42   -  -
2120   44 144 244 344 144 44   -  -   -  -
2121   46 146 246 346 146 46   -  -   -  -
2122   48 148 248 348 148 48 248 48   -  -
2123   50 150 250 350 150 50   -  - 350 50
2124   52 152 252 352 152 52   -  -   -  -
2125   54 154 254 354 154 54 254 54   -  -
2126   56 156 256 356 156 56   -  -   -  -
2127   58 158 258 358 158 58   -  -   -  -
2128   60 160 260 360 160 60 260 60 360 60
2129   62 162 262 362 162 62   -  -   -  -
2130   64 164 264 364 164 64   -  -   -  -
2131   66 166 266 366 166 66 266 66   -  -
2132   68 168 268 368 168 68   -  -   -  -
2133   70 170 270 370 170 70   -  - 370 70
2134   72 172 272 372 172 72 272 72   -  -
2135   74 174 274 374 174 74   -  -   -  -
2136   76 176 276 376 176 76   -  -   -  -
2137   78 178 278 378 178 78 278 78   -  -
2138   80 180 280 380 180 80   -  - 380 80
2139   82 182 282 382 182 82   -  -   -  -
2140   84 184 284 384 184 84 284 84   -  -
2141   86 186 286 386 186 86   -  -   -  -
2142   88 188 288 388 188 88   -  -   -  -
2143   90 190 290 390 190 90 290 90 390 90
2144   92 192 292 392 192 92   -  -   -  -
2145   94 194 294 394 194 94   -  -   -  -
2147 do_execsql_test joinD-100 {
2148   SELECT t1.*, t2.*, t3.*, t4.*
2149   FROM t1 INNER JOIN t2 ON true
2150   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
2151   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
2152   WHERE t1.b=t2.b AND t2.x>0
2153   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2154 } {
2155    2 102 202 302 102  2   -  -   -  -
2156    4 104 204 304 104  4   -  -   -  -
2157    6 106 206 306 106  6 206  6   -  -
2158    8 108 208 308 108  8   -  -   -  -
2159   10 110 210 310 110 10   -  - 310 10
2160   12 112 212 312 112 12 212 12   -  -
2161   14 114 214 314 114 14   -  -   -  -
2162   16 116 216 316 116 16   -  -   -  -
2163   18 118 218 318 118 18 218 18   -  -
2164   20 120 220 320 120 20   -  - 320 20
2165   22 122 222 322 122 22   -  -   -  -
2166   24 124 224 324 124 24 224 24   -  -
2167   26 126 226 326 126 26   -  -   -  -
2168   28 128 228 328 128 28   -  -   -  -
2169   30 130 230 330 130 30 230 30 330 30
2170   32 132 232 332 132 32   -  -   -  -
2171   34 134 234 334 134 34   -  -   -  -
2172   36 136 236 336 136 36 236 36   -  -
2173   38 138 238 338 138 38   -  -   -  -
2174   40 140 240 340 140 40   -  - 340 40
2175   42 142 242 342 142 42 242 42   -  -
2176   44 144 244 344 144 44   -  -   -  -
2177   46 146 246 346 146 46   -  -   -  -
2178   48 148 248 348 148 48 248 48   -  -
2179   50 150 250 350 150 50   -  - 350 50
2180   52 152 252 352 152 52   -  -   -  -
2181   54 154 254 354 154 54 254 54   -  -
2182   56 156 256 356 156 56   -  -   -  -
2183   58 158 258 358 158 58   -  -   -  -
2184   60 160 260 360 160 60 260 60 360 60
2185   62 162 262 362 162 62   -  -   -  -
2186   64 164 264 364 164 64   -  -   -  -
2187   66 166 266 366 166 66 266 66   -  -
2188   68 168 268 368 168 68   -  -   -  -
2189   70 170 270 370 170 70   -  - 370 70
2190   72 172 272 372 172 72 272 72   -  -
2191   74 174 274 374 174 74   -  -   -  -
2192   76 176 276 376 176 76   -  -   -  -
2193   78 178 278 378 178 78 278 78   -  -
2194   80 180 280 380 180 80   -  - 380 80
2195   82 182 282 382 182 82   -  -   -  -
2196   84 184 284 384 184 84 284 84   -  -
2197   86 186 286 386 186 86   -  -   -  -
2198   88 188 288 388 188 88   -  -   -  -
2199   90 190 290 390 190 90 290 90 390 90
2200   92 192 292 392 192 92   -  -   -  -
2201   94 194 294 394 194 94   -  -   -  -
2203 do_execsql_test joinD-101 {
2204   SELECT t1.*, t2.*, t3.*, t4.*
2205   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
2206   LEFT JOIN t3 ON t1.c=t3.c
2207   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
2208   WHERE t3.y>0
2209   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2210 } {
2211    6 106 206 306 106  6 206  6   -  -
2212   12 112 212 312 112 12 212 12   -  -
2213   18 118 218 318 118 18 218 18   -  -
2214   24 124 224 324 124 24 224 24   -  -
2215   30 130 230 330 130 30 230 30 330 30
2216   36 136 236 336 136 36 236 36   -  -
2217   42 142 242 342 142 42 242 42   -  -
2218   48 148 248 348 148 48 248 48   -  -
2219   54 154 254 354 154 54 254 54   -  -
2220   60 160 260 360 160 60 260 60 360 60
2221   66 166 266 366 166 66 266 66   -  -
2222   72 172 272 372 172 72 272 72   -  -
2223   78 178 278 378 178 78 278 78   -  -
2224   84 184 284 384 184 84 284 84   -  -
2225   90 190 290 390 190 90 290 90 390 90
2227 do_execsql_test joinD-102 {
2228   SELECT t1.*, t2.*, t3.*, t4.*
2229   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
2230   LEFT JOIN t3 ON t1.c=t3.c
2231   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
2232   WHERE t3.y>0 OR t3.y IS NULL
2233   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2234 } {
2235    2 102 202 302 102  2   -  -   -  -
2236    4 104 204 304 104  4   -  -   -  -
2237    6 106 206 306 106  6 206  6   -  -
2238    8 108 208 308 108  8   -  -   -  -
2239   10 110 210 310 110 10   -  - 310 10
2240   12 112 212 312 112 12 212 12   -  -
2241   14 114 214 314 114 14   -  -   -  -
2242   16 116 216 316 116 16   -  -   -  -
2243   18 118 218 318 118 18 218 18   -  -
2244   20 120 220 320 120 20   -  - 320 20
2245   22 122 222 322 122 22   -  -   -  -
2246   24 124 224 324 124 24 224 24   -  -
2247   26 126 226 326 126 26   -  -   -  -
2248   28 128 228 328 128 28   -  -   -  -
2249   30 130 230 330 130 30 230 30 330 30
2250   32 132 232 332 132 32   -  -   -  -
2251   34 134 234 334 134 34   -  -   -  -
2252   36 136 236 336 136 36 236 36   -  -
2253   38 138 238 338 138 38   -  -   -  -
2254   40 140 240 340 140 40   -  - 340 40
2255   42 142 242 342 142 42 242 42   -  -
2256   44 144 244 344 144 44   -  -   -  -
2257   46 146 246 346 146 46   -  -   -  -
2258   48 148 248 348 148 48 248 48   -  -
2259   50 150 250 350 150 50   -  - 350 50
2260   52 152 252 352 152 52   -  -   -  -
2261   54 154 254 354 154 54 254 54   -  -
2262   56 156 256 356 156 56   -  -   -  -
2263   58 158 258 358 158 58   -  -   -  -
2264   60 160 260 360 160 60 260 60 360 60
2265   62 162 262 362 162 62   -  -   -  -
2266   64 164 264 364 164 64   -  -   -  -
2267   66 166 266 366 166 66 266 66   -  -
2268   68 168 268 368 168 68   -  -   -  -
2269   70 170 270 370 170 70   -  - 370 70
2270   72 172 272 372 172 72 272 72   -  -
2271   74 174 274 374 174 74   -  -   -  -
2272   76 176 276 376 176 76   -  -   -  -
2273   78 178 278 378 178 78 278 78   -  -
2274   80 180 280 380 180 80   -  - 380 80
2275   82 182 282 382 182 82   -  -   -  -
2276   84 184 284 384 184 84 284 84   -  -
2277   86 186 286 386 186 86   -  -   -  -
2278   88 188 288 388 188 88   -  -   -  -
2279   90 190 290 390 190 90 290 90 390 90
2280   92 192 292 392 192 92   -  -   -  -
2281   94 194 294 394 194 94   -  -   -  -
2283 do_execsql_test joinD-103 {
2284   SELECT t1.*, t2.*, t3.*, t4.*
2285   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
2286   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
2287   LEFT JOIN t4 ON t1.d=t4.d
2288   WHERE t4.z>0
2289   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2290 } {
2291   10 110 210 310 110 10   -  - 310 10
2292   20 120 220 320 120 20   -  - 320 20
2293   30 130 230 330 130 30 230 30 330 30
2294   40 140 240 340 140 40   -  - 340 40
2295   50 150 250 350 150 50   -  - 350 50
2296   60 160 260 360 160 60 260 60 360 60
2297   70 170 270 370 170 70   -  - 370 70
2298   80 180 280 380 180 80   -  - 380 80
2299   90 190 290 390 190 90 290 90 390 90
2301 do_execsql_test joinD-104 {
2302   SELECT t1.*, t2.*, t3.*, t4.*
2303   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
2304   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
2305   LEFT JOIN t4 ON t1.d=t4.d
2306   WHERE t4.z IS NULL OR t4.z>0
2307   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2308 } {
2309    2 102 202 302 102  2   -  -   -  -
2310    4 104 204 304 104  4   -  -   -  -
2311    6 106 206 306 106  6 206  6   -  -
2312    8 108 208 308 108  8   -  -   -  -
2313   10 110 210 310 110 10   -  - 310 10
2314   12 112 212 312 112 12 212 12   -  -
2315   14 114 214 314 114 14   -  -   -  -
2316   16 116 216 316 116 16   -  -   -  -
2317   18 118 218 318 118 18 218 18   -  -
2318   20 120 220 320 120 20   -  - 320 20
2319   22 122 222 322 122 22   -  -   -  -
2320   24 124 224 324 124 24 224 24   -  -
2321   26 126 226 326 126 26   -  -   -  -
2322   28 128 228 328 128 28   -  -   -  -
2323   30 130 230 330 130 30 230 30 330 30
2324   32 132 232 332 132 32   -  -   -  -
2325   34 134 234 334 134 34   -  -   -  -
2326   36 136 236 336 136 36 236 36   -  -
2327   38 138 238 338 138 38   -  -   -  -
2328   40 140 240 340 140 40   -  - 340 40
2329   42 142 242 342 142 42 242 42   -  -
2330   44 144 244 344 144 44   -  -   -  -
2331   46 146 246 346 146 46   -  -   -  -
2332   48 148 248 348 148 48 248 48   -  -
2333   50 150 250 350 150 50   -  - 350 50
2334   52 152 252 352 152 52   -  -   -  -
2335   54 154 254 354 154 54 254 54   -  -
2336   56 156 256 356 156 56   -  -   -  -
2337   58 158 258 358 158 58   -  -   -  -
2338   60 160 260 360 160 60 260 60 360 60
2339   62 162 262 362 162 62   -  -   -  -
2340   64 164 264 364 164 64   -  -   -  -
2341   66 166 266 366 166 66 266 66   -  -
2342   68 168 268 368 168 68   -  -   -  -
2343   70 170 270 370 170 70   -  - 370 70
2344   72 172 272 372 172 72 272 72   -  -
2345   74 174 274 374 174 74   -  -   -  -
2346   76 176 276 376 176 76   -  -   -  -
2347   78 178 278 378 178 78 278 78   -  -
2348   80 180 280 380 180 80   -  - 380 80
2349   82 182 282 382 182 82   -  -   -  -
2350   84 184 284 384 184 84 284 84   -  -
2351   86 186 286 386 186 86   -  -   -  -
2352   88 188 288 388 188 88   -  -   -  -
2353   90 190 290 390 190 90 290 90 390 90
2354   92 192 292 392 192 92   -  -   -  -
2355   94 194 294 394 194 94   -  -   -  -
2357 do_execsql_test joinD-105 {
2358   SELECT t1.*, t2.*, t3.*, t4.*
2359   FROM t1 INNER JOIN t2 ON t1.b=t2.b
2360   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
2361   LEFT JOIN t4 ON t1.d=t4.d
2362   WHERE t2.x>0 AND t4.z>0
2363   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2364 } {
2365   10 110 210 310 110 10   -  - 310 10
2366   20 120 220 320 120 20   -  - 320 20
2367   30 130 230 330 130 30 230 30 330 30
2368   40 140 240 340 140 40   -  - 340 40
2369   50 150 250 350 150 50   -  - 350 50
2370   60 160 260 360 160 60 260 60 360 60
2371   70 170 270 370 170 70   -  - 370 70
2372   80 180 280 380 180 80   -  - 380 80
2373   90 190 290 390 190 90 290 90 390 90
2375 do_execsql_test joinD-106 {
2376   SELECT t1.*, t2.*, t3.*, t4.*
2377   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
2378   LEFT JOIN t3 ON t1.c=t3.c
2379   LEFT JOIN t4 ON t1.d=t4.d
2380   WHERE t4.z>0 AND t3.y>0
2381   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2382 } {
2383   30 130 230 330 130 30 230 30 330 30
2384   60 160 260 360 160 60 260 60 360 60
2385   90 190 290 390 190 90 290 90 390 90
2387 do_execsql_test joinD-107 {
2388   SELECT t1.*, t2.*, t3.*, t4.*
2389   FROM t1 INNER JOIN t2 ON t1.b=t2.b
2390   LEFT JOIN t3 ON t1.c=t3.c
2391   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
2392   WHERE t2.x>0 AND t3.y>0
2393   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2394 } {
2395    6 106 206 306 106  6 206  6   -  -
2396   12 112 212 312 112 12 212 12   -  -
2397   18 118 218 318 118 18 218 18   -  -
2398   24 124 224 324 124 24 224 24   -  -
2399   30 130 230 330 130 30 230 30 330 30
2400   36 136 236 336 136 36 236 36   -  -
2401   42 142 242 342 142 42 242 42   -  -
2402   48 148 248 348 148 48 248 48   -  -
2403   54 154 254 354 154 54 254 54   -  -
2404   60 160 260 360 160 60 260 60 360 60
2405   66 166 266 366 166 66 266 66   -  -
2406   72 172 272 372 172 72 272 72   -  -
2407   78 178 278 378 178 78 278 78   -  -
2408   84 184 284 384 184 84 284 84   -  -
2409   90 190 290 390 190 90 290 90 390 90
2411 do_execsql_test joinD-108 {
2412   SELECT t1.*, t2.*, t3.*, t4.*
2413   FROM t1 INNER JOIN t2 ON t1.b=t2.b
2414   LEFT JOIN t3 ON t1.c=t3.c
2415   LEFT JOIN t4 ON t1.d=t4.d
2416   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
2417   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2418 } {
2419   30 130 230 330 130 30 230 30 330 30
2420   60 160 260 360 160 60 260 60 360 60
2421   90 190 290 390 190 90 290 90 390 90
2423 do_execsql_test joinD-109 {
2424   SELECT t1.*, t2.*, t3.*, t4.*
2425   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
2426   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
2427   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
2428   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2429 } {
2430    2 102 202 302 102  2   -  -   -  -
2431    4 104 204 304 104  4   -  -   -  -
2432    6 106 206 306 106  6 206  6   -  -
2433    8 108 208 308 108  8   -  -   -  -
2434   10 110 210 310 110 10   -  - 310 10
2435   12 112 212 312 112 12 212 12   -  -
2436   14 114 214 314 114 14   -  -   -  -
2437   16 116 216 316 116 16   -  -   -  -
2438   18 118 218 318 118 18 218 18   -  -
2439   20 120 220 320 120 20   -  - 320 20
2440   22 122 222 322 122 22   -  -   -  -
2441   24 124 224 324 124 24 224 24   -  -
2442   26 126 226 326 126 26   -  -   -  -
2443   28 128 228 328 128 28   -  -   -  -
2444   30 130 230 330 130 30 230 30 330 30
2445   32 132 232 332 132 32   -  -   -  -
2446   34 134 234 334 134 34   -  -   -  -
2447   36 136 236 336 136 36 236 36   -  -
2448   38 138 238 338 138 38   -  -   -  -
2449   40 140 240 340 140 40   -  - 340 40
2450   42 142 242 342 142 42 242 42   -  -
2451   44 144 244 344 144 44   -  -   -  -
2452   46 146 246 346 146 46   -  -   -  -
2453   48 148 248 348 148 48 248 48   -  -
2454   50 150 250 350 150 50   -  - 350 50
2455   52 152 252 352 152 52   -  -   -  -
2456   54 154 254 354 154 54 254 54   -  -
2457   56 156 256 356 156 56   -  -   -  -
2458   58 158 258 358 158 58   -  -   -  -
2459   60 160 260 360 160 60 260 60 360 60
2460   62 162 262 362 162 62   -  -   -  -
2461   64 164 264 364 164 64   -  -   -  -
2462   66 166 266 366 166 66 266 66   -  -
2463   68 168 268 368 168 68   -  -   -  -
2464   70 170 270 370 170 70   -  - 370 70
2465   72 172 272 372 172 72 272 72   -  -
2466   74 174 274 374 174 74   -  -   -  -
2467   76 176 276 376 176 76   -  -   -  -
2468   78 178 278 378 178 78 278 78   -  -
2469   80 180 280 380 180 80   -  - 380 80
2470   82 182 282 382 182 82   -  -   -  -
2471   84 184 284 384 184 84 284 84   -  -
2472   86 186 286 386 186 86   -  -   -  -
2473   88 188 288 388 188 88   -  -   -  -
2474   90 190 290 390 190 90 290 90 390 90
2475   92 192 292 392 192 92   -  -   -  -
2476   94 194 294 394 194 94   -  -   -  -
2478 do_execsql_test joinD-110 {
2479   SELECT t1.*, t2.*, t3.*, t4.*
2480   FROM t1 INNER JOIN t2 ON t2.x>0
2481   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
2482   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
2483   WHERE t1.b IS NOT DISTINCT FROM t2.b
2484   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2485 } {
2486    2 102 202 302 102  2   -  -   -  -
2487    4 104 204 304 104  4   -  -   -  -
2488    6 106 206 306 106  6 206  6   -  -
2489    8 108 208 308 108  8   -  -   -  -
2490   10 110 210 310 110 10   -  - 310 10
2491   12 112 212 312 112 12 212 12   -  -
2492   14 114 214 314 114 14   -  -   -  -
2493   16 116 216 316 116 16   -  -   -  -
2494   18 118 218 318 118 18 218 18   -  -
2495   20 120 220 320 120 20   -  - 320 20
2496   22 122 222 322 122 22   -  -   -  -
2497   24 124 224 324 124 24 224 24   -  -
2498   26 126 226 326 126 26   -  -   -  -
2499   28 128 228 328 128 28   -  -   -  -
2500   30 130 230 330 130 30 230 30 330 30
2501   32 132 232 332 132 32   -  -   -  -
2502   34 134 234 334 134 34   -  -   -  -
2503   36 136 236 336 136 36 236 36   -  -
2504   38 138 238 338 138 38   -  -   -  -
2505   40 140 240 340 140 40   -  - 340 40
2506   42 142 242 342 142 42 242 42   -  -
2507   44 144 244 344 144 44   -  -   -  -
2508   46 146 246 346 146 46   -  -   -  -
2509   48 148 248 348 148 48 248 48   -  -
2510   50 150 250 350 150 50   -  - 350 50
2511   52 152 252 352 152 52   -  -   -  -
2512   54 154 254 354 154 54 254 54   -  -
2513   56 156 256 356 156 56   -  -   -  -
2514   58 158 258 358 158 58   -  -   -  -
2515   60 160 260 360 160 60 260 60 360 60
2516   62 162 262 362 162 62   -  -   -  -
2517   64 164 264 364 164 64   -  -   -  -
2518   66 166 266 366 166 66 266 66   -  -
2519   68 168 268 368 168 68   -  -   -  -
2520   70 170 270 370 170 70   -  - 370 70
2521   72 172 272 372 172 72 272 72   -  -
2522   74 174 274 374 174 74   -  -   -  -
2523   76 176 276 376 176 76   -  -   -  -
2524   78 178 278 378 178 78 278 78   -  -
2525   80 180 280 380 180 80   -  - 380 80
2526   82 182 282 382 182 82   -  -   -  -
2527   84 184 284 384 184 84 284 84   -  -
2528   86 186 286 386 186 86   -  -   -  -
2529   88 188 288 388 188 88   -  -   -  -
2530   90 190 290 390 190 90 290 90 390 90
2531   92 192 292 392 192 92   -  -   -  -
2532   94 194 294 394 194 94   -  -   -  -
2534 do_execsql_test joinD-111 {
2535   SELECT t1.*, t2.*, t3.*, t4.*
2536   FROM t1 INNER JOIN t2 ON t2.x>0
2537   LEFT JOIN t3 ON t3.y>0
2538   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
2539   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
2540   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2541 } {
2542    6 106 206 306 106  6 206  6   -  -
2543   12 112 212 312 112 12 212 12   -  -
2544   18 118 218 318 118 18 218 18   -  -
2545   24 124 224 324 124 24 224 24   -  -
2546   30 130 230 330 130 30 230 30 330 30
2547   36 136 236 336 136 36 236 36   -  -
2548   42 142 242 342 142 42 242 42   -  -
2549   48 148 248 348 148 48 248 48   -  -
2550   54 154 254 354 154 54 254 54   -  -
2551   60 160 260 360 160 60 260 60 360 60
2552   66 166 266 366 166 66 266 66   -  -
2553   72 172 272 372 172 72 272 72   -  -
2554   78 178 278 378 178 78 278 78   -  -
2555   84 184 284 384 184 84 284 84   -  -
2556   90 190 290 390 190 90 290 90 390 90
2558 do_execsql_test joinD-112 {
2559   SELECT t1.*, t2.*, t3.*, t4.*
2560   FROM t1 INNER JOIN t2 ON t2.x>0
2561   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
2562   LEFT JOIN t4 ON t4.z>0
2563   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
2564   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2565 } {
2566   10 110 210 310 110 10   -  - 310 10
2567   20 120 220 320 120 20   -  - 320 20
2568   30 130 230 330 130 30 230 30 330 30
2569   40 140 240 340 140 40   -  - 340 40
2570   50 150 250 350 150 50   -  - 350 50
2571   60 160 260 360 160 60 260 60 360 60
2572   70 170 270 370 170 70   -  - 370 70
2573   80 180 280 380 180 80   -  - 380 80
2574   90 190 290 390 190 90 290 90 390 90
2576 do_execsql_test joinD-113 {
2577   SELECT t1.*, t2.*, t3.*, t4.*
2578   FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
2579   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
2580   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
2581   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2582 } {
2583    2 102 202 302 102  2   -  -   -  -
2584    4 104 204 304 104  4   -  -   -  -
2585    6 106 206 306 106  6 206  6   -  -
2586    8 108 208 308 108  8   -  -   -  -
2587   10 110 210 310 110 10   -  - 310 10
2588   12 112 212 312 112 12 212 12   -  -
2589   14 114 214 314 114 14   -  -   -  -
2590   16 116 216 316 116 16   -  -   -  -
2591   18 118 218 318 118 18 218 18   -  -
2592   20 120 220 320 120 20   -  - 320 20
2593   22 122 222 322 122 22   -  -   -  -
2594   24 124 224 324 124 24 224 24   -  -
2595   26 126 226 326 126 26   -  -   -  -
2596   28 128 228 328 128 28   -  -   -  -
2597   30 130 230 330 130 30 230 30 330 30
2598   32 132 232 332 132 32   -  -   -  -
2599   34 134 234 334 134 34   -  -   -  -
2600   36 136 236 336 136 36 236 36   -  -
2601   38 138 238 338 138 38   -  -   -  -
2602   40 140 240 340 140 40   -  - 340 40
2603   42 142 242 342 142 42 242 42   -  -
2604   44 144 244 344 144 44   -  -   -  -
2605   46 146 246 346 146 46   -  -   -  -
2606   48 148 248 348 148 48 248 48   -  -
2607   50 150 250 350 150 50   -  - 350 50
2608   52 152 252 352 152 52   -  -   -  -
2609   54 154 254 354 154 54 254 54   -  -
2610   56 156 256 356 156 56   -  -   -  -
2611   58 158 258 358 158 58   -  -   -  -
2612   60 160 260 360 160 60 260 60 360 60
2613   62 162 262 362 162 62   -  -   -  -
2614   64 164 264 364 164 64   -  -   -  -
2615   66 166 266 366 166 66 266 66   -  -
2616   68 168 268 368 168 68   -  -   -  -
2617   70 170 270 370 170 70   -  - 370 70
2618   72 172 272 372 172 72 272 72   -  -
2619   74 174 274 374 174 74   -  -   -  -
2620   76 176 276 376 176 76   -  -   -  -
2621   78 178 278 378 178 78 278 78   -  -
2622   80 180 280 380 180 80   -  - 380 80
2623   82 182 282 382 182 82   -  -   -  -
2624   84 184 284 384 184 84 284 84   -  -
2625   86 186 286 386 186 86   -  -   -  -
2626   88 188 288 388 188 88   -  -   -  -
2627   90 190 290 390 190 90 290 90 390 90
2628   92 192 292 392 192 92   -  -   -  -
2629   94 194 294 394 194 94   -  -   -  -
2631 do_execsql_test joinD-114 {
2632   SELECT t1.*, t2.*, t3.*, t4.*
2633   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
2634   LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
2635   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
2636   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2637 } {
2638    2 102 202 302 102  2   -  -   -  -
2639    4 104 204 304 104  4   -  -   -  -
2640    6 106 206 306 106  6 206  6   -  -
2641    8 108 208 308 108  8   -  -   -  -
2642   10 110 210 310 110 10   -  - 310 10
2643   12 112 212 312 112 12 212 12   -  -
2644   14 114 214 314 114 14   -  -   -  -
2645   16 116 216 316 116 16   -  -   -  -
2646   18 118 218 318 118 18 218 18   -  -
2647   20 120 220 320 120 20   -  - 320 20
2648   22 122 222 322 122 22   -  -   -  -
2649   24 124 224 324 124 24 224 24   -  -
2650   26 126 226 326 126 26   -  -   -  -
2651   28 128 228 328 128 28   -  -   -  -
2652   30 130 230 330 130 30 230 30 330 30
2653   32 132 232 332 132 32   -  -   -  -
2654   34 134 234 334 134 34   -  -   -  -
2655   36 136 236 336 136 36 236 36   -  -
2656   38 138 238 338 138 38   -  -   -  -
2657   40 140 240 340 140 40   -  - 340 40
2658   42 142 242 342 142 42 242 42   -  -
2659   44 144 244 344 144 44   -  -   -  -
2660   46 146 246 346 146 46   -  -   -  -
2661   48 148 248 348 148 48 248 48   -  -
2662   50 150 250 350 150 50   -  - 350 50
2663   52 152 252 352 152 52   -  -   -  -
2664   54 154 254 354 154 54 254 54   -  -
2665   56 156 256 356 156 56   -  -   -  -
2666   58 158 258 358 158 58   -  -   -  -
2667   60 160 260 360 160 60 260 60 360 60
2668   62 162 262 362 162 62   -  -   -  -
2669   64 164 264 364 164 64   -  -   -  -
2670   66 166 266 366 166 66 266 66   -  -
2671   68 168 268 368 168 68   -  -   -  -
2672   70 170 270 370 170 70   -  - 370 70
2673   72 172 272 372 172 72 272 72   -  -
2674   74 174 274 374 174 74   -  -   -  -
2675   76 176 276 376 176 76   -  -   -  -
2676   78 178 278 378 178 78 278 78   -  -
2677   80 180 280 380 180 80   -  - 380 80
2678   82 182 282 382 182 82   -  -   -  -
2679   84 184 284 384 184 84 284 84   -  -
2680   86 186 286 386 186 86   -  -   -  -
2681   88 188 288 388 188 88   -  -   -  -
2682   90 190 290 390 190 90 290 90 390 90
2683   92 192 292 392 192 92   -  -   -  -
2684   94 194 294 394 194 94   -  -   -  -
2686 do_execsql_test joinD-115 {
2687   SELECT t1.*, t2.*, t3.*, t4.*
2688   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
2689   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
2690   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
2691   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2692 } {
2693   10 110 210 310 110 10   -  - 310 10
2694   20 120 220 320 120 20   -  - 320 20
2695   30 130 230 330 130 30 230 30 330 30
2696   40 140 240 340 140 40   -  - 340 40
2697   50 150 250 350 150 50   -  - 350 50
2698   60 160 260 360 160 60 260 60 360 60
2699   70 170 270 370 170 70   -  - 370 70
2700   80 180 280 380 180 80   -  - 380 80
2701   90 190 290 390 190 90 290 90 390 90
2702    -   -   -   -   -  -   -  - 300  0
2703    -   -   -   -   -  -   -  - 305  5
2704    -   -   -   -   -  -   -  - 315 15
2705    -   -   -   -   -  -   -  - 325 25
2706    -   -   -   -   -  -   -  - 335 35
2707    -   -   -   -   -  -   -  - 345 45
2708    -   -   -   -   -  -   -  - 355 55
2709    -   -   -   -   -  -   -  - 365 65
2710    -   -   -   -   -  -   -  - 375 75
2711    -   -   -   -   -  -   -  - 385 85
2712    -   -   -   -   -  -   -  - 395 95
2714 do_execsql_test joinD-116 {
2715   SELECT t1.*, t2.*, t3.*, t4.*
2716   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
2717   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
2718   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
2719   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2720 } {
2721   10 110 210 310 110 10   -  - 310 10
2722   20 120 220 320 120 20   -  - 320 20
2723   30 130 230 330 130 30 230 30 330 30
2724   40 140 240 340 140 40   -  - 340 40
2725   50 150 250 350 150 50   -  - 350 50
2726   60 160 260 360 160 60 260 60 360 60
2727   70 170 270 370 170 70   -  - 370 70
2728   80 180 280 380 180 80   -  - 380 80
2729   90 190 290 390 190 90 290 90 390 90
2730    -   -   -   -   -  -   -  - 300  0
2731    -   -   -   -   -  -   -  - 305  5
2732    -   -   -   -   -  -   -  - 315 15
2733    -   -   -   -   -  -   -  - 325 25
2734    -   -   -   -   -  -   -  - 335 35
2735    -   -   -   -   -  -   -  - 345 45
2736    -   -   -   -   -  -   -  - 355 55
2737    -   -   -   -   -  -   -  - 365 65
2738    -   -   -   -   -  -   -  - 375 75
2739    -   -   -   -   -  -   -  - 385 85
2740    -   -   -   -   -  -   -  - 395 95
2742 do_execsql_test joinD-117 {
2743   SELECT t1.*, t2.*, t3.*, t4.*
2744   FROM t1 INNER JOIN t2 ON t1.b=t2.b
2745   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
2746   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
2747   WHERE t2.x>0
2748   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2749 } {
2750   10 110 210 310 110 10   -  - 310 10
2751   20 120 220 320 120 20   -  - 320 20
2752   30 130 230 330 130 30 230 30 330 30
2753   40 140 240 340 140 40   -  - 340 40
2754   50 150 250 350 150 50   -  - 350 50
2755   60 160 260 360 160 60 260 60 360 60
2756   70 170 270 370 170 70   -  - 370 70
2757   80 180 280 380 180 80   -  - 380 80
2758   90 190 290 390 190 90 290 90 390 90
2760 do_execsql_test joinD-118 {
2761   SELECT t1.*, t2.*, t3.*, t4.*
2762   FROM t1 INNER JOIN t2 ON t1.b=t2.b
2763   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
2764   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
2765   WHERE (t2.x>0 OR t2.x IS NULL)
2766   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2767 } {
2768   10 110 210 310 110 10   -  - 310 10
2769   20 120 220 320 120 20   -  - 320 20
2770   30 130 230 330 130 30 230 30 330 30
2771   40 140 240 340 140 40   -  - 340 40
2772   50 150 250 350 150 50   -  - 350 50
2773   60 160 260 360 160 60 260 60 360 60
2774   70 170 270 370 170 70   -  - 370 70
2775   80 180 280 380 180 80   -  - 380 80
2776   90 190 290 390 190 90 290 90 390 90
2777    -   -   -   -   -  -   -  - 300  0
2778    -   -   -   -   -  -   -  - 305  5
2779    -   -   -   -   -  -   -  - 315 15
2780    -   -   -   -   -  -   -  - 325 25
2781    -   -   -   -   -  -   -  - 335 35
2782    -   -   -   -   -  -   -  - 345 45
2783    -   -   -   -   -  -   -  - 355 55
2784    -   -   -   -   -  -   -  - 365 65
2785    -   -   -   -   -  -   -  - 375 75
2786    -   -   -   -   -  -   -  - 385 85
2787    -   -   -   -   -  -   -  - 395 95
2789 do_execsql_test joinD-119 {
2790   SELECT t1.*, t2.*, t3.*, t4.*
2791   FROM t1 INNER JOIN t2 ON true
2792   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
2793   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
2794   WHERE t1.b=t2.b AND t2.x>0
2795   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2796 } {
2797   10 110 210 310 110 10   -  - 310 10
2798   20 120 220 320 120 20   -  - 320 20
2799   30 130 230 330 130 30 230 30 330 30
2800   40 140 240 340 140 40   -  - 340 40
2801   50 150 250 350 150 50   -  - 350 50
2802   60 160 260 360 160 60 260 60 360 60
2803   70 170 270 370 170 70   -  - 370 70
2804   80 180 280 380 180 80   -  - 380 80
2805   90 190 290 390 190 90 290 90 390 90
2807 do_execsql_test joinD-120 {
2808   SELECT t1.*, t2.*, t3.*, t4.*
2809   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
2810   LEFT JOIN t3 ON t1.c=t3.c
2811   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
2812   WHERE t3.y>0
2813   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2814 } {
2815   30 130 230 330 130 30 230 30 330 30
2816   60 160 260 360 160 60 260 60 360 60
2817   90 190 290 390 190 90 290 90 390 90
2819 do_execsql_test joinD-121 {
2820   SELECT t1.*, t2.*, t3.*, t4.*
2821   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
2822   LEFT JOIN t3 ON t1.c=t3.c
2823   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
2824   WHERE t3.y>0 OR t3.y IS NULL
2825   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2826 } {
2827   10 110 210 310 110 10   -  - 310 10
2828   20 120 220 320 120 20   -  - 320 20
2829   30 130 230 330 130 30 230 30 330 30
2830   40 140 240 340 140 40   -  - 340 40
2831   50 150 250 350 150 50   -  - 350 50
2832   60 160 260 360 160 60 260 60 360 60
2833   70 170 270 370 170 70   -  - 370 70
2834   80 180 280 380 180 80   -  - 380 80
2835   90 190 290 390 190 90 290 90 390 90
2836    -   -   -   -   -  -   -  - 300  0
2837    -   -   -   -   -  -   -  - 305  5
2838    -   -   -   -   -  -   -  - 315 15
2839    -   -   -   -   -  -   -  - 325 25
2840    -   -   -   -   -  -   -  - 335 35
2841    -   -   -   -   -  -   -  - 345 45
2842    -   -   -   -   -  -   -  - 355 55
2843    -   -   -   -   -  -   -  - 365 65
2844    -   -   -   -   -  -   -  - 375 75
2845    -   -   -   -   -  -   -  - 385 85
2846    -   -   -   -   -  -   -  - 395 95
2848 do_execsql_test joinD-122 {
2849   SELECT t1.*, t2.*, t3.*, t4.*
2850   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
2851   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
2852   RIGHT JOIN t4 ON t1.d=t4.d
2853   WHERE t4.z>0
2854   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2855 } {
2856   10 110 210 310 110 10   -  - 310 10
2857   20 120 220 320 120 20   -  - 320 20
2858   30 130 230 330 130 30 230 30 330 30
2859   40 140 240 340 140 40   -  - 340 40
2860   50 150 250 350 150 50   -  - 350 50
2861   60 160 260 360 160 60 260 60 360 60
2862   70 170 270 370 170 70   -  - 370 70
2863   80 180 280 380 180 80   -  - 380 80
2864   90 190 290 390 190 90 290 90 390 90
2865    -   -   -   -   -  -   -  - 305  5
2866    -   -   -   -   -  -   -  - 315 15
2867    -   -   -   -   -  -   -  - 325 25
2868    -   -   -   -   -  -   -  - 335 35
2869    -   -   -   -   -  -   -  - 345 45
2870    -   -   -   -   -  -   -  - 355 55
2871    -   -   -   -   -  -   -  - 365 65
2872    -   -   -   -   -  -   -  - 375 75
2873    -   -   -   -   -  -   -  - 385 85
2874    -   -   -   -   -  -   -  - 395 95
2876 do_execsql_test joinD-123 {
2877   SELECT t1.*, t2.*, t3.*, t4.*
2878   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
2879   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
2880   RIGHT JOIN t4 ON t1.d=t4.d
2881   WHERE t4.z IS NULL OR t4.z>0
2882   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2883 } {
2884   10 110 210 310 110 10   -  - 310 10
2885   20 120 220 320 120 20   -  - 320 20
2886   30 130 230 330 130 30 230 30 330 30
2887   40 140 240 340 140 40   -  - 340 40
2888   50 150 250 350 150 50   -  - 350 50
2889   60 160 260 360 160 60 260 60 360 60
2890   70 170 270 370 170 70   -  - 370 70
2891   80 180 280 380 180 80   -  - 380 80
2892   90 190 290 390 190 90 290 90 390 90
2893    -   -   -   -   -  -   -  - 305  5
2894    -   -   -   -   -  -   -  - 315 15
2895    -   -   -   -   -  -   -  - 325 25
2896    -   -   -   -   -  -   -  - 335 35
2897    -   -   -   -   -  -   -  - 345 45
2898    -   -   -   -   -  -   -  - 355 55
2899    -   -   -   -   -  -   -  - 365 65
2900    -   -   -   -   -  -   -  - 375 75
2901    -   -   -   -   -  -   -  - 385 85
2902    -   -   -   -   -  -   -  - 395 95
2904 do_execsql_test joinD-124 {
2905   SELECT t1.*, t2.*, t3.*, t4.*
2906   FROM t1 INNER JOIN t2 ON t1.b=t2.b
2907   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
2908   RIGHT JOIN t4 ON t1.d=t4.d
2909   WHERE t2.x>0 AND t4.z>0
2910   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2911 } {
2912   10 110 210 310 110 10   -  - 310 10
2913   20 120 220 320 120 20   -  - 320 20
2914   30 130 230 330 130 30 230 30 330 30
2915   40 140 240 340 140 40   -  - 340 40
2916   50 150 250 350 150 50   -  - 350 50
2917   60 160 260 360 160 60 260 60 360 60
2918   70 170 270 370 170 70   -  - 370 70
2919   80 180 280 380 180 80   -  - 380 80
2920   90 190 290 390 190 90 290 90 390 90
2922 do_execsql_test joinD-125 {
2923   SELECT t1.*, t2.*, t3.*, t4.*
2924   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
2925   LEFT JOIN t3 ON t1.c=t3.c
2926   RIGHT JOIN t4 ON t1.d=t4.d
2927   WHERE t4.z>0 AND t3.y>0
2928   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2929 } {
2930   30 130 230 330 130 30 230 30 330 30
2931   60 160 260 360 160 60 260 60 360 60
2932   90 190 290 390 190 90 290 90 390 90
2934 do_execsql_test joinD-126 {
2935   SELECT t1.*, t2.*, t3.*, t4.*
2936   FROM t1 INNER JOIN t2 ON t1.b=t2.b
2937   LEFT JOIN t3 ON t1.c=t3.c
2938   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
2939   WHERE t2.x>0 AND t3.y>0
2940   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2941 } {
2942   30 130 230 330 130 30 230 30 330 30
2943   60 160 260 360 160 60 260 60 360 60
2944   90 190 290 390 190 90 290 90 390 90
2946 do_execsql_test joinD-127 {
2947   SELECT t1.*, t2.*, t3.*, t4.*
2948   FROM t1 INNER JOIN t2 ON t1.b=t2.b
2949   LEFT JOIN t3 ON t1.c=t3.c
2950   RIGHT JOIN t4 ON t1.d=t4.d
2951   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
2952   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2953 } {
2954   30 130 230 330 130 30 230 30 330 30
2955   60 160 260 360 160 60 260 60 360 60
2956   90 190 290 390 190 90 290 90 390 90
2958 do_execsql_test joinD-128 {
2959   SELECT t1.*, t2.*, t3.*, t4.*
2960   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
2961   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
2962   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
2963   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2964 } {
2965   10 110 210 310 110 10   -  - 310 10
2966   20 120 220 320 120 20   -  - 320 20
2967   30 130 230 330 130 30 230 30 330 30
2968   40 140 240 340 140 40   -  - 340 40
2969   50 150 250 350 150 50   -  - 350 50
2970   60 160 260 360 160 60 260 60 360 60
2971   70 170 270 370 170 70   -  - 370 70
2972   80 180 280 380 180 80   -  - 380 80
2973   90 190 290 390 190 90 290 90 390 90
2974    -   -   -   -   -  -   -  - 300  0
2975    -   -   -   -   -  -   -  - 305  5
2976    -   -   -   -   -  -   -  - 315 15
2977    -   -   -   -   -  -   -  - 325 25
2978    -   -   -   -   -  -   -  - 335 35
2979    -   -   -   -   -  -   -  - 345 45
2980    -   -   -   -   -  -   -  - 355 55
2981    -   -   -   -   -  -   -  - 365 65
2982    -   -   -   -   -  -   -  - 375 75
2983    -   -   -   -   -  -   -  - 385 85
2984    -   -   -   -   -  -   -  - 395 95
2986 do_execsql_test joinD-129 {
2987   SELECT t1.*, t2.*, t3.*, t4.*
2988   FROM t1 INNER JOIN t2 ON t2.x>0
2989   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
2990   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
2991   WHERE t1.b IS NOT DISTINCT FROM t2.b
2992   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
2993 } {
2994   10 110 210 310 110 10   -  - 310 10
2995   20 120 220 320 120 20   -  - 320 20
2996   30 130 230 330 130 30 230 30 330 30
2997   40 140 240 340 140 40   -  - 340 40
2998   50 150 250 350 150 50   -  - 350 50
2999   60 160 260 360 160 60 260 60 360 60
3000   70 170 270 370 170 70   -  - 370 70
3001   80 180 280 380 180 80   -  - 380 80
3002   90 190 290 390 190 90 290 90 390 90
3003    -   -   -   -   -  -   -  - 300  0
3005 do_execsql_test joinD-130 {
3006   SELECT t1.*, t2.*, t3.*, t4.*
3007   FROM t1 INNER JOIN t2 ON t2.x>0
3008   LEFT JOIN t3 ON t3.y>0
3009   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
3010   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
3011   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3012 } {
3013   30 130 230 330 130 30 230 30 330 30
3014   60 160 260 360 160 60 260 60 360 60
3015   90 190 290 390 190 90 290 90 390 90
3016    -   -   -   -   -  -   -  - 300  0
3018 do_execsql_test joinD-131 {
3019   SELECT t1.*, t2.*, t3.*, t4.*
3020   FROM t1 INNER JOIN t2 ON t2.x>0
3021   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
3022   RIGHT JOIN t4 ON t4.z>0
3023   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
3024   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3025 } {
3026   10 110 210 310 110 10   -  - 310 10
3027   20 120 220 320 120 20   -  - 320 20
3028   30 130 230 330 130 30 230 30 330 30
3029   40 140 240 340 140 40   -  - 340 40
3030   50 150 250 350 150 50   -  - 350 50
3031   60 160 260 360 160 60 260 60 360 60
3032   70 170 270 370 170 70   -  - 370 70
3033   80 180 280 380 180 80   -  - 380 80
3034   90 190 290 390 190 90 290 90 390 90
3036 do_execsql_test joinD-132 {
3037   SELECT t1.*, t2.*, t3.*, t4.*
3038   FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
3039   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
3040   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
3041   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3042 } {
3043   10 110 210 310 110 10   -  - 310 10
3044   20 120 220 320 120 20   -  - 320 20
3045   30 130 230 330 130 30 230 30 330 30
3046   40 140 240 340 140 40   -  - 340 40
3047   50 150 250 350 150 50   -  - 350 50
3048   60 160 260 360 160 60 260 60 360 60
3049   70 170 270 370 170 70   -  - 370 70
3050   80 180 280 380 180 80   -  - 380 80
3051   90 190 290 390 190 90 290 90 390 90
3052    -   -   -   -   -  -   -  - 300  0
3053    -   -   -   -   -  -   -  - 305  5
3054    -   -   -   -   -  -   -  - 315 15
3055    -   -   -   -   -  -   -  - 325 25
3056    -   -   -   -   -  -   -  - 335 35
3057    -   -   -   -   -  -   -  - 345 45
3058    -   -   -   -   -  -   -  - 355 55
3059    -   -   -   -   -  -   -  - 365 65
3060    -   -   -   -   -  -   -  - 375 75
3061    -   -   -   -   -  -   -  - 385 85
3062    -   -   -   -   -  -   -  - 395 95
3064 do_execsql_test joinD-133 {
3065   SELECT t1.*, t2.*, t3.*, t4.*
3066   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
3067   LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
3068   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
3069   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3070 } {
3071   10 110 210 310 110 10   -  - 310 10
3072   20 120 220 320 120 20   -  - 320 20
3073   30 130 230 330 130 30 230 30 330 30
3074   40 140 240 340 140 40   -  - 340 40
3075   50 150 250 350 150 50   -  - 350 50
3076   60 160 260 360 160 60 260 60 360 60
3077   70 170 270 370 170 70   -  - 370 70
3078   80 180 280 380 180 80   -  - 380 80
3079   90 190 290 390 190 90 290 90 390 90
3080    -   -   -   -   -  -   -  - 300  0
3081    -   -   -   -   -  -   -  - 305  5
3082    -   -   -   -   -  -   -  - 315 15
3083    -   -   -   -   -  -   -  - 325 25
3084    -   -   -   -   -  -   -  - 335 35
3085    -   -   -   -   -  -   -  - 345 45
3086    -   -   -   -   -  -   -  - 355 55
3087    -   -   -   -   -  -   -  - 365 65
3088    -   -   -   -   -  -   -  - 375 75
3089    -   -   -   -   -  -   -  - 385 85
3090    -   -   -   -   -  -   -  - 395 95
3092 do_execsql_test joinD-134 {
3093   SELECT t1.*, t2.*, t3.*, t4.*
3094   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
3095   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
3096   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
3097   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3098 } {
3099    2 102 202 302 102  2   -  -   -  -
3100    4 104 204 304 104  4   -  -   -  -
3101    6 106 206 306 106  6 206  6   -  -
3102    8 108 208 308 108  8   -  -   -  -
3103   10 110 210 310 110 10   -  - 310 10
3104   12 112 212 312 112 12 212 12   -  -
3105   14 114 214 314 114 14   -  -   -  -
3106   16 116 216 316 116 16   -  -   -  -
3107   18 118 218 318 118 18 218 18   -  -
3108   20 120 220 320 120 20   -  - 320 20
3109   22 122 222 322 122 22   -  -   -  -
3110   24 124 224 324 124 24 224 24   -  -
3111   26 126 226 326 126 26   -  -   -  -
3112   28 128 228 328 128 28   -  -   -  -
3113   30 130 230 330 130 30 230 30 330 30
3114   32 132 232 332 132 32   -  -   -  -
3115   34 134 234 334 134 34   -  -   -  -
3116   36 136 236 336 136 36 236 36   -  -
3117   38 138 238 338 138 38   -  -   -  -
3118   40 140 240 340 140 40   -  - 340 40
3119   42 142 242 342 142 42 242 42   -  -
3120   44 144 244 344 144 44   -  -   -  -
3121   46 146 246 346 146 46   -  -   -  -
3122   48 148 248 348 148 48 248 48   -  -
3123   50 150 250 350 150 50   -  - 350 50
3124   52 152 252 352 152 52   -  -   -  -
3125   54 154 254 354 154 54 254 54   -  -
3126   56 156 256 356 156 56   -  -   -  -
3127   58 158 258 358 158 58   -  -   -  -
3128   60 160 260 360 160 60 260 60 360 60
3129   62 162 262 362 162 62   -  -   -  -
3130   64 164 264 364 164 64   -  -   -  -
3131   66 166 266 366 166 66 266 66   -  -
3132   68 168 268 368 168 68   -  -   -  -
3133   70 170 270 370 170 70   -  - 370 70
3134   72 172 272 372 172 72 272 72   -  -
3135   74 174 274 374 174 74   -  -   -  -
3136   76 176 276 376 176 76   -  -   -  -
3137   78 178 278 378 178 78 278 78   -  -
3138   80 180 280 380 180 80   -  - 380 80
3139   82 182 282 382 182 82   -  -   -  -
3140   84 184 284 384 184 84 284 84   -  -
3141   86 186 286 386 186 86   -  -   -  -
3142   88 188 288 388 188 88   -  -   -  -
3143   90 190 290 390 190 90 290 90 390 90
3144   92 192 292 392 192 92   -  -   -  -
3145   94 194 294 394 194 94   -  -   -  -
3146    -   -   -   -   -  -   -  - 300  0
3147    -   -   -   -   -  -   -  - 305  5
3148    -   -   -   -   -  -   -  - 315 15
3149    -   -   -   -   -  -   -  - 325 25
3150    -   -   -   -   -  -   -  - 335 35
3151    -   -   -   -   -  -   -  - 345 45
3152    -   -   -   -   -  -   -  - 355 55
3153    -   -   -   -   -  -   -  - 365 65
3154    -   -   -   -   -  -   -  - 375 75
3155    -   -   -   -   -  -   -  - 385 85
3156    -   -   -   -   -  -   -  - 395 95
3158 do_execsql_test joinD-135 {
3159   SELECT t1.*, t2.*, t3.*, t4.*
3160   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
3161   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
3162   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
3163   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3164 } {
3165    2 102 202 302 102  2   -  -   -  -
3166    4 104 204 304 104  4   -  -   -  -
3167    6 106 206 306 106  6 206  6   -  -
3168    8 108 208 308 108  8   -  -   -  -
3169   10 110 210 310 110 10   -  - 310 10
3170   12 112 212 312 112 12 212 12   -  -
3171   14 114 214 314 114 14   -  -   -  -
3172   16 116 216 316 116 16   -  -   -  -
3173   18 118 218 318 118 18 218 18   -  -
3174   20 120 220 320 120 20   -  - 320 20
3175   22 122 222 322 122 22   -  -   -  -
3176   24 124 224 324 124 24 224 24   -  -
3177   26 126 226 326 126 26   -  -   -  -
3178   28 128 228 328 128 28   -  -   -  -
3179   30 130 230 330 130 30 230 30 330 30
3180   32 132 232 332 132 32   -  -   -  -
3181   34 134 234 334 134 34   -  -   -  -
3182   36 136 236 336 136 36 236 36   -  -
3183   38 138 238 338 138 38   -  -   -  -
3184   40 140 240 340 140 40   -  - 340 40
3185   42 142 242 342 142 42 242 42   -  -
3186   44 144 244 344 144 44   -  -   -  -
3187   46 146 246 346 146 46   -  -   -  -
3188   48 148 248 348 148 48 248 48   -  -
3189   50 150 250 350 150 50   -  - 350 50
3190   52 152 252 352 152 52   -  -   -  -
3191   54 154 254 354 154 54 254 54   -  -
3192   56 156 256 356 156 56   -  -   -  -
3193   58 158 258 358 158 58   -  -   -  -
3194   60 160 260 360 160 60 260 60 360 60
3195   62 162 262 362 162 62   -  -   -  -
3196   64 164 264 364 164 64   -  -   -  -
3197   66 166 266 366 166 66 266 66   -  -
3198   68 168 268 368 168 68   -  -   -  -
3199   70 170 270 370 170 70   -  - 370 70
3200   72 172 272 372 172 72 272 72   -  -
3201   74 174 274 374 174 74   -  -   -  -
3202   76 176 276 376 176 76   -  -   -  -
3203   78 178 278 378 178 78 278 78   -  -
3204   80 180 280 380 180 80   -  - 380 80
3205   82 182 282 382 182 82   -  -   -  -
3206   84 184 284 384 184 84 284 84   -  -
3207   86 186 286 386 186 86   -  -   -  -
3208   88 188 288 388 188 88   -  -   -  -
3209   90 190 290 390 190 90 290 90 390 90
3210   92 192 292 392 192 92   -  -   -  -
3211   94 194 294 394 194 94   -  -   -  -
3212    -   -   -   -   -  -   -  - 300  0
3213    -   -   -   -   -  -   -  - 305  5
3214    -   -   -   -   -  -   -  - 315 15
3215    -   -   -   -   -  -   -  - 325 25
3216    -   -   -   -   -  -   -  - 335 35
3217    -   -   -   -   -  -   -  - 345 45
3218    -   -   -   -   -  -   -  - 355 55
3219    -   -   -   -   -  -   -  - 365 65
3220    -   -   -   -   -  -   -  - 375 75
3221    -   -   -   -   -  -   -  - 385 85
3222    -   -   -   -   -  -   -  - 395 95
3224 do_execsql_test joinD-136 {
3225   SELECT t1.*, t2.*, t3.*, t4.*
3226   FROM t1 INNER JOIN t2 ON t1.b=t2.b
3227   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
3228   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
3229   WHERE t2.x>0
3230   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3231 } {
3232    2 102 202 302 102  2   -  -   -  -
3233    4 104 204 304 104  4   -  -   -  -
3234    6 106 206 306 106  6 206  6   -  -
3235    8 108 208 308 108  8   -  -   -  -
3236   10 110 210 310 110 10   -  - 310 10
3237   12 112 212 312 112 12 212 12   -  -
3238   14 114 214 314 114 14   -  -   -  -
3239   16 116 216 316 116 16   -  -   -  -
3240   18 118 218 318 118 18 218 18   -  -
3241   20 120 220 320 120 20   -  - 320 20
3242   22 122 222 322 122 22   -  -   -  -
3243   24 124 224 324 124 24 224 24   -  -
3244   26 126 226 326 126 26   -  -   -  -
3245   28 128 228 328 128 28   -  -   -  -
3246   30 130 230 330 130 30 230 30 330 30
3247   32 132 232 332 132 32   -  -   -  -
3248   34 134 234 334 134 34   -  -   -  -
3249   36 136 236 336 136 36 236 36   -  -
3250   38 138 238 338 138 38   -  -   -  -
3251   40 140 240 340 140 40   -  - 340 40
3252   42 142 242 342 142 42 242 42   -  -
3253   44 144 244 344 144 44   -  -   -  -
3254   46 146 246 346 146 46   -  -   -  -
3255   48 148 248 348 148 48 248 48   -  -
3256   50 150 250 350 150 50   -  - 350 50
3257   52 152 252 352 152 52   -  -   -  -
3258   54 154 254 354 154 54 254 54   -  -
3259   56 156 256 356 156 56   -  -   -  -
3260   58 158 258 358 158 58   -  -   -  -
3261   60 160 260 360 160 60 260 60 360 60
3262   62 162 262 362 162 62   -  -   -  -
3263   64 164 264 364 164 64   -  -   -  -
3264   66 166 266 366 166 66 266 66   -  -
3265   68 168 268 368 168 68   -  -   -  -
3266   70 170 270 370 170 70   -  - 370 70
3267   72 172 272 372 172 72 272 72   -  -
3268   74 174 274 374 174 74   -  -   -  -
3269   76 176 276 376 176 76   -  -   -  -
3270   78 178 278 378 178 78 278 78   -  -
3271   80 180 280 380 180 80   -  - 380 80
3272   82 182 282 382 182 82   -  -   -  -
3273   84 184 284 384 184 84 284 84   -  -
3274   86 186 286 386 186 86   -  -   -  -
3275   88 188 288 388 188 88   -  -   -  -
3276   90 190 290 390 190 90 290 90 390 90
3277   92 192 292 392 192 92   -  -   -  -
3278   94 194 294 394 194 94   -  -   -  -
3280 do_execsql_test joinD-137 {
3281   SELECT t1.*, t2.*, t3.*, t4.*
3282   FROM t1 INNER JOIN t2 ON t1.b=t2.b
3283   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
3284   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
3285   WHERE (t2.x>0 OR t2.x IS NULL)
3286   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3287 } {
3288    2 102 202 302 102  2   -  -   -  -
3289    4 104 204 304 104  4   -  -   -  -
3290    6 106 206 306 106  6 206  6   -  -
3291    8 108 208 308 108  8   -  -   -  -
3292   10 110 210 310 110 10   -  - 310 10
3293   12 112 212 312 112 12 212 12   -  -
3294   14 114 214 314 114 14   -  -   -  -
3295   16 116 216 316 116 16   -  -   -  -
3296   18 118 218 318 118 18 218 18   -  -
3297   20 120 220 320 120 20   -  - 320 20
3298   22 122 222 322 122 22   -  -   -  -
3299   24 124 224 324 124 24 224 24   -  -
3300   26 126 226 326 126 26   -  -   -  -
3301   28 128 228 328 128 28   -  -   -  -
3302   30 130 230 330 130 30 230 30 330 30
3303   32 132 232 332 132 32   -  -   -  -
3304   34 134 234 334 134 34   -  -   -  -
3305   36 136 236 336 136 36 236 36   -  -
3306   38 138 238 338 138 38   -  -   -  -
3307   40 140 240 340 140 40   -  - 340 40
3308   42 142 242 342 142 42 242 42   -  -
3309   44 144 244 344 144 44   -  -   -  -
3310   46 146 246 346 146 46   -  -   -  -
3311   48 148 248 348 148 48 248 48   -  -
3312   50 150 250 350 150 50   -  - 350 50
3313   52 152 252 352 152 52   -  -   -  -
3314   54 154 254 354 154 54 254 54   -  -
3315   56 156 256 356 156 56   -  -   -  -
3316   58 158 258 358 158 58   -  -   -  -
3317   60 160 260 360 160 60 260 60 360 60
3318   62 162 262 362 162 62   -  -   -  -
3319   64 164 264 364 164 64   -  -   -  -
3320   66 166 266 366 166 66 266 66   -  -
3321   68 168 268 368 168 68   -  -   -  -
3322   70 170 270 370 170 70   -  - 370 70
3323   72 172 272 372 172 72 272 72   -  -
3324   74 174 274 374 174 74   -  -   -  -
3325   76 176 276 376 176 76   -  -   -  -
3326   78 178 278 378 178 78 278 78   -  -
3327   80 180 280 380 180 80   -  - 380 80
3328   82 182 282 382 182 82   -  -   -  -
3329   84 184 284 384 184 84 284 84   -  -
3330   86 186 286 386 186 86   -  -   -  -
3331   88 188 288 388 188 88   -  -   -  -
3332   90 190 290 390 190 90 290 90 390 90
3333   92 192 292 392 192 92   -  -   -  -
3334   94 194 294 394 194 94   -  -   -  -
3335    -   -   -   -   -  -   -  - 300  0
3336    -   -   -   -   -  -   -  - 305  5
3337    -   -   -   -   -  -   -  - 315 15
3338    -   -   -   -   -  -   -  - 325 25
3339    -   -   -   -   -  -   -  - 335 35
3340    -   -   -   -   -  -   -  - 345 45
3341    -   -   -   -   -  -   -  - 355 55
3342    -   -   -   -   -  -   -  - 365 65
3343    -   -   -   -   -  -   -  - 375 75
3344    -   -   -   -   -  -   -  - 385 85
3345    -   -   -   -   -  -   -  - 395 95
3347 do_execsql_test joinD-138 {
3348   SELECT t1.*, t2.*, t3.*, t4.*
3349   FROM t1 INNER JOIN t2 ON true
3350   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
3351   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
3352   WHERE t1.b=t2.b AND t2.x>0
3353   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3354 } {
3355    2 102 202 302 102  2   -  -   -  -
3356    4 104 204 304 104  4   -  -   -  -
3357    6 106 206 306 106  6 206  6   -  -
3358    8 108 208 308 108  8   -  -   -  -
3359   10 110 210 310 110 10   -  - 310 10
3360   12 112 212 312 112 12 212 12   -  -
3361   14 114 214 314 114 14   -  -   -  -
3362   16 116 216 316 116 16   -  -   -  -
3363   18 118 218 318 118 18 218 18   -  -
3364   20 120 220 320 120 20   -  - 320 20
3365   22 122 222 322 122 22   -  -   -  -
3366   24 124 224 324 124 24 224 24   -  -
3367   26 126 226 326 126 26   -  -   -  -
3368   28 128 228 328 128 28   -  -   -  -
3369   30 130 230 330 130 30 230 30 330 30
3370   32 132 232 332 132 32   -  -   -  -
3371   34 134 234 334 134 34   -  -   -  -
3372   36 136 236 336 136 36 236 36   -  -
3373   38 138 238 338 138 38   -  -   -  -
3374   40 140 240 340 140 40   -  - 340 40
3375   42 142 242 342 142 42 242 42   -  -
3376   44 144 244 344 144 44   -  -   -  -
3377   46 146 246 346 146 46   -  -   -  -
3378   48 148 248 348 148 48 248 48   -  -
3379   50 150 250 350 150 50   -  - 350 50
3380   52 152 252 352 152 52   -  -   -  -
3381   54 154 254 354 154 54 254 54   -  -
3382   56 156 256 356 156 56   -  -   -  -
3383   58 158 258 358 158 58   -  -   -  -
3384   60 160 260 360 160 60 260 60 360 60
3385   62 162 262 362 162 62   -  -   -  -
3386   64 164 264 364 164 64   -  -   -  -
3387   66 166 266 366 166 66 266 66   -  -
3388   68 168 268 368 168 68   -  -   -  -
3389   70 170 270 370 170 70   -  - 370 70
3390   72 172 272 372 172 72 272 72   -  -
3391   74 174 274 374 174 74   -  -   -  -
3392   76 176 276 376 176 76   -  -   -  -
3393   78 178 278 378 178 78 278 78   -  -
3394   80 180 280 380 180 80   -  - 380 80
3395   82 182 282 382 182 82   -  -   -  -
3396   84 184 284 384 184 84 284 84   -  -
3397   86 186 286 386 186 86   -  -   -  -
3398   88 188 288 388 188 88   -  -   -  -
3399   90 190 290 390 190 90 290 90 390 90
3400   92 192 292 392 192 92   -  -   -  -
3401   94 194 294 394 194 94   -  -   -  -
3403 do_execsql_test joinD-139 {
3404   SELECT t1.*, t2.*, t3.*, t4.*
3405   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
3406   LEFT JOIN t3 ON t1.c=t3.c
3407   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
3408   WHERE t3.y>0
3409   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3410 } {
3411    6 106 206 306 106  6 206  6   -  -
3412   12 112 212 312 112 12 212 12   -  -
3413   18 118 218 318 118 18 218 18   -  -
3414   24 124 224 324 124 24 224 24   -  -
3415   30 130 230 330 130 30 230 30 330 30
3416   36 136 236 336 136 36 236 36   -  -
3417   42 142 242 342 142 42 242 42   -  -
3418   48 148 248 348 148 48 248 48   -  -
3419   54 154 254 354 154 54 254 54   -  -
3420   60 160 260 360 160 60 260 60 360 60
3421   66 166 266 366 166 66 266 66   -  -
3422   72 172 272 372 172 72 272 72   -  -
3423   78 178 278 378 178 78 278 78   -  -
3424   84 184 284 384 184 84 284 84   -  -
3425   90 190 290 390 190 90 290 90 390 90
3427 do_execsql_test joinD-140 {
3428   SELECT t1.*, t2.*, t3.*, t4.*
3429   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
3430   LEFT JOIN t3 ON t1.c=t3.c
3431   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
3432   WHERE t3.y>0 OR t3.y IS NULL
3433   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3434 } {
3435    2 102 202 302 102  2   -  -   -  -
3436    4 104 204 304 104  4   -  -   -  -
3437    6 106 206 306 106  6 206  6   -  -
3438    8 108 208 308 108  8   -  -   -  -
3439   10 110 210 310 110 10   -  - 310 10
3440   12 112 212 312 112 12 212 12   -  -
3441   14 114 214 314 114 14   -  -   -  -
3442   16 116 216 316 116 16   -  -   -  -
3443   18 118 218 318 118 18 218 18   -  -
3444   20 120 220 320 120 20   -  - 320 20
3445   22 122 222 322 122 22   -  -   -  -
3446   24 124 224 324 124 24 224 24   -  -
3447   26 126 226 326 126 26   -  -   -  -
3448   28 128 228 328 128 28   -  -   -  -
3449   30 130 230 330 130 30 230 30 330 30
3450   32 132 232 332 132 32   -  -   -  -
3451   34 134 234 334 134 34   -  -   -  -
3452   36 136 236 336 136 36 236 36   -  -
3453   38 138 238 338 138 38   -  -   -  -
3454   40 140 240 340 140 40   -  - 340 40
3455   42 142 242 342 142 42 242 42   -  -
3456   44 144 244 344 144 44   -  -   -  -
3457   46 146 246 346 146 46   -  -   -  -
3458   48 148 248 348 148 48 248 48   -  -
3459   50 150 250 350 150 50   -  - 350 50
3460   52 152 252 352 152 52   -  -   -  -
3461   54 154 254 354 154 54 254 54   -  -
3462   56 156 256 356 156 56   -  -   -  -
3463   58 158 258 358 158 58   -  -   -  -
3464   60 160 260 360 160 60 260 60 360 60
3465   62 162 262 362 162 62   -  -   -  -
3466   64 164 264 364 164 64   -  -   -  -
3467   66 166 266 366 166 66 266 66   -  -
3468   68 168 268 368 168 68   -  -   -  -
3469   70 170 270 370 170 70   -  - 370 70
3470   72 172 272 372 172 72 272 72   -  -
3471   74 174 274 374 174 74   -  -   -  -
3472   76 176 276 376 176 76   -  -   -  -
3473   78 178 278 378 178 78 278 78   -  -
3474   80 180 280 380 180 80   -  - 380 80
3475   82 182 282 382 182 82   -  -   -  -
3476   84 184 284 384 184 84 284 84   -  -
3477   86 186 286 386 186 86   -  -   -  -
3478   88 188 288 388 188 88   -  -   -  -
3479   90 190 290 390 190 90 290 90 390 90
3480   92 192 292 392 192 92   -  -   -  -
3481   94 194 294 394 194 94   -  -   -  -
3482    -   -   -   -   -  -   -  - 300  0
3483    -   -   -   -   -  -   -  - 305  5
3484    -   -   -   -   -  -   -  - 315 15
3485    -   -   -   -   -  -   -  - 325 25
3486    -   -   -   -   -  -   -  - 335 35
3487    -   -   -   -   -  -   -  - 345 45
3488    -   -   -   -   -  -   -  - 355 55
3489    -   -   -   -   -  -   -  - 365 65
3490    -   -   -   -   -  -   -  - 375 75
3491    -   -   -   -   -  -   -  - 385 85
3492    -   -   -   -   -  -   -  - 395 95
3494 do_execsql_test joinD-141 {
3495   SELECT t1.*, t2.*, t3.*, t4.*
3496   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
3497   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
3498   FULL JOIN t4 ON t1.d=t4.d
3499   WHERE t4.z>0
3500   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3501 } {
3502   10 110 210 310 110 10   -  - 310 10
3503   20 120 220 320 120 20   -  - 320 20
3504   30 130 230 330 130 30 230 30 330 30
3505   40 140 240 340 140 40   -  - 340 40
3506   50 150 250 350 150 50   -  - 350 50
3507   60 160 260 360 160 60 260 60 360 60
3508   70 170 270 370 170 70   -  - 370 70
3509   80 180 280 380 180 80   -  - 380 80
3510   90 190 290 390 190 90 290 90 390 90
3511    -   -   -   -   -  -   -  - 305  5
3512    -   -   -   -   -  -   -  - 315 15
3513    -   -   -   -   -  -   -  - 325 25
3514    -   -   -   -   -  -   -  - 335 35
3515    -   -   -   -   -  -   -  - 345 45
3516    -   -   -   -   -  -   -  - 355 55
3517    -   -   -   -   -  -   -  - 365 65
3518    -   -   -   -   -  -   -  - 375 75
3519    -   -   -   -   -  -   -  - 385 85
3520    -   -   -   -   -  -   -  - 395 95
3522 do_execsql_test joinD-142 {
3523   SELECT t1.*, t2.*, t3.*, t4.*
3524   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
3525   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
3526   FULL JOIN t4 ON t1.d=t4.d
3527   WHERE t4.z IS NULL OR t4.z>0
3528   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3529 } {
3530    2 102 202 302 102  2   -  -   -  -
3531    4 104 204 304 104  4   -  -   -  -
3532    6 106 206 306 106  6 206  6   -  -
3533    8 108 208 308 108  8   -  -   -  -
3534   10 110 210 310 110 10   -  - 310 10
3535   12 112 212 312 112 12 212 12   -  -
3536   14 114 214 314 114 14   -  -   -  -
3537   16 116 216 316 116 16   -  -   -  -
3538   18 118 218 318 118 18 218 18   -  -
3539   20 120 220 320 120 20   -  - 320 20
3540   22 122 222 322 122 22   -  -   -  -
3541   24 124 224 324 124 24 224 24   -  -
3542   26 126 226 326 126 26   -  -   -  -
3543   28 128 228 328 128 28   -  -   -  -
3544   30 130 230 330 130 30 230 30 330 30
3545   32 132 232 332 132 32   -  -   -  -
3546   34 134 234 334 134 34   -  -   -  -
3547   36 136 236 336 136 36 236 36   -  -
3548   38 138 238 338 138 38   -  -   -  -
3549   40 140 240 340 140 40   -  - 340 40
3550   42 142 242 342 142 42 242 42   -  -
3551   44 144 244 344 144 44   -  -   -  -
3552   46 146 246 346 146 46   -  -   -  -
3553   48 148 248 348 148 48 248 48   -  -
3554   50 150 250 350 150 50   -  - 350 50
3555   52 152 252 352 152 52   -  -   -  -
3556   54 154 254 354 154 54 254 54   -  -
3557   56 156 256 356 156 56   -  -   -  -
3558   58 158 258 358 158 58   -  -   -  -
3559   60 160 260 360 160 60 260 60 360 60
3560   62 162 262 362 162 62   -  -   -  -
3561   64 164 264 364 164 64   -  -   -  -
3562   66 166 266 366 166 66 266 66   -  -
3563   68 168 268 368 168 68   -  -   -  -
3564   70 170 270 370 170 70   -  - 370 70
3565   72 172 272 372 172 72 272 72   -  -
3566   74 174 274 374 174 74   -  -   -  -
3567   76 176 276 376 176 76   -  -   -  -
3568   78 178 278 378 178 78 278 78   -  -
3569   80 180 280 380 180 80   -  - 380 80
3570   82 182 282 382 182 82   -  -   -  -
3571   84 184 284 384 184 84 284 84   -  -
3572   86 186 286 386 186 86   -  -   -  -
3573   88 188 288 388 188 88   -  -   -  -
3574   90 190 290 390 190 90 290 90 390 90
3575   92 192 292 392 192 92   -  -   -  -
3576   94 194 294 394 194 94   -  -   -  -
3577    -   -   -   -   -  -   -  - 305  5
3578    -   -   -   -   -  -   -  - 315 15
3579    -   -   -   -   -  -   -  - 325 25
3580    -   -   -   -   -  -   -  - 335 35
3581    -   -   -   -   -  -   -  - 345 45
3582    -   -   -   -   -  -   -  - 355 55
3583    -   -   -   -   -  -   -  - 365 65
3584    -   -   -   -   -  -   -  - 375 75
3585    -   -   -   -   -  -   -  - 385 85
3586    -   -   -   -   -  -   -  - 395 95
3588 do_execsql_test joinD-143 {
3589   SELECT t1.*, t2.*, t3.*, t4.*
3590   FROM t1 INNER JOIN t2 ON t1.b=t2.b
3591   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
3592   FULL JOIN t4 ON t1.d=t4.d
3593   WHERE t2.x>0 AND t4.z>0
3594   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3595 } {
3596   10 110 210 310 110 10   -  - 310 10
3597   20 120 220 320 120 20   -  - 320 20
3598   30 130 230 330 130 30 230 30 330 30
3599   40 140 240 340 140 40   -  - 340 40
3600   50 150 250 350 150 50   -  - 350 50
3601   60 160 260 360 160 60 260 60 360 60
3602   70 170 270 370 170 70   -  - 370 70
3603   80 180 280 380 180 80   -  - 380 80
3604   90 190 290 390 190 90 290 90 390 90
3606 do_execsql_test joinD-144 {
3607   SELECT t1.*, t2.*, t3.*, t4.*
3608   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
3609   LEFT JOIN t3 ON t1.c=t3.c
3610   FULL JOIN t4 ON t1.d=t4.d
3611   WHERE t4.z>0 AND t3.y>0
3612   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3613 } {
3614   30 130 230 330 130 30 230 30 330 30
3615   60 160 260 360 160 60 260 60 360 60
3616   90 190 290 390 190 90 290 90 390 90
3618 do_execsql_test joinD-145 {
3619   SELECT t1.*, t2.*, t3.*, t4.*
3620   FROM t1 INNER JOIN t2 ON t1.b=t2.b
3621   LEFT JOIN t3 ON t1.c=t3.c
3622   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
3623   WHERE t2.x>0 AND t3.y>0
3624   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3625 } {
3626    6 106 206 306 106  6 206  6   -  -
3627   12 112 212 312 112 12 212 12   -  -
3628   18 118 218 318 118 18 218 18   -  -
3629   24 124 224 324 124 24 224 24   -  -
3630   30 130 230 330 130 30 230 30 330 30
3631   36 136 236 336 136 36 236 36   -  -
3632   42 142 242 342 142 42 242 42   -  -
3633   48 148 248 348 148 48 248 48   -  -
3634   54 154 254 354 154 54 254 54   -  -
3635   60 160 260 360 160 60 260 60 360 60
3636   66 166 266 366 166 66 266 66   -  -
3637   72 172 272 372 172 72 272 72   -  -
3638   78 178 278 378 178 78 278 78   -  -
3639   84 184 284 384 184 84 284 84   -  -
3640   90 190 290 390 190 90 290 90 390 90
3642 do_execsql_test joinD-146 {
3643   SELECT t1.*, t2.*, t3.*, t4.*
3644   FROM t1 INNER JOIN t2 ON t1.b=t2.b
3645   LEFT JOIN t3 ON t1.c=t3.c
3646   FULL JOIN t4 ON t1.d=t4.d
3647   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
3648   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3649 } {
3650   30 130 230 330 130 30 230 30 330 30
3651   60 160 260 360 160 60 260 60 360 60
3652   90 190 290 390 190 90 290 90 390 90
3654 do_execsql_test joinD-147 {
3655   SELECT t1.*, t2.*, t3.*, t4.*
3656   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
3657   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
3658   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
3659   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3660 } {
3661    2 102 202 302 102  2   -  -   -  -
3662    4 104 204 304 104  4   -  -   -  -
3663    6 106 206 306 106  6 206  6   -  -
3664    8 108 208 308 108  8   -  -   -  -
3665   10 110 210 310 110 10   -  - 310 10
3666   12 112 212 312 112 12 212 12   -  -
3667   14 114 214 314 114 14   -  -   -  -
3668   16 116 216 316 116 16   -  -   -  -
3669   18 118 218 318 118 18 218 18   -  -
3670   20 120 220 320 120 20   -  - 320 20
3671   22 122 222 322 122 22   -  -   -  -
3672   24 124 224 324 124 24 224 24   -  -
3673   26 126 226 326 126 26   -  -   -  -
3674   28 128 228 328 128 28   -  -   -  -
3675   30 130 230 330 130 30 230 30 330 30
3676   32 132 232 332 132 32   -  -   -  -
3677   34 134 234 334 134 34   -  -   -  -
3678   36 136 236 336 136 36 236 36   -  -
3679   38 138 238 338 138 38   -  -   -  -
3680   40 140 240 340 140 40   -  - 340 40
3681   42 142 242 342 142 42 242 42   -  -
3682   44 144 244 344 144 44   -  -   -  -
3683   46 146 246 346 146 46   -  -   -  -
3684   48 148 248 348 148 48 248 48   -  -
3685   50 150 250 350 150 50   -  - 350 50
3686   52 152 252 352 152 52   -  -   -  -
3687   54 154 254 354 154 54 254 54   -  -
3688   56 156 256 356 156 56   -  -   -  -
3689   58 158 258 358 158 58   -  -   -  -
3690   60 160 260 360 160 60 260 60 360 60
3691   62 162 262 362 162 62   -  -   -  -
3692   64 164 264 364 164 64   -  -   -  -
3693   66 166 266 366 166 66 266 66   -  -
3694   68 168 268 368 168 68   -  -   -  -
3695   70 170 270 370 170 70   -  - 370 70
3696   72 172 272 372 172 72 272 72   -  -
3697   74 174 274 374 174 74   -  -   -  -
3698   76 176 276 376 176 76   -  -   -  -
3699   78 178 278 378 178 78 278 78   -  -
3700   80 180 280 380 180 80   -  - 380 80
3701   82 182 282 382 182 82   -  -   -  -
3702   84 184 284 384 184 84 284 84   -  -
3703   86 186 286 386 186 86   -  -   -  -
3704   88 188 288 388 188 88   -  -   -  -
3705   90 190 290 390 190 90 290 90 390 90
3706   92 192 292 392 192 92   -  -   -  -
3707   94 194 294 394 194 94   -  -   -  -
3708    -   -   -   -   -  -   -  - 300  0
3709    -   -   -   -   -  -   -  - 305  5
3710    -   -   -   -   -  -   -  - 315 15
3711    -   -   -   -   -  -   -  - 325 25
3712    -   -   -   -   -  -   -  - 335 35
3713    -   -   -   -   -  -   -  - 345 45
3714    -   -   -   -   -  -   -  - 355 55
3715    -   -   -   -   -  -   -  - 365 65
3716    -   -   -   -   -  -   -  - 375 75
3717    -   -   -   -   -  -   -  - 385 85
3718    -   -   -   -   -  -   -  - 395 95
3720 do_execsql_test joinD-148 {
3721   SELECT t1.*, t2.*, t3.*, t4.*
3722   FROM t1 INNER JOIN t2 ON t2.x>0
3723   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
3724   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
3725   WHERE t1.b IS NOT DISTINCT FROM t2.b
3726   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3727 } {
3728    2 102 202 302 102  2   -  -   -  -
3729    4 104 204 304 104  4   -  -   -  -
3730    6 106 206 306 106  6 206  6   -  -
3731    8 108 208 308 108  8   -  -   -  -
3732   10 110 210 310 110 10   -  - 310 10
3733   12 112 212 312 112 12 212 12   -  -
3734   14 114 214 314 114 14   -  -   -  -
3735   16 116 216 316 116 16   -  -   -  -
3736   18 118 218 318 118 18 218 18   -  -
3737   20 120 220 320 120 20   -  - 320 20
3738   22 122 222 322 122 22   -  -   -  -
3739   24 124 224 324 124 24 224 24   -  -
3740   26 126 226 326 126 26   -  -   -  -
3741   28 128 228 328 128 28   -  -   -  -
3742   30 130 230 330 130 30 230 30 330 30
3743   32 132 232 332 132 32   -  -   -  -
3744   34 134 234 334 134 34   -  -   -  -
3745   36 136 236 336 136 36 236 36   -  -
3746   38 138 238 338 138 38   -  -   -  -
3747   40 140 240 340 140 40   -  - 340 40
3748   42 142 242 342 142 42 242 42   -  -
3749   44 144 244 344 144 44   -  -   -  -
3750   46 146 246 346 146 46   -  -   -  -
3751   48 148 248 348 148 48 248 48   -  -
3752   50 150 250 350 150 50   -  - 350 50
3753   52 152 252 352 152 52   -  -   -  -
3754   54 154 254 354 154 54 254 54   -  -
3755   56 156 256 356 156 56   -  -   -  -
3756   58 158 258 358 158 58   -  -   -  -
3757   60 160 260 360 160 60 260 60 360 60
3758   62 162 262 362 162 62   -  -   -  -
3759   64 164 264 364 164 64   -  -   -  -
3760   66 166 266 366 166 66 266 66   -  -
3761   68 168 268 368 168 68   -  -   -  -
3762   70 170 270 370 170 70   -  - 370 70
3763   72 172 272 372 172 72 272 72   -  -
3764   74 174 274 374 174 74   -  -   -  -
3765   76 176 276 376 176 76   -  -   -  -
3766   78 178 278 378 178 78 278 78   -  -
3767   80 180 280 380 180 80   -  - 380 80
3768   82 182 282 382 182 82   -  -   -  -
3769   84 184 284 384 184 84 284 84   -  -
3770   86 186 286 386 186 86   -  -   -  -
3771   88 188 288 388 188 88   -  -   -  -
3772   90 190 290 390 190 90 290 90 390 90
3773   92 192 292 392 192 92   -  -   -  -
3774   94 194 294 394 194 94   -  -   -  -
3775    -   -   -   -   -  -   -  - 300  0
3777 do_execsql_test joinD-149 {
3778   SELECT t1.*, t2.*, t3.*, t4.*
3779   FROM t1 INNER JOIN t2 ON t2.x>0
3780   LEFT JOIN t3 ON t3.y>0
3781   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
3782   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
3783   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3784 } {
3785    6 106 206 306 106  6 206  6   -  -
3786   12 112 212 312 112 12 212 12   -  -
3787   18 118 218 318 118 18 218 18   -  -
3788   24 124 224 324 124 24 224 24   -  -
3789   30 130 230 330 130 30 230 30 330 30
3790   36 136 236 336 136 36 236 36   -  -
3791   42 142 242 342 142 42 242 42   -  -
3792   48 148 248 348 148 48 248 48   -  -
3793   54 154 254 354 154 54 254 54   -  -
3794   60 160 260 360 160 60 260 60 360 60
3795   66 166 266 366 166 66 266 66   -  -
3796   72 172 272 372 172 72 272 72   -  -
3797   78 178 278 378 178 78 278 78   -  -
3798   84 184 284 384 184 84 284 84   -  -
3799   90 190 290 390 190 90 290 90 390 90
3800    -   -   -   -   -  -   -  - 300  0
3802 do_execsql_test joinD-150 {
3803   SELECT t1.*, t2.*, t3.*, t4.*
3804   FROM t1 INNER JOIN t2 ON t2.x>0
3805   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
3806   FULL JOIN t4 ON t4.z>0
3807   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
3808   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3809 } {
3810   10 110 210 310 110 10   -  - 310 10
3811   20 120 220 320 120 20   -  - 320 20
3812   30 130 230 330 130 30 230 30 330 30
3813   40 140 240 340 140 40   -  - 340 40
3814   50 150 250 350 150 50   -  - 350 50
3815   60 160 260 360 160 60 260 60 360 60
3816   70 170 270 370 170 70   -  - 370 70
3817   80 180 280 380 180 80   -  - 380 80
3818   90 190 290 390 190 90 290 90 390 90
3820 do_execsql_test joinD-151 {
3821   SELECT t1.*, t2.*, t3.*, t4.*
3822   FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
3823   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
3824   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
3825   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3826 } {
3827    2 102 202 302 102  2   -  -   -  -
3828    4 104 204 304 104  4   -  -   -  -
3829    6 106 206 306 106  6 206  6   -  -
3830    8 108 208 308 108  8   -  -   -  -
3831   10 110 210 310 110 10   -  - 310 10
3832   12 112 212 312 112 12 212 12   -  -
3833   14 114 214 314 114 14   -  -   -  -
3834   16 116 216 316 116 16   -  -   -  -
3835   18 118 218 318 118 18 218 18   -  -
3836   20 120 220 320 120 20   -  - 320 20
3837   22 122 222 322 122 22   -  -   -  -
3838   24 124 224 324 124 24 224 24   -  -
3839   26 126 226 326 126 26   -  -   -  -
3840   28 128 228 328 128 28   -  -   -  -
3841   30 130 230 330 130 30 230 30 330 30
3842   32 132 232 332 132 32   -  -   -  -
3843   34 134 234 334 134 34   -  -   -  -
3844   36 136 236 336 136 36 236 36   -  -
3845   38 138 238 338 138 38   -  -   -  -
3846   40 140 240 340 140 40   -  - 340 40
3847   42 142 242 342 142 42 242 42   -  -
3848   44 144 244 344 144 44   -  -   -  -
3849   46 146 246 346 146 46   -  -   -  -
3850   48 148 248 348 148 48 248 48   -  -
3851   50 150 250 350 150 50   -  - 350 50
3852   52 152 252 352 152 52   -  -   -  -
3853   54 154 254 354 154 54 254 54   -  -
3854   56 156 256 356 156 56   -  -   -  -
3855   58 158 258 358 158 58   -  -   -  -
3856   60 160 260 360 160 60 260 60 360 60
3857   62 162 262 362 162 62   -  -   -  -
3858   64 164 264 364 164 64   -  -   -  -
3859   66 166 266 366 166 66 266 66   -  -
3860   68 168 268 368 168 68   -  -   -  -
3861   70 170 270 370 170 70   -  - 370 70
3862   72 172 272 372 172 72 272 72   -  -
3863   74 174 274 374 174 74   -  -   -  -
3864   76 176 276 376 176 76   -  -   -  -
3865   78 178 278 378 178 78 278 78   -  -
3866   80 180 280 380 180 80   -  - 380 80
3867   82 182 282 382 182 82   -  -   -  -
3868   84 184 284 384 184 84 284 84   -  -
3869   86 186 286 386 186 86   -  -   -  -
3870   88 188 288 388 188 88   -  -   -  -
3871   90 190 290 390 190 90 290 90 390 90
3872   92 192 292 392 192 92   -  -   -  -
3873   94 194 294 394 194 94   -  -   -  -
3874    -   -   -   -   -  -   -  - 300  0
3875    -   -   -   -   -  -   -  - 305  5
3876    -   -   -   -   -  -   -  - 315 15
3877    -   -   -   -   -  -   -  - 325 25
3878    -   -   -   -   -  -   -  - 335 35
3879    -   -   -   -   -  -   -  - 345 45
3880    -   -   -   -   -  -   -  - 355 55
3881    -   -   -   -   -  -   -  - 365 65
3882    -   -   -   -   -  -   -  - 375 75
3883    -   -   -   -   -  -   -  - 385 85
3884    -   -   -   -   -  -   -  - 395 95
3886 do_execsql_test joinD-152 {
3887   SELECT t1.*, t2.*, t3.*, t4.*
3888   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
3889   LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
3890   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
3891   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3892 } {
3893    2 102 202 302 102  2   -  -   -  -
3894    4 104 204 304 104  4   -  -   -  -
3895    6 106 206 306 106  6 206  6   -  -
3896    8 108 208 308 108  8   -  -   -  -
3897   10 110 210 310 110 10   -  - 310 10
3898   12 112 212 312 112 12 212 12   -  -
3899   14 114 214 314 114 14   -  -   -  -
3900   16 116 216 316 116 16   -  -   -  -
3901   18 118 218 318 118 18 218 18   -  -
3902   20 120 220 320 120 20   -  - 320 20
3903   22 122 222 322 122 22   -  -   -  -
3904   24 124 224 324 124 24 224 24   -  -
3905   26 126 226 326 126 26   -  -   -  -
3906   28 128 228 328 128 28   -  -   -  -
3907   30 130 230 330 130 30 230 30 330 30
3908   32 132 232 332 132 32   -  -   -  -
3909   34 134 234 334 134 34   -  -   -  -
3910   36 136 236 336 136 36 236 36   -  -
3911   38 138 238 338 138 38   -  -   -  -
3912   40 140 240 340 140 40   -  - 340 40
3913   42 142 242 342 142 42 242 42   -  -
3914   44 144 244 344 144 44   -  -   -  -
3915   46 146 246 346 146 46   -  -   -  -
3916   48 148 248 348 148 48 248 48   -  -
3917   50 150 250 350 150 50   -  - 350 50
3918   52 152 252 352 152 52   -  -   -  -
3919   54 154 254 354 154 54 254 54   -  -
3920   56 156 256 356 156 56   -  -   -  -
3921   58 158 258 358 158 58   -  -   -  -
3922   60 160 260 360 160 60 260 60 360 60
3923   62 162 262 362 162 62   -  -   -  -
3924   64 164 264 364 164 64   -  -   -  -
3925   66 166 266 366 166 66 266 66   -  -
3926   68 168 268 368 168 68   -  -   -  -
3927   70 170 270 370 170 70   -  - 370 70
3928   72 172 272 372 172 72 272 72   -  -
3929   74 174 274 374 174 74   -  -   -  -
3930   76 176 276 376 176 76   -  -   -  -
3931   78 178 278 378 178 78 278 78   -  -
3932   80 180 280 380 180 80   -  - 380 80
3933   82 182 282 382 182 82   -  -   -  -
3934   84 184 284 384 184 84 284 84   -  -
3935   86 186 286 386 186 86   -  -   -  -
3936   88 188 288 388 188 88   -  -   -  -
3937   90 190 290 390 190 90 290 90 390 90
3938   92 192 292 392 192 92   -  -   -  -
3939   94 194 294 394 194 94   -  -   -  -
3940    -   -   -   -   -  -   -  - 300  0
3941    -   -   -   -   -  -   -  - 305  5
3942    -   -   -   -   -  -   -  - 315 15
3943    -   -   -   -   -  -   -  - 325 25
3944    -   -   -   -   -  -   -  - 335 35
3945    -   -   -   -   -  -   -  - 345 45
3946    -   -   -   -   -  -   -  - 355 55
3947    -   -   -   -   -  -   -  - 365 65
3948    -   -   -   -   -  -   -  - 375 75
3949    -   -   -   -   -  -   -  - 385 85
3950    -   -   -   -   -  -   -  - 395 95
3952 do_execsql_test joinD-153 {
3953   SELECT t1.*, t2.*, t3.*, t4.*
3954   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
3955   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
3956   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
3957   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3958 } {
3959   30 130 230 330 130 30 230 30 330 30
3960   60 160 260 360 160 60 260 60 360 60
3961   90 190 290 390 190 90 290 90 390 90
3963 do_execsql_test joinD-154 {
3964   SELECT t1.*, t2.*, t3.*, t4.*
3965   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
3966   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
3967   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
3968   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3969 } {
3970   30 130 230 330 130 30 230 30 330 30
3971   60 160 260 360 160 60 260 60 360 60
3972   90 190 290 390 190 90 290 90 390 90
3974 do_execsql_test joinD-155 {
3975   SELECT t1.*, t2.*, t3.*, t4.*
3976   FROM t1 INNER JOIN t2 ON t1.b=t2.b
3977   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
3978   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
3979   WHERE t2.x>0
3980   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3981 } {
3982   30 130 230 330 130 30 230 30 330 30
3983   60 160 260 360 160 60 260 60 360 60
3984   90 190 290 390 190 90 290 90 390 90
3986 do_execsql_test joinD-156 {
3987   SELECT t1.*, t2.*, t3.*, t4.*
3988   FROM t1 INNER JOIN t2 ON t1.b=t2.b
3989   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
3990   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
3991   WHERE (t2.x>0 OR t2.x IS NULL)
3992   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
3993 } {
3994   30 130 230 330 130 30 230 30 330 30
3995   60 160 260 360 160 60 260 60 360 60
3996   90 190 290 390 190 90 290 90 390 90
3998 do_execsql_test joinD-157 {
3999   SELECT t1.*, t2.*, t3.*, t4.*
4000   FROM t1 INNER JOIN t2 ON true
4001   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4002   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
4003   WHERE t1.b=t2.b AND t2.x>0
4004   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4005 } {
4006   30 130 230 330 130 30 230 30 330 30
4007   60 160 260 360 160 60 260 60 360 60
4008   90 190 290 390 190 90 290 90 390 90
4010 do_execsql_test joinD-158 {
4011   SELECT t1.*, t2.*, t3.*, t4.*
4012   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4013   RIGHT JOIN t3 ON t1.c=t3.c
4014   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
4015   WHERE t3.y>0
4016   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4017 } {
4018   30 130 230 330 130 30 230 30 330 30
4019   60 160 260 360 160 60 260 60 360 60
4020   90 190 290 390 190 90 290 90 390 90
4022 do_execsql_test joinD-159 {
4023   SELECT t1.*, t2.*, t3.*, t4.*
4024   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4025   RIGHT JOIN t3 ON t1.c=t3.c
4026   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
4027   WHERE t3.y>0 OR t3.y IS NULL
4028   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4029 } {
4030   30 130 230 330 130 30 230 30 330 30
4031   60 160 260 360 160 60 260 60 360 60
4032   90 190 290 390 190 90 290 90 390 90
4034 do_execsql_test joinD-160 {
4035   SELECT t1.*, t2.*, t3.*, t4.*
4036   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4037   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4038   INNER JOIN t4 ON t1.d=t4.d
4039   WHERE t4.z>0
4040   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4041 } {
4042   30 130 230 330 130 30 230 30 330 30
4043   60 160 260 360 160 60 260 60 360 60
4044   90 190 290 390 190 90 290 90 390 90
4046 do_execsql_test joinD-161 {
4047   SELECT t1.*, t2.*, t3.*, t4.*
4048   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4049   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4050   INNER JOIN t4 ON t1.d=t4.d
4051   WHERE t4.z IS NULL OR t4.z>0
4052   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4053 } {
4054   30 130 230 330 130 30 230 30 330 30
4055   60 160 260 360 160 60 260 60 360 60
4056   90 190 290 390 190 90 290 90 390 90
4058 do_execsql_test joinD-162 {
4059   SELECT t1.*, t2.*, t3.*, t4.*
4060   FROM t1 INNER JOIN t2 ON t1.b=t2.b
4061   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4062   INNER JOIN t4 ON t1.d=t4.d
4063   WHERE t2.x>0 AND t4.z>0
4064   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4065 } {
4066   30 130 230 330 130 30 230 30 330 30
4067   60 160 260 360 160 60 260 60 360 60
4068   90 190 290 390 190 90 290 90 390 90
4070 do_execsql_test joinD-163 {
4071   SELECT t1.*, t2.*, t3.*, t4.*
4072   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4073   RIGHT JOIN t3 ON t1.c=t3.c
4074   INNER JOIN t4 ON t1.d=t4.d
4075   WHERE t4.z>0 AND t3.y>0
4076   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4077 } {
4078   30 130 230 330 130 30 230 30 330 30
4079   60 160 260 360 160 60 260 60 360 60
4080   90 190 290 390 190 90 290 90 390 90
4082 do_execsql_test joinD-164 {
4083   SELECT t1.*, t2.*, t3.*, t4.*
4084   FROM t1 INNER JOIN t2 ON t1.b=t2.b
4085   RIGHT JOIN t3 ON t1.c=t3.c
4086   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
4087   WHERE t2.x>0 AND t3.y>0
4088   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4089 } {
4090   30 130 230 330 130 30 230 30 330 30
4091   60 160 260 360 160 60 260 60 360 60
4092   90 190 290 390 190 90 290 90 390 90
4094 do_execsql_test joinD-165 {
4095   SELECT t1.*, t2.*, t3.*, t4.*
4096   FROM t1 INNER JOIN t2 ON t1.b=t2.b
4097   RIGHT JOIN t3 ON t1.c=t3.c
4098   INNER JOIN t4 ON t1.d=t4.d
4099   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
4100   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4101 } {
4102   30 130 230 330 130 30 230 30 330 30
4103   60 160 260 360 160 60 260 60 360 60
4104   90 190 290 390 190 90 290 90 390 90
4106 do_execsql_test joinD-166 {
4107   SELECT t1.*, t2.*, t3.*, t4.*
4108   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
4109   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
4110   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
4111   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4112 } {
4113   30 130 230 330 130 30 230 30 330 30
4114   60 160 260 360 160 60 260 60 360 60
4115   90 190 290 390 190 90 290 90 390 90
4117 do_execsql_test joinD-167 {
4118   SELECT t1.*, t2.*, t3.*, t4.*
4119   FROM t1 INNER JOIN t2 ON t2.x>0
4120   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
4121   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
4122   WHERE t1.b IS NOT DISTINCT FROM t2.b
4123   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4124 } {
4125   30 130 230 330 130 30 230 30 330 30
4126   60 160 260 360 160 60 260 60 360 60
4127   90 190 290 390 190 90 290 90 390 90
4129 do_execsql_test joinD-168 {
4130   SELECT t1.*, t2.*, t3.*, t4.*
4131   FROM t1 INNER JOIN t2 ON t2.x>0
4132   RIGHT JOIN t3 ON t3.y>0
4133   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
4134   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
4135   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4136 } {
4137   30 130 230 330 130 30 230 30 330 30
4138   60 160 260 360 160 60 260 60 360 60
4139   90 190 290 390 190 90 290 90 390 90
4141 do_execsql_test joinD-169 {
4142   SELECT t1.*, t2.*, t3.*, t4.*
4143   FROM t1 INNER JOIN t2 ON t2.x>0
4144   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
4145   INNER JOIN t4 ON t4.z>0
4146   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
4147   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4148 } {
4149   30 130 230 330 130 30 230 30 330 30
4150   60 160 260 360 160 60 260 60 360 60
4151   90 190 290 390 190 90 290 90 390 90
4153 do_execsql_test joinD-170 {
4154   SELECT t1.*, t2.*, t3.*, t4.*
4155   FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
4156   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4157   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
4158   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4159 } {
4160   30 130 230 330 130 30 230 30 330 30
4161   60 160 260 360 160 60 260 60 360 60
4162   90 190 290 390 190 90 290 90 390 90
4164 do_execsql_test joinD-171 {
4165   SELECT t1.*, t2.*, t3.*, t4.*
4166   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4167   RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
4168   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
4169   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4170 } {
4171   30 130 230 330 130 30 230 30 330 30
4172   60 160 260 360 160 60 260 60 360 60
4173   90 190 290 390 190 90 290 90 390 90
4175 do_execsql_test joinD-172 {
4176   SELECT t1.*, t2.*, t3.*, t4.*
4177   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4178   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4179   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
4180   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4181 } {
4182    6 106 206 306 106  6 206  6   -  -
4183   12 112 212 312 112 12 212 12   -  -
4184   18 118 218 318 118 18 218 18   -  -
4185   24 124 224 324 124 24 224 24   -  -
4186   30 130 230 330 130 30 230 30 330 30
4187   36 136 236 336 136 36 236 36   -  -
4188   42 142 242 342 142 42 242 42   -  -
4189   48 148 248 348 148 48 248 48   -  -
4190   54 154 254 354 154 54 254 54   -  -
4191   60 160 260 360 160 60 260 60 360 60
4192   66 166 266 366 166 66 266 66   -  -
4193   72 172 272 372 172 72 272 72   -  -
4194   78 178 278 378 178 78 278 78   -  -
4195   84 184 284 384 184 84 284 84   -  -
4196   90 190 290 390 190 90 290 90 390 90
4197    -   -   -   -   -  - 200  0   -  -
4198    -   -   -   -   -  - 203  3   -  -
4199    -   -   -   -   -  - 209  9   -  -
4200    -   -   -   -   -  - 215 15   -  -
4201    -   -   -   -   -  - 221 21   -  -
4202    -   -   -   -   -  - 227 27   -  -
4203    -   -   -   -   -  - 233 33   -  -
4204    -   -   -   -   -  - 239 39   -  -
4205    -   -   -   -   -  - 245 45   -  -
4206    -   -   -   -   -  - 251 51   -  -
4207    -   -   -   -   -  - 257 57   -  -
4208    -   -   -   -   -  - 263 63   -  -
4209    -   -   -   -   -  - 269 69   -  -
4210    -   -   -   -   -  - 275 75   -  -
4211    -   -   -   -   -  - 281 81   -  -
4212    -   -   -   -   -  - 287 87   -  -
4213    -   -   -   -   -  - 293 93   -  -
4215 do_execsql_test joinD-173 {
4216   SELECT t1.*, t2.*, t3.*, t4.*
4217   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
4218   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4219   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
4220   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4221 } {
4222    6 106 206 306 106  6 206  6   -  -
4223   12 112 212 312 112 12 212 12   -  -
4224   18 118 218 318 118 18 218 18   -  -
4225   24 124 224 324 124 24 224 24   -  -
4226   30 130 230 330 130 30 230 30 330 30
4227   36 136 236 336 136 36 236 36   -  -
4228   42 142 242 342 142 42 242 42   -  -
4229   48 148 248 348 148 48 248 48   -  -
4230   54 154 254 354 154 54 254 54   -  -
4231   60 160 260 360 160 60 260 60 360 60
4232   66 166 266 366 166 66 266 66   -  -
4233   72 172 272 372 172 72 272 72   -  -
4234   78 178 278 378 178 78 278 78   -  -
4235   84 184 284 384 184 84 284 84   -  -
4236   90 190 290 390 190 90 290 90 390 90
4237    -   -   -   -   -  - 200  0   -  -
4238    -   -   -   -   -  - 203  3   -  -
4239    -   -   -   -   -  - 209  9   -  -
4240    -   -   -   -   -  - 215 15   -  -
4241    -   -   -   -   -  - 221 21   -  -
4242    -   -   -   -   -  - 227 27   -  -
4243    -   -   -   -   -  - 233 33   -  -
4244    -   -   -   -   -  - 239 39   -  -
4245    -   -   -   -   -  - 245 45   -  -
4246    -   -   -   -   -  - 251 51   -  -
4247    -   -   -   -   -  - 257 57   -  -
4248    -   -   -   -   -  - 263 63   -  -
4249    -   -   -   -   -  - 269 69   -  -
4250    -   -   -   -   -  - 275 75   -  -
4251    -   -   -   -   -  - 281 81   -  -
4252    -   -   -   -   -  - 287 87   -  -
4253    -   -   -   -   -  - 293 93   -  -
4255 do_execsql_test joinD-174 {
4256   SELECT t1.*, t2.*, t3.*, t4.*
4257   FROM t1 INNER JOIN t2 ON t1.b=t2.b
4258   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4259   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
4260   WHERE t2.x>0
4261   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4262 } {
4263    6 106 206 306 106  6 206  6   -  -
4264   12 112 212 312 112 12 212 12   -  -
4265   18 118 218 318 118 18 218 18   -  -
4266   24 124 224 324 124 24 224 24   -  -
4267   30 130 230 330 130 30 230 30 330 30
4268   36 136 236 336 136 36 236 36   -  -
4269   42 142 242 342 142 42 242 42   -  -
4270   48 148 248 348 148 48 248 48   -  -
4271   54 154 254 354 154 54 254 54   -  -
4272   60 160 260 360 160 60 260 60 360 60
4273   66 166 266 366 166 66 266 66   -  -
4274   72 172 272 372 172 72 272 72   -  -
4275   78 178 278 378 178 78 278 78   -  -
4276   84 184 284 384 184 84 284 84   -  -
4277   90 190 290 390 190 90 290 90 390 90
4279 do_execsql_test joinD-175 {
4280   SELECT t1.*, t2.*, t3.*, t4.*
4281   FROM t1 INNER JOIN t2 ON t1.b=t2.b
4282   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4283   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
4284   WHERE (t2.x>0 OR t2.x IS NULL)
4285   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4286 } {
4287    6 106 206 306 106  6 206  6   -  -
4288   12 112 212 312 112 12 212 12   -  -
4289   18 118 218 318 118 18 218 18   -  -
4290   24 124 224 324 124 24 224 24   -  -
4291   30 130 230 330 130 30 230 30 330 30
4292   36 136 236 336 136 36 236 36   -  -
4293   42 142 242 342 142 42 242 42   -  -
4294   48 148 248 348 148 48 248 48   -  -
4295   54 154 254 354 154 54 254 54   -  -
4296   60 160 260 360 160 60 260 60 360 60
4297   66 166 266 366 166 66 266 66   -  -
4298   72 172 272 372 172 72 272 72   -  -
4299   78 178 278 378 178 78 278 78   -  -
4300   84 184 284 384 184 84 284 84   -  -
4301   90 190 290 390 190 90 290 90 390 90
4302    -   -   -   -   -  - 200  0   -  -
4303    -   -   -   -   -  - 203  3   -  -
4304    -   -   -   -   -  - 209  9   -  -
4305    -   -   -   -   -  - 215 15   -  -
4306    -   -   -   -   -  - 221 21   -  -
4307    -   -   -   -   -  - 227 27   -  -
4308    -   -   -   -   -  - 233 33   -  -
4309    -   -   -   -   -  - 239 39   -  -
4310    -   -   -   -   -  - 245 45   -  -
4311    -   -   -   -   -  - 251 51   -  -
4312    -   -   -   -   -  - 257 57   -  -
4313    -   -   -   -   -  - 263 63   -  -
4314    -   -   -   -   -  - 269 69   -  -
4315    -   -   -   -   -  - 275 75   -  -
4316    -   -   -   -   -  - 281 81   -  -
4317    -   -   -   -   -  - 287 87   -  -
4318    -   -   -   -   -  - 293 93   -  -
4320 do_execsql_test joinD-176 {
4321   SELECT t1.*, t2.*, t3.*, t4.*
4322   FROM t1 INNER JOIN t2 ON true
4323   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4324   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
4325   WHERE t1.b=t2.b AND t2.x>0
4326   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4327 } {
4328    6 106 206 306 106  6 206  6   -  -
4329   12 112 212 312 112 12 212 12   -  -
4330   18 118 218 318 118 18 218 18   -  -
4331   24 124 224 324 124 24 224 24   -  -
4332   30 130 230 330 130 30 230 30 330 30
4333   36 136 236 336 136 36 236 36   -  -
4334   42 142 242 342 142 42 242 42   -  -
4335   48 148 248 348 148 48 248 48   -  -
4336   54 154 254 354 154 54 254 54   -  -
4337   60 160 260 360 160 60 260 60 360 60
4338   66 166 266 366 166 66 266 66   -  -
4339   72 172 272 372 172 72 272 72   -  -
4340   78 178 278 378 178 78 278 78   -  -
4341   84 184 284 384 184 84 284 84   -  -
4342   90 190 290 390 190 90 290 90 390 90
4344 do_execsql_test joinD-177 {
4345   SELECT t1.*, t2.*, t3.*, t4.*
4346   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4347   RIGHT JOIN t3 ON t1.c=t3.c
4348   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
4349   WHERE t3.y>0
4350   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4351 } {
4352    6 106 206 306 106  6 206  6   -  -
4353   12 112 212 312 112 12 212 12   -  -
4354   18 118 218 318 118 18 218 18   -  -
4355   24 124 224 324 124 24 224 24   -  -
4356   30 130 230 330 130 30 230 30 330 30
4357   36 136 236 336 136 36 236 36   -  -
4358   42 142 242 342 142 42 242 42   -  -
4359   48 148 248 348 148 48 248 48   -  -
4360   54 154 254 354 154 54 254 54   -  -
4361   60 160 260 360 160 60 260 60 360 60
4362   66 166 266 366 166 66 266 66   -  -
4363   72 172 272 372 172 72 272 72   -  -
4364   78 178 278 378 178 78 278 78   -  -
4365   84 184 284 384 184 84 284 84   -  -
4366   90 190 290 390 190 90 290 90 390 90
4367    -   -   -   -   -  - 203  3   -  -
4368    -   -   -   -   -  - 209  9   -  -
4369    -   -   -   -   -  - 215 15   -  -
4370    -   -   -   -   -  - 221 21   -  -
4371    -   -   -   -   -  - 227 27   -  -
4372    -   -   -   -   -  - 233 33   -  -
4373    -   -   -   -   -  - 239 39   -  -
4374    -   -   -   -   -  - 245 45   -  -
4375    -   -   -   -   -  - 251 51   -  -
4376    -   -   -   -   -  - 257 57   -  -
4377    -   -   -   -   -  - 263 63   -  -
4378    -   -   -   -   -  - 269 69   -  -
4379    -   -   -   -   -  - 275 75   -  -
4380    -   -   -   -   -  - 281 81   -  -
4381    -   -   -   -   -  - 287 87   -  -
4382    -   -   -   -   -  - 293 93   -  -
4384 do_execsql_test joinD-178 {
4385   SELECT t1.*, t2.*, t3.*, t4.*
4386   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4387   RIGHT JOIN t3 ON t1.c=t3.c
4388   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
4389   WHERE t3.y>0 OR t3.y IS NULL
4390   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4391 } {
4392    6 106 206 306 106  6 206  6   -  -
4393   12 112 212 312 112 12 212 12   -  -
4394   18 118 218 318 118 18 218 18   -  -
4395   24 124 224 324 124 24 224 24   -  -
4396   30 130 230 330 130 30 230 30 330 30
4397   36 136 236 336 136 36 236 36   -  -
4398   42 142 242 342 142 42 242 42   -  -
4399   48 148 248 348 148 48 248 48   -  -
4400   54 154 254 354 154 54 254 54   -  -
4401   60 160 260 360 160 60 260 60 360 60
4402   66 166 266 366 166 66 266 66   -  -
4403   72 172 272 372 172 72 272 72   -  -
4404   78 178 278 378 178 78 278 78   -  -
4405   84 184 284 384 184 84 284 84   -  -
4406   90 190 290 390 190 90 290 90 390 90
4407    -   -   -   -   -  - 203  3   -  -
4408    -   -   -   -   -  - 209  9   -  -
4409    -   -   -   -   -  - 215 15   -  -
4410    -   -   -   -   -  - 221 21   -  -
4411    -   -   -   -   -  - 227 27   -  -
4412    -   -   -   -   -  - 233 33   -  -
4413    -   -   -   -   -  - 239 39   -  -
4414    -   -   -   -   -  - 245 45   -  -
4415    -   -   -   -   -  - 251 51   -  -
4416    -   -   -   -   -  - 257 57   -  -
4417    -   -   -   -   -  - 263 63   -  -
4418    -   -   -   -   -  - 269 69   -  -
4419    -   -   -   -   -  - 275 75   -  -
4420    -   -   -   -   -  - 281 81   -  -
4421    -   -   -   -   -  - 287 87   -  -
4422    -   -   -   -   -  - 293 93   -  -
4424 do_execsql_test joinD-179 {
4425   SELECT t1.*, t2.*, t3.*, t4.*
4426   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4427   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4428   LEFT JOIN t4 ON t1.d=t4.d
4429   WHERE t4.z>0
4430   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4431 } {
4432   30 130 230 330 130 30 230 30 330 30
4433   60 160 260 360 160 60 260 60 360 60
4434   90 190 290 390 190 90 290 90 390 90
4436 do_execsql_test joinD-180 {
4437   SELECT t1.*, t2.*, t3.*, t4.*
4438   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4439   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4440   LEFT JOIN t4 ON t1.d=t4.d
4441   WHERE t4.z IS NULL OR t4.z>0
4442   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4443 } {
4444    6 106 206 306 106  6 206  6   -  -
4445   12 112 212 312 112 12 212 12   -  -
4446   18 118 218 318 118 18 218 18   -  -
4447   24 124 224 324 124 24 224 24   -  -
4448   30 130 230 330 130 30 230 30 330 30
4449   36 136 236 336 136 36 236 36   -  -
4450   42 142 242 342 142 42 242 42   -  -
4451   48 148 248 348 148 48 248 48   -  -
4452   54 154 254 354 154 54 254 54   -  -
4453   60 160 260 360 160 60 260 60 360 60
4454   66 166 266 366 166 66 266 66   -  -
4455   72 172 272 372 172 72 272 72   -  -
4456   78 178 278 378 178 78 278 78   -  -
4457   84 184 284 384 184 84 284 84   -  -
4458   90 190 290 390 190 90 290 90 390 90
4459    -   -   -   -   -  - 200  0   -  -
4460    -   -   -   -   -  - 203  3   -  -
4461    -   -   -   -   -  - 209  9   -  -
4462    -   -   -   -   -  - 215 15   -  -
4463    -   -   -   -   -  - 221 21   -  -
4464    -   -   -   -   -  - 227 27   -  -
4465    -   -   -   -   -  - 233 33   -  -
4466    -   -   -   -   -  - 239 39   -  -
4467    -   -   -   -   -  - 245 45   -  -
4468    -   -   -   -   -  - 251 51   -  -
4469    -   -   -   -   -  - 257 57   -  -
4470    -   -   -   -   -  - 263 63   -  -
4471    -   -   -   -   -  - 269 69   -  -
4472    -   -   -   -   -  - 275 75   -  -
4473    -   -   -   -   -  - 281 81   -  -
4474    -   -   -   -   -  - 287 87   -  -
4475    -   -   -   -   -  - 293 93   -  -
4477 do_execsql_test joinD-181 {
4478   SELECT t1.*, t2.*, t3.*, t4.*
4479   FROM t1 INNER JOIN t2 ON t1.b=t2.b
4480   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4481   LEFT JOIN t4 ON t1.d=t4.d
4482   WHERE t2.x>0 AND t4.z>0
4483   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4484 } {
4485   30 130 230 330 130 30 230 30 330 30
4486   60 160 260 360 160 60 260 60 360 60
4487   90 190 290 390 190 90 290 90 390 90
4489 do_execsql_test joinD-182 {
4490   SELECT t1.*, t2.*, t3.*, t4.*
4491   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4492   RIGHT JOIN t3 ON t1.c=t3.c
4493   LEFT JOIN t4 ON t1.d=t4.d
4494   WHERE t4.z>0 AND t3.y>0
4495   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4496 } {
4497   30 130 230 330 130 30 230 30 330 30
4498   60 160 260 360 160 60 260 60 360 60
4499   90 190 290 390 190 90 290 90 390 90
4501 do_execsql_test joinD-183 {
4502   SELECT t1.*, t2.*, t3.*, t4.*
4503   FROM t1 INNER JOIN t2 ON t1.b=t2.b
4504   RIGHT JOIN t3 ON t1.c=t3.c
4505   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
4506   WHERE t2.x>0 AND t3.y>0
4507   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4508 } {
4509    6 106 206 306 106  6 206  6   -  -
4510   12 112 212 312 112 12 212 12   -  -
4511   18 118 218 318 118 18 218 18   -  -
4512   24 124 224 324 124 24 224 24   -  -
4513   30 130 230 330 130 30 230 30 330 30
4514   36 136 236 336 136 36 236 36   -  -
4515   42 142 242 342 142 42 242 42   -  -
4516   48 148 248 348 148 48 248 48   -  -
4517   54 154 254 354 154 54 254 54   -  -
4518   60 160 260 360 160 60 260 60 360 60
4519   66 166 266 366 166 66 266 66   -  -
4520   72 172 272 372 172 72 272 72   -  -
4521   78 178 278 378 178 78 278 78   -  -
4522   84 184 284 384 184 84 284 84   -  -
4523   90 190 290 390 190 90 290 90 390 90
4525 do_execsql_test joinD-184 {
4526   SELECT t1.*, t2.*, t3.*, t4.*
4527   FROM t1 INNER JOIN t2 ON t1.b=t2.b
4528   RIGHT JOIN t3 ON t1.c=t3.c
4529   LEFT JOIN t4 ON t1.d=t4.d
4530   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
4531   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4532 } {
4533   30 130 230 330 130 30 230 30 330 30
4534   60 160 260 360 160 60 260 60 360 60
4535   90 190 290 390 190 90 290 90 390 90
4537 do_execsql_test joinD-185 {
4538   SELECT t1.*, t2.*, t3.*, t4.*
4539   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
4540   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
4541   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
4542   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4543 } {
4544    6 106 206 306 106  6 206  6   -  -
4545   12 112 212 312 112 12 212 12   -  -
4546   18 118 218 318 118 18 218 18   -  -
4547   24 124 224 324 124 24 224 24   -  -
4548   30 130 230 330 130 30 230 30 330 30
4549   36 136 236 336 136 36 236 36   -  -
4550   42 142 242 342 142 42 242 42   -  -
4551   48 148 248 348 148 48 248 48   -  -
4552   54 154 254 354 154 54 254 54   -  -
4553   60 160 260 360 160 60 260 60 360 60
4554   66 166 266 366 166 66 266 66   -  -
4555   72 172 272 372 172 72 272 72   -  -
4556   78 178 278 378 178 78 278 78   -  -
4557   84 184 284 384 184 84 284 84   -  -
4558   90 190 290 390 190 90 290 90 390 90
4559    -   -   -   -   -  - 200  0   -  -
4560    -   -   -   -   -  - 203  3   -  -
4561    -   -   -   -   -  - 209  9   -  -
4562    -   -   -   -   -  - 215 15   -  -
4563    -   -   -   -   -  - 221 21   -  -
4564    -   -   -   -   -  - 227 27   -  -
4565    -   -   -   -   -  - 233 33   -  -
4566    -   -   -   -   -  - 239 39   -  -
4567    -   -   -   -   -  - 245 45   -  -
4568    -   -   -   -   -  - 251 51   -  -
4569    -   -   -   -   -  - 257 57   -  -
4570    -   -   -   -   -  - 263 63   -  -
4571    -   -   -   -   -  - 269 69   -  -
4572    -   -   -   -   -  - 275 75   -  -
4573    -   -   -   -   -  - 281 81   -  -
4574    -   -   -   -   -  - 287 87   -  -
4575    -   -   -   -   -  - 293 93   -  -
4577 do_execsql_test joinD-186 {
4578   SELECT t1.*, t2.*, t3.*, t4.*
4579   FROM t1 INNER JOIN t2 ON t2.x>0
4580   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
4581   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
4582   WHERE t1.b IS NOT DISTINCT FROM t2.b
4583   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4584 } {
4585    6 106 206 306 106  6 206  6   -  -
4586   12 112 212 312 112 12 212 12   -  -
4587   18 118 218 318 118 18 218 18   -  -
4588   24 124 224 324 124 24 224 24   -  -
4589   30 130 230 330 130 30 230 30 330 30
4590   36 136 236 336 136 36 236 36   -  -
4591   42 142 242 342 142 42 242 42   -  -
4592   48 148 248 348 148 48 248 48   -  -
4593   54 154 254 354 154 54 254 54   -  -
4594   60 160 260 360 160 60 260 60 360 60
4595   66 166 266 366 166 66 266 66   -  -
4596   72 172 272 372 172 72 272 72   -  -
4597   78 178 278 378 178 78 278 78   -  -
4598   84 184 284 384 184 84 284 84   -  -
4599   90 190 290 390 190 90 290 90 390 90
4600    -   -   -   -   -  - 200  0   -  -
4602 do_execsql_test joinD-187 {
4603   SELECT t1.*, t2.*, t3.*, t4.*
4604   FROM t1 INNER JOIN t2 ON t2.x>0
4605   RIGHT JOIN t3 ON t3.y>0
4606   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
4607   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
4608   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4609 } {
4610    6 106 206 306 106  6 206  6   -  -
4611   12 112 212 312 112 12 212 12   -  -
4612   18 118 218 318 118 18 218 18   -  -
4613   24 124 224 324 124 24 224 24   -  -
4614   30 130 230 330 130 30 230 30 330 30
4615   36 136 236 336 136 36 236 36   -  -
4616   42 142 242 342 142 42 242 42   -  -
4617   48 148 248 348 148 48 248 48   -  -
4618   54 154 254 354 154 54 254 54   -  -
4619   60 160 260 360 160 60 260 60 360 60
4620   66 166 266 366 166 66 266 66   -  -
4621   72 172 272 372 172 72 272 72   -  -
4622   78 178 278 378 178 78 278 78   -  -
4623   84 184 284 384 184 84 284 84   -  -
4624   90 190 290 390 190 90 290 90 390 90
4626 do_execsql_test joinD-188 {
4627   SELECT t1.*, t2.*, t3.*, t4.*
4628   FROM t1 INNER JOIN t2 ON t2.x>0
4629   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
4630   LEFT JOIN t4 ON t4.z>0
4631   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
4632   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4633 } {
4634   30 130 230 330 130 30 230 30 330 30
4635   60 160 260 360 160 60 260 60 360 60
4636   90 190 290 390 190 90 290 90 390 90
4638 do_execsql_test joinD-189 {
4639   SELECT t1.*, t2.*, t3.*, t4.*
4640   FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
4641   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4642   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
4643   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4644 } {
4645    6 106 206 306 106  6 206  6   -  -
4646   12 112 212 312 112 12 212 12   -  -
4647   18 118 218 318 118 18 218 18   -  -
4648   24 124 224 324 124 24 224 24   -  -
4649   30 130 230 330 130 30 230 30 330 30
4650   36 136 236 336 136 36 236 36   -  -
4651   42 142 242 342 142 42 242 42   -  -
4652   48 148 248 348 148 48 248 48   -  -
4653   54 154 254 354 154 54 254 54   -  -
4654   60 160 260 360 160 60 260 60 360 60
4655   66 166 266 366 166 66 266 66   -  -
4656   72 172 272 372 172 72 272 72   -  -
4657   78 178 278 378 178 78 278 78   -  -
4658   84 184 284 384 184 84 284 84   -  -
4659   90 190 290 390 190 90 290 90 390 90
4660    -   -   -   -   -  - 200  0   -  -
4661    -   -   -   -   -  - 203  3   -  -
4662    -   -   -   -   -  - 209  9   -  -
4663    -   -   -   -   -  - 215 15   -  -
4664    -   -   -   -   -  - 221 21   -  -
4665    -   -   -   -   -  - 227 27   -  -
4666    -   -   -   -   -  - 233 33   -  -
4667    -   -   -   -   -  - 239 39   -  -
4668    -   -   -   -   -  - 245 45   -  -
4669    -   -   -   -   -  - 251 51   -  -
4670    -   -   -   -   -  - 257 57   -  -
4671    -   -   -   -   -  - 263 63   -  -
4672    -   -   -   -   -  - 269 69   -  -
4673    -   -   -   -   -  - 275 75   -  -
4674    -   -   -   -   -  - 281 81   -  -
4675    -   -   -   -   -  - 287 87   -  -
4676    -   -   -   -   -  - 293 93   -  -
4678 do_execsql_test joinD-190 {
4679   SELECT t1.*, t2.*, t3.*, t4.*
4680   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4681   RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
4682   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
4683   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4684 } {
4685    6 106 206 306 106  6 206  6   -  -
4686   12 112 212 312 112 12 212 12   -  -
4687   18 118 218 318 118 18 218 18   -  -
4688   24 124 224 324 124 24 224 24   -  -
4689   30 130 230 330 130 30 230 30 330 30
4690   36 136 236 336 136 36 236 36   -  -
4691   42 142 242 342 142 42 242 42   -  -
4692   48 148 248 348 148 48 248 48   -  -
4693   54 154 254 354 154 54 254 54   -  -
4694   60 160 260 360 160 60 260 60 360 60
4695   66 166 266 366 166 66 266 66   -  -
4696   72 172 272 372 172 72 272 72   -  -
4697   78 178 278 378 178 78 278 78   -  -
4698   84 184 284 384 184 84 284 84   -  -
4699   90 190 290 390 190 90 290 90 390 90
4700    -   -   -   -   -  - 200  0   -  -
4701    -   -   -   -   -  - 203  3   -  -
4702    -   -   -   -   -  - 209  9   -  -
4703    -   -   -   -   -  - 215 15   -  -
4704    -   -   -   -   -  - 221 21   -  -
4705    -   -   -   -   -  - 227 27   -  -
4706    -   -   -   -   -  - 233 33   -  -
4707    -   -   -   -   -  - 239 39   -  -
4708    -   -   -   -   -  - 245 45   -  -
4709    -   -   -   -   -  - 251 51   -  -
4710    -   -   -   -   -  - 257 57   -  -
4711    -   -   -   -   -  - 263 63   -  -
4712    -   -   -   -   -  - 269 69   -  -
4713    -   -   -   -   -  - 275 75   -  -
4714    -   -   -   -   -  - 281 81   -  -
4715    -   -   -   -   -  - 287 87   -  -
4716    -   -   -   -   -  - 293 93   -  -
4718 do_execsql_test joinD-191 {
4719   SELECT t1.*, t2.*, t3.*, t4.*
4720   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4721   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4722   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
4723   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4724 } {
4725   30 130 230 330 130 30 230 30 330 30
4726   60 160 260 360 160 60 260 60 360 60
4727   90 190 290 390 190 90 290 90 390 90
4728    -   -   -   -   -  -   -  - 300  0
4729    -   -   -   -   -  -   -  - 305  5
4730    -   -   -   -   -  -   -  - 310 10
4731    -   -   -   -   -  -   -  - 315 15
4732    -   -   -   -   -  -   -  - 320 20
4733    -   -   -   -   -  -   -  - 325 25
4734    -   -   -   -   -  -   -  - 335 35
4735    -   -   -   -   -  -   -  - 340 40
4736    -   -   -   -   -  -   -  - 345 45
4737    -   -   -   -   -  -   -  - 350 50
4738    -   -   -   -   -  -   -  - 355 55
4739    -   -   -   -   -  -   -  - 365 65
4740    -   -   -   -   -  -   -  - 370 70
4741    -   -   -   -   -  -   -  - 375 75
4742    -   -   -   -   -  -   -  - 380 80
4743    -   -   -   -   -  -   -  - 385 85
4744    -   -   -   -   -  -   -  - 395 95
4746 do_execsql_test joinD-192 {
4747   SELECT t1.*, t2.*, t3.*, t4.*
4748   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
4749   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4750   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
4751   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4752 } {
4753   30 130 230 330 130 30 230 30 330 30
4754   60 160 260 360 160 60 260 60 360 60
4755   90 190 290 390 190 90 290 90 390 90
4756    -   -   -   -   -  -   -  - 300  0
4757    -   -   -   -   -  -   -  - 305  5
4758    -   -   -   -   -  -   -  - 310 10
4759    -   -   -   -   -  -   -  - 315 15
4760    -   -   -   -   -  -   -  - 320 20
4761    -   -   -   -   -  -   -  - 325 25
4762    -   -   -   -   -  -   -  - 335 35
4763    -   -   -   -   -  -   -  - 340 40
4764    -   -   -   -   -  -   -  - 345 45
4765    -   -   -   -   -  -   -  - 350 50
4766    -   -   -   -   -  -   -  - 355 55
4767    -   -   -   -   -  -   -  - 365 65
4768    -   -   -   -   -  -   -  - 370 70
4769    -   -   -   -   -  -   -  - 375 75
4770    -   -   -   -   -  -   -  - 380 80
4771    -   -   -   -   -  -   -  - 385 85
4772    -   -   -   -   -  -   -  - 395 95
4774 do_execsql_test joinD-193 {
4775   SELECT t1.*, t2.*, t3.*, t4.*
4776   FROM t1 INNER JOIN t2 ON t1.b=t2.b
4777   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4778   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
4779   WHERE t2.x>0
4780   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4781 } {
4782   30 130 230 330 130 30 230 30 330 30
4783   60 160 260 360 160 60 260 60 360 60
4784   90 190 290 390 190 90 290 90 390 90
4786 do_execsql_test joinD-194 {
4787   SELECT t1.*, t2.*, t3.*, t4.*
4788   FROM t1 INNER JOIN t2 ON t1.b=t2.b
4789   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4790   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
4791   WHERE (t2.x>0 OR t2.x IS NULL)
4792   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4793 } {
4794   30 130 230 330 130 30 230 30 330 30
4795   60 160 260 360 160 60 260 60 360 60
4796   90 190 290 390 190 90 290 90 390 90
4797    -   -   -   -   -  -   -  - 300  0
4798    -   -   -   -   -  -   -  - 305  5
4799    -   -   -   -   -  -   -  - 310 10
4800    -   -   -   -   -  -   -  - 315 15
4801    -   -   -   -   -  -   -  - 320 20
4802    -   -   -   -   -  -   -  - 325 25
4803    -   -   -   -   -  -   -  - 335 35
4804    -   -   -   -   -  -   -  - 340 40
4805    -   -   -   -   -  -   -  - 345 45
4806    -   -   -   -   -  -   -  - 350 50
4807    -   -   -   -   -  -   -  - 355 55
4808    -   -   -   -   -  -   -  - 365 65
4809    -   -   -   -   -  -   -  - 370 70
4810    -   -   -   -   -  -   -  - 375 75
4811    -   -   -   -   -  -   -  - 380 80
4812    -   -   -   -   -  -   -  - 385 85
4813    -   -   -   -   -  -   -  - 395 95
4815 do_execsql_test joinD-195 {
4816   SELECT t1.*, t2.*, t3.*, t4.*
4817   FROM t1 INNER JOIN t2 ON true
4818   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4819   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
4820   WHERE t1.b=t2.b AND t2.x>0
4821   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4822 } {
4823   30 130 230 330 130 30 230 30 330 30
4824   60 160 260 360 160 60 260 60 360 60
4825   90 190 290 390 190 90 290 90 390 90
4827 do_execsql_test joinD-196 {
4828   SELECT t1.*, t2.*, t3.*, t4.*
4829   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4830   RIGHT JOIN t3 ON t1.c=t3.c
4831   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
4832   WHERE t3.y>0
4833   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4834 } {
4835   30 130 230 330 130 30 230 30 330 30
4836   60 160 260 360 160 60 260 60 360 60
4837   90 190 290 390 190 90 290 90 390 90
4839 do_execsql_test joinD-197 {
4840   SELECT t1.*, t2.*, t3.*, t4.*
4841   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4842   RIGHT JOIN t3 ON t1.c=t3.c
4843   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
4844   WHERE t3.y>0 OR t3.y IS NULL
4845   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4846 } {
4847   30 130 230 330 130 30 230 30 330 30
4848   60 160 260 360 160 60 260 60 360 60
4849   90 190 290 390 190 90 290 90 390 90
4850    -   -   -   -   -  -   -  - 300  0
4851    -   -   -   -   -  -   -  - 305  5
4852    -   -   -   -   -  -   -  - 310 10
4853    -   -   -   -   -  -   -  - 315 15
4854    -   -   -   -   -  -   -  - 320 20
4855    -   -   -   -   -  -   -  - 325 25
4856    -   -   -   -   -  -   -  - 335 35
4857    -   -   -   -   -  -   -  - 340 40
4858    -   -   -   -   -  -   -  - 345 45
4859    -   -   -   -   -  -   -  - 350 50
4860    -   -   -   -   -  -   -  - 355 55
4861    -   -   -   -   -  -   -  - 365 65
4862    -   -   -   -   -  -   -  - 370 70
4863    -   -   -   -   -  -   -  - 375 75
4864    -   -   -   -   -  -   -  - 380 80
4865    -   -   -   -   -  -   -  - 385 85
4866    -   -   -   -   -  -   -  - 395 95
4868 do_execsql_test joinD-198 {
4869   SELECT t1.*, t2.*, t3.*, t4.*
4870   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4871   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4872   RIGHT JOIN t4 ON t1.d=t4.d
4873   WHERE t4.z>0
4874   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4875 } {
4876   30 130 230 330 130 30 230 30 330 30
4877   60 160 260 360 160 60 260 60 360 60
4878   90 190 290 390 190 90 290 90 390 90
4879    -   -   -   -   -  -   -  - 305  5
4880    -   -   -   -   -  -   -  - 310 10
4881    -   -   -   -   -  -   -  - 315 15
4882    -   -   -   -   -  -   -  - 320 20
4883    -   -   -   -   -  -   -  - 325 25
4884    -   -   -   -   -  -   -  - 335 35
4885    -   -   -   -   -  -   -  - 340 40
4886    -   -   -   -   -  -   -  - 345 45
4887    -   -   -   -   -  -   -  - 350 50
4888    -   -   -   -   -  -   -  - 355 55
4889    -   -   -   -   -  -   -  - 365 65
4890    -   -   -   -   -  -   -  - 370 70
4891    -   -   -   -   -  -   -  - 375 75
4892    -   -   -   -   -  -   -  - 380 80
4893    -   -   -   -   -  -   -  - 385 85
4894    -   -   -   -   -  -   -  - 395 95
4896 do_execsql_test joinD-199 {
4897   SELECT t1.*, t2.*, t3.*, t4.*
4898   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4899   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4900   RIGHT JOIN t4 ON t1.d=t4.d
4901   WHERE t4.z IS NULL OR t4.z>0
4902   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4903 } {
4904   30 130 230 330 130 30 230 30 330 30
4905   60 160 260 360 160 60 260 60 360 60
4906   90 190 290 390 190 90 290 90 390 90
4907    -   -   -   -   -  -   -  - 305  5
4908    -   -   -   -   -  -   -  - 310 10
4909    -   -   -   -   -  -   -  - 315 15
4910    -   -   -   -   -  -   -  - 320 20
4911    -   -   -   -   -  -   -  - 325 25
4912    -   -   -   -   -  -   -  - 335 35
4913    -   -   -   -   -  -   -  - 340 40
4914    -   -   -   -   -  -   -  - 345 45
4915    -   -   -   -   -  -   -  - 350 50
4916    -   -   -   -   -  -   -  - 355 55
4917    -   -   -   -   -  -   -  - 365 65
4918    -   -   -   -   -  -   -  - 370 70
4919    -   -   -   -   -  -   -  - 375 75
4920    -   -   -   -   -  -   -  - 380 80
4921    -   -   -   -   -  -   -  - 385 85
4922    -   -   -   -   -  -   -  - 395 95
4924 do_execsql_test joinD-200 {
4925   SELECT t1.*, t2.*, t3.*, t4.*
4926   FROM t1 INNER JOIN t2 ON t1.b=t2.b
4927   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
4928   RIGHT JOIN t4 ON t1.d=t4.d
4929   WHERE t2.x>0 AND t4.z>0
4930   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4931 } {
4932   30 130 230 330 130 30 230 30 330 30
4933   60 160 260 360 160 60 260 60 360 60
4934   90 190 290 390 190 90 290 90 390 90
4936 do_execsql_test joinD-201 {
4937   SELECT t1.*, t2.*, t3.*, t4.*
4938   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
4939   RIGHT JOIN t3 ON t1.c=t3.c
4940   RIGHT JOIN t4 ON t1.d=t4.d
4941   WHERE t4.z>0 AND t3.y>0
4942   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4943 } {
4944   30 130 230 330 130 30 230 30 330 30
4945   60 160 260 360 160 60 260 60 360 60
4946   90 190 290 390 190 90 290 90 390 90
4948 do_execsql_test joinD-202 {
4949   SELECT t1.*, t2.*, t3.*, t4.*
4950   FROM t1 INNER JOIN t2 ON t1.b=t2.b
4951   RIGHT JOIN t3 ON t1.c=t3.c
4952   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
4953   WHERE t2.x>0 AND t3.y>0
4954   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4955 } {
4956   30 130 230 330 130 30 230 30 330 30
4957   60 160 260 360 160 60 260 60 360 60
4958   90 190 290 390 190 90 290 90 390 90
4960 do_execsql_test joinD-203 {
4961   SELECT t1.*, t2.*, t3.*, t4.*
4962   FROM t1 INNER JOIN t2 ON t1.b=t2.b
4963   RIGHT JOIN t3 ON t1.c=t3.c
4964   RIGHT JOIN t4 ON t1.d=t4.d
4965   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
4966   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4967 } {
4968   30 130 230 330 130 30 230 30 330 30
4969   60 160 260 360 160 60 260 60 360 60
4970   90 190 290 390 190 90 290 90 390 90
4972 do_execsql_test joinD-204 {
4973   SELECT t1.*, t2.*, t3.*, t4.*
4974   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
4975   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
4976   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
4977   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
4978 } {
4979   30 130 230 330 130 30 230 30 330 30
4980   60 160 260 360 160 60 260 60 360 60
4981   90 190 290 390 190 90 290 90 390 90
4982    -   -   -   -   -  -   -  - 300  0
4983    -   -   -   -   -  -   -  - 305  5
4984    -   -   -   -   -  -   -  - 310 10
4985    -   -   -   -   -  -   -  - 315 15
4986    -   -   -   -   -  -   -  - 320 20
4987    -   -   -   -   -  -   -  - 325 25
4988    -   -   -   -   -  -   -  - 335 35
4989    -   -   -   -   -  -   -  - 340 40
4990    -   -   -   -   -  -   -  - 345 45
4991    -   -   -   -   -  -   -  - 350 50
4992    -   -   -   -   -  -   -  - 355 55
4993    -   -   -   -   -  -   -  - 365 65
4994    -   -   -   -   -  -   -  - 370 70
4995    -   -   -   -   -  -   -  - 375 75
4996    -   -   -   -   -  -   -  - 380 80
4997    -   -   -   -   -  -   -  - 385 85
4998    -   -   -   -   -  -   -  - 395 95
5000 do_execsql_test joinD-205 {
5001   SELECT t1.*, t2.*, t3.*, t4.*
5002   FROM t1 INNER JOIN t2 ON t2.x>0
5003   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
5004   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
5005   WHERE t1.b IS NOT DISTINCT FROM t2.b
5006   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5007 } {
5008   30 130 230 330 130 30 230 30 330 30
5009   60 160 260 360 160 60 260 60 360 60
5010   90 190 290 390 190 90 290 90 390 90
5011    -   -   -   -   -  -   -  - 300  0
5012    -   -   -   -   -  -   -  - 305  5
5013    -   -   -   -   -  -   -  - 310 10
5014    -   -   -   -   -  -   -  - 320 20
5015    -   -   -   -   -  -   -  - 325 25
5016    -   -   -   -   -  -   -  - 335 35
5017    -   -   -   -   -  -   -  - 340 40
5018    -   -   -   -   -  -   -  - 350 50
5019    -   -   -   -   -  -   -  - 355 55
5020    -   -   -   -   -  -   -  - 365 65
5021    -   -   -   -   -  -   -  - 370 70
5022    -   -   -   -   -  -   -  - 380 80
5023    -   -   -   -   -  -   -  - 385 85
5024    -   -   -   -   -  -   -  - 395 95
5026 do_execsql_test joinD-206 {
5027   SELECT t1.*, t2.*, t3.*, t4.*
5028   FROM t1 INNER JOIN t2 ON t2.x>0
5029   RIGHT JOIN t3 ON t3.y>0
5030   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
5031   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
5032   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5033 } {
5034   30 130 230 330 130 30 230 30 330 30
5035   60 160 260 360 160 60 260 60 360 60
5036   90 190 290 390 190 90 290 90 390 90
5037    -   -   -   -   -  -   -  - 300  0
5039 do_execsql_test joinD-207 {
5040   SELECT t1.*, t2.*, t3.*, t4.*
5041   FROM t1 INNER JOIN t2 ON t2.x>0
5042   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
5043   RIGHT JOIN t4 ON t4.z>0
5044   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
5045   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5046 } {
5047   30 130 230 330 130 30 230 30 330 30
5048   60 160 260 360 160 60 260 60 360 60
5049   90 190 290 390 190 90 290 90 390 90
5051 do_execsql_test joinD-208 {
5052   SELECT t1.*, t2.*, t3.*, t4.*
5053   FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
5054   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
5055   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
5056   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5057 } {
5058   30 130 230 330 130 30 230 30 330 30
5059   60 160 260 360 160 60 260 60 360 60
5060   90 190 290 390 190 90 290 90 390 90
5061    -   -   -   -   -  -   -  - 300  0
5062    -   -   -   -   -  -   -  - 305  5
5063    -   -   -   -   -  -   -  - 310 10
5064    -   -   -   -   -  -   -  - 315 15
5065    -   -   -   -   -  -   -  - 320 20
5066    -   -   -   -   -  -   -  - 325 25
5067    -   -   -   -   -  -   -  - 335 35
5068    -   -   -   -   -  -   -  - 340 40
5069    -   -   -   -   -  -   -  - 345 45
5070    -   -   -   -   -  -   -  - 350 50
5071    -   -   -   -   -  -   -  - 355 55
5072    -   -   -   -   -  -   -  - 365 65
5073    -   -   -   -   -  -   -  - 370 70
5074    -   -   -   -   -  -   -  - 375 75
5075    -   -   -   -   -  -   -  - 380 80
5076    -   -   -   -   -  -   -  - 385 85
5077    -   -   -   -   -  -   -  - 395 95
5079 do_execsql_test joinD-209 {
5080   SELECT t1.*, t2.*, t3.*, t4.*
5081   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
5082   RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
5083   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
5084   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5085 } {
5086   30 130 230 330 130 30 230 30 330 30
5087   60 160 260 360 160 60 260 60 360 60
5088   90 190 290 390 190 90 290 90 390 90
5089    -   -   -   -   -  -   -  - 300  0
5090    -   -   -   -   -  -   -  - 305  5
5091    -   -   -   -   -  -   -  - 310 10
5092    -   -   -   -   -  -   -  - 315 15
5093    -   -   -   -   -  -   -  - 320 20
5094    -   -   -   -   -  -   -  - 325 25
5095    -   -   -   -   -  -   -  - 335 35
5096    -   -   -   -   -  -   -  - 340 40
5097    -   -   -   -   -  -   -  - 345 45
5098    -   -   -   -   -  -   -  - 350 50
5099    -   -   -   -   -  -   -  - 355 55
5100    -   -   -   -   -  -   -  - 365 65
5101    -   -   -   -   -  -   -  - 370 70
5102    -   -   -   -   -  -   -  - 375 75
5103    -   -   -   -   -  -   -  - 380 80
5104    -   -   -   -   -  -   -  - 385 85
5105    -   -   -   -   -  -   -  - 395 95
5107 do_execsql_test joinD-210 {
5108   SELECT t1.*, t2.*, t3.*, t4.*
5109   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
5110   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
5111   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
5112   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5113 } {
5114    6 106 206 306 106  6 206  6   -  -
5115   12 112 212 312 112 12 212 12   -  -
5116   18 118 218 318 118 18 218 18   -  -
5117   24 124 224 324 124 24 224 24   -  -
5118   30 130 230 330 130 30 230 30 330 30
5119   36 136 236 336 136 36 236 36   -  -
5120   42 142 242 342 142 42 242 42   -  -
5121   48 148 248 348 148 48 248 48   -  -
5122   54 154 254 354 154 54 254 54   -  -
5123   60 160 260 360 160 60 260 60 360 60
5124   66 166 266 366 166 66 266 66   -  -
5125   72 172 272 372 172 72 272 72   -  -
5126   78 178 278 378 178 78 278 78   -  -
5127   84 184 284 384 184 84 284 84   -  -
5128   90 190 290 390 190 90 290 90 390 90
5129    -   -   -   -   -  - 200  0   -  -
5130    -   -   -   -   -  - 203  3   -  -
5131    -   -   -   -   -  - 209  9   -  -
5132    -   -   -   -   -  - 215 15   -  -
5133    -   -   -   -   -  - 221 21   -  -
5134    -   -   -   -   -  - 227 27   -  -
5135    -   -   -   -   -  - 233 33   -  -
5136    -   -   -   -   -  - 239 39   -  -
5137    -   -   -   -   -  - 245 45   -  -
5138    -   -   -   -   -  - 251 51   -  -
5139    -   -   -   -   -  - 257 57   -  -
5140    -   -   -   -   -  - 263 63   -  -
5141    -   -   -   -   -  - 269 69   -  -
5142    -   -   -   -   -  - 275 75   -  -
5143    -   -   -   -   -  - 281 81   -  -
5144    -   -   -   -   -  - 287 87   -  -
5145    -   -   -   -   -  - 293 93   -  -
5146    -   -   -   -   -  -   -  - 300  0
5147    -   -   -   -   -  -   -  - 305  5
5148    -   -   -   -   -  -   -  - 310 10
5149    -   -   -   -   -  -   -  - 315 15
5150    -   -   -   -   -  -   -  - 320 20
5151    -   -   -   -   -  -   -  - 325 25
5152    -   -   -   -   -  -   -  - 335 35
5153    -   -   -   -   -  -   -  - 340 40
5154    -   -   -   -   -  -   -  - 345 45
5155    -   -   -   -   -  -   -  - 350 50
5156    -   -   -   -   -  -   -  - 355 55
5157    -   -   -   -   -  -   -  - 365 65
5158    -   -   -   -   -  -   -  - 370 70
5159    -   -   -   -   -  -   -  - 375 75
5160    -   -   -   -   -  -   -  - 380 80
5161    -   -   -   -   -  -   -  - 385 85
5162    -   -   -   -   -  -   -  - 395 95
5164 do_execsql_test joinD-211 {
5165   SELECT t1.*, t2.*, t3.*, t4.*
5166   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
5167   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
5168   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
5169   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5170 } {
5171    6 106 206 306 106  6 206  6   -  -
5172   12 112 212 312 112 12 212 12   -  -
5173   18 118 218 318 118 18 218 18   -  -
5174   24 124 224 324 124 24 224 24   -  -
5175   30 130 230 330 130 30 230 30 330 30
5176   36 136 236 336 136 36 236 36   -  -
5177   42 142 242 342 142 42 242 42   -  -
5178   48 148 248 348 148 48 248 48   -  -
5179   54 154 254 354 154 54 254 54   -  -
5180   60 160 260 360 160 60 260 60 360 60
5181   66 166 266 366 166 66 266 66   -  -
5182   72 172 272 372 172 72 272 72   -  -
5183   78 178 278 378 178 78 278 78   -  -
5184   84 184 284 384 184 84 284 84   -  -
5185   90 190 290 390 190 90 290 90 390 90
5186    -   -   -   -   -  - 200  0   -  -
5187    -   -   -   -   -  - 203  3   -  -
5188    -   -   -   -   -  - 209  9   -  -
5189    -   -   -   -   -  - 215 15   -  -
5190    -   -   -   -   -  - 221 21   -  -
5191    -   -   -   -   -  - 227 27   -  -
5192    -   -   -   -   -  - 233 33   -  -
5193    -   -   -   -   -  - 239 39   -  -
5194    -   -   -   -   -  - 245 45   -  -
5195    -   -   -   -   -  - 251 51   -  -
5196    -   -   -   -   -  - 257 57   -  -
5197    -   -   -   -   -  - 263 63   -  -
5198    -   -   -   -   -  - 269 69   -  -
5199    -   -   -   -   -  - 275 75   -  -
5200    -   -   -   -   -  - 281 81   -  -
5201    -   -   -   -   -  - 287 87   -  -
5202    -   -   -   -   -  - 293 93   -  -
5203    -   -   -   -   -  -   -  - 300  0
5204    -   -   -   -   -  -   -  - 305  5
5205    -   -   -   -   -  -   -  - 310 10
5206    -   -   -   -   -  -   -  - 315 15
5207    -   -   -   -   -  -   -  - 320 20
5208    -   -   -   -   -  -   -  - 325 25
5209    -   -   -   -   -  -   -  - 335 35
5210    -   -   -   -   -  -   -  - 340 40
5211    -   -   -   -   -  -   -  - 345 45
5212    -   -   -   -   -  -   -  - 350 50
5213    -   -   -   -   -  -   -  - 355 55
5214    -   -   -   -   -  -   -  - 365 65
5215    -   -   -   -   -  -   -  - 370 70
5216    -   -   -   -   -  -   -  - 375 75
5217    -   -   -   -   -  -   -  - 380 80
5218    -   -   -   -   -  -   -  - 385 85
5219    -   -   -   -   -  -   -  - 395 95
5221 do_execsql_test joinD-212 {
5222   SELECT t1.*, t2.*, t3.*, t4.*
5223   FROM t1 INNER JOIN t2 ON t1.b=t2.b
5224   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
5225   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
5226   WHERE t2.x>0
5227   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5228 } {
5229    6 106 206 306 106  6 206  6   -  -
5230   12 112 212 312 112 12 212 12   -  -
5231   18 118 218 318 118 18 218 18   -  -
5232   24 124 224 324 124 24 224 24   -  -
5233   30 130 230 330 130 30 230 30 330 30
5234   36 136 236 336 136 36 236 36   -  -
5235   42 142 242 342 142 42 242 42   -  -
5236   48 148 248 348 148 48 248 48   -  -
5237   54 154 254 354 154 54 254 54   -  -
5238   60 160 260 360 160 60 260 60 360 60
5239   66 166 266 366 166 66 266 66   -  -
5240   72 172 272 372 172 72 272 72   -  -
5241   78 178 278 378 178 78 278 78   -  -
5242   84 184 284 384 184 84 284 84   -  -
5243   90 190 290 390 190 90 290 90 390 90
5245 do_execsql_test joinD-213 {
5246   SELECT t1.*, t2.*, t3.*, t4.*
5247   FROM t1 INNER JOIN t2 ON t1.b=t2.b
5248   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
5249   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
5250   WHERE (t2.x>0 OR t2.x IS NULL)
5251   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5252 } {
5253    6 106 206 306 106  6 206  6   -  -
5254   12 112 212 312 112 12 212 12   -  -
5255   18 118 218 318 118 18 218 18   -  -
5256   24 124 224 324 124 24 224 24   -  -
5257   30 130 230 330 130 30 230 30 330 30
5258   36 136 236 336 136 36 236 36   -  -
5259   42 142 242 342 142 42 242 42   -  -
5260   48 148 248 348 148 48 248 48   -  -
5261   54 154 254 354 154 54 254 54   -  -
5262   60 160 260 360 160 60 260 60 360 60
5263   66 166 266 366 166 66 266 66   -  -
5264   72 172 272 372 172 72 272 72   -  -
5265   78 178 278 378 178 78 278 78   -  -
5266   84 184 284 384 184 84 284 84   -  -
5267   90 190 290 390 190 90 290 90 390 90
5268    -   -   -   -   -  - 200  0   -  -
5269    -   -   -   -   -  - 203  3   -  -
5270    -   -   -   -   -  - 209  9   -  -
5271    -   -   -   -   -  - 215 15   -  -
5272    -   -   -   -   -  - 221 21   -  -
5273    -   -   -   -   -  - 227 27   -  -
5274    -   -   -   -   -  - 233 33   -  -
5275    -   -   -   -   -  - 239 39   -  -
5276    -   -   -   -   -  - 245 45   -  -
5277    -   -   -   -   -  - 251 51   -  -
5278    -   -   -   -   -  - 257 57   -  -
5279    -   -   -   -   -  - 263 63   -  -
5280    -   -   -   -   -  - 269 69   -  -
5281    -   -   -   -   -  - 275 75   -  -
5282    -   -   -   -   -  - 281 81   -  -
5283    -   -   -   -   -  - 287 87   -  -
5284    -   -   -   -   -  - 293 93   -  -
5285    -   -   -   -   -  -   -  - 300  0
5286    -   -   -   -   -  -   -  - 305  5
5287    -   -   -   -   -  -   -  - 310 10
5288    -   -   -   -   -  -   -  - 315 15
5289    -   -   -   -   -  -   -  - 320 20
5290    -   -   -   -   -  -   -  - 325 25
5291    -   -   -   -   -  -   -  - 335 35
5292    -   -   -   -   -  -   -  - 340 40
5293    -   -   -   -   -  -   -  - 345 45
5294    -   -   -   -   -  -   -  - 350 50
5295    -   -   -   -   -  -   -  - 355 55
5296    -   -   -   -   -  -   -  - 365 65
5297    -   -   -   -   -  -   -  - 370 70
5298    -   -   -   -   -  -   -  - 375 75
5299    -   -   -   -   -  -   -  - 380 80
5300    -   -   -   -   -  -   -  - 385 85
5301    -   -   -   -   -  -   -  - 395 95
5303 do_execsql_test joinD-214 {
5304   SELECT t1.*, t2.*, t3.*, t4.*
5305   FROM t1 INNER JOIN t2 ON true
5306   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
5307   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
5308   WHERE t1.b=t2.b AND t2.x>0
5309   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5310 } {
5311    6 106 206 306 106  6 206  6   -  -
5312   12 112 212 312 112 12 212 12   -  -
5313   18 118 218 318 118 18 218 18   -  -
5314   24 124 224 324 124 24 224 24   -  -
5315   30 130 230 330 130 30 230 30 330 30
5316   36 136 236 336 136 36 236 36   -  -
5317   42 142 242 342 142 42 242 42   -  -
5318   48 148 248 348 148 48 248 48   -  -
5319   54 154 254 354 154 54 254 54   -  -
5320   60 160 260 360 160 60 260 60 360 60
5321   66 166 266 366 166 66 266 66   -  -
5322   72 172 272 372 172 72 272 72   -  -
5323   78 178 278 378 178 78 278 78   -  -
5324   84 184 284 384 184 84 284 84   -  -
5325   90 190 290 390 190 90 290 90 390 90
5327 do_execsql_test joinD-215 {
5328   SELECT t1.*, t2.*, t3.*, t4.*
5329   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
5330   RIGHT JOIN t3 ON t1.c=t3.c
5331   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
5332   WHERE t3.y>0
5333   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5334 } {
5335    6 106 206 306 106  6 206  6   -  -
5336   12 112 212 312 112 12 212 12   -  -
5337   18 118 218 318 118 18 218 18   -  -
5338   24 124 224 324 124 24 224 24   -  -
5339   30 130 230 330 130 30 230 30 330 30
5340   36 136 236 336 136 36 236 36   -  -
5341   42 142 242 342 142 42 242 42   -  -
5342   48 148 248 348 148 48 248 48   -  -
5343   54 154 254 354 154 54 254 54   -  -
5344   60 160 260 360 160 60 260 60 360 60
5345   66 166 266 366 166 66 266 66   -  -
5346   72 172 272 372 172 72 272 72   -  -
5347   78 178 278 378 178 78 278 78   -  -
5348   84 184 284 384 184 84 284 84   -  -
5349   90 190 290 390 190 90 290 90 390 90
5350    -   -   -   -   -  - 203  3   -  -
5351    -   -   -   -   -  - 209  9   -  -
5352    -   -   -   -   -  - 215 15   -  -
5353    -   -   -   -   -  - 221 21   -  -
5354    -   -   -   -   -  - 227 27   -  -
5355    -   -   -   -   -  - 233 33   -  -
5356    -   -   -   -   -  - 239 39   -  -
5357    -   -   -   -   -  - 245 45   -  -
5358    -   -   -   -   -  - 251 51   -  -
5359    -   -   -   -   -  - 257 57   -  -
5360    -   -   -   -   -  - 263 63   -  -
5361    -   -   -   -   -  - 269 69   -  -
5362    -   -   -   -   -  - 275 75   -  -
5363    -   -   -   -   -  - 281 81   -  -
5364    -   -   -   -   -  - 287 87   -  -
5365    -   -   -   -   -  - 293 93   -  -
5367 do_execsql_test joinD-216 {
5368   SELECT t1.*, t2.*, t3.*, t4.*
5369   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
5370   RIGHT JOIN t3 ON t1.c=t3.c
5371   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
5372   WHERE t3.y>0 OR t3.y IS NULL
5373   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5374 } {
5375    6 106 206 306 106  6 206  6   -  -
5376   12 112 212 312 112 12 212 12   -  -
5377   18 118 218 318 118 18 218 18   -  -
5378   24 124 224 324 124 24 224 24   -  -
5379   30 130 230 330 130 30 230 30 330 30
5380   36 136 236 336 136 36 236 36   -  -
5381   42 142 242 342 142 42 242 42   -  -
5382   48 148 248 348 148 48 248 48   -  -
5383   54 154 254 354 154 54 254 54   -  -
5384   60 160 260 360 160 60 260 60 360 60
5385   66 166 266 366 166 66 266 66   -  -
5386   72 172 272 372 172 72 272 72   -  -
5387   78 178 278 378 178 78 278 78   -  -
5388   84 184 284 384 184 84 284 84   -  -
5389   90 190 290 390 190 90 290 90 390 90
5390    -   -   -   -   -  - 203  3   -  -
5391    -   -   -   -   -  - 209  9   -  -
5392    -   -   -   -   -  - 215 15   -  -
5393    -   -   -   -   -  - 221 21   -  -
5394    -   -   -   -   -  - 227 27   -  -
5395    -   -   -   -   -  - 233 33   -  -
5396    -   -   -   -   -  - 239 39   -  -
5397    -   -   -   -   -  - 245 45   -  -
5398    -   -   -   -   -  - 251 51   -  -
5399    -   -   -   -   -  - 257 57   -  -
5400    -   -   -   -   -  - 263 63   -  -
5401    -   -   -   -   -  - 269 69   -  -
5402    -   -   -   -   -  - 275 75   -  -
5403    -   -   -   -   -  - 281 81   -  -
5404    -   -   -   -   -  - 287 87   -  -
5405    -   -   -   -   -  - 293 93   -  -
5406    -   -   -   -   -  -   -  - 300  0
5407    -   -   -   -   -  -   -  - 305  5
5408    -   -   -   -   -  -   -  - 310 10
5409    -   -   -   -   -  -   -  - 315 15
5410    -   -   -   -   -  -   -  - 320 20
5411    -   -   -   -   -  -   -  - 325 25
5412    -   -   -   -   -  -   -  - 335 35
5413    -   -   -   -   -  -   -  - 340 40
5414    -   -   -   -   -  -   -  - 345 45
5415    -   -   -   -   -  -   -  - 350 50
5416    -   -   -   -   -  -   -  - 355 55
5417    -   -   -   -   -  -   -  - 365 65
5418    -   -   -   -   -  -   -  - 370 70
5419    -   -   -   -   -  -   -  - 375 75
5420    -   -   -   -   -  -   -  - 380 80
5421    -   -   -   -   -  -   -  - 385 85
5422    -   -   -   -   -  -   -  - 395 95
5424 do_execsql_test joinD-217 {
5425   SELECT t1.*, t2.*, t3.*, t4.*
5426   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
5427   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
5428   FULL JOIN t4 ON t1.d=t4.d
5429   WHERE t4.z>0
5430   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5431 } {
5432   30 130 230 330 130 30 230 30 330 30
5433   60 160 260 360 160 60 260 60 360 60
5434   90 190 290 390 190 90 290 90 390 90
5435    -   -   -   -   -  -   -  - 305  5
5436    -   -   -   -   -  -   -  - 310 10
5437    -   -   -   -   -  -   -  - 315 15
5438    -   -   -   -   -  -   -  - 320 20
5439    -   -   -   -   -  -   -  - 325 25
5440    -   -   -   -   -  -   -  - 335 35
5441    -   -   -   -   -  -   -  - 340 40
5442    -   -   -   -   -  -   -  - 345 45
5443    -   -   -   -   -  -   -  - 350 50
5444    -   -   -   -   -  -   -  - 355 55
5445    -   -   -   -   -  -   -  - 365 65
5446    -   -   -   -   -  -   -  - 370 70
5447    -   -   -   -   -  -   -  - 375 75
5448    -   -   -   -   -  -   -  - 380 80
5449    -   -   -   -   -  -   -  - 385 85
5450    -   -   -   -   -  -   -  - 395 95
5452 do_execsql_test joinD-218 {
5453   SELECT t1.*, t2.*, t3.*, t4.*
5454   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
5455   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
5456   FULL JOIN t4 ON t1.d=t4.d
5457   WHERE t4.z IS NULL OR t4.z>0
5458   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5459 } {
5460    6 106 206 306 106  6 206  6   -  -
5461   12 112 212 312 112 12 212 12   -  -
5462   18 118 218 318 118 18 218 18   -  -
5463   24 124 224 324 124 24 224 24   -  -
5464   30 130 230 330 130 30 230 30 330 30
5465   36 136 236 336 136 36 236 36   -  -
5466   42 142 242 342 142 42 242 42   -  -
5467   48 148 248 348 148 48 248 48   -  -
5468   54 154 254 354 154 54 254 54   -  -
5469   60 160 260 360 160 60 260 60 360 60
5470   66 166 266 366 166 66 266 66   -  -
5471   72 172 272 372 172 72 272 72   -  -
5472   78 178 278 378 178 78 278 78   -  -
5473   84 184 284 384 184 84 284 84   -  -
5474   90 190 290 390 190 90 290 90 390 90
5475    -   -   -   -   -  - 200  0   -  -
5476    -   -   -   -   -  - 203  3   -  -
5477    -   -   -   -   -  - 209  9   -  -
5478    -   -   -   -   -  - 215 15   -  -
5479    -   -   -   -   -  - 221 21   -  -
5480    -   -   -   -   -  - 227 27   -  -
5481    -   -   -   -   -  - 233 33   -  -
5482    -   -   -   -   -  - 239 39   -  -
5483    -   -   -   -   -  - 245 45   -  -
5484    -   -   -   -   -  - 251 51   -  -
5485    -   -   -   -   -  - 257 57   -  -
5486    -   -   -   -   -  - 263 63   -  -
5487    -   -   -   -   -  - 269 69   -  -
5488    -   -   -   -   -  - 275 75   -  -
5489    -   -   -   -   -  - 281 81   -  -
5490    -   -   -   -   -  - 287 87   -  -
5491    -   -   -   -   -  - 293 93   -  -
5492    -   -   -   -   -  -   -  - 305  5
5493    -   -   -   -   -  -   -  - 310 10
5494    -   -   -   -   -  -   -  - 315 15
5495    -   -   -   -   -  -   -  - 320 20
5496    -   -   -   -   -  -   -  - 325 25
5497    -   -   -   -   -  -   -  - 335 35
5498    -   -   -   -   -  -   -  - 340 40
5499    -   -   -   -   -  -   -  - 345 45
5500    -   -   -   -   -  -   -  - 350 50
5501    -   -   -   -   -  -   -  - 355 55
5502    -   -   -   -   -  -   -  - 365 65
5503    -   -   -   -   -  -   -  - 370 70
5504    -   -   -   -   -  -   -  - 375 75
5505    -   -   -   -   -  -   -  - 380 80
5506    -   -   -   -   -  -   -  - 385 85
5507    -   -   -   -   -  -   -  - 395 95
5509 do_execsql_test joinD-219 {
5510   SELECT t1.*, t2.*, t3.*, t4.*
5511   FROM t1 INNER JOIN t2 ON t1.b=t2.b
5512   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
5513   FULL JOIN t4 ON t1.d=t4.d
5514   WHERE t2.x>0 AND t4.z>0
5515   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5516 } {
5517   30 130 230 330 130 30 230 30 330 30
5518   60 160 260 360 160 60 260 60 360 60
5519   90 190 290 390 190 90 290 90 390 90
5521 do_execsql_test joinD-220 {
5522   SELECT t1.*, t2.*, t3.*, t4.*
5523   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
5524   RIGHT JOIN t3 ON t1.c=t3.c
5525   FULL JOIN t4 ON t1.d=t4.d
5526   WHERE t4.z>0 AND t3.y>0
5527   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5528 } {
5529   30 130 230 330 130 30 230 30 330 30
5530   60 160 260 360 160 60 260 60 360 60
5531   90 190 290 390 190 90 290 90 390 90
5533 do_execsql_test joinD-221 {
5534   SELECT t1.*, t2.*, t3.*, t4.*
5535   FROM t1 INNER JOIN t2 ON t1.b=t2.b
5536   RIGHT JOIN t3 ON t1.c=t3.c
5537   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
5538   WHERE t2.x>0 AND t3.y>0
5539   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5540 } {
5541    6 106 206 306 106  6 206  6   -  -
5542   12 112 212 312 112 12 212 12   -  -
5543   18 118 218 318 118 18 218 18   -  -
5544   24 124 224 324 124 24 224 24   -  -
5545   30 130 230 330 130 30 230 30 330 30
5546   36 136 236 336 136 36 236 36   -  -
5547   42 142 242 342 142 42 242 42   -  -
5548   48 148 248 348 148 48 248 48   -  -
5549   54 154 254 354 154 54 254 54   -  -
5550   60 160 260 360 160 60 260 60 360 60
5551   66 166 266 366 166 66 266 66   -  -
5552   72 172 272 372 172 72 272 72   -  -
5553   78 178 278 378 178 78 278 78   -  -
5554   84 184 284 384 184 84 284 84   -  -
5555   90 190 290 390 190 90 290 90 390 90
5557 do_execsql_test joinD-222 {
5558   SELECT t1.*, t2.*, t3.*, t4.*
5559   FROM t1 INNER JOIN t2 ON t1.b=t2.b
5560   RIGHT JOIN t3 ON t1.c=t3.c
5561   FULL JOIN t4 ON t1.d=t4.d
5562   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
5563   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5564 } {
5565   30 130 230 330 130 30 230 30 330 30
5566   60 160 260 360 160 60 260 60 360 60
5567   90 190 290 390 190 90 290 90 390 90
5569 do_execsql_test joinD-223 {
5570   SELECT t1.*, t2.*, t3.*, t4.*
5571   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
5572   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
5573   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
5574   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5575 } {
5576    6 106 206 306 106  6 206  6   -  -
5577   12 112 212 312 112 12 212 12   -  -
5578   18 118 218 318 118 18 218 18   -  -
5579   24 124 224 324 124 24 224 24   -  -
5580   30 130 230 330 130 30 230 30 330 30
5581   36 136 236 336 136 36 236 36   -  -
5582   42 142 242 342 142 42 242 42   -  -
5583   48 148 248 348 148 48 248 48   -  -
5584   54 154 254 354 154 54 254 54   -  -
5585   60 160 260 360 160 60 260 60 360 60
5586   66 166 266 366 166 66 266 66   -  -
5587   72 172 272 372 172 72 272 72   -  -
5588   78 178 278 378 178 78 278 78   -  -
5589   84 184 284 384 184 84 284 84   -  -
5590   90 190 290 390 190 90 290 90 390 90
5591    -   -   -   -   -  - 200  0   -  -
5592    -   -   -   -   -  - 203  3   -  -
5593    -   -   -   -   -  - 209  9   -  -
5594    -   -   -   -   -  - 215 15   -  -
5595    -   -   -   -   -  - 221 21   -  -
5596    -   -   -   -   -  - 227 27   -  -
5597    -   -   -   -   -  - 233 33   -  -
5598    -   -   -   -   -  - 239 39   -  -
5599    -   -   -   -   -  - 245 45   -  -
5600    -   -   -   -   -  - 251 51   -  -
5601    -   -   -   -   -  - 257 57   -  -
5602    -   -   -   -   -  - 263 63   -  -
5603    -   -   -   -   -  - 269 69   -  -
5604    -   -   -   -   -  - 275 75   -  -
5605    -   -   -   -   -  - 281 81   -  -
5606    -   -   -   -   -  - 287 87   -  -
5607    -   -   -   -   -  - 293 93   -  -
5608    -   -   -   -   -  -   -  - 300  0
5609    -   -   -   -   -  -   -  - 305  5
5610    -   -   -   -   -  -   -  - 310 10
5611    -   -   -   -   -  -   -  - 315 15
5612    -   -   -   -   -  -   -  - 320 20
5613    -   -   -   -   -  -   -  - 325 25
5614    -   -   -   -   -  -   -  - 335 35
5615    -   -   -   -   -  -   -  - 340 40
5616    -   -   -   -   -  -   -  - 345 45
5617    -   -   -   -   -  -   -  - 350 50
5618    -   -   -   -   -  -   -  - 355 55
5619    -   -   -   -   -  -   -  - 365 65
5620    -   -   -   -   -  -   -  - 370 70
5621    -   -   -   -   -  -   -  - 375 75
5622    -   -   -   -   -  -   -  - 380 80
5623    -   -   -   -   -  -   -  - 385 85
5624    -   -   -   -   -  -   -  - 395 95
5626 do_execsql_test joinD-224 {
5627   SELECT t1.*, t2.*, t3.*, t4.*
5628   FROM t1 INNER JOIN t2 ON t2.x>0
5629   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
5630   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
5631   WHERE t1.b IS NOT DISTINCT FROM t2.b
5632   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5633 } {
5634    6 106 206 306 106  6 206  6   -  -
5635   12 112 212 312 112 12 212 12   -  -
5636   18 118 218 318 118 18 218 18   -  -
5637   24 124 224 324 124 24 224 24   -  -
5638   30 130 230 330 130 30 230 30 330 30
5639   36 136 236 336 136 36 236 36   -  -
5640   42 142 242 342 142 42 242 42   -  -
5641   48 148 248 348 148 48 248 48   -  -
5642   54 154 254 354 154 54 254 54   -  -
5643   60 160 260 360 160 60 260 60 360 60
5644   66 166 266 366 166 66 266 66   -  -
5645   72 172 272 372 172 72 272 72   -  -
5646   78 178 278 378 178 78 278 78   -  -
5647   84 184 284 384 184 84 284 84   -  -
5648   90 190 290 390 190 90 290 90 390 90
5649    -   -   -   -   -  - 200  0   -  -
5650    -   -   -   -   -  -   -  - 300  0
5651    -   -   -   -   -  -   -  - 305  5
5652    -   -   -   -   -  -   -  - 310 10
5653    -   -   -   -   -  -   -  - 320 20
5654    -   -   -   -   -  -   -  - 325 25
5655    -   -   -   -   -  -   -  - 335 35
5656    -   -   -   -   -  -   -  - 340 40
5657    -   -   -   -   -  -   -  - 350 50
5658    -   -   -   -   -  -   -  - 355 55
5659    -   -   -   -   -  -   -  - 365 65
5660    -   -   -   -   -  -   -  - 370 70
5661    -   -   -   -   -  -   -  - 380 80
5662    -   -   -   -   -  -   -  - 385 85
5663    -   -   -   -   -  -   -  - 395 95
5665 do_execsql_test joinD-225 {
5666   SELECT t1.*, t2.*, t3.*, t4.*
5667   FROM t1 INNER JOIN t2 ON t2.x>0
5668   RIGHT JOIN t3 ON t3.y>0
5669   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
5670   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
5671   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5672 } {
5673    6 106 206 306 106  6 206  6   -  -
5674   12 112 212 312 112 12 212 12   -  -
5675   18 118 218 318 118 18 218 18   -  -
5676   24 124 224 324 124 24 224 24   -  -
5677   30 130 230 330 130 30 230 30 330 30
5678   36 136 236 336 136 36 236 36   -  -
5679   42 142 242 342 142 42 242 42   -  -
5680   48 148 248 348 148 48 248 48   -  -
5681   54 154 254 354 154 54 254 54   -  -
5682   60 160 260 360 160 60 260 60 360 60
5683   66 166 266 366 166 66 266 66   -  -
5684   72 172 272 372 172 72 272 72   -  -
5685   78 178 278 378 178 78 278 78   -  -
5686   84 184 284 384 184 84 284 84   -  -
5687   90 190 290 390 190 90 290 90 390 90
5688    -   -   -   -   -  -   -  - 300  0
5690 do_execsql_test joinD-226 {
5691   SELECT t1.*, t2.*, t3.*, t4.*
5692   FROM t1 INNER JOIN t2 ON t2.x>0
5693   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
5694   FULL JOIN t4 ON t4.z>0
5695   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
5696   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5697 } {
5698   30 130 230 330 130 30 230 30 330 30
5699   60 160 260 360 160 60 260 60 360 60
5700   90 190 290 390 190 90 290 90 390 90
5702 do_execsql_test joinD-227 {
5703   SELECT t1.*, t2.*, t3.*, t4.*
5704   FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
5705   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
5706   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
5707   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5708 } {
5709    6 106 206 306 106  6 206  6   -  -
5710   12 112 212 312 112 12 212 12   -  -
5711   18 118 218 318 118 18 218 18   -  -
5712   24 124 224 324 124 24 224 24   -  -
5713   30 130 230 330 130 30 230 30 330 30
5714   36 136 236 336 136 36 236 36   -  -
5715   42 142 242 342 142 42 242 42   -  -
5716   48 148 248 348 148 48 248 48   -  -
5717   54 154 254 354 154 54 254 54   -  -
5718   60 160 260 360 160 60 260 60 360 60
5719   66 166 266 366 166 66 266 66   -  -
5720   72 172 272 372 172 72 272 72   -  -
5721   78 178 278 378 178 78 278 78   -  -
5722   84 184 284 384 184 84 284 84   -  -
5723   90 190 290 390 190 90 290 90 390 90
5724    -   -   -   -   -  - 200  0   -  -
5725    -   -   -   -   -  - 203  3   -  -
5726    -   -   -   -   -  - 209  9   -  -
5727    -   -   -   -   -  - 215 15   -  -
5728    -   -   -   -   -  - 221 21   -  -
5729    -   -   -   -   -  - 227 27   -  -
5730    -   -   -   -   -  - 233 33   -  -
5731    -   -   -   -   -  - 239 39   -  -
5732    -   -   -   -   -  - 245 45   -  -
5733    -   -   -   -   -  - 251 51   -  -
5734    -   -   -   -   -  - 257 57   -  -
5735    -   -   -   -   -  - 263 63   -  -
5736    -   -   -   -   -  - 269 69   -  -
5737    -   -   -   -   -  - 275 75   -  -
5738    -   -   -   -   -  - 281 81   -  -
5739    -   -   -   -   -  - 287 87   -  -
5740    -   -   -   -   -  - 293 93   -  -
5741    -   -   -   -   -  -   -  - 300  0
5742    -   -   -   -   -  -   -  - 305  5
5743    -   -   -   -   -  -   -  - 310 10
5744    -   -   -   -   -  -   -  - 315 15
5745    -   -   -   -   -  -   -  - 320 20
5746    -   -   -   -   -  -   -  - 325 25
5747    -   -   -   -   -  -   -  - 335 35
5748    -   -   -   -   -  -   -  - 340 40
5749    -   -   -   -   -  -   -  - 345 45
5750    -   -   -   -   -  -   -  - 350 50
5751    -   -   -   -   -  -   -  - 355 55
5752    -   -   -   -   -  -   -  - 365 65
5753    -   -   -   -   -  -   -  - 370 70
5754    -   -   -   -   -  -   -  - 375 75
5755    -   -   -   -   -  -   -  - 380 80
5756    -   -   -   -   -  -   -  - 385 85
5757    -   -   -   -   -  -   -  - 395 95
5759 do_execsql_test joinD-228 {
5760   SELECT t1.*, t2.*, t3.*, t4.*
5761   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
5762   RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
5763   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
5764   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5765 } {
5766    6 106 206 306 106  6 206  6   -  -
5767   12 112 212 312 112 12 212 12   -  -
5768   18 118 218 318 118 18 218 18   -  -
5769   24 124 224 324 124 24 224 24   -  -
5770   30 130 230 330 130 30 230 30 330 30
5771   36 136 236 336 136 36 236 36   -  -
5772   42 142 242 342 142 42 242 42   -  -
5773   48 148 248 348 148 48 248 48   -  -
5774   54 154 254 354 154 54 254 54   -  -
5775   60 160 260 360 160 60 260 60 360 60
5776   66 166 266 366 166 66 266 66   -  -
5777   72 172 272 372 172 72 272 72   -  -
5778   78 178 278 378 178 78 278 78   -  -
5779   84 184 284 384 184 84 284 84   -  -
5780   90 190 290 390 190 90 290 90 390 90
5781    -   -   -   -   -  - 200  0   -  -
5782    -   -   -   -   -  - 203  3   -  -
5783    -   -   -   -   -  - 209  9   -  -
5784    -   -   -   -   -  - 215 15   -  -
5785    -   -   -   -   -  - 221 21   -  -
5786    -   -   -   -   -  - 227 27   -  -
5787    -   -   -   -   -  - 233 33   -  -
5788    -   -   -   -   -  - 239 39   -  -
5789    -   -   -   -   -  - 245 45   -  -
5790    -   -   -   -   -  - 251 51   -  -
5791    -   -   -   -   -  - 257 57   -  -
5792    -   -   -   -   -  - 263 63   -  -
5793    -   -   -   -   -  - 269 69   -  -
5794    -   -   -   -   -  - 275 75   -  -
5795    -   -   -   -   -  - 281 81   -  -
5796    -   -   -   -   -  - 287 87   -  -
5797    -   -   -   -   -  - 293 93   -  -
5798    -   -   -   -   -  -   -  - 300  0
5799    -   -   -   -   -  -   -  - 305  5
5800    -   -   -   -   -  -   -  - 310 10
5801    -   -   -   -   -  -   -  - 315 15
5802    -   -   -   -   -  -   -  - 320 20
5803    -   -   -   -   -  -   -  - 325 25
5804    -   -   -   -   -  -   -  - 335 35
5805    -   -   -   -   -  -   -  - 340 40
5806    -   -   -   -   -  -   -  - 345 45
5807    -   -   -   -   -  -   -  - 350 50
5808    -   -   -   -   -  -   -  - 355 55
5809    -   -   -   -   -  -   -  - 365 65
5810    -   -   -   -   -  -   -  - 370 70
5811    -   -   -   -   -  -   -  - 375 75
5812    -   -   -   -   -  -   -  - 380 80
5813    -   -   -   -   -  -   -  - 385 85
5814    -   -   -   -   -  -   -  - 395 95
5816 do_execsql_test joinD-229 {
5817   SELECT t1.*, t2.*, t3.*, t4.*
5818   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
5819   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
5820   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
5821   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5822 } {
5823   10 110 210 310 110 10   -  - 310 10
5824   20 120 220 320 120 20   -  - 320 20
5825   30 130 230 330 130 30 230 30 330 30
5826   40 140 240 340 140 40   -  - 340 40
5827   50 150 250 350 150 50   -  - 350 50
5828   60 160 260 360 160 60 260 60 360 60
5829   70 170 270 370 170 70   -  - 370 70
5830   80 180 280 380 180 80   -  - 380 80
5831   90 190 290 390 190 90 290 90 390 90
5833 do_execsql_test joinD-230 {
5834   SELECT t1.*, t2.*, t3.*, t4.*
5835   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
5836   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
5837   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
5838   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5839 } {
5840   10 110 210 310 110 10   -  - 310 10
5841   20 120 220 320 120 20   -  - 320 20
5842   30 130 230 330 130 30 230 30 330 30
5843   40 140 240 340 140 40   -  - 340 40
5844   50 150 250 350 150 50   -  - 350 50
5845   60 160 260 360 160 60 260 60 360 60
5846   70 170 270 370 170 70   -  - 370 70
5847   80 180 280 380 180 80   -  - 380 80
5848   90 190 290 390 190 90 290 90 390 90
5850 do_execsql_test joinD-231 {
5851   SELECT t1.*, t2.*, t3.*, t4.*
5852   FROM t1 INNER JOIN t2 ON t1.b=t2.b
5853   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
5854   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
5855   WHERE t2.x>0
5856   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5857 } {
5858   10 110 210 310 110 10   -  - 310 10
5859   20 120 220 320 120 20   -  - 320 20
5860   30 130 230 330 130 30 230 30 330 30
5861   40 140 240 340 140 40   -  - 340 40
5862   50 150 250 350 150 50   -  - 350 50
5863   60 160 260 360 160 60 260 60 360 60
5864   70 170 270 370 170 70   -  - 370 70
5865   80 180 280 380 180 80   -  - 380 80
5866   90 190 290 390 190 90 290 90 390 90
5868 do_execsql_test joinD-232 {
5869   SELECT t1.*, t2.*, t3.*, t4.*
5870   FROM t1 INNER JOIN t2 ON t1.b=t2.b
5871   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
5872   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
5873   WHERE (t2.x>0 OR t2.x IS NULL)
5874   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5875 } {
5876   10 110 210 310 110 10   -  - 310 10
5877   20 120 220 320 120 20   -  - 320 20
5878   30 130 230 330 130 30 230 30 330 30
5879   40 140 240 340 140 40   -  - 340 40
5880   50 150 250 350 150 50   -  - 350 50
5881   60 160 260 360 160 60 260 60 360 60
5882   70 170 270 370 170 70   -  - 370 70
5883   80 180 280 380 180 80   -  - 380 80
5884   90 190 290 390 190 90 290 90 390 90
5886 do_execsql_test joinD-233 {
5887   SELECT t1.*, t2.*, t3.*, t4.*
5888   FROM t1 INNER JOIN t2 ON true
5889   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
5890   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
5891   WHERE t1.b=t2.b AND t2.x>0
5892   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5893 } {
5894   10 110 210 310 110 10   -  - 310 10
5895   20 120 220 320 120 20   -  - 320 20
5896   30 130 230 330 130 30 230 30 330 30
5897   40 140 240 340 140 40   -  - 340 40
5898   50 150 250 350 150 50   -  - 350 50
5899   60 160 260 360 160 60 260 60 360 60
5900   70 170 270 370 170 70   -  - 370 70
5901   80 180 280 380 180 80   -  - 380 80
5902   90 190 290 390 190 90 290 90 390 90
5904 do_execsql_test joinD-234 {
5905   SELECT t1.*, t2.*, t3.*, t4.*
5906   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
5907   FULL JOIN t3 ON t1.c=t3.c
5908   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
5909   WHERE t3.y>0
5910   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5911 } {
5912   30 130 230 330 130 30 230 30 330 30
5913   60 160 260 360 160 60 260 60 360 60
5914   90 190 290 390 190 90 290 90 390 90
5916 do_execsql_test joinD-235 {
5917   SELECT t1.*, t2.*, t3.*, t4.*
5918   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
5919   FULL JOIN t3 ON t1.c=t3.c
5920   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
5921   WHERE t3.y>0 OR t3.y IS NULL
5922   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5923 } {
5924   10 110 210 310 110 10   -  - 310 10
5925   20 120 220 320 120 20   -  - 320 20
5926   30 130 230 330 130 30 230 30 330 30
5927   40 140 240 340 140 40   -  - 340 40
5928   50 150 250 350 150 50   -  - 350 50
5929   60 160 260 360 160 60 260 60 360 60
5930   70 170 270 370 170 70   -  - 370 70
5931   80 180 280 380 180 80   -  - 380 80
5932   90 190 290 390 190 90 290 90 390 90
5934 do_execsql_test joinD-236 {
5935   SELECT t1.*, t2.*, t3.*, t4.*
5936   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
5937   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
5938   INNER JOIN t4 ON t1.d=t4.d
5939   WHERE t4.z>0
5940   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5941 } {
5942   10 110 210 310 110 10   -  - 310 10
5943   20 120 220 320 120 20   -  - 320 20
5944   30 130 230 330 130 30 230 30 330 30
5945   40 140 240 340 140 40   -  - 340 40
5946   50 150 250 350 150 50   -  - 350 50
5947   60 160 260 360 160 60 260 60 360 60
5948   70 170 270 370 170 70   -  - 370 70
5949   80 180 280 380 180 80   -  - 380 80
5950   90 190 290 390 190 90 290 90 390 90
5952 do_execsql_test joinD-237 {
5953   SELECT t1.*, t2.*, t3.*, t4.*
5954   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
5955   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
5956   INNER JOIN t4 ON t1.d=t4.d
5957   WHERE t4.z IS NULL OR t4.z>0
5958   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5959 } {
5960   10 110 210 310 110 10   -  - 310 10
5961   20 120 220 320 120 20   -  - 320 20
5962   30 130 230 330 130 30 230 30 330 30
5963   40 140 240 340 140 40   -  - 340 40
5964   50 150 250 350 150 50   -  - 350 50
5965   60 160 260 360 160 60 260 60 360 60
5966   70 170 270 370 170 70   -  - 370 70
5967   80 180 280 380 180 80   -  - 380 80
5968   90 190 290 390 190 90 290 90 390 90
5970 do_execsql_test joinD-238 {
5971   SELECT t1.*, t2.*, t3.*, t4.*
5972   FROM t1 INNER JOIN t2 ON t1.b=t2.b
5973   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
5974   INNER JOIN t4 ON t1.d=t4.d
5975   WHERE t2.x>0 AND t4.z>0
5976   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5977 } {
5978   10 110 210 310 110 10   -  - 310 10
5979   20 120 220 320 120 20   -  - 320 20
5980   30 130 230 330 130 30 230 30 330 30
5981   40 140 240 340 140 40   -  - 340 40
5982   50 150 250 350 150 50   -  - 350 50
5983   60 160 260 360 160 60 260 60 360 60
5984   70 170 270 370 170 70   -  - 370 70
5985   80 180 280 380 180 80   -  - 380 80
5986   90 190 290 390 190 90 290 90 390 90
5988 do_execsql_test joinD-239 {
5989   SELECT t1.*, t2.*, t3.*, t4.*
5990   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
5991   FULL JOIN t3 ON t1.c=t3.c
5992   INNER JOIN t4 ON t1.d=t4.d
5993   WHERE t4.z>0 AND t3.y>0
5994   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
5995 } {
5996   30 130 230 330 130 30 230 30 330 30
5997   60 160 260 360 160 60 260 60 360 60
5998   90 190 290 390 190 90 290 90 390 90
6000 do_execsql_test joinD-240 {
6001   SELECT t1.*, t2.*, t3.*, t4.*
6002   FROM t1 INNER JOIN t2 ON t1.b=t2.b
6003   FULL JOIN t3 ON t1.c=t3.c
6004   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
6005   WHERE t2.x>0 AND t3.y>0
6006   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6007 } {
6008   30 130 230 330 130 30 230 30 330 30
6009   60 160 260 360 160 60 260 60 360 60
6010   90 190 290 390 190 90 290 90 390 90
6012 do_execsql_test joinD-241 {
6013   SELECT t1.*, t2.*, t3.*, t4.*
6014   FROM t1 INNER JOIN t2 ON t1.b=t2.b
6015   FULL JOIN t3 ON t1.c=t3.c
6016   INNER JOIN t4 ON t1.d=t4.d
6017   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
6018   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6019 } {
6020   30 130 230 330 130 30 230 30 330 30
6021   60 160 260 360 160 60 260 60 360 60
6022   90 190 290 390 190 90 290 90 390 90
6024 do_execsql_test joinD-242 {
6025   SELECT t1.*, t2.*, t3.*, t4.*
6026   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
6027   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
6028   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
6029   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6030 } {
6031   10 110 210 310 110 10   -  - 310 10
6032   20 120 220 320 120 20   -  - 320 20
6033   30 130 230 330 130 30 230 30 330 30
6034   40 140 240 340 140 40   -  - 340 40
6035   50 150 250 350 150 50   -  - 350 50
6036   60 160 260 360 160 60 260 60 360 60
6037   70 170 270 370 170 70   -  - 370 70
6038   80 180 280 380 180 80   -  - 380 80
6039   90 190 290 390 190 90 290 90 390 90
6041 do_execsql_test joinD-243 {
6042   SELECT t1.*, t2.*, t3.*, t4.*
6043   FROM t1 INNER JOIN t2 ON t2.x>0
6044   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
6045   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
6046   WHERE t1.b IS NOT DISTINCT FROM t2.b
6047   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6048 } {
6049   10 110 210 310 110 10   -  - 310 10
6050   20 120 220 320 120 20   -  - 320 20
6051   30 130 230 330 130 30 230 30 330 30
6052   40 140 240 340 140 40   -  - 340 40
6053   50 150 250 350 150 50   -  - 350 50
6054   60 160 260 360 160 60 260 60 360 60
6055   70 170 270 370 170 70   -  - 370 70
6056   80 180 280 380 180 80   -  - 380 80
6057   90 190 290 390 190 90 290 90 390 90
6059 do_execsql_test joinD-244 {
6060   SELECT t1.*, t2.*, t3.*, t4.*
6061   FROM t1 INNER JOIN t2 ON t2.x>0
6062   FULL JOIN t3 ON t3.y>0
6063   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
6064   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
6065   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6066 } {
6067   30 130 230 330 130 30 230 30 330 30
6068   60 160 260 360 160 60 260 60 360 60
6069   90 190 290 390 190 90 290 90 390 90
6071 do_execsql_test joinD-245 {
6072   SELECT t1.*, t2.*, t3.*, t4.*
6073   FROM t1 INNER JOIN t2 ON t2.x>0
6074   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
6075   INNER JOIN t4 ON t4.z>0
6076   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
6077   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6078 } {
6079   10 110 210 310 110 10   -  - 310 10
6080   20 120 220 320 120 20   -  - 320 20
6081   30 130 230 330 130 30 230 30 330 30
6082   40 140 240 340 140 40   -  - 340 40
6083   50 150 250 350 150 50   -  - 350 50
6084   60 160 260 360 160 60 260 60 360 60
6085   70 170 270 370 170 70   -  - 370 70
6086   80 180 280 380 180 80   -  - 380 80
6087   90 190 290 390 190 90 290 90 390 90
6089 do_execsql_test joinD-246 {
6090   SELECT t1.*, t2.*, t3.*, t4.*
6091   FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
6092   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
6093   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
6094   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6095 } {
6096   10 110 210 310 110 10   -  - 310 10
6097   20 120 220 320 120 20   -  - 320 20
6098   30 130 230 330 130 30 230 30 330 30
6099   40 140 240 340 140 40   -  - 340 40
6100   50 150 250 350 150 50   -  - 350 50
6101   60 160 260 360 160 60 260 60 360 60
6102   70 170 270 370 170 70   -  - 370 70
6103   80 180 280 380 180 80   -  - 380 80
6104   90 190 290 390 190 90 290 90 390 90
6106 do_execsql_test joinD-247 {
6107   SELECT t1.*, t2.*, t3.*, t4.*
6108   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
6109   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
6110   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
6111   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6112 } {
6113    2 102 202 302 102  2   -  -   -  -
6114    4 104 204 304 104  4   -  -   -  -
6115    6 106 206 306 106  6 206  6   -  -
6116    8 108 208 308 108  8   -  -   -  -
6117   10 110 210 310 110 10   -  - 310 10
6118   12 112 212 312 112 12 212 12   -  -
6119   14 114 214 314 114 14   -  -   -  -
6120   16 116 216 316 116 16   -  -   -  -
6121   18 118 218 318 118 18 218 18   -  -
6122   20 120 220 320 120 20   -  - 320 20
6123   22 122 222 322 122 22   -  -   -  -
6124   24 124 224 324 124 24 224 24   -  -
6125   26 126 226 326 126 26   -  -   -  -
6126   28 128 228 328 128 28   -  -   -  -
6127   30 130 230 330 130 30 230 30 330 30
6128   32 132 232 332 132 32   -  -   -  -
6129   34 134 234 334 134 34   -  -   -  -
6130   36 136 236 336 136 36 236 36   -  -
6131   38 138 238 338 138 38   -  -   -  -
6132   40 140 240 340 140 40   -  - 340 40
6133   42 142 242 342 142 42 242 42   -  -
6134   44 144 244 344 144 44   -  -   -  -
6135   46 146 246 346 146 46   -  -   -  -
6136   48 148 248 348 148 48 248 48   -  -
6137   50 150 250 350 150 50   -  - 350 50
6138   52 152 252 352 152 52   -  -   -  -
6139   54 154 254 354 154 54 254 54   -  -
6140   56 156 256 356 156 56   -  -   -  -
6141   58 158 258 358 158 58   -  -   -  -
6142   60 160 260 360 160 60 260 60 360 60
6143   62 162 262 362 162 62   -  -   -  -
6144   64 164 264 364 164 64   -  -   -  -
6145   66 166 266 366 166 66 266 66   -  -
6146   68 168 268 368 168 68   -  -   -  -
6147   70 170 270 370 170 70   -  - 370 70
6148   72 172 272 372 172 72 272 72   -  -
6149   74 174 274 374 174 74   -  -   -  -
6150   76 176 276 376 176 76   -  -   -  -
6151   78 178 278 378 178 78 278 78   -  -
6152   80 180 280 380 180 80   -  - 380 80
6153   82 182 282 382 182 82   -  -   -  -
6154   84 184 284 384 184 84 284 84   -  -
6155   86 186 286 386 186 86   -  -   -  -
6156   88 188 288 388 188 88   -  -   -  -
6157   90 190 290 390 190 90 290 90 390 90
6158   92 192 292 392 192 92   -  -   -  -
6159   94 194 294 394 194 94   -  -   -  -
6160    -   -   -   -   -  - 200  0   -  -
6161    -   -   -   -   -  - 203  3   -  -
6162    -   -   -   -   -  - 209  9   -  -
6163    -   -   -   -   -  - 215 15   -  -
6164    -   -   -   -   -  - 221 21   -  -
6165    -   -   -   -   -  - 227 27   -  -
6166    -   -   -   -   -  - 233 33   -  -
6167    -   -   -   -   -  - 239 39   -  -
6168    -   -   -   -   -  - 245 45   -  -
6169    -   -   -   -   -  - 251 51   -  -
6170    -   -   -   -   -  - 257 57   -  -
6171    -   -   -   -   -  - 263 63   -  -
6172    -   -   -   -   -  - 269 69   -  -
6173    -   -   -   -   -  - 275 75   -  -
6174    -   -   -   -   -  - 281 81   -  -
6175    -   -   -   -   -  - 287 87   -  -
6176    -   -   -   -   -  - 293 93   -  -
6178 do_execsql_test joinD-248 {
6179   SELECT t1.*, t2.*, t3.*, t4.*
6180   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
6181   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
6182   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
6183   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6184 } {
6185    2 102 202 302 102  2   -  -   -  -
6186    4 104 204 304 104  4   -  -   -  -
6187    6 106 206 306 106  6 206  6   -  -
6188    8 108 208 308 108  8   -  -   -  -
6189   10 110 210 310 110 10   -  - 310 10
6190   12 112 212 312 112 12 212 12   -  -
6191   14 114 214 314 114 14   -  -   -  -
6192   16 116 216 316 116 16   -  -   -  -
6193   18 118 218 318 118 18 218 18   -  -
6194   20 120 220 320 120 20   -  - 320 20
6195   22 122 222 322 122 22   -  -   -  -
6196   24 124 224 324 124 24 224 24   -  -
6197   26 126 226 326 126 26   -  -   -  -
6198   28 128 228 328 128 28   -  -   -  -
6199   30 130 230 330 130 30 230 30 330 30
6200   32 132 232 332 132 32   -  -   -  -
6201   34 134 234 334 134 34   -  -   -  -
6202   36 136 236 336 136 36 236 36   -  -
6203   38 138 238 338 138 38   -  -   -  -
6204   40 140 240 340 140 40   -  - 340 40
6205   42 142 242 342 142 42 242 42   -  -
6206   44 144 244 344 144 44   -  -   -  -
6207   46 146 246 346 146 46   -  -   -  -
6208   48 148 248 348 148 48 248 48   -  -
6209   50 150 250 350 150 50   -  - 350 50
6210   52 152 252 352 152 52   -  -   -  -
6211   54 154 254 354 154 54 254 54   -  -
6212   56 156 256 356 156 56   -  -   -  -
6213   58 158 258 358 158 58   -  -   -  -
6214   60 160 260 360 160 60 260 60 360 60
6215   62 162 262 362 162 62   -  -   -  -
6216   64 164 264 364 164 64   -  -   -  -
6217   66 166 266 366 166 66 266 66   -  -
6218   68 168 268 368 168 68   -  -   -  -
6219   70 170 270 370 170 70   -  - 370 70
6220   72 172 272 372 172 72 272 72   -  -
6221   74 174 274 374 174 74   -  -   -  -
6222   76 176 276 376 176 76   -  -   -  -
6223   78 178 278 378 178 78 278 78   -  -
6224   80 180 280 380 180 80   -  - 380 80
6225   82 182 282 382 182 82   -  -   -  -
6226   84 184 284 384 184 84 284 84   -  -
6227   86 186 286 386 186 86   -  -   -  -
6228   88 188 288 388 188 88   -  -   -  -
6229   90 190 290 390 190 90 290 90 390 90
6230   92 192 292 392 192 92   -  -   -  -
6231   94 194 294 394 194 94   -  -   -  -
6232    -   -   -   -   -  - 200  0   -  -
6233    -   -   -   -   -  - 203  3   -  -
6234    -   -   -   -   -  - 209  9   -  -
6235    -   -   -   -   -  - 215 15   -  -
6236    -   -   -   -   -  - 221 21   -  -
6237    -   -   -   -   -  - 227 27   -  -
6238    -   -   -   -   -  - 233 33   -  -
6239    -   -   -   -   -  - 239 39   -  -
6240    -   -   -   -   -  - 245 45   -  -
6241    -   -   -   -   -  - 251 51   -  -
6242    -   -   -   -   -  - 257 57   -  -
6243    -   -   -   -   -  - 263 63   -  -
6244    -   -   -   -   -  - 269 69   -  -
6245    -   -   -   -   -  - 275 75   -  -
6246    -   -   -   -   -  - 281 81   -  -
6247    -   -   -   -   -  - 287 87   -  -
6248    -   -   -   -   -  - 293 93   -  -
6250 do_execsql_test joinD-249 {
6251   SELECT t1.*, t2.*, t3.*, t4.*
6252   FROM t1 INNER JOIN t2 ON t1.b=t2.b
6253   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
6254   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
6255   WHERE t2.x>0
6256   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6257 } {
6258    2 102 202 302 102  2   -  -   -  -
6259    4 104 204 304 104  4   -  -   -  -
6260    6 106 206 306 106  6 206  6   -  -
6261    8 108 208 308 108  8   -  -   -  -
6262   10 110 210 310 110 10   -  - 310 10
6263   12 112 212 312 112 12 212 12   -  -
6264   14 114 214 314 114 14   -  -   -  -
6265   16 116 216 316 116 16   -  -   -  -
6266   18 118 218 318 118 18 218 18   -  -
6267   20 120 220 320 120 20   -  - 320 20
6268   22 122 222 322 122 22   -  -   -  -
6269   24 124 224 324 124 24 224 24   -  -
6270   26 126 226 326 126 26   -  -   -  -
6271   28 128 228 328 128 28   -  -   -  -
6272   30 130 230 330 130 30 230 30 330 30
6273   32 132 232 332 132 32   -  -   -  -
6274   34 134 234 334 134 34   -  -   -  -
6275   36 136 236 336 136 36 236 36   -  -
6276   38 138 238 338 138 38   -  -   -  -
6277   40 140 240 340 140 40   -  - 340 40
6278   42 142 242 342 142 42 242 42   -  -
6279   44 144 244 344 144 44   -  -   -  -
6280   46 146 246 346 146 46   -  -   -  -
6281   48 148 248 348 148 48 248 48   -  -
6282   50 150 250 350 150 50   -  - 350 50
6283   52 152 252 352 152 52   -  -   -  -
6284   54 154 254 354 154 54 254 54   -  -
6285   56 156 256 356 156 56   -  -   -  -
6286   58 158 258 358 158 58   -  -   -  -
6287   60 160 260 360 160 60 260 60 360 60
6288   62 162 262 362 162 62   -  -   -  -
6289   64 164 264 364 164 64   -  -   -  -
6290   66 166 266 366 166 66 266 66   -  -
6291   68 168 268 368 168 68   -  -   -  -
6292   70 170 270 370 170 70   -  - 370 70
6293   72 172 272 372 172 72 272 72   -  -
6294   74 174 274 374 174 74   -  -   -  -
6295   76 176 276 376 176 76   -  -   -  -
6296   78 178 278 378 178 78 278 78   -  -
6297   80 180 280 380 180 80   -  - 380 80
6298   82 182 282 382 182 82   -  -   -  -
6299   84 184 284 384 184 84 284 84   -  -
6300   86 186 286 386 186 86   -  -   -  -
6301   88 188 288 388 188 88   -  -   -  -
6302   90 190 290 390 190 90 290 90 390 90
6303   92 192 292 392 192 92   -  -   -  -
6304   94 194 294 394 194 94   -  -   -  -
6306 do_execsql_test joinD-250 {
6307   SELECT t1.*, t2.*, t3.*, t4.*
6308   FROM t1 INNER JOIN t2 ON t1.b=t2.b
6309   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
6310   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
6311   WHERE (t2.x>0 OR t2.x IS NULL)
6312   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6313 } {
6314    2 102 202 302 102  2   -  -   -  -
6315    4 104 204 304 104  4   -  -   -  -
6316    6 106 206 306 106  6 206  6   -  -
6317    8 108 208 308 108  8   -  -   -  -
6318   10 110 210 310 110 10   -  - 310 10
6319   12 112 212 312 112 12 212 12   -  -
6320   14 114 214 314 114 14   -  -   -  -
6321   16 116 216 316 116 16   -  -   -  -
6322   18 118 218 318 118 18 218 18   -  -
6323   20 120 220 320 120 20   -  - 320 20
6324   22 122 222 322 122 22   -  -   -  -
6325   24 124 224 324 124 24 224 24   -  -
6326   26 126 226 326 126 26   -  -   -  -
6327   28 128 228 328 128 28   -  -   -  -
6328   30 130 230 330 130 30 230 30 330 30
6329   32 132 232 332 132 32   -  -   -  -
6330   34 134 234 334 134 34   -  -   -  -
6331   36 136 236 336 136 36 236 36   -  -
6332   38 138 238 338 138 38   -  -   -  -
6333   40 140 240 340 140 40   -  - 340 40
6334   42 142 242 342 142 42 242 42   -  -
6335   44 144 244 344 144 44   -  -   -  -
6336   46 146 246 346 146 46   -  -   -  -
6337   48 148 248 348 148 48 248 48   -  -
6338   50 150 250 350 150 50   -  - 350 50
6339   52 152 252 352 152 52   -  -   -  -
6340   54 154 254 354 154 54 254 54   -  -
6341   56 156 256 356 156 56   -  -   -  -
6342   58 158 258 358 158 58   -  -   -  -
6343   60 160 260 360 160 60 260 60 360 60
6344   62 162 262 362 162 62   -  -   -  -
6345   64 164 264 364 164 64   -  -   -  -
6346   66 166 266 366 166 66 266 66   -  -
6347   68 168 268 368 168 68   -  -   -  -
6348   70 170 270 370 170 70   -  - 370 70
6349   72 172 272 372 172 72 272 72   -  -
6350   74 174 274 374 174 74   -  -   -  -
6351   76 176 276 376 176 76   -  -   -  -
6352   78 178 278 378 178 78 278 78   -  -
6353   80 180 280 380 180 80   -  - 380 80
6354   82 182 282 382 182 82   -  -   -  -
6355   84 184 284 384 184 84 284 84   -  -
6356   86 186 286 386 186 86   -  -   -  -
6357   88 188 288 388 188 88   -  -   -  -
6358   90 190 290 390 190 90 290 90 390 90
6359   92 192 292 392 192 92   -  -   -  -
6360   94 194 294 394 194 94   -  -   -  -
6361    -   -   -   -   -  - 200  0   -  -
6362    -   -   -   -   -  - 203  3   -  -
6363    -   -   -   -   -  - 209  9   -  -
6364    -   -   -   -   -  - 215 15   -  -
6365    -   -   -   -   -  - 221 21   -  -
6366    -   -   -   -   -  - 227 27   -  -
6367    -   -   -   -   -  - 233 33   -  -
6368    -   -   -   -   -  - 239 39   -  -
6369    -   -   -   -   -  - 245 45   -  -
6370    -   -   -   -   -  - 251 51   -  -
6371    -   -   -   -   -  - 257 57   -  -
6372    -   -   -   -   -  - 263 63   -  -
6373    -   -   -   -   -  - 269 69   -  -
6374    -   -   -   -   -  - 275 75   -  -
6375    -   -   -   -   -  - 281 81   -  -
6376    -   -   -   -   -  - 287 87   -  -
6377    -   -   -   -   -  - 293 93   -  -
6379 do_execsql_test joinD-251 {
6380   SELECT t1.*, t2.*, t3.*, t4.*
6381   FROM t1 INNER JOIN t2 ON true
6382   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
6383   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
6384   WHERE t1.b=t2.b AND t2.x>0
6385   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6386 } {
6387    2 102 202 302 102  2   -  -   -  -
6388    4 104 204 304 104  4   -  -   -  -
6389    6 106 206 306 106  6 206  6   -  -
6390    8 108 208 308 108  8   -  -   -  -
6391   10 110 210 310 110 10   -  - 310 10
6392   12 112 212 312 112 12 212 12   -  -
6393   14 114 214 314 114 14   -  -   -  -
6394   16 116 216 316 116 16   -  -   -  -
6395   18 118 218 318 118 18 218 18   -  -
6396   20 120 220 320 120 20   -  - 320 20
6397   22 122 222 322 122 22   -  -   -  -
6398   24 124 224 324 124 24 224 24   -  -
6399   26 126 226 326 126 26   -  -   -  -
6400   28 128 228 328 128 28   -  -   -  -
6401   30 130 230 330 130 30 230 30 330 30
6402   32 132 232 332 132 32   -  -   -  -
6403   34 134 234 334 134 34   -  -   -  -
6404   36 136 236 336 136 36 236 36   -  -
6405   38 138 238 338 138 38   -  -   -  -
6406   40 140 240 340 140 40   -  - 340 40
6407   42 142 242 342 142 42 242 42   -  -
6408   44 144 244 344 144 44   -  -   -  -
6409   46 146 246 346 146 46   -  -   -  -
6410   48 148 248 348 148 48 248 48   -  -
6411   50 150 250 350 150 50   -  - 350 50
6412   52 152 252 352 152 52   -  -   -  -
6413   54 154 254 354 154 54 254 54   -  -
6414   56 156 256 356 156 56   -  -   -  -
6415   58 158 258 358 158 58   -  -   -  -
6416   60 160 260 360 160 60 260 60 360 60
6417   62 162 262 362 162 62   -  -   -  -
6418   64 164 264 364 164 64   -  -   -  -
6419   66 166 266 366 166 66 266 66   -  -
6420   68 168 268 368 168 68   -  -   -  -
6421   70 170 270 370 170 70   -  - 370 70
6422   72 172 272 372 172 72 272 72   -  -
6423   74 174 274 374 174 74   -  -   -  -
6424   76 176 276 376 176 76   -  -   -  -
6425   78 178 278 378 178 78 278 78   -  -
6426   80 180 280 380 180 80   -  - 380 80
6427   82 182 282 382 182 82   -  -   -  -
6428   84 184 284 384 184 84 284 84   -  -
6429   86 186 286 386 186 86   -  -   -  -
6430   88 188 288 388 188 88   -  -   -  -
6431   90 190 290 390 190 90 290 90 390 90
6432   92 192 292 392 192 92   -  -   -  -
6433   94 194 294 394 194 94   -  -   -  -
6435 do_execsql_test joinD-252 {
6436   SELECT t1.*, t2.*, t3.*, t4.*
6437   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
6438   FULL JOIN t3 ON t1.c=t3.c
6439   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
6440   WHERE t3.y>0
6441   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6442 } {
6443    6 106 206 306 106  6 206  6   -  -
6444   12 112 212 312 112 12 212 12   -  -
6445   18 118 218 318 118 18 218 18   -  -
6446   24 124 224 324 124 24 224 24   -  -
6447   30 130 230 330 130 30 230 30 330 30
6448   36 136 236 336 136 36 236 36   -  -
6449   42 142 242 342 142 42 242 42   -  -
6450   48 148 248 348 148 48 248 48   -  -
6451   54 154 254 354 154 54 254 54   -  -
6452   60 160 260 360 160 60 260 60 360 60
6453   66 166 266 366 166 66 266 66   -  -
6454   72 172 272 372 172 72 272 72   -  -
6455   78 178 278 378 178 78 278 78   -  -
6456   84 184 284 384 184 84 284 84   -  -
6457   90 190 290 390 190 90 290 90 390 90
6458    -   -   -   -   -  - 203  3   -  -
6459    -   -   -   -   -  - 209  9   -  -
6460    -   -   -   -   -  - 215 15   -  -
6461    -   -   -   -   -  - 221 21   -  -
6462    -   -   -   -   -  - 227 27   -  -
6463    -   -   -   -   -  - 233 33   -  -
6464    -   -   -   -   -  - 239 39   -  -
6465    -   -   -   -   -  - 245 45   -  -
6466    -   -   -   -   -  - 251 51   -  -
6467    -   -   -   -   -  - 257 57   -  -
6468    -   -   -   -   -  - 263 63   -  -
6469    -   -   -   -   -  - 269 69   -  -
6470    -   -   -   -   -  - 275 75   -  -
6471    -   -   -   -   -  - 281 81   -  -
6472    -   -   -   -   -  - 287 87   -  -
6473    -   -   -   -   -  - 293 93   -  -
6475 do_execsql_test joinD-253 {
6476   SELECT t1.*, t2.*, t3.*, t4.*
6477   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
6478   FULL JOIN t3 ON t1.c=t3.c
6479   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
6480   WHERE t3.y>0 OR t3.y IS NULL
6481   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6482 } {
6483    2 102 202 302 102  2   -  -   -  -
6484    4 104 204 304 104  4   -  -   -  -
6485    6 106 206 306 106  6 206  6   -  -
6486    8 108 208 308 108  8   -  -   -  -
6487   10 110 210 310 110 10   -  - 310 10
6488   12 112 212 312 112 12 212 12   -  -
6489   14 114 214 314 114 14   -  -   -  -
6490   16 116 216 316 116 16   -  -   -  -
6491   18 118 218 318 118 18 218 18   -  -
6492   20 120 220 320 120 20   -  - 320 20
6493   22 122 222 322 122 22   -  -   -  -
6494   24 124 224 324 124 24 224 24   -  -
6495   26 126 226 326 126 26   -  -   -  -
6496   28 128 228 328 128 28   -  -   -  -
6497   30 130 230 330 130 30 230 30 330 30
6498   32 132 232 332 132 32   -  -   -  -
6499   34 134 234 334 134 34   -  -   -  -
6500   36 136 236 336 136 36 236 36   -  -
6501   38 138 238 338 138 38   -  -   -  -
6502   40 140 240 340 140 40   -  - 340 40
6503   42 142 242 342 142 42 242 42   -  -
6504   44 144 244 344 144 44   -  -   -  -
6505   46 146 246 346 146 46   -  -   -  -
6506   48 148 248 348 148 48 248 48   -  -
6507   50 150 250 350 150 50   -  - 350 50
6508   52 152 252 352 152 52   -  -   -  -
6509   54 154 254 354 154 54 254 54   -  -
6510   56 156 256 356 156 56   -  -   -  -
6511   58 158 258 358 158 58   -  -   -  -
6512   60 160 260 360 160 60 260 60 360 60
6513   62 162 262 362 162 62   -  -   -  -
6514   64 164 264 364 164 64   -  -   -  -
6515   66 166 266 366 166 66 266 66   -  -
6516   68 168 268 368 168 68   -  -   -  -
6517   70 170 270 370 170 70   -  - 370 70
6518   72 172 272 372 172 72 272 72   -  -
6519   74 174 274 374 174 74   -  -   -  -
6520   76 176 276 376 176 76   -  -   -  -
6521   78 178 278 378 178 78 278 78   -  -
6522   80 180 280 380 180 80   -  - 380 80
6523   82 182 282 382 182 82   -  -   -  -
6524   84 184 284 384 184 84 284 84   -  -
6525   86 186 286 386 186 86   -  -   -  -
6526   88 188 288 388 188 88   -  -   -  -
6527   90 190 290 390 190 90 290 90 390 90
6528   92 192 292 392 192 92   -  -   -  -
6529   94 194 294 394 194 94   -  -   -  -
6530    -   -   -   -   -  - 203  3   -  -
6531    -   -   -   -   -  - 209  9   -  -
6532    -   -   -   -   -  - 215 15   -  -
6533    -   -   -   -   -  - 221 21   -  -
6534    -   -   -   -   -  - 227 27   -  -
6535    -   -   -   -   -  - 233 33   -  -
6536    -   -   -   -   -  - 239 39   -  -
6537    -   -   -   -   -  - 245 45   -  -
6538    -   -   -   -   -  - 251 51   -  -
6539    -   -   -   -   -  - 257 57   -  -
6540    -   -   -   -   -  - 263 63   -  -
6541    -   -   -   -   -  - 269 69   -  -
6542    -   -   -   -   -  - 275 75   -  -
6543    -   -   -   -   -  - 281 81   -  -
6544    -   -   -   -   -  - 287 87   -  -
6545    -   -   -   -   -  - 293 93   -  -
6547 do_execsql_test joinD-254 {
6548   SELECT t1.*, t2.*, t3.*, t4.*
6549   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
6550   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
6551   LEFT JOIN t4 ON t1.d=t4.d
6552   WHERE t4.z>0
6553   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6554 } {
6555   10 110 210 310 110 10   -  - 310 10
6556   20 120 220 320 120 20   -  - 320 20
6557   30 130 230 330 130 30 230 30 330 30
6558   40 140 240 340 140 40   -  - 340 40
6559   50 150 250 350 150 50   -  - 350 50
6560   60 160 260 360 160 60 260 60 360 60
6561   70 170 270 370 170 70   -  - 370 70
6562   80 180 280 380 180 80   -  - 380 80
6563   90 190 290 390 190 90 290 90 390 90
6565 do_execsql_test joinD-255 {
6566   SELECT t1.*, t2.*, t3.*, t4.*
6567   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
6568   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
6569   LEFT JOIN t4 ON t1.d=t4.d
6570   WHERE t4.z IS NULL OR t4.z>0
6571   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6572 } {
6573    2 102 202 302 102  2   -  -   -  -
6574    4 104 204 304 104  4   -  -   -  -
6575    6 106 206 306 106  6 206  6   -  -
6576    8 108 208 308 108  8   -  -   -  -
6577   10 110 210 310 110 10   -  - 310 10
6578   12 112 212 312 112 12 212 12   -  -
6579   14 114 214 314 114 14   -  -   -  -
6580   16 116 216 316 116 16   -  -   -  -
6581   18 118 218 318 118 18 218 18   -  -
6582   20 120 220 320 120 20   -  - 320 20
6583   22 122 222 322 122 22   -  -   -  -
6584   24 124 224 324 124 24 224 24   -  -
6585   26 126 226 326 126 26   -  -   -  -
6586   28 128 228 328 128 28   -  -   -  -
6587   30 130 230 330 130 30 230 30 330 30
6588   32 132 232 332 132 32   -  -   -  -
6589   34 134 234 334 134 34   -  -   -  -
6590   36 136 236 336 136 36 236 36   -  -
6591   38 138 238 338 138 38   -  -   -  -
6592   40 140 240 340 140 40   -  - 340 40
6593   42 142 242 342 142 42 242 42   -  -
6594   44 144 244 344 144 44   -  -   -  -
6595   46 146 246 346 146 46   -  -   -  -
6596   48 148 248 348 148 48 248 48   -  -
6597   50 150 250 350 150 50   -  - 350 50
6598   52 152 252 352 152 52   -  -   -  -
6599   54 154 254 354 154 54 254 54   -  -
6600   56 156 256 356 156 56   -  -   -  -
6601   58 158 258 358 158 58   -  -   -  -
6602   60 160 260 360 160 60 260 60 360 60
6603   62 162 262 362 162 62   -  -   -  -
6604   64 164 264 364 164 64   -  -   -  -
6605   66 166 266 366 166 66 266 66   -  -
6606   68 168 268 368 168 68   -  -   -  -
6607   70 170 270 370 170 70   -  - 370 70
6608   72 172 272 372 172 72 272 72   -  -
6609   74 174 274 374 174 74   -  -   -  -
6610   76 176 276 376 176 76   -  -   -  -
6611   78 178 278 378 178 78 278 78   -  -
6612   80 180 280 380 180 80   -  - 380 80
6613   82 182 282 382 182 82   -  -   -  -
6614   84 184 284 384 184 84 284 84   -  -
6615   86 186 286 386 186 86   -  -   -  -
6616   88 188 288 388 188 88   -  -   -  -
6617   90 190 290 390 190 90 290 90 390 90
6618   92 192 292 392 192 92   -  -   -  -
6619   94 194 294 394 194 94   -  -   -  -
6620    -   -   -   -   -  - 200  0   -  -
6621    -   -   -   -   -  - 203  3   -  -
6622    -   -   -   -   -  - 209  9   -  -
6623    -   -   -   -   -  - 215 15   -  -
6624    -   -   -   -   -  - 221 21   -  -
6625    -   -   -   -   -  - 227 27   -  -
6626    -   -   -   -   -  - 233 33   -  -
6627    -   -   -   -   -  - 239 39   -  -
6628    -   -   -   -   -  - 245 45   -  -
6629    -   -   -   -   -  - 251 51   -  -
6630    -   -   -   -   -  - 257 57   -  -
6631    -   -   -   -   -  - 263 63   -  -
6632    -   -   -   -   -  - 269 69   -  -
6633    -   -   -   -   -  - 275 75   -  -
6634    -   -   -   -   -  - 281 81   -  -
6635    -   -   -   -   -  - 287 87   -  -
6636    -   -   -   -   -  - 293 93   -  -
6638 do_execsql_test joinD-256 {
6639   SELECT t1.*, t2.*, t3.*, t4.*
6640   FROM t1 INNER JOIN t2 ON t1.b=t2.b
6641   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
6642   LEFT JOIN t4 ON t1.d=t4.d
6643   WHERE t2.x>0 AND t4.z>0
6644   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6645 } {
6646   10 110 210 310 110 10   -  - 310 10
6647   20 120 220 320 120 20   -  - 320 20
6648   30 130 230 330 130 30 230 30 330 30
6649   40 140 240 340 140 40   -  - 340 40
6650   50 150 250 350 150 50   -  - 350 50
6651   60 160 260 360 160 60 260 60 360 60
6652   70 170 270 370 170 70   -  - 370 70
6653   80 180 280 380 180 80   -  - 380 80
6654   90 190 290 390 190 90 290 90 390 90
6656 do_execsql_test joinD-257 {
6657   SELECT t1.*, t2.*, t3.*, t4.*
6658   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
6659   FULL JOIN t3 ON t1.c=t3.c
6660   LEFT JOIN t4 ON t1.d=t4.d
6661   WHERE t4.z>0 AND t3.y>0
6662   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6663 } {
6664   30 130 230 330 130 30 230 30 330 30
6665   60 160 260 360 160 60 260 60 360 60
6666   90 190 290 390 190 90 290 90 390 90
6668 do_execsql_test joinD-258 {
6669   SELECT t1.*, t2.*, t3.*, t4.*
6670   FROM t1 INNER JOIN t2 ON t1.b=t2.b
6671   FULL JOIN t3 ON t1.c=t3.c
6672   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
6673   WHERE t2.x>0 AND t3.y>0
6674   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6675 } {
6676    6 106 206 306 106  6 206  6   -  -
6677   12 112 212 312 112 12 212 12   -  -
6678   18 118 218 318 118 18 218 18   -  -
6679   24 124 224 324 124 24 224 24   -  -
6680   30 130 230 330 130 30 230 30 330 30
6681   36 136 236 336 136 36 236 36   -  -
6682   42 142 242 342 142 42 242 42   -  -
6683   48 148 248 348 148 48 248 48   -  -
6684   54 154 254 354 154 54 254 54   -  -
6685   60 160 260 360 160 60 260 60 360 60
6686   66 166 266 366 166 66 266 66   -  -
6687   72 172 272 372 172 72 272 72   -  -
6688   78 178 278 378 178 78 278 78   -  -
6689   84 184 284 384 184 84 284 84   -  -
6690   90 190 290 390 190 90 290 90 390 90
6692 do_execsql_test joinD-259 {
6693   SELECT t1.*, t2.*, t3.*, t4.*
6694   FROM t1 INNER JOIN t2 ON t1.b=t2.b
6695   FULL JOIN t3 ON t1.c=t3.c
6696   LEFT JOIN t4 ON t1.d=t4.d
6697   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
6698   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6699 } {
6700   30 130 230 330 130 30 230 30 330 30
6701   60 160 260 360 160 60 260 60 360 60
6702   90 190 290 390 190 90 290 90 390 90
6704 do_execsql_test joinD-260 {
6705   SELECT t1.*, t2.*, t3.*, t4.*
6706   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
6707   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
6708   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
6709   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6710 } {
6711    2 102 202 302 102  2   -  -   -  -
6712    4 104 204 304 104  4   -  -   -  -
6713    6 106 206 306 106  6 206  6   -  -
6714    8 108 208 308 108  8   -  -   -  -
6715   10 110 210 310 110 10   -  - 310 10
6716   12 112 212 312 112 12 212 12   -  -
6717   14 114 214 314 114 14   -  -   -  -
6718   16 116 216 316 116 16   -  -   -  -
6719   18 118 218 318 118 18 218 18   -  -
6720   20 120 220 320 120 20   -  - 320 20
6721   22 122 222 322 122 22   -  -   -  -
6722   24 124 224 324 124 24 224 24   -  -
6723   26 126 226 326 126 26   -  -   -  -
6724   28 128 228 328 128 28   -  -   -  -
6725   30 130 230 330 130 30 230 30 330 30
6726   32 132 232 332 132 32   -  -   -  -
6727   34 134 234 334 134 34   -  -   -  -
6728   36 136 236 336 136 36 236 36   -  -
6729   38 138 238 338 138 38   -  -   -  -
6730   40 140 240 340 140 40   -  - 340 40
6731   42 142 242 342 142 42 242 42   -  -
6732   44 144 244 344 144 44   -  -   -  -
6733   46 146 246 346 146 46   -  -   -  -
6734   48 148 248 348 148 48 248 48   -  -
6735   50 150 250 350 150 50   -  - 350 50
6736   52 152 252 352 152 52   -  -   -  -
6737   54 154 254 354 154 54 254 54   -  -
6738   56 156 256 356 156 56   -  -   -  -
6739   58 158 258 358 158 58   -  -   -  -
6740   60 160 260 360 160 60 260 60 360 60
6741   62 162 262 362 162 62   -  -   -  -
6742   64 164 264 364 164 64   -  -   -  -
6743   66 166 266 366 166 66 266 66   -  -
6744   68 168 268 368 168 68   -  -   -  -
6745   70 170 270 370 170 70   -  - 370 70
6746   72 172 272 372 172 72 272 72   -  -
6747   74 174 274 374 174 74   -  -   -  -
6748   76 176 276 376 176 76   -  -   -  -
6749   78 178 278 378 178 78 278 78   -  -
6750   80 180 280 380 180 80   -  - 380 80
6751   82 182 282 382 182 82   -  -   -  -
6752   84 184 284 384 184 84 284 84   -  -
6753   86 186 286 386 186 86   -  -   -  -
6754   88 188 288 388 188 88   -  -   -  -
6755   90 190 290 390 190 90 290 90 390 90
6756   92 192 292 392 192 92   -  -   -  -
6757   94 194 294 394 194 94   -  -   -  -
6758    -   -   -   -   -  - 200  0   -  -
6759    -   -   -   -   -  - 203  3   -  -
6760    -   -   -   -   -  - 209  9   -  -
6761    -   -   -   -   -  - 215 15   -  -
6762    -   -   -   -   -  - 221 21   -  -
6763    -   -   -   -   -  - 227 27   -  -
6764    -   -   -   -   -  - 233 33   -  -
6765    -   -   -   -   -  - 239 39   -  -
6766    -   -   -   -   -  - 245 45   -  -
6767    -   -   -   -   -  - 251 51   -  -
6768    -   -   -   -   -  - 257 57   -  -
6769    -   -   -   -   -  - 263 63   -  -
6770    -   -   -   -   -  - 269 69   -  -
6771    -   -   -   -   -  - 275 75   -  -
6772    -   -   -   -   -  - 281 81   -  -
6773    -   -   -   -   -  - 287 87   -  -
6774    -   -   -   -   -  - 293 93   -  -
6776 do_execsql_test joinD-261 {
6777   SELECT t1.*, t2.*, t3.*, t4.*
6778   FROM t1 INNER JOIN t2 ON t2.x>0
6779   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
6780   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
6781   WHERE t1.b IS NOT DISTINCT FROM t2.b
6782   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6783 } {
6784    2 102 202 302 102  2   -  -   -  -
6785    4 104 204 304 104  4   -  -   -  -
6786    6 106 206 306 106  6 206  6   -  -
6787    8 108 208 308 108  8   -  -   -  -
6788   10 110 210 310 110 10   -  - 310 10
6789   12 112 212 312 112 12 212 12   -  -
6790   14 114 214 314 114 14   -  -   -  -
6791   16 116 216 316 116 16   -  -   -  -
6792   18 118 218 318 118 18 218 18   -  -
6793   20 120 220 320 120 20   -  - 320 20
6794   22 122 222 322 122 22   -  -   -  -
6795   24 124 224 324 124 24 224 24   -  -
6796   26 126 226 326 126 26   -  -   -  -
6797   28 128 228 328 128 28   -  -   -  -
6798   30 130 230 330 130 30 230 30 330 30
6799   32 132 232 332 132 32   -  -   -  -
6800   34 134 234 334 134 34   -  -   -  -
6801   36 136 236 336 136 36 236 36   -  -
6802   38 138 238 338 138 38   -  -   -  -
6803   40 140 240 340 140 40   -  - 340 40
6804   42 142 242 342 142 42 242 42   -  -
6805   44 144 244 344 144 44   -  -   -  -
6806   46 146 246 346 146 46   -  -   -  -
6807   48 148 248 348 148 48 248 48   -  -
6808   50 150 250 350 150 50   -  - 350 50
6809   52 152 252 352 152 52   -  -   -  -
6810   54 154 254 354 154 54 254 54   -  -
6811   56 156 256 356 156 56   -  -   -  -
6812   58 158 258 358 158 58   -  -   -  -
6813   60 160 260 360 160 60 260 60 360 60
6814   62 162 262 362 162 62   -  -   -  -
6815   64 164 264 364 164 64   -  -   -  -
6816   66 166 266 366 166 66 266 66   -  -
6817   68 168 268 368 168 68   -  -   -  -
6818   70 170 270 370 170 70   -  - 370 70
6819   72 172 272 372 172 72 272 72   -  -
6820   74 174 274 374 174 74   -  -   -  -
6821   76 176 276 376 176 76   -  -   -  -
6822   78 178 278 378 178 78 278 78   -  -
6823   80 180 280 380 180 80   -  - 380 80
6824   82 182 282 382 182 82   -  -   -  -
6825   84 184 284 384 184 84 284 84   -  -
6826   86 186 286 386 186 86   -  -   -  -
6827   88 188 288 388 188 88   -  -   -  -
6828   90 190 290 390 190 90 290 90 390 90
6829   92 192 292 392 192 92   -  -   -  -
6830   94 194 294 394 194 94   -  -   -  -
6831    -   -   -   -   -  - 200  0   -  -
6833 do_execsql_test joinD-262 {
6834   SELECT t1.*, t2.*, t3.*, t4.*
6835   FROM t1 INNER JOIN t2 ON t2.x>0
6836   FULL JOIN t3 ON t3.y>0
6837   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
6838   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
6839   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6840 } {
6841    6 106 206 306 106  6 206  6   -  -
6842   12 112 212 312 112 12 212 12   -  -
6843   18 118 218 318 118 18 218 18   -  -
6844   24 124 224 324 124 24 224 24   -  -
6845   30 130 230 330 130 30 230 30 330 30
6846   36 136 236 336 136 36 236 36   -  -
6847   42 142 242 342 142 42 242 42   -  -
6848   48 148 248 348 148 48 248 48   -  -
6849   54 154 254 354 154 54 254 54   -  -
6850   60 160 260 360 160 60 260 60 360 60
6851   66 166 266 366 166 66 266 66   -  -
6852   72 172 272 372 172 72 272 72   -  -
6853   78 178 278 378 178 78 278 78   -  -
6854   84 184 284 384 184 84 284 84   -  -
6855   90 190 290 390 190 90 290 90 390 90
6857 do_execsql_test joinD-263 {
6858   SELECT t1.*, t2.*, t3.*, t4.*
6859   FROM t1 INNER JOIN t2 ON t2.x>0
6860   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
6861   LEFT JOIN t4 ON t4.z>0
6862   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
6863   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6864 } {
6865   10 110 210 310 110 10   -  - 310 10
6866   20 120 220 320 120 20   -  - 320 20
6867   30 130 230 330 130 30 230 30 330 30
6868   40 140 240 340 140 40   -  - 340 40
6869   50 150 250 350 150 50   -  - 350 50
6870   60 160 260 360 160 60 260 60 360 60
6871   70 170 270 370 170 70   -  - 370 70
6872   80 180 280 380 180 80   -  - 380 80
6873   90 190 290 390 190 90 290 90 390 90
6875 do_execsql_test joinD-264 {
6876   SELECT t1.*, t2.*, t3.*, t4.*
6877   FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
6878   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
6879   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
6880   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6881 } {
6882    2 102 202 302 102  2   -  -   -  -
6883    4 104 204 304 104  4   -  -   -  -
6884    6 106 206 306 106  6 206  6   -  -
6885    8 108 208 308 108  8   -  -   -  -
6886   10 110 210 310 110 10   -  - 310 10
6887   12 112 212 312 112 12 212 12   -  -
6888   14 114 214 314 114 14   -  -   -  -
6889   16 116 216 316 116 16   -  -   -  -
6890   18 118 218 318 118 18 218 18   -  -
6891   20 120 220 320 120 20   -  - 320 20
6892   22 122 222 322 122 22   -  -   -  -
6893   24 124 224 324 124 24 224 24   -  -
6894   26 126 226 326 126 26   -  -   -  -
6895   28 128 228 328 128 28   -  -   -  -
6896   30 130 230 330 130 30 230 30 330 30
6897   32 132 232 332 132 32   -  -   -  -
6898   34 134 234 334 134 34   -  -   -  -
6899   36 136 236 336 136 36 236 36   -  -
6900   38 138 238 338 138 38   -  -   -  -
6901   40 140 240 340 140 40   -  - 340 40
6902   42 142 242 342 142 42 242 42   -  -
6903   44 144 244 344 144 44   -  -   -  -
6904   46 146 246 346 146 46   -  -   -  -
6905   48 148 248 348 148 48 248 48   -  -
6906   50 150 250 350 150 50   -  - 350 50
6907   52 152 252 352 152 52   -  -   -  -
6908   54 154 254 354 154 54 254 54   -  -
6909   56 156 256 356 156 56   -  -   -  -
6910   58 158 258 358 158 58   -  -   -  -
6911   60 160 260 360 160 60 260 60 360 60
6912   62 162 262 362 162 62   -  -   -  -
6913   64 164 264 364 164 64   -  -   -  -
6914   66 166 266 366 166 66 266 66   -  -
6915   68 168 268 368 168 68   -  -   -  -
6916   70 170 270 370 170 70   -  - 370 70
6917   72 172 272 372 172 72 272 72   -  -
6918   74 174 274 374 174 74   -  -   -  -
6919   76 176 276 376 176 76   -  -   -  -
6920   78 178 278 378 178 78 278 78   -  -
6921   80 180 280 380 180 80   -  - 380 80
6922   82 182 282 382 182 82   -  -   -  -
6923   84 184 284 384 184 84 284 84   -  -
6924   86 186 286 386 186 86   -  -   -  -
6925   88 188 288 388 188 88   -  -   -  -
6926   90 190 290 390 190 90 290 90 390 90
6927   92 192 292 392 192 92   -  -   -  -
6928   94 194 294 394 194 94   -  -   -  -
6929    -   -   -   -   -  - 200  0   -  -
6930    -   -   -   -   -  - 203  3   -  -
6931    -   -   -   -   -  - 209  9   -  -
6932    -   -   -   -   -  - 215 15   -  -
6933    -   -   -   -   -  - 221 21   -  -
6934    -   -   -   -   -  - 227 27   -  -
6935    -   -   -   -   -  - 233 33   -  -
6936    -   -   -   -   -  - 239 39   -  -
6937    -   -   -   -   -  - 245 45   -  -
6938    -   -   -   -   -  - 251 51   -  -
6939    -   -   -   -   -  - 257 57   -  -
6940    -   -   -   -   -  - 263 63   -  -
6941    -   -   -   -   -  - 269 69   -  -
6942    -   -   -   -   -  - 275 75   -  -
6943    -   -   -   -   -  - 281 81   -  -
6944    -   -   -   -   -  - 287 87   -  -
6945    -   -   -   -   -  - 293 93   -  -
6947 do_execsql_test joinD-265 {
6948   SELECT t1.*, t2.*, t3.*, t4.*
6949   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
6950   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
6951   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
6952   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6953 } {
6954   10 110 210 310 110 10   -  - 310 10
6955   20 120 220 320 120 20   -  - 320 20
6956   30 130 230 330 130 30 230 30 330 30
6957   40 140 240 340 140 40   -  - 340 40
6958   50 150 250 350 150 50   -  - 350 50
6959   60 160 260 360 160 60 260 60 360 60
6960   70 170 270 370 170 70   -  - 370 70
6961   80 180 280 380 180 80   -  - 380 80
6962   90 190 290 390 190 90 290 90 390 90
6963    -   -   -   -   -  -   -  - 300  0
6964    -   -   -   -   -  -   -  - 305  5
6965    -   -   -   -   -  -   -  - 315 15
6966    -   -   -   -   -  -   -  - 325 25
6967    -   -   -   -   -  -   -  - 335 35
6968    -   -   -   -   -  -   -  - 345 45
6969    -   -   -   -   -  -   -  - 355 55
6970    -   -   -   -   -  -   -  - 365 65
6971    -   -   -   -   -  -   -  - 375 75
6972    -   -   -   -   -  -   -  - 385 85
6973    -   -   -   -   -  -   -  - 395 95
6975 do_execsql_test joinD-266 {
6976   SELECT t1.*, t2.*, t3.*, t4.*
6977   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
6978   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
6979   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
6980   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
6981 } {
6982   10 110 210 310 110 10   -  - 310 10
6983   20 120 220 320 120 20   -  - 320 20
6984   30 130 230 330 130 30 230 30 330 30
6985   40 140 240 340 140 40   -  - 340 40
6986   50 150 250 350 150 50   -  - 350 50
6987   60 160 260 360 160 60 260 60 360 60
6988   70 170 270 370 170 70   -  - 370 70
6989   80 180 280 380 180 80   -  - 380 80
6990   90 190 290 390 190 90 290 90 390 90
6991    -   -   -   -   -  -   -  - 300  0
6992    -   -   -   -   -  -   -  - 305  5
6993    -   -   -   -   -  -   -  - 315 15
6994    -   -   -   -   -  -   -  - 325 25
6995    -   -   -   -   -  -   -  - 335 35
6996    -   -   -   -   -  -   -  - 345 45
6997    -   -   -   -   -  -   -  - 355 55
6998    -   -   -   -   -  -   -  - 365 65
6999    -   -   -   -   -  -   -  - 375 75
7000    -   -   -   -   -  -   -  - 385 85
7001    -   -   -   -   -  -   -  - 395 95
7003 do_execsql_test joinD-267 {
7004   SELECT t1.*, t2.*, t3.*, t4.*
7005   FROM t1 INNER JOIN t2 ON t1.b=t2.b
7006   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
7007   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
7008   WHERE t2.x>0
7009   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7010 } {
7011   10 110 210 310 110 10   -  - 310 10
7012   20 120 220 320 120 20   -  - 320 20
7013   30 130 230 330 130 30 230 30 330 30
7014   40 140 240 340 140 40   -  - 340 40
7015   50 150 250 350 150 50   -  - 350 50
7016   60 160 260 360 160 60 260 60 360 60
7017   70 170 270 370 170 70   -  - 370 70
7018   80 180 280 380 180 80   -  - 380 80
7019   90 190 290 390 190 90 290 90 390 90
7021 do_execsql_test joinD-268 {
7022   SELECT t1.*, t2.*, t3.*, t4.*
7023   FROM t1 INNER JOIN t2 ON t1.b=t2.b
7024   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
7025   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
7026   WHERE (t2.x>0 OR t2.x IS NULL)
7027   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7028 } {
7029   10 110 210 310 110 10   -  - 310 10
7030   20 120 220 320 120 20   -  - 320 20
7031   30 130 230 330 130 30 230 30 330 30
7032   40 140 240 340 140 40   -  - 340 40
7033   50 150 250 350 150 50   -  - 350 50
7034   60 160 260 360 160 60 260 60 360 60
7035   70 170 270 370 170 70   -  - 370 70
7036   80 180 280 380 180 80   -  - 380 80
7037   90 190 290 390 190 90 290 90 390 90
7038    -   -   -   -   -  -   -  - 300  0
7039    -   -   -   -   -  -   -  - 305  5
7040    -   -   -   -   -  -   -  - 315 15
7041    -   -   -   -   -  -   -  - 325 25
7042    -   -   -   -   -  -   -  - 335 35
7043    -   -   -   -   -  -   -  - 345 45
7044    -   -   -   -   -  -   -  - 355 55
7045    -   -   -   -   -  -   -  - 365 65
7046    -   -   -   -   -  -   -  - 375 75
7047    -   -   -   -   -  -   -  - 385 85
7048    -   -   -   -   -  -   -  - 395 95
7050 do_execsql_test joinD-269 {
7051   SELECT t1.*, t2.*, t3.*, t4.*
7052   FROM t1 INNER JOIN t2 ON true
7053   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
7054   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
7055   WHERE t1.b=t2.b AND t2.x>0
7056   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7057 } {
7058   10 110 210 310 110 10   -  - 310 10
7059   20 120 220 320 120 20   -  - 320 20
7060   30 130 230 330 130 30 230 30 330 30
7061   40 140 240 340 140 40   -  - 340 40
7062   50 150 250 350 150 50   -  - 350 50
7063   60 160 260 360 160 60 260 60 360 60
7064   70 170 270 370 170 70   -  - 370 70
7065   80 180 280 380 180 80   -  - 380 80
7066   90 190 290 390 190 90 290 90 390 90
7068 do_execsql_test joinD-270 {
7069   SELECT t1.*, t2.*, t3.*, t4.*
7070   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
7071   FULL JOIN t3 ON t1.c=t3.c
7072   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
7073   WHERE t3.y>0
7074   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7075 } {
7076   30 130 230 330 130 30 230 30 330 30
7077   60 160 260 360 160 60 260 60 360 60
7078   90 190 290 390 190 90 290 90 390 90
7080 do_execsql_test joinD-271 {
7081   SELECT t1.*, t2.*, t3.*, t4.*
7082   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
7083   FULL JOIN t3 ON t1.c=t3.c
7084   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
7085   WHERE t3.y>0 OR t3.y IS NULL
7086   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7087 } {
7088   10 110 210 310 110 10   -  - 310 10
7089   20 120 220 320 120 20   -  - 320 20
7090   30 130 230 330 130 30 230 30 330 30
7091   40 140 240 340 140 40   -  - 340 40
7092   50 150 250 350 150 50   -  - 350 50
7093   60 160 260 360 160 60 260 60 360 60
7094   70 170 270 370 170 70   -  - 370 70
7095   80 180 280 380 180 80   -  - 380 80
7096   90 190 290 390 190 90 290 90 390 90
7097    -   -   -   -   -  -   -  - 300  0
7098    -   -   -   -   -  -   -  - 305  5
7099    -   -   -   -   -  -   -  - 315 15
7100    -   -   -   -   -  -   -  - 325 25
7101    -   -   -   -   -  -   -  - 335 35
7102    -   -   -   -   -  -   -  - 345 45
7103    -   -   -   -   -  -   -  - 355 55
7104    -   -   -   -   -  -   -  - 365 65
7105    -   -   -   -   -  -   -  - 375 75
7106    -   -   -   -   -  -   -  - 385 85
7107    -   -   -   -   -  -   -  - 395 95
7109 do_execsql_test joinD-272 {
7110   SELECT t1.*, t2.*, t3.*, t4.*
7111   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
7112   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
7113   RIGHT JOIN t4 ON t1.d=t4.d
7114   WHERE t4.z>0
7115   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7116 } {
7117   10 110 210 310 110 10   -  - 310 10
7118   20 120 220 320 120 20   -  - 320 20
7119   30 130 230 330 130 30 230 30 330 30
7120   40 140 240 340 140 40   -  - 340 40
7121   50 150 250 350 150 50   -  - 350 50
7122   60 160 260 360 160 60 260 60 360 60
7123   70 170 270 370 170 70   -  - 370 70
7124   80 180 280 380 180 80   -  - 380 80
7125   90 190 290 390 190 90 290 90 390 90
7126    -   -   -   -   -  -   -  - 305  5
7127    -   -   -   -   -  -   -  - 315 15
7128    -   -   -   -   -  -   -  - 325 25
7129    -   -   -   -   -  -   -  - 335 35
7130    -   -   -   -   -  -   -  - 345 45
7131    -   -   -   -   -  -   -  - 355 55
7132    -   -   -   -   -  -   -  - 365 65
7133    -   -   -   -   -  -   -  - 375 75
7134    -   -   -   -   -  -   -  - 385 85
7135    -   -   -   -   -  -   -  - 395 95
7137 do_execsql_test joinD-273 {
7138   SELECT t1.*, t2.*, t3.*, t4.*
7139   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
7140   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
7141   RIGHT JOIN t4 ON t1.d=t4.d
7142   WHERE t4.z IS NULL OR t4.z>0
7143   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7144 } {
7145   10 110 210 310 110 10   -  - 310 10
7146   20 120 220 320 120 20   -  - 320 20
7147   30 130 230 330 130 30 230 30 330 30
7148   40 140 240 340 140 40   -  - 340 40
7149   50 150 250 350 150 50   -  - 350 50
7150   60 160 260 360 160 60 260 60 360 60
7151   70 170 270 370 170 70   -  - 370 70
7152   80 180 280 380 180 80   -  - 380 80
7153   90 190 290 390 190 90 290 90 390 90
7154    -   -   -   -   -  -   -  - 305  5
7155    -   -   -   -   -  -   -  - 315 15
7156    -   -   -   -   -  -   -  - 325 25
7157    -   -   -   -   -  -   -  - 335 35
7158    -   -   -   -   -  -   -  - 345 45
7159    -   -   -   -   -  -   -  - 355 55
7160    -   -   -   -   -  -   -  - 365 65
7161    -   -   -   -   -  -   -  - 375 75
7162    -   -   -   -   -  -   -  - 385 85
7163    -   -   -   -   -  -   -  - 395 95
7165 do_execsql_test joinD-274 {
7166   SELECT t1.*, t2.*, t3.*, t4.*
7167   FROM t1 INNER JOIN t2 ON t1.b=t2.b
7168   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
7169   RIGHT JOIN t4 ON t1.d=t4.d
7170   WHERE t2.x>0 AND t4.z>0
7171   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7172 } {
7173   10 110 210 310 110 10   -  - 310 10
7174   20 120 220 320 120 20   -  - 320 20
7175   30 130 230 330 130 30 230 30 330 30
7176   40 140 240 340 140 40   -  - 340 40
7177   50 150 250 350 150 50   -  - 350 50
7178   60 160 260 360 160 60 260 60 360 60
7179   70 170 270 370 170 70   -  - 370 70
7180   80 180 280 380 180 80   -  - 380 80
7181   90 190 290 390 190 90 290 90 390 90
7183 do_execsql_test joinD-275 {
7184   SELECT t1.*, t2.*, t3.*, t4.*
7185   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
7186   FULL JOIN t3 ON t1.c=t3.c
7187   RIGHT JOIN t4 ON t1.d=t4.d
7188   WHERE t4.z>0 AND t3.y>0
7189   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7190 } {
7191   30 130 230 330 130 30 230 30 330 30
7192   60 160 260 360 160 60 260 60 360 60
7193   90 190 290 390 190 90 290 90 390 90
7195 do_execsql_test joinD-276 {
7196   SELECT t1.*, t2.*, t3.*, t4.*
7197   FROM t1 INNER JOIN t2 ON t1.b=t2.b
7198   FULL JOIN t3 ON t1.c=t3.c
7199   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
7200   WHERE t2.x>0 AND t3.y>0
7201   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7202 } {
7203   30 130 230 330 130 30 230 30 330 30
7204   60 160 260 360 160 60 260 60 360 60
7205   90 190 290 390 190 90 290 90 390 90
7207 do_execsql_test joinD-277 {
7208   SELECT t1.*, t2.*, t3.*, t4.*
7209   FROM t1 INNER JOIN t2 ON t1.b=t2.b
7210   FULL JOIN t3 ON t1.c=t3.c
7211   RIGHT JOIN t4 ON t1.d=t4.d
7212   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
7213   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7214 } {
7215   30 130 230 330 130 30 230 30 330 30
7216   60 160 260 360 160 60 260 60 360 60
7217   90 190 290 390 190 90 290 90 390 90
7219 do_execsql_test joinD-278 {
7220   SELECT t1.*, t2.*, t3.*, t4.*
7221   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
7222   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
7223   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
7224   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7225 } {
7226   10 110 210 310 110 10   -  - 310 10
7227   20 120 220 320 120 20   -  - 320 20
7228   30 130 230 330 130 30 230 30 330 30
7229   40 140 240 340 140 40   -  - 340 40
7230   50 150 250 350 150 50   -  - 350 50
7231   60 160 260 360 160 60 260 60 360 60
7232   70 170 270 370 170 70   -  - 370 70
7233   80 180 280 380 180 80   -  - 380 80
7234   90 190 290 390 190 90 290 90 390 90
7235    -   -   -   -   -  -   -  - 300  0
7236    -   -   -   -   -  -   -  - 305  5
7237    -   -   -   -   -  -   -  - 315 15
7238    -   -   -   -   -  -   -  - 325 25
7239    -   -   -   -   -  -   -  - 335 35
7240    -   -   -   -   -  -   -  - 345 45
7241    -   -   -   -   -  -   -  - 355 55
7242    -   -   -   -   -  -   -  - 365 65
7243    -   -   -   -   -  -   -  - 375 75
7244    -   -   -   -   -  -   -  - 385 85
7245    -   -   -   -   -  -   -  - 395 95
7247 do_execsql_test joinD-279 {
7248   SELECT t1.*, t2.*, t3.*, t4.*
7249   FROM t1 INNER JOIN t2 ON t2.x>0
7250   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
7251   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
7252   WHERE t1.b IS NOT DISTINCT FROM t2.b
7253   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7254 } {
7255   10 110 210 310 110 10   -  - 310 10
7256   20 120 220 320 120 20   -  - 320 20
7257   30 130 230 330 130 30 230 30 330 30
7258   40 140 240 340 140 40   -  - 340 40
7259   50 150 250 350 150 50   -  - 350 50
7260   60 160 260 360 160 60 260 60 360 60
7261   70 170 270 370 170 70   -  - 370 70
7262   80 180 280 380 180 80   -  - 380 80
7263   90 190 290 390 190 90 290 90 390 90
7264    -   -   -   -   -  -   -  - 300  0
7266 do_execsql_test joinD-280 {
7267   SELECT t1.*, t2.*, t3.*, t4.*
7268   FROM t1 INNER JOIN t2 ON t2.x>0
7269   FULL JOIN t3 ON t3.y>0
7270   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
7271   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
7272   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7273 } {
7274   30 130 230 330 130 30 230 30 330 30
7275   60 160 260 360 160 60 260 60 360 60
7276   90 190 290 390 190 90 290 90 390 90
7278 do_execsql_test joinD-281 {
7279   SELECT t1.*, t2.*, t3.*, t4.*
7280   FROM t1 INNER JOIN t2 ON t2.x>0
7281   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
7282   RIGHT JOIN t4 ON t4.z>0
7283   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
7284   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7285 } {
7286   10 110 210 310 110 10   -  - 310 10
7287   20 120 220 320 120 20   -  - 320 20
7288   30 130 230 330 130 30 230 30 330 30
7289   40 140 240 340 140 40   -  - 340 40
7290   50 150 250 350 150 50   -  - 350 50
7291   60 160 260 360 160 60 260 60 360 60
7292   70 170 270 370 170 70   -  - 370 70
7293   80 180 280 380 180 80   -  - 380 80
7294   90 190 290 390 190 90 290 90 390 90
7296 do_execsql_test joinD-282 {
7297   SELECT t1.*, t2.*, t3.*, t4.*
7298   FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
7299   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
7300   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
7301   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7302 } {
7303   10 110 210 310 110 10   -  - 310 10
7304   20 120 220 320 120 20   -  - 320 20
7305   30 130 230 330 130 30 230 30 330 30
7306   40 140 240 340 140 40   -  - 340 40
7307   50 150 250 350 150 50   -  - 350 50
7308   60 160 260 360 160 60 260 60 360 60
7309   70 170 270 370 170 70   -  - 370 70
7310   80 180 280 380 180 80   -  - 380 80
7311   90 190 290 390 190 90 290 90 390 90
7312    -   -   -   -   -  -   -  - 300  0
7313    -   -   -   -   -  -   -  - 305  5
7314    -   -   -   -   -  -   -  - 315 15
7315    -   -   -   -   -  -   -  - 325 25
7316    -   -   -   -   -  -   -  - 335 35
7317    -   -   -   -   -  -   -  - 345 45
7318    -   -   -   -   -  -   -  - 355 55
7319    -   -   -   -   -  -   -  - 365 65
7320    -   -   -   -   -  -   -  - 375 75
7321    -   -   -   -   -  -   -  - 385 85
7322    -   -   -   -   -  -   -  - 395 95
7324 do_execsql_test joinD-283 {
7325   SELECT t1.*, t2.*, t3.*, t4.*
7326   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
7327   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
7328   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
7329   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7330 } {
7331    2 102 202 302 102  2   -  -   -  -
7332    4 104 204 304 104  4   -  -   -  -
7333    6 106 206 306 106  6 206  6   -  -
7334    8 108 208 308 108  8   -  -   -  -
7335   10 110 210 310 110 10   -  - 310 10
7336   12 112 212 312 112 12 212 12   -  -
7337   14 114 214 314 114 14   -  -   -  -
7338   16 116 216 316 116 16   -  -   -  -
7339   18 118 218 318 118 18 218 18   -  -
7340   20 120 220 320 120 20   -  - 320 20
7341   22 122 222 322 122 22   -  -   -  -
7342   24 124 224 324 124 24 224 24   -  -
7343   26 126 226 326 126 26   -  -   -  -
7344   28 128 228 328 128 28   -  -   -  -
7345   30 130 230 330 130 30 230 30 330 30
7346   32 132 232 332 132 32   -  -   -  -
7347   34 134 234 334 134 34   -  -   -  -
7348   36 136 236 336 136 36 236 36   -  -
7349   38 138 238 338 138 38   -  -   -  -
7350   40 140 240 340 140 40   -  - 340 40
7351   42 142 242 342 142 42 242 42   -  -
7352   44 144 244 344 144 44   -  -   -  -
7353   46 146 246 346 146 46   -  -   -  -
7354   48 148 248 348 148 48 248 48   -  -
7355   50 150 250 350 150 50   -  - 350 50
7356   52 152 252 352 152 52   -  -   -  -
7357   54 154 254 354 154 54 254 54   -  -
7358   56 156 256 356 156 56   -  -   -  -
7359   58 158 258 358 158 58   -  -   -  -
7360   60 160 260 360 160 60 260 60 360 60
7361   62 162 262 362 162 62   -  -   -  -
7362   64 164 264 364 164 64   -  -   -  -
7363   66 166 266 366 166 66 266 66   -  -
7364   68 168 268 368 168 68   -  -   -  -
7365   70 170 270 370 170 70   -  - 370 70
7366   72 172 272 372 172 72 272 72   -  -
7367   74 174 274 374 174 74   -  -   -  -
7368   76 176 276 376 176 76   -  -   -  -
7369   78 178 278 378 178 78 278 78   -  -
7370   80 180 280 380 180 80   -  - 380 80
7371   82 182 282 382 182 82   -  -   -  -
7372   84 184 284 384 184 84 284 84   -  -
7373   86 186 286 386 186 86   -  -   -  -
7374   88 188 288 388 188 88   -  -   -  -
7375   90 190 290 390 190 90 290 90 390 90
7376   92 192 292 392 192 92   -  -   -  -
7377   94 194 294 394 194 94   -  -   -  -
7378    -   -   -   -   -  - 200  0   -  -
7379    -   -   -   -   -  - 203  3   -  -
7380    -   -   -   -   -  - 209  9   -  -
7381    -   -   -   -   -  - 215 15   -  -
7382    -   -   -   -   -  - 221 21   -  -
7383    -   -   -   -   -  - 227 27   -  -
7384    -   -   -   -   -  - 233 33   -  -
7385    -   -   -   -   -  - 239 39   -  -
7386    -   -   -   -   -  - 245 45   -  -
7387    -   -   -   -   -  - 251 51   -  -
7388    -   -   -   -   -  - 257 57   -  -
7389    -   -   -   -   -  - 263 63   -  -
7390    -   -   -   -   -  - 269 69   -  -
7391    -   -   -   -   -  - 275 75   -  -
7392    -   -   -   -   -  - 281 81   -  -
7393    -   -   -   -   -  - 287 87   -  -
7394    -   -   -   -   -  - 293 93   -  -
7395    -   -   -   -   -  -   -  - 300  0
7396    -   -   -   -   -  -   -  - 305  5
7397    -   -   -   -   -  -   -  - 315 15
7398    -   -   -   -   -  -   -  - 325 25
7399    -   -   -   -   -  -   -  - 335 35
7400    -   -   -   -   -  -   -  - 345 45
7401    -   -   -   -   -  -   -  - 355 55
7402    -   -   -   -   -  -   -  - 365 65
7403    -   -   -   -   -  -   -  - 375 75
7404    -   -   -   -   -  -   -  - 385 85
7405    -   -   -   -   -  -   -  - 395 95
7407 do_execsql_test joinD-284 {
7408   SELECT t1.*, t2.*, t3.*, t4.*
7409   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
7410   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
7411   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
7412   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7413 } {
7414    2 102 202 302 102  2   -  -   -  -
7415    4 104 204 304 104  4   -  -   -  -
7416    6 106 206 306 106  6 206  6   -  -
7417    8 108 208 308 108  8   -  -   -  -
7418   10 110 210 310 110 10   -  - 310 10
7419   12 112 212 312 112 12 212 12   -  -
7420   14 114 214 314 114 14   -  -   -  -
7421   16 116 216 316 116 16   -  -   -  -
7422   18 118 218 318 118 18 218 18   -  -
7423   20 120 220 320 120 20   -  - 320 20
7424   22 122 222 322 122 22   -  -   -  -
7425   24 124 224 324 124 24 224 24   -  -
7426   26 126 226 326 126 26   -  -   -  -
7427   28 128 228 328 128 28   -  -   -  -
7428   30 130 230 330 130 30 230 30 330 30
7429   32 132 232 332 132 32   -  -   -  -
7430   34 134 234 334 134 34   -  -   -  -
7431   36 136 236 336 136 36 236 36   -  -
7432   38 138 238 338 138 38   -  -   -  -
7433   40 140 240 340 140 40   -  - 340 40
7434   42 142 242 342 142 42 242 42   -  -
7435   44 144 244 344 144 44   -  -   -  -
7436   46 146 246 346 146 46   -  -   -  -
7437   48 148 248 348 148 48 248 48   -  -
7438   50 150 250 350 150 50   -  - 350 50
7439   52 152 252 352 152 52   -  -   -  -
7440   54 154 254 354 154 54 254 54   -  -
7441   56 156 256 356 156 56   -  -   -  -
7442   58 158 258 358 158 58   -  -   -  -
7443   60 160 260 360 160 60 260 60 360 60
7444   62 162 262 362 162 62   -  -   -  -
7445   64 164 264 364 164 64   -  -   -  -
7446   66 166 266 366 166 66 266 66   -  -
7447   68 168 268 368 168 68   -  -   -  -
7448   70 170 270 370 170 70   -  - 370 70
7449   72 172 272 372 172 72 272 72   -  -
7450   74 174 274 374 174 74   -  -   -  -
7451   76 176 276 376 176 76   -  -   -  -
7452   78 178 278 378 178 78 278 78   -  -
7453   80 180 280 380 180 80   -  - 380 80
7454   82 182 282 382 182 82   -  -   -  -
7455   84 184 284 384 184 84 284 84   -  -
7456   86 186 286 386 186 86   -  -   -  -
7457   88 188 288 388 188 88   -  -   -  -
7458   90 190 290 390 190 90 290 90 390 90
7459   92 192 292 392 192 92   -  -   -  -
7460   94 194 294 394 194 94   -  -   -  -
7461    -   -   -   -   -  - 200  0   -  -
7462    -   -   -   -   -  - 203  3   -  -
7463    -   -   -   -   -  - 209  9   -  -
7464    -   -   -   -   -  - 215 15   -  -
7465    -   -   -   -   -  - 221 21   -  -
7466    -   -   -   -   -  - 227 27   -  -
7467    -   -   -   -   -  - 233 33   -  -
7468    -   -   -   -   -  - 239 39   -  -
7469    -   -   -   -   -  - 245 45   -  -
7470    -   -   -   -   -  - 251 51   -  -
7471    -   -   -   -   -  - 257 57   -  -
7472    -   -   -   -   -  - 263 63   -  -
7473    -   -   -   -   -  - 269 69   -  -
7474    -   -   -   -   -  - 275 75   -  -
7475    -   -   -   -   -  - 281 81   -  -
7476    -   -   -   -   -  - 287 87   -  -
7477    -   -   -   -   -  - 293 93   -  -
7478    -   -   -   -   -  -   -  - 300  0
7479    -   -   -   -   -  -   -  - 305  5
7480    -   -   -   -   -  -   -  - 315 15
7481    -   -   -   -   -  -   -  - 325 25
7482    -   -   -   -   -  -   -  - 335 35
7483    -   -   -   -   -  -   -  - 345 45
7484    -   -   -   -   -  -   -  - 355 55
7485    -   -   -   -   -  -   -  - 365 65
7486    -   -   -   -   -  -   -  - 375 75
7487    -   -   -   -   -  -   -  - 385 85
7488    -   -   -   -   -  -   -  - 395 95
7490 do_execsql_test joinD-285 {
7491   SELECT t1.*, t2.*, t3.*, t4.*
7492   FROM t1 INNER JOIN t2 ON t1.b=t2.b
7493   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
7494   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
7495   WHERE t2.x>0
7496   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7497 } {
7498    2 102 202 302 102  2   -  -   -  -
7499    4 104 204 304 104  4   -  -   -  -
7500    6 106 206 306 106  6 206  6   -  -
7501    8 108 208 308 108  8   -  -   -  -
7502   10 110 210 310 110 10   -  - 310 10
7503   12 112 212 312 112 12 212 12   -  -
7504   14 114 214 314 114 14   -  -   -  -
7505   16 116 216 316 116 16   -  -   -  -
7506   18 118 218 318 118 18 218 18   -  -
7507   20 120 220 320 120 20   -  - 320 20
7508   22 122 222 322 122 22   -  -   -  -
7509   24 124 224 324 124 24 224 24   -  -
7510   26 126 226 326 126 26   -  -   -  -
7511   28 128 228 328 128 28   -  -   -  -
7512   30 130 230 330 130 30 230 30 330 30
7513   32 132 232 332 132 32   -  -   -  -
7514   34 134 234 334 134 34   -  -   -  -
7515   36 136 236 336 136 36 236 36   -  -
7516   38 138 238 338 138 38   -  -   -  -
7517   40 140 240 340 140 40   -  - 340 40
7518   42 142 242 342 142 42 242 42   -  -
7519   44 144 244 344 144 44   -  -   -  -
7520   46 146 246 346 146 46   -  -   -  -
7521   48 148 248 348 148 48 248 48   -  -
7522   50 150 250 350 150 50   -  - 350 50
7523   52 152 252 352 152 52   -  -   -  -
7524   54 154 254 354 154 54 254 54   -  -
7525   56 156 256 356 156 56   -  -   -  -
7526   58 158 258 358 158 58   -  -   -  -
7527   60 160 260 360 160 60 260 60 360 60
7528   62 162 262 362 162 62   -  -   -  -
7529   64 164 264 364 164 64   -  -   -  -
7530   66 166 266 366 166 66 266 66   -  -
7531   68 168 268 368 168 68   -  -   -  -
7532   70 170 270 370 170 70   -  - 370 70
7533   72 172 272 372 172 72 272 72   -  -
7534   74 174 274 374 174 74   -  -   -  -
7535   76 176 276 376 176 76   -  -   -  -
7536   78 178 278 378 178 78 278 78   -  -
7537   80 180 280 380 180 80   -  - 380 80
7538   82 182 282 382 182 82   -  -   -  -
7539   84 184 284 384 184 84 284 84   -  -
7540   86 186 286 386 186 86   -  -   -  -
7541   88 188 288 388 188 88   -  -   -  -
7542   90 190 290 390 190 90 290 90 390 90
7543   92 192 292 392 192 92   -  -   -  -
7544   94 194 294 394 194 94   -  -   -  -
7546 do_execsql_test joinD-286 {
7547   SELECT t1.*, t2.*, t3.*, t4.*
7548   FROM t1 INNER JOIN t2 ON t1.b=t2.b
7549   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
7550   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
7551   WHERE (t2.x>0 OR t2.x IS NULL)
7552   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7553 } {
7554    2 102 202 302 102  2   -  -   -  -
7555    4 104 204 304 104  4   -  -   -  -
7556    6 106 206 306 106  6 206  6   -  -
7557    8 108 208 308 108  8   -  -   -  -
7558   10 110 210 310 110 10   -  - 310 10
7559   12 112 212 312 112 12 212 12   -  -
7560   14 114 214 314 114 14   -  -   -  -
7561   16 116 216 316 116 16   -  -   -  -
7562   18 118 218 318 118 18 218 18   -  -
7563   20 120 220 320 120 20   -  - 320 20
7564   22 122 222 322 122 22   -  -   -  -
7565   24 124 224 324 124 24 224 24   -  -
7566   26 126 226 326 126 26   -  -   -  -
7567   28 128 228 328 128 28   -  -   -  -
7568   30 130 230 330 130 30 230 30 330 30
7569   32 132 232 332 132 32   -  -   -  -
7570   34 134 234 334 134 34   -  -   -  -
7571   36 136 236 336 136 36 236 36   -  -
7572   38 138 238 338 138 38   -  -   -  -
7573   40 140 240 340 140 40   -  - 340 40
7574   42 142 242 342 142 42 242 42   -  -
7575   44 144 244 344 144 44   -  -   -  -
7576   46 146 246 346 146 46   -  -   -  -
7577   48 148 248 348 148 48 248 48   -  -
7578   50 150 250 350 150 50   -  - 350 50
7579   52 152 252 352 152 52   -  -   -  -
7580   54 154 254 354 154 54 254 54   -  -
7581   56 156 256 356 156 56   -  -   -  -
7582   58 158 258 358 158 58   -  -   -  -
7583   60 160 260 360 160 60 260 60 360 60
7584   62 162 262 362 162 62   -  -   -  -
7585   64 164 264 364 164 64   -  -   -  -
7586   66 166 266 366 166 66 266 66   -  -
7587   68 168 268 368 168 68   -  -   -  -
7588   70 170 270 370 170 70   -  - 370 70
7589   72 172 272 372 172 72 272 72   -  -
7590   74 174 274 374 174 74   -  -   -  -
7591   76 176 276 376 176 76   -  -   -  -
7592   78 178 278 378 178 78 278 78   -  -
7593   80 180 280 380 180 80   -  - 380 80
7594   82 182 282 382 182 82   -  -   -  -
7595   84 184 284 384 184 84 284 84   -  -
7596   86 186 286 386 186 86   -  -   -  -
7597   88 188 288 388 188 88   -  -   -  -
7598   90 190 290 390 190 90 290 90 390 90
7599   92 192 292 392 192 92   -  -   -  -
7600   94 194 294 394 194 94   -  -   -  -
7601    -   -   -   -   -  - 200  0   -  -
7602    -   -   -   -   -  - 203  3   -  -
7603    -   -   -   -   -  - 209  9   -  -
7604    -   -   -   -   -  - 215 15   -  -
7605    -   -   -   -   -  - 221 21   -  -
7606    -   -   -   -   -  - 227 27   -  -
7607    -   -   -   -   -  - 233 33   -  -
7608    -   -   -   -   -  - 239 39   -  -
7609    -   -   -   -   -  - 245 45   -  -
7610    -   -   -   -   -  - 251 51   -  -
7611    -   -   -   -   -  - 257 57   -  -
7612    -   -   -   -   -  - 263 63   -  -
7613    -   -   -   -   -  - 269 69   -  -
7614    -   -   -   -   -  - 275 75   -  -
7615    -   -   -   -   -  - 281 81   -  -
7616    -   -   -   -   -  - 287 87   -  -
7617    -   -   -   -   -  - 293 93   -  -
7618    -   -   -   -   -  -   -  - 300  0
7619    -   -   -   -   -  -   -  - 305  5
7620    -   -   -   -   -  -   -  - 315 15
7621    -   -   -   -   -  -   -  - 325 25
7622    -   -   -   -   -  -   -  - 335 35
7623    -   -   -   -   -  -   -  - 345 45
7624    -   -   -   -   -  -   -  - 355 55
7625    -   -   -   -   -  -   -  - 365 65
7626    -   -   -   -   -  -   -  - 375 75
7627    -   -   -   -   -  -   -  - 385 85
7628    -   -   -   -   -  -   -  - 395 95
7630 do_execsql_test joinD-287 {
7631   SELECT t1.*, t2.*, t3.*, t4.*
7632   FROM t1 INNER JOIN t2 ON true
7633   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
7634   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
7635   WHERE t1.b=t2.b AND t2.x>0
7636   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7637 } {
7638    2 102 202 302 102  2   -  -   -  -
7639    4 104 204 304 104  4   -  -   -  -
7640    6 106 206 306 106  6 206  6   -  -
7641    8 108 208 308 108  8   -  -   -  -
7642   10 110 210 310 110 10   -  - 310 10
7643   12 112 212 312 112 12 212 12   -  -
7644   14 114 214 314 114 14   -  -   -  -
7645   16 116 216 316 116 16   -  -   -  -
7646   18 118 218 318 118 18 218 18   -  -
7647   20 120 220 320 120 20   -  - 320 20
7648   22 122 222 322 122 22   -  -   -  -
7649   24 124 224 324 124 24 224 24   -  -
7650   26 126 226 326 126 26   -  -   -  -
7651   28 128 228 328 128 28   -  -   -  -
7652   30 130 230 330 130 30 230 30 330 30
7653   32 132 232 332 132 32   -  -   -  -
7654   34 134 234 334 134 34   -  -   -  -
7655   36 136 236 336 136 36 236 36   -  -
7656   38 138 238 338 138 38   -  -   -  -
7657   40 140 240 340 140 40   -  - 340 40
7658   42 142 242 342 142 42 242 42   -  -
7659   44 144 244 344 144 44   -  -   -  -
7660   46 146 246 346 146 46   -  -   -  -
7661   48 148 248 348 148 48 248 48   -  -
7662   50 150 250 350 150 50   -  - 350 50
7663   52 152 252 352 152 52   -  -   -  -
7664   54 154 254 354 154 54 254 54   -  -
7665   56 156 256 356 156 56   -  -   -  -
7666   58 158 258 358 158 58   -  -   -  -
7667   60 160 260 360 160 60 260 60 360 60
7668   62 162 262 362 162 62   -  -   -  -
7669   64 164 264 364 164 64   -  -   -  -
7670   66 166 266 366 166 66 266 66   -  -
7671   68 168 268 368 168 68   -  -   -  -
7672   70 170 270 370 170 70   -  - 370 70
7673   72 172 272 372 172 72 272 72   -  -
7674   74 174 274 374 174 74   -  -   -  -
7675   76 176 276 376 176 76   -  -   -  -
7676   78 178 278 378 178 78 278 78   -  -
7677   80 180 280 380 180 80   -  - 380 80
7678   82 182 282 382 182 82   -  -   -  -
7679   84 184 284 384 184 84 284 84   -  -
7680   86 186 286 386 186 86   -  -   -  -
7681   88 188 288 388 188 88   -  -   -  -
7682   90 190 290 390 190 90 290 90 390 90
7683   92 192 292 392 192 92   -  -   -  -
7684   94 194 294 394 194 94   -  -   -  -
7686 do_execsql_test joinD-288 {
7687   SELECT t1.*, t2.*, t3.*, t4.*
7688   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
7689   FULL JOIN t3 ON t1.c=t3.c
7690   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
7691   WHERE t3.y>0
7692   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7693 } {
7694    6 106 206 306 106  6 206  6   -  -
7695   12 112 212 312 112 12 212 12   -  -
7696   18 118 218 318 118 18 218 18   -  -
7697   24 124 224 324 124 24 224 24   -  -
7698   30 130 230 330 130 30 230 30 330 30
7699   36 136 236 336 136 36 236 36   -  -
7700   42 142 242 342 142 42 242 42   -  -
7701   48 148 248 348 148 48 248 48   -  -
7702   54 154 254 354 154 54 254 54   -  -
7703   60 160 260 360 160 60 260 60 360 60
7704   66 166 266 366 166 66 266 66   -  -
7705   72 172 272 372 172 72 272 72   -  -
7706   78 178 278 378 178 78 278 78   -  -
7707   84 184 284 384 184 84 284 84   -  -
7708   90 190 290 390 190 90 290 90 390 90
7709    -   -   -   -   -  - 203  3   -  -
7710    -   -   -   -   -  - 209  9   -  -
7711    -   -   -   -   -  - 215 15   -  -
7712    -   -   -   -   -  - 221 21   -  -
7713    -   -   -   -   -  - 227 27   -  -
7714    -   -   -   -   -  - 233 33   -  -
7715    -   -   -   -   -  - 239 39   -  -
7716    -   -   -   -   -  - 245 45   -  -
7717    -   -   -   -   -  - 251 51   -  -
7718    -   -   -   -   -  - 257 57   -  -
7719    -   -   -   -   -  - 263 63   -  -
7720    -   -   -   -   -  - 269 69   -  -
7721    -   -   -   -   -  - 275 75   -  -
7722    -   -   -   -   -  - 281 81   -  -
7723    -   -   -   -   -  - 287 87   -  -
7724    -   -   -   -   -  - 293 93   -  -
7726 do_execsql_test joinD-289 {
7727   SELECT t1.*, t2.*, t3.*, t4.*
7728   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
7729   FULL JOIN t3 ON t1.c=t3.c
7730   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
7731   WHERE t3.y>0 OR t3.y IS NULL
7732   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7733 } {
7734    2 102 202 302 102  2   -  -   -  -
7735    4 104 204 304 104  4   -  -   -  -
7736    6 106 206 306 106  6 206  6   -  -
7737    8 108 208 308 108  8   -  -   -  -
7738   10 110 210 310 110 10   -  - 310 10
7739   12 112 212 312 112 12 212 12   -  -
7740   14 114 214 314 114 14   -  -   -  -
7741   16 116 216 316 116 16   -  -   -  -
7742   18 118 218 318 118 18 218 18   -  -
7743   20 120 220 320 120 20   -  - 320 20
7744   22 122 222 322 122 22   -  -   -  -
7745   24 124 224 324 124 24 224 24   -  -
7746   26 126 226 326 126 26   -  -   -  -
7747   28 128 228 328 128 28   -  -   -  -
7748   30 130 230 330 130 30 230 30 330 30
7749   32 132 232 332 132 32   -  -   -  -
7750   34 134 234 334 134 34   -  -   -  -
7751   36 136 236 336 136 36 236 36   -  -
7752   38 138 238 338 138 38   -  -   -  -
7753   40 140 240 340 140 40   -  - 340 40
7754   42 142 242 342 142 42 242 42   -  -
7755   44 144 244 344 144 44   -  -   -  -
7756   46 146 246 346 146 46   -  -   -  -
7757   48 148 248 348 148 48 248 48   -  -
7758   50 150 250 350 150 50   -  - 350 50
7759   52 152 252 352 152 52   -  -   -  -
7760   54 154 254 354 154 54 254 54   -  -
7761   56 156 256 356 156 56   -  -   -  -
7762   58 158 258 358 158 58   -  -   -  -
7763   60 160 260 360 160 60 260 60 360 60
7764   62 162 262 362 162 62   -  -   -  -
7765   64 164 264 364 164 64   -  -   -  -
7766   66 166 266 366 166 66 266 66   -  -
7767   68 168 268 368 168 68   -  -   -  -
7768   70 170 270 370 170 70   -  - 370 70
7769   72 172 272 372 172 72 272 72   -  -
7770   74 174 274 374 174 74   -  -   -  -
7771   76 176 276 376 176 76   -  -   -  -
7772   78 178 278 378 178 78 278 78   -  -
7773   80 180 280 380 180 80   -  - 380 80
7774   82 182 282 382 182 82   -  -   -  -
7775   84 184 284 384 184 84 284 84   -  -
7776   86 186 286 386 186 86   -  -   -  -
7777   88 188 288 388 188 88   -  -   -  -
7778   90 190 290 390 190 90 290 90 390 90
7779   92 192 292 392 192 92   -  -   -  -
7780   94 194 294 394 194 94   -  -   -  -
7781    -   -   -   -   -  - 203  3   -  -
7782    -   -   -   -   -  - 209  9   -  -
7783    -   -   -   -   -  - 215 15   -  -
7784    -   -   -   -   -  - 221 21   -  -
7785    -   -   -   -   -  - 227 27   -  -
7786    -   -   -   -   -  - 233 33   -  -
7787    -   -   -   -   -  - 239 39   -  -
7788    -   -   -   -   -  - 245 45   -  -
7789    -   -   -   -   -  - 251 51   -  -
7790    -   -   -   -   -  - 257 57   -  -
7791    -   -   -   -   -  - 263 63   -  -
7792    -   -   -   -   -  - 269 69   -  -
7793    -   -   -   -   -  - 275 75   -  -
7794    -   -   -   -   -  - 281 81   -  -
7795    -   -   -   -   -  - 287 87   -  -
7796    -   -   -   -   -  - 293 93   -  -
7797    -   -   -   -   -  -   -  - 300  0
7798    -   -   -   -   -  -   -  - 305  5
7799    -   -   -   -   -  -   -  - 315 15
7800    -   -   -   -   -  -   -  - 325 25
7801    -   -   -   -   -  -   -  - 335 35
7802    -   -   -   -   -  -   -  - 345 45
7803    -   -   -   -   -  -   -  - 355 55
7804    -   -   -   -   -  -   -  - 365 65
7805    -   -   -   -   -  -   -  - 375 75
7806    -   -   -   -   -  -   -  - 385 85
7807    -   -   -   -   -  -   -  - 395 95
7809 do_execsql_test joinD-290 {
7810   SELECT t1.*, t2.*, t3.*, t4.*
7811   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
7812   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
7813   FULL JOIN t4 ON t1.d=t4.d
7814   WHERE t4.z>0
7815   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7816 } {
7817   10 110 210 310 110 10   -  - 310 10
7818   20 120 220 320 120 20   -  - 320 20
7819   30 130 230 330 130 30 230 30 330 30
7820   40 140 240 340 140 40   -  - 340 40
7821   50 150 250 350 150 50   -  - 350 50
7822   60 160 260 360 160 60 260 60 360 60
7823   70 170 270 370 170 70   -  - 370 70
7824   80 180 280 380 180 80   -  - 380 80
7825   90 190 290 390 190 90 290 90 390 90
7826    -   -   -   -   -  -   -  - 305  5
7827    -   -   -   -   -  -   -  - 315 15
7828    -   -   -   -   -  -   -  - 325 25
7829    -   -   -   -   -  -   -  - 335 35
7830    -   -   -   -   -  -   -  - 345 45
7831    -   -   -   -   -  -   -  - 355 55
7832    -   -   -   -   -  -   -  - 365 65
7833    -   -   -   -   -  -   -  - 375 75
7834    -   -   -   -   -  -   -  - 385 85
7835    -   -   -   -   -  -   -  - 395 95
7837 do_execsql_test joinD-291 {
7838   SELECT t1.*, t2.*, t3.*, t4.*
7839   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
7840   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
7841   FULL JOIN t4 ON t1.d=t4.d
7842   WHERE t4.z IS NULL OR t4.z>0
7843   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7844 } {
7845    2 102 202 302 102  2   -  -   -  -
7846    4 104 204 304 104  4   -  -   -  -
7847    6 106 206 306 106  6 206  6   -  -
7848    8 108 208 308 108  8   -  -   -  -
7849   10 110 210 310 110 10   -  - 310 10
7850   12 112 212 312 112 12 212 12   -  -
7851   14 114 214 314 114 14   -  -   -  -
7852   16 116 216 316 116 16   -  -   -  -
7853   18 118 218 318 118 18 218 18   -  -
7854   20 120 220 320 120 20   -  - 320 20
7855   22 122 222 322 122 22   -  -   -  -
7856   24 124 224 324 124 24 224 24   -  -
7857   26 126 226 326 126 26   -  -   -  -
7858   28 128 228 328 128 28   -  -   -  -
7859   30 130 230 330 130 30 230 30 330 30
7860   32 132 232 332 132 32   -  -   -  -
7861   34 134 234 334 134 34   -  -   -  -
7862   36 136 236 336 136 36 236 36   -  -
7863   38 138 238 338 138 38   -  -   -  -
7864   40 140 240 340 140 40   -  - 340 40
7865   42 142 242 342 142 42 242 42   -  -
7866   44 144 244 344 144 44   -  -   -  -
7867   46 146 246 346 146 46   -  -   -  -
7868   48 148 248 348 148 48 248 48   -  -
7869   50 150 250 350 150 50   -  - 350 50
7870   52 152 252 352 152 52   -  -   -  -
7871   54 154 254 354 154 54 254 54   -  -
7872   56 156 256 356 156 56   -  -   -  -
7873   58 158 258 358 158 58   -  -   -  -
7874   60 160 260 360 160 60 260 60 360 60
7875   62 162 262 362 162 62   -  -   -  -
7876   64 164 264 364 164 64   -  -   -  -
7877   66 166 266 366 166 66 266 66   -  -
7878   68 168 268 368 168 68   -  -   -  -
7879   70 170 270 370 170 70   -  - 370 70
7880   72 172 272 372 172 72 272 72   -  -
7881   74 174 274 374 174 74   -  -   -  -
7882   76 176 276 376 176 76   -  -   -  -
7883   78 178 278 378 178 78 278 78   -  -
7884   80 180 280 380 180 80   -  - 380 80
7885   82 182 282 382 182 82   -  -   -  -
7886   84 184 284 384 184 84 284 84   -  -
7887   86 186 286 386 186 86   -  -   -  -
7888   88 188 288 388 188 88   -  -   -  -
7889   90 190 290 390 190 90 290 90 390 90
7890   92 192 292 392 192 92   -  -   -  -
7891   94 194 294 394 194 94   -  -   -  -
7892    -   -   -   -   -  - 200  0   -  -
7893    -   -   -   -   -  - 203  3   -  -
7894    -   -   -   -   -  - 209  9   -  -
7895    -   -   -   -   -  - 215 15   -  -
7896    -   -   -   -   -  - 221 21   -  -
7897    -   -   -   -   -  - 227 27   -  -
7898    -   -   -   -   -  - 233 33   -  -
7899    -   -   -   -   -  - 239 39   -  -
7900    -   -   -   -   -  - 245 45   -  -
7901    -   -   -   -   -  - 251 51   -  -
7902    -   -   -   -   -  - 257 57   -  -
7903    -   -   -   -   -  - 263 63   -  -
7904    -   -   -   -   -  - 269 69   -  -
7905    -   -   -   -   -  - 275 75   -  -
7906    -   -   -   -   -  - 281 81   -  -
7907    -   -   -   -   -  - 287 87   -  -
7908    -   -   -   -   -  - 293 93   -  -
7909    -   -   -   -   -  -   -  - 305  5
7910    -   -   -   -   -  -   -  - 315 15
7911    -   -   -   -   -  -   -  - 325 25
7912    -   -   -   -   -  -   -  - 335 35
7913    -   -   -   -   -  -   -  - 345 45
7914    -   -   -   -   -  -   -  - 355 55
7915    -   -   -   -   -  -   -  - 365 65
7916    -   -   -   -   -  -   -  - 375 75
7917    -   -   -   -   -  -   -  - 385 85
7918    -   -   -   -   -  -   -  - 395 95
7920 do_execsql_test joinD-292 {
7921   SELECT t1.*, t2.*, t3.*, t4.*
7922   FROM t1 INNER JOIN t2 ON t1.b=t2.b
7923   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
7924   FULL JOIN t4 ON t1.d=t4.d
7925   WHERE t2.x>0 AND t4.z>0
7926   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7927 } {
7928   10 110 210 310 110 10   -  - 310 10
7929   20 120 220 320 120 20   -  - 320 20
7930   30 130 230 330 130 30 230 30 330 30
7931   40 140 240 340 140 40   -  - 340 40
7932   50 150 250 350 150 50   -  - 350 50
7933   60 160 260 360 160 60 260 60 360 60
7934   70 170 270 370 170 70   -  - 370 70
7935   80 180 280 380 180 80   -  - 380 80
7936   90 190 290 390 190 90 290 90 390 90
7938 do_execsql_test joinD-293 {
7939   SELECT t1.*, t2.*, t3.*, t4.*
7940   FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
7941   FULL JOIN t3 ON t1.c=t3.c
7942   FULL JOIN t4 ON t1.d=t4.d
7943   WHERE t4.z>0 AND t3.y>0
7944   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7945 } {
7946   30 130 230 330 130 30 230 30 330 30
7947   60 160 260 360 160 60 260 60 360 60
7948   90 190 290 390 190 90 290 90 390 90
7950 do_execsql_test joinD-294 {
7951   SELECT t1.*, t2.*, t3.*, t4.*
7952   FROM t1 INNER JOIN t2 ON t1.b=t2.b
7953   FULL JOIN t3 ON t1.c=t3.c
7954   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
7955   WHERE t2.x>0 AND t3.y>0
7956   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7957 } {
7958    6 106 206 306 106  6 206  6   -  -
7959   12 112 212 312 112 12 212 12   -  -
7960   18 118 218 318 118 18 218 18   -  -
7961   24 124 224 324 124 24 224 24   -  -
7962   30 130 230 330 130 30 230 30 330 30
7963   36 136 236 336 136 36 236 36   -  -
7964   42 142 242 342 142 42 242 42   -  -
7965   48 148 248 348 148 48 248 48   -  -
7966   54 154 254 354 154 54 254 54   -  -
7967   60 160 260 360 160 60 260 60 360 60
7968   66 166 266 366 166 66 266 66   -  -
7969   72 172 272 372 172 72 272 72   -  -
7970   78 178 278 378 178 78 278 78   -  -
7971   84 184 284 384 184 84 284 84   -  -
7972   90 190 290 390 190 90 290 90 390 90
7974 do_execsql_test joinD-295 {
7975   SELECT t1.*, t2.*, t3.*, t4.*
7976   FROM t1 INNER JOIN t2 ON t1.b=t2.b
7977   FULL JOIN t3 ON t1.c=t3.c
7978   FULL JOIN t4 ON t1.d=t4.d
7979   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
7980   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7981 } {
7982   30 130 230 330 130 30 230 30 330 30
7983   60 160 260 360 160 60 260 60 360 60
7984   90 190 290 390 190 90 290 90 390 90
7986 do_execsql_test joinD-296 {
7987   SELECT t1.*, t2.*, t3.*, t4.*
7988   FROM t1 INNER JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
7989   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
7990   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
7991   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
7992 } {
7993    2 102 202 302 102  2   -  -   -  -
7994    4 104 204 304 104  4   -  -   -  -
7995    6 106 206 306 106  6 206  6   -  -
7996    8 108 208 308 108  8   -  -   -  -
7997   10 110 210 310 110 10   -  - 310 10
7998   12 112 212 312 112 12 212 12   -  -
7999   14 114 214 314 114 14   -  -   -  -
8000   16 116 216 316 116 16   -  -   -  -
8001   18 118 218 318 118 18 218 18   -  -
8002   20 120 220 320 120 20   -  - 320 20
8003   22 122 222 322 122 22   -  -   -  -
8004   24 124 224 324 124 24 224 24   -  -
8005   26 126 226 326 126 26   -  -   -  -
8006   28 128 228 328 128 28   -  -   -  -
8007   30 130 230 330 130 30 230 30 330 30
8008   32 132 232 332 132 32   -  -   -  -
8009   34 134 234 334 134 34   -  -   -  -
8010   36 136 236 336 136 36 236 36   -  -
8011   38 138 238 338 138 38   -  -   -  -
8012   40 140 240 340 140 40   -  - 340 40
8013   42 142 242 342 142 42 242 42   -  -
8014   44 144 244 344 144 44   -  -   -  -
8015   46 146 246 346 146 46   -  -   -  -
8016   48 148 248 348 148 48 248 48   -  -
8017   50 150 250 350 150 50   -  - 350 50
8018   52 152 252 352 152 52   -  -   -  -
8019   54 154 254 354 154 54 254 54   -  -
8020   56 156 256 356 156 56   -  -   -  -
8021   58 158 258 358 158 58   -  -   -  -
8022   60 160 260 360 160 60 260 60 360 60
8023   62 162 262 362 162 62   -  -   -  -
8024   64 164 264 364 164 64   -  -   -  -
8025   66 166 266 366 166 66 266 66   -  -
8026   68 168 268 368 168 68   -  -   -  -
8027   70 170 270 370 170 70   -  - 370 70
8028   72 172 272 372 172 72 272 72   -  -
8029   74 174 274 374 174 74   -  -   -  -
8030   76 176 276 376 176 76   -  -   -  -
8031   78 178 278 378 178 78 278 78   -  -
8032   80 180 280 380 180 80   -  - 380 80
8033   82 182 282 382 182 82   -  -   -  -
8034   84 184 284 384 184 84 284 84   -  -
8035   86 186 286 386 186 86   -  -   -  -
8036   88 188 288 388 188 88   -  -   -  -
8037   90 190 290 390 190 90 290 90 390 90
8038   92 192 292 392 192 92   -  -   -  -
8039   94 194 294 394 194 94   -  -   -  -
8040    -   -   -   -   -  - 200  0   -  -
8041    -   -   -   -   -  - 203  3   -  -
8042    -   -   -   -   -  - 209  9   -  -
8043    -   -   -   -   -  - 215 15   -  -
8044    -   -   -   -   -  - 221 21   -  -
8045    -   -   -   -   -  - 227 27   -  -
8046    -   -   -   -   -  - 233 33   -  -
8047    -   -   -   -   -  - 239 39   -  -
8048    -   -   -   -   -  - 245 45   -  -
8049    -   -   -   -   -  - 251 51   -  -
8050    -   -   -   -   -  - 257 57   -  -
8051    -   -   -   -   -  - 263 63   -  -
8052    -   -   -   -   -  - 269 69   -  -
8053    -   -   -   -   -  - 275 75   -  -
8054    -   -   -   -   -  - 281 81   -  -
8055    -   -   -   -   -  - 287 87   -  -
8056    -   -   -   -   -  - 293 93   -  -
8057    -   -   -   -   -  -   -  - 300  0
8058    -   -   -   -   -  -   -  - 305  5
8059    -   -   -   -   -  -   -  - 315 15
8060    -   -   -   -   -  -   -  - 325 25
8061    -   -   -   -   -  -   -  - 335 35
8062    -   -   -   -   -  -   -  - 345 45
8063    -   -   -   -   -  -   -  - 355 55
8064    -   -   -   -   -  -   -  - 365 65
8065    -   -   -   -   -  -   -  - 375 75
8066    -   -   -   -   -  -   -  - 385 85
8067    -   -   -   -   -  -   -  - 395 95
8069 do_execsql_test joinD-297 {
8070   SELECT t1.*, t2.*, t3.*, t4.*
8071   FROM t1 INNER JOIN t2 ON t2.x>0
8072   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
8073   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
8074   WHERE t1.b IS NOT DISTINCT FROM t2.b
8075   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8076 } {
8077    2 102 202 302 102  2   -  -   -  -
8078    4 104 204 304 104  4   -  -   -  -
8079    6 106 206 306 106  6 206  6   -  -
8080    8 108 208 308 108  8   -  -   -  -
8081   10 110 210 310 110 10   -  - 310 10
8082   12 112 212 312 112 12 212 12   -  -
8083   14 114 214 314 114 14   -  -   -  -
8084   16 116 216 316 116 16   -  -   -  -
8085   18 118 218 318 118 18 218 18   -  -
8086   20 120 220 320 120 20   -  - 320 20
8087   22 122 222 322 122 22   -  -   -  -
8088   24 124 224 324 124 24 224 24   -  -
8089   26 126 226 326 126 26   -  -   -  -
8090   28 128 228 328 128 28   -  -   -  -
8091   30 130 230 330 130 30 230 30 330 30
8092   32 132 232 332 132 32   -  -   -  -
8093   34 134 234 334 134 34   -  -   -  -
8094   36 136 236 336 136 36 236 36   -  -
8095   38 138 238 338 138 38   -  -   -  -
8096   40 140 240 340 140 40   -  - 340 40
8097   42 142 242 342 142 42 242 42   -  -
8098   44 144 244 344 144 44   -  -   -  -
8099   46 146 246 346 146 46   -  -   -  -
8100   48 148 248 348 148 48 248 48   -  -
8101   50 150 250 350 150 50   -  - 350 50
8102   52 152 252 352 152 52   -  -   -  -
8103   54 154 254 354 154 54 254 54   -  -
8104   56 156 256 356 156 56   -  -   -  -
8105   58 158 258 358 158 58   -  -   -  -
8106   60 160 260 360 160 60 260 60 360 60
8107   62 162 262 362 162 62   -  -   -  -
8108   64 164 264 364 164 64   -  -   -  -
8109   66 166 266 366 166 66 266 66   -  -
8110   68 168 268 368 168 68   -  -   -  -
8111   70 170 270 370 170 70   -  - 370 70
8112   72 172 272 372 172 72 272 72   -  -
8113   74 174 274 374 174 74   -  -   -  -
8114   76 176 276 376 176 76   -  -   -  -
8115   78 178 278 378 178 78 278 78   -  -
8116   80 180 280 380 180 80   -  - 380 80
8117   82 182 282 382 182 82   -  -   -  -
8118   84 184 284 384 184 84 284 84   -  -
8119   86 186 286 386 186 86   -  -   -  -
8120   88 188 288 388 188 88   -  -   -  -
8121   90 190 290 390 190 90 290 90 390 90
8122   92 192 292 392 192 92   -  -   -  -
8123   94 194 294 394 194 94   -  -   -  -
8124    -   -   -   -   -  - 200  0   -  -
8125    -   -   -   -   -  -   -  - 300  0
8127 do_execsql_test joinD-298 {
8128   SELECT t1.*, t2.*, t3.*, t4.*
8129   FROM t1 INNER JOIN t2 ON t2.x>0
8130   FULL JOIN t3 ON t3.y>0
8131   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
8132   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
8133   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8134 } {
8135    6 106 206 306 106  6 206  6   -  -
8136   12 112 212 312 112 12 212 12   -  -
8137   18 118 218 318 118 18 218 18   -  -
8138   24 124 224 324 124 24 224 24   -  -
8139   30 130 230 330 130 30 230 30 330 30
8140   36 136 236 336 136 36 236 36   -  -
8141   42 142 242 342 142 42 242 42   -  -
8142   48 148 248 348 148 48 248 48   -  -
8143   54 154 254 354 154 54 254 54   -  -
8144   60 160 260 360 160 60 260 60 360 60
8145   66 166 266 366 166 66 266 66   -  -
8146   72 172 272 372 172 72 272 72   -  -
8147   78 178 278 378 178 78 278 78   -  -
8148   84 184 284 384 184 84 284 84   -  -
8149   90 190 290 390 190 90 290 90 390 90
8151 do_execsql_test joinD-299 {
8152   SELECT t1.*, t2.*, t3.*, t4.*
8153   FROM t1 INNER JOIN t2 ON t2.x>0
8154   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
8155   FULL JOIN t4 ON t4.z>0
8156   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
8157   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8158 } {
8159   10 110 210 310 110 10   -  - 310 10
8160   20 120 220 320 120 20   -  - 320 20
8161   30 130 230 330 130 30 230 30 330 30
8162   40 140 240 340 140 40   -  - 340 40
8163   50 150 250 350 150 50   -  - 350 50
8164   60 160 260 360 160 60 260 60 360 60
8165   70 170 270 370 170 70   -  - 370 70
8166   80 180 280 380 180 80   -  - 380 80
8167   90 190 290 390 190 90 290 90 390 90
8169 do_execsql_test joinD-300 {
8170   SELECT t1.*, t2.*, t3.*, t4.*
8171   FROM t1 INNER JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
8172   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
8173   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
8174   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8175 } {
8176    2 102 202 302 102  2   -  -   -  -
8177    4 104 204 304 104  4   -  -   -  -
8178    6 106 206 306 106  6 206  6   -  -
8179    8 108 208 308 108  8   -  -   -  -
8180   10 110 210 310 110 10   -  - 310 10
8181   12 112 212 312 112 12 212 12   -  -
8182   14 114 214 314 114 14   -  -   -  -
8183   16 116 216 316 116 16   -  -   -  -
8184   18 118 218 318 118 18 218 18   -  -
8185   20 120 220 320 120 20   -  - 320 20
8186   22 122 222 322 122 22   -  -   -  -
8187   24 124 224 324 124 24 224 24   -  -
8188   26 126 226 326 126 26   -  -   -  -
8189   28 128 228 328 128 28   -  -   -  -
8190   30 130 230 330 130 30 230 30 330 30
8191   32 132 232 332 132 32   -  -   -  -
8192   34 134 234 334 134 34   -  -   -  -
8193   36 136 236 336 136 36 236 36   -  -
8194   38 138 238 338 138 38   -  -   -  -
8195   40 140 240 340 140 40   -  - 340 40
8196   42 142 242 342 142 42 242 42   -  -
8197   44 144 244 344 144 44   -  -   -  -
8198   46 146 246 346 146 46   -  -   -  -
8199   48 148 248 348 148 48 248 48   -  -
8200   50 150 250 350 150 50   -  - 350 50
8201   52 152 252 352 152 52   -  -   -  -
8202   54 154 254 354 154 54 254 54   -  -
8203   56 156 256 356 156 56   -  -   -  -
8204   58 158 258 358 158 58   -  -   -  -
8205   60 160 260 360 160 60 260 60 360 60
8206   62 162 262 362 162 62   -  -   -  -
8207   64 164 264 364 164 64   -  -   -  -
8208   66 166 266 366 166 66 266 66   -  -
8209   68 168 268 368 168 68   -  -   -  -
8210   70 170 270 370 170 70   -  - 370 70
8211   72 172 272 372 172 72 272 72   -  -
8212   74 174 274 374 174 74   -  -   -  -
8213   76 176 276 376 176 76   -  -   -  -
8214   78 178 278 378 178 78 278 78   -  -
8215   80 180 280 380 180 80   -  - 380 80
8216   82 182 282 382 182 82   -  -   -  -
8217   84 184 284 384 184 84 284 84   -  -
8218   86 186 286 386 186 86   -  -   -  -
8219   88 188 288 388 188 88   -  -   -  -
8220   90 190 290 390 190 90 290 90 390 90
8221   92 192 292 392 192 92   -  -   -  -
8222   94 194 294 394 194 94   -  -   -  -
8223    -   -   -   -   -  - 200  0   -  -
8224    -   -   -   -   -  - 203  3   -  -
8225    -   -   -   -   -  - 209  9   -  -
8226    -   -   -   -   -  - 215 15   -  -
8227    -   -   -   -   -  - 221 21   -  -
8228    -   -   -   -   -  - 227 27   -  -
8229    -   -   -   -   -  - 233 33   -  -
8230    -   -   -   -   -  - 239 39   -  -
8231    -   -   -   -   -  - 245 45   -  -
8232    -   -   -   -   -  - 251 51   -  -
8233    -   -   -   -   -  - 257 57   -  -
8234    -   -   -   -   -  - 263 63   -  -
8235    -   -   -   -   -  - 269 69   -  -
8236    -   -   -   -   -  - 275 75   -  -
8237    -   -   -   -   -  - 281 81   -  -
8238    -   -   -   -   -  - 287 87   -  -
8239    -   -   -   -   -  - 293 93   -  -
8240    -   -   -   -   -  -   -  - 300  0
8241    -   -   -   -   -  -   -  - 305  5
8242    -   -   -   -   -  -   -  - 315 15
8243    -   -   -   -   -  -   -  - 325 25
8244    -   -   -   -   -  -   -  - 335 35
8245    -   -   -   -   -  -   -  - 345 45
8246    -   -   -   -   -  -   -  - 355 55
8247    -   -   -   -   -  -   -  - 365 65
8248    -   -   -   -   -  -   -  - 375 75
8249    -   -   -   -   -  -   -  - 385 85
8250    -   -   -   -   -  -   -  - 395 95
8252 do_execsql_test joinD-301 {
8253   SELECT t1.*, t2.*, t3.*, t4.*
8254   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
8255   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
8256   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
8257   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8258 } {
8259   15 115 215 315   -  - 215 15 315 15
8260   30 130 230 330 130 30 230 30 330 30
8261   45 145 245 345   -  - 245 45 345 45
8262   60 160 260 360 160 60 260 60 360 60
8263   75 175 275 375   -  - 275 75 375 75
8264   90 190 290 390 190 90 290 90 390 90
8266 do_execsql_test joinD-302 {
8267   SELECT t1.*, t2.*, t3.*, t4.*
8268   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
8269   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
8270   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
8271   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8272 } {
8273   15 115 215 315   -  - 215 15 315 15
8274   30 130 230 330 130 30 230 30 330 30
8275   45 145 245 345   -  - 245 45 345 45
8276   60 160 260 360 160 60 260 60 360 60
8277   75 175 275 375   -  - 275 75 375 75
8278   90 190 290 390 190 90 290 90 390 90
8280 do_execsql_test joinD-303 {
8281   SELECT t1.*, t2.*, t3.*, t4.*
8282   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
8283   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
8284   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
8285   WHERE t2.x>0
8286   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8287 } {
8288   30 130 230 330 130 30 230 30 330 30
8289   60 160 260 360 160 60 260 60 360 60
8290   90 190 290 390 190 90 290 90 390 90
8292 do_execsql_test joinD-304 {
8293   SELECT t1.*, t2.*, t3.*, t4.*
8294   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
8295   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
8296   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
8297   WHERE (t2.x>0 OR t2.x IS NULL)
8298   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8299 } {
8300   15 115 215 315   -  - 215 15 315 15
8301   30 130 230 330 130 30 230 30 330 30
8302   45 145 245 345   -  - 245 45 345 45
8303   60 160 260 360 160 60 260 60 360 60
8304   75 175 275 375   -  - 275 75 375 75
8305   90 190 290 390 190 90 290 90 390 90
8307 do_execsql_test joinD-305 {
8308   SELECT t1.*, t2.*, t3.*, t4.*
8309   FROM t1 LEFT JOIN t2 ON true
8310   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
8311   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
8312   WHERE t1.b=t2.b AND t2.x>0
8313   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8314 } {
8315   30 130 230 330 130 30 230 30 330 30
8316   60 160 260 360 160 60 260 60 360 60
8317   90 190 290 390 190 90 290 90 390 90
8319 do_execsql_test joinD-306 {
8320   SELECT t1.*, t2.*, t3.*, t4.*
8321   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
8322   INNER JOIN t3 ON t1.c=t3.c
8323   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
8324   WHERE t3.y>0
8325   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8326 } {
8327   15 115 215 315   -  - 215 15 315 15
8328   30 130 230 330 130 30 230 30 330 30
8329   45 145 245 345   -  - 245 45 345 45
8330   60 160 260 360 160 60 260 60 360 60
8331   75 175 275 375   -  - 275 75 375 75
8332   90 190 290 390 190 90 290 90 390 90
8334 do_execsql_test joinD-307 {
8335   SELECT t1.*, t2.*, t3.*, t4.*
8336   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
8337   INNER JOIN t3 ON t1.c=t3.c
8338   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
8339   WHERE t3.y>0 OR t3.y IS NULL
8340   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8341 } {
8342   15 115 215 315   -  - 215 15 315 15
8343   30 130 230 330 130 30 230 30 330 30
8344   45 145 245 345   -  - 245 45 345 45
8345   60 160 260 360 160 60 260 60 360 60
8346   75 175 275 375   -  - 275 75 375 75
8347   90 190 290 390 190 90 290 90 390 90
8349 do_execsql_test joinD-308 {
8350   SELECT t1.*, t2.*, t3.*, t4.*
8351   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
8352   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
8353   INNER JOIN t4 ON t1.d=t4.d
8354   WHERE t4.z>0
8355   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8356 } {
8357   15 115 215 315   -  - 215 15 315 15
8358   30 130 230 330 130 30 230 30 330 30
8359   45 145 245 345   -  - 245 45 345 45
8360   60 160 260 360 160 60 260 60 360 60
8361   75 175 275 375   -  - 275 75 375 75
8362   90 190 290 390 190 90 290 90 390 90
8364 do_execsql_test joinD-309 {
8365   SELECT t1.*, t2.*, t3.*, t4.*
8366   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
8367   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
8368   INNER JOIN t4 ON t1.d=t4.d
8369   WHERE t4.z IS NULL OR t4.z>0
8370   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8371 } {
8372   15 115 215 315   -  - 215 15 315 15
8373   30 130 230 330 130 30 230 30 330 30
8374   45 145 245 345   -  - 245 45 345 45
8375   60 160 260 360 160 60 260 60 360 60
8376   75 175 275 375   -  - 275 75 375 75
8377   90 190 290 390 190 90 290 90 390 90
8379 do_execsql_test joinD-310 {
8380   SELECT t1.*, t2.*, t3.*, t4.*
8381   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
8382   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
8383   INNER JOIN t4 ON t1.d=t4.d
8384   WHERE t2.x>0 AND t4.z>0
8385   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8386 } {
8387   30 130 230 330 130 30 230 30 330 30
8388   60 160 260 360 160 60 260 60 360 60
8389   90 190 290 390 190 90 290 90 390 90
8391 do_execsql_test joinD-311 {
8392   SELECT t1.*, t2.*, t3.*, t4.*
8393   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
8394   INNER JOIN t3 ON t1.c=t3.c
8395   INNER JOIN t4 ON t1.d=t4.d
8396   WHERE t4.z>0 AND t3.y>0
8397   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8398 } {
8399   15 115 215 315   -  - 215 15 315 15
8400   30 130 230 330 130 30 230 30 330 30
8401   45 145 245 345   -  - 245 45 345 45
8402   60 160 260 360 160 60 260 60 360 60
8403   75 175 275 375   -  - 275 75 375 75
8404   90 190 290 390 190 90 290 90 390 90
8406 do_execsql_test joinD-312 {
8407   SELECT t1.*, t2.*, t3.*, t4.*
8408   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
8409   INNER JOIN t3 ON t1.c=t3.c
8410   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
8411   WHERE t2.x>0 AND t3.y>0
8412   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8413 } {
8414   30 130 230 330 130 30 230 30 330 30
8415   60 160 260 360 160 60 260 60 360 60
8416   90 190 290 390 190 90 290 90 390 90
8418 do_execsql_test joinD-313 {
8419   SELECT t1.*, t2.*, t3.*, t4.*
8420   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
8421   INNER JOIN t3 ON t1.c=t3.c
8422   INNER JOIN t4 ON t1.d=t4.d
8423   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
8424   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8425 } {
8426   30 130 230 330 130 30 230 30 330 30
8427   60 160 260 360 160 60 260 60 360 60
8428   90 190 290 390 190 90 290 90 390 90
8430 do_execsql_test joinD-314 {
8431   SELECT t1.*, t2.*, t3.*, t4.*
8432   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
8433   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
8434   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
8435   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8436 } {
8437   15 115 215 315   -  - 215 15 315 15
8438   30 130 230 330 130 30 230 30 330 30
8439   45 145 245 345   -  - 245 45 345 45
8440   60 160 260 360 160 60 260 60 360 60
8441   75 175 275 375   -  - 275 75 375 75
8442   90 190 290 390 190 90 290 90 390 90
8444 do_execsql_test joinD-315 {
8445   SELECT t1.*, t2.*, t3.*, t4.*
8446   FROM t1 LEFT JOIN t2 ON t2.x>0
8447   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
8448   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
8449   WHERE t1.b IS NOT DISTINCT FROM t2.b
8450   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8451 } {
8452   30 130 230 330 130 30 230 30 330 30
8453   60 160 260 360 160 60 260 60 360 60
8454   90 190 290 390 190 90 290 90 390 90
8456 do_execsql_test joinD-316 {
8457   SELECT t1.*, t2.*, t3.*, t4.*
8458   FROM t1 LEFT JOIN t2 ON t2.x>0
8459   INNER JOIN t3 ON t3.y>0
8460   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
8461   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
8462   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8463 } {
8464   30 130 230 330 130 30 230 30 330 30
8465   60 160 260 360 160 60 260 60 360 60
8466   90 190 290 390 190 90 290 90 390 90
8468 do_execsql_test joinD-317 {
8469   SELECT t1.*, t2.*, t3.*, t4.*
8470   FROM t1 LEFT JOIN t2 ON t2.x>0
8471   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
8472   INNER JOIN t4 ON t4.z>0
8473   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
8474   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8475 } {
8476   30 130 230 330 130 30 230 30 330 30
8477   60 160 260 360 160 60 260 60 360 60
8478   90 190 290 390 190 90 290 90 390 90
8480 do_execsql_test joinD-318 {
8481   SELECT t1.*, t2.*, t3.*, t4.*
8482   FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
8483   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
8484   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
8485   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8486 } {
8487   15 115 215 315   -  - 215 15 315 15
8488   30 130 230 330 130 30 230 30 330 30
8489   45 145 245 345   -  - 245 45 345 45
8490   60 160 260 360 160 60 260 60 360 60
8491   75 175 275 375   -  - 275 75 375 75
8492   90 190 290 390 190 90 290 90 390 90
8494 do_execsql_test joinD-319 {
8495   SELECT t1.*, t2.*, t3.*, t4.*
8496   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
8497   INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
8498   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
8499   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8500 } {
8501   15 115 215 315   -  - 215 15 315 15
8502   30 130 230 330 130 30 230 30 330 30
8503   45 145 245 345   -  - 245 45 345 45
8504   60 160 260 360 160 60 260 60 360 60
8505   75 175 275 375   -  - 275 75 375 75
8506   90 190 290 390 190 90 290 90 390 90
8508 do_execsql_test joinD-320 {
8509   SELECT t1.*, t2.*, t3.*, t4.*
8510   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
8511   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
8512   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
8513   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8514 } {
8515    3 103 203 303   -  - 203  3   -  -
8516    6 106 206 306 106  6 206  6   -  -
8517    9 109 209 309   -  - 209  9   -  -
8518   12 112 212 312 112 12 212 12   -  -
8519   15 115 215 315   -  - 215 15 315 15
8520   18 118 218 318 118 18 218 18   -  -
8521   21 121 221 321   -  - 221 21   -  -
8522   24 124 224 324 124 24 224 24   -  -
8523   27 127 227 327   -  - 227 27   -  -
8524   30 130 230 330 130 30 230 30 330 30
8525   33 133 233 333   -  - 233 33   -  -
8526   36 136 236 336 136 36 236 36   -  -
8527   39 139 239 339   -  - 239 39   -  -
8528   42 142 242 342 142 42 242 42   -  -
8529   45 145 245 345   -  - 245 45 345 45
8530   48 148 248 348 148 48 248 48   -  -
8531   51 151 251 351   -  - 251 51   -  -
8532   54 154 254 354 154 54 254 54   -  -
8533   57 157 257 357   -  - 257 57   -  -
8534   60 160 260 360 160 60 260 60 360 60
8535   63 163 263 363   -  - 263 63   -  -
8536   66 166 266 366 166 66 266 66   -  -
8537   69 169 269 369   -  - 269 69   -  -
8538   72 172 272 372 172 72 272 72   -  -
8539   75 175 275 375   -  - 275 75 375 75
8540   78 178 278 378 178 78 278 78   -  -
8541   81 181 281 381   -  - 281 81   -  -
8542   84 184 284 384 184 84 284 84   -  -
8543   87 187 287 387   -  - 287 87   -  -
8544   90 190 290 390 190 90 290 90 390 90
8545   93 193 293 393   -  - 293 93   -  -
8547 do_execsql_test joinD-321 {
8548   SELECT t1.*, t2.*, t3.*, t4.*
8549   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
8550   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
8551   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
8552   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8553 } {
8554    3 103 203 303   -  - 203  3   -  -
8555    6 106 206 306 106  6 206  6   -  -
8556    9 109 209 309   -  - 209  9   -  -
8557   12 112 212 312 112 12 212 12   -  -
8558   15 115 215 315   -  - 215 15 315 15
8559   18 118 218 318 118 18 218 18   -  -
8560   21 121 221 321   -  - 221 21   -  -
8561   24 124 224 324 124 24 224 24   -  -
8562   27 127 227 327   -  - 227 27   -  -
8563   30 130 230 330 130 30 230 30 330 30
8564   33 133 233 333   -  - 233 33   -  -
8565   36 136 236 336 136 36 236 36   -  -
8566   39 139 239 339   -  - 239 39   -  -
8567   42 142 242 342 142 42 242 42   -  -
8568   45 145 245 345   -  - 245 45 345 45
8569   48 148 248 348 148 48 248 48   -  -
8570   51 151 251 351   -  - 251 51   -  -
8571   54 154 254 354 154 54 254 54   -  -
8572   57 157 257 357   -  - 257 57   -  -
8573   60 160 260 360 160 60 260 60 360 60
8574   63 163 263 363   -  - 263 63   -  -
8575   66 166 266 366 166 66 266 66   -  -
8576   69 169 269 369   -  - 269 69   -  -
8577   72 172 272 372 172 72 272 72   -  -
8578   75 175 275 375   -  - 275 75 375 75
8579   78 178 278 378 178 78 278 78   -  -
8580   81 181 281 381   -  - 281 81   -  -
8581   84 184 284 384 184 84 284 84   -  -
8582   87 187 287 387   -  - 287 87   -  -
8583   90 190 290 390 190 90 290 90 390 90
8584   93 193 293 393   -  - 293 93   -  -
8586 do_execsql_test joinD-322 {
8587   SELECT t1.*, t2.*, t3.*, t4.*
8588   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
8589   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
8590   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
8591   WHERE t2.x>0
8592   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8593 } {
8594    6 106 206 306 106  6 206  6   -  -
8595   12 112 212 312 112 12 212 12   -  -
8596   18 118 218 318 118 18 218 18   -  -
8597   24 124 224 324 124 24 224 24   -  -
8598   30 130 230 330 130 30 230 30 330 30
8599   36 136 236 336 136 36 236 36   -  -
8600   42 142 242 342 142 42 242 42   -  -
8601   48 148 248 348 148 48 248 48   -  -
8602   54 154 254 354 154 54 254 54   -  -
8603   60 160 260 360 160 60 260 60 360 60
8604   66 166 266 366 166 66 266 66   -  -
8605   72 172 272 372 172 72 272 72   -  -
8606   78 178 278 378 178 78 278 78   -  -
8607   84 184 284 384 184 84 284 84   -  -
8608   90 190 290 390 190 90 290 90 390 90
8610 do_execsql_test joinD-323 {
8611   SELECT t1.*, t2.*, t3.*, t4.*
8612   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
8613   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
8614   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
8615   WHERE (t2.x>0 OR t2.x IS NULL)
8616   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8617 } {
8618    3 103 203 303   -  - 203  3   -  -
8619    6 106 206 306 106  6 206  6   -  -
8620    9 109 209 309   -  - 209  9   -  -
8621   12 112 212 312 112 12 212 12   -  -
8622   15 115 215 315   -  - 215 15 315 15
8623   18 118 218 318 118 18 218 18   -  -
8624   21 121 221 321   -  - 221 21   -  -
8625   24 124 224 324 124 24 224 24   -  -
8626   27 127 227 327   -  - 227 27   -  -
8627   30 130 230 330 130 30 230 30 330 30
8628   33 133 233 333   -  - 233 33   -  -
8629   36 136 236 336 136 36 236 36   -  -
8630   39 139 239 339   -  - 239 39   -  -
8631   42 142 242 342 142 42 242 42   -  -
8632   45 145 245 345   -  - 245 45 345 45
8633   48 148 248 348 148 48 248 48   -  -
8634   51 151 251 351   -  - 251 51   -  -
8635   54 154 254 354 154 54 254 54   -  -
8636   57 157 257 357   -  - 257 57   -  -
8637   60 160 260 360 160 60 260 60 360 60
8638   63 163 263 363   -  - 263 63   -  -
8639   66 166 266 366 166 66 266 66   -  -
8640   69 169 269 369   -  - 269 69   -  -
8641   72 172 272 372 172 72 272 72   -  -
8642   75 175 275 375   -  - 275 75 375 75
8643   78 178 278 378 178 78 278 78   -  -
8644   81 181 281 381   -  - 281 81   -  -
8645   84 184 284 384 184 84 284 84   -  -
8646   87 187 287 387   -  - 287 87   -  -
8647   90 190 290 390 190 90 290 90 390 90
8648   93 193 293 393   -  - 293 93   -  -
8650 do_execsql_test joinD-324 {
8651   SELECT t1.*, t2.*, t3.*, t4.*
8652   FROM t1 LEFT JOIN t2 ON true
8653   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
8654   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
8655   WHERE t1.b=t2.b AND t2.x>0
8656   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8657 } {
8658    6 106 206 306 106  6 206  6   -  -
8659   12 112 212 312 112 12 212 12   -  -
8660   18 118 218 318 118 18 218 18   -  -
8661   24 124 224 324 124 24 224 24   -  -
8662   30 130 230 330 130 30 230 30 330 30
8663   36 136 236 336 136 36 236 36   -  -
8664   42 142 242 342 142 42 242 42   -  -
8665   48 148 248 348 148 48 248 48   -  -
8666   54 154 254 354 154 54 254 54   -  -
8667   60 160 260 360 160 60 260 60 360 60
8668   66 166 266 366 166 66 266 66   -  -
8669   72 172 272 372 172 72 272 72   -  -
8670   78 178 278 378 178 78 278 78   -  -
8671   84 184 284 384 184 84 284 84   -  -
8672   90 190 290 390 190 90 290 90 390 90
8674 do_execsql_test joinD-325 {
8675   SELECT t1.*, t2.*, t3.*, t4.*
8676   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
8677   INNER JOIN t3 ON t1.c=t3.c
8678   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
8679   WHERE t3.y>0
8680   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8681 } {
8682    3 103 203 303   -  - 203  3   -  -
8683    6 106 206 306 106  6 206  6   -  -
8684    9 109 209 309   -  - 209  9   -  -
8685   12 112 212 312 112 12 212 12   -  -
8686   15 115 215 315   -  - 215 15 315 15
8687   18 118 218 318 118 18 218 18   -  -
8688   21 121 221 321   -  - 221 21   -  -
8689   24 124 224 324 124 24 224 24   -  -
8690   27 127 227 327   -  - 227 27   -  -
8691   30 130 230 330 130 30 230 30 330 30
8692   33 133 233 333   -  - 233 33   -  -
8693   36 136 236 336 136 36 236 36   -  -
8694   39 139 239 339   -  - 239 39   -  -
8695   42 142 242 342 142 42 242 42   -  -
8696   45 145 245 345   -  - 245 45 345 45
8697   48 148 248 348 148 48 248 48   -  -
8698   51 151 251 351   -  - 251 51   -  -
8699   54 154 254 354 154 54 254 54   -  -
8700   57 157 257 357   -  - 257 57   -  -
8701   60 160 260 360 160 60 260 60 360 60
8702   63 163 263 363   -  - 263 63   -  -
8703   66 166 266 366 166 66 266 66   -  -
8704   69 169 269 369   -  - 269 69   -  -
8705   72 172 272 372 172 72 272 72   -  -
8706   75 175 275 375   -  - 275 75 375 75
8707   78 178 278 378 178 78 278 78   -  -
8708   81 181 281 381   -  - 281 81   -  -
8709   84 184 284 384 184 84 284 84   -  -
8710   87 187 287 387   -  - 287 87   -  -
8711   90 190 290 390 190 90 290 90 390 90
8712   93 193 293 393   -  - 293 93   -  -
8714 do_execsql_test joinD-326 {
8715   SELECT t1.*, t2.*, t3.*, t4.*
8716   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
8717   INNER JOIN t3 ON t1.c=t3.c
8718   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
8719   WHERE t3.y>0 OR t3.y IS NULL
8720   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8721 } {
8722    3 103 203 303   -  - 203  3   -  -
8723    6 106 206 306 106  6 206  6   -  -
8724    9 109 209 309   -  - 209  9   -  -
8725   12 112 212 312 112 12 212 12   -  -
8726   15 115 215 315   -  - 215 15 315 15
8727   18 118 218 318 118 18 218 18   -  -
8728   21 121 221 321   -  - 221 21   -  -
8729   24 124 224 324 124 24 224 24   -  -
8730   27 127 227 327   -  - 227 27   -  -
8731   30 130 230 330 130 30 230 30 330 30
8732   33 133 233 333   -  - 233 33   -  -
8733   36 136 236 336 136 36 236 36   -  -
8734   39 139 239 339   -  - 239 39   -  -
8735   42 142 242 342 142 42 242 42   -  -
8736   45 145 245 345   -  - 245 45 345 45
8737   48 148 248 348 148 48 248 48   -  -
8738   51 151 251 351   -  - 251 51   -  -
8739   54 154 254 354 154 54 254 54   -  -
8740   57 157 257 357   -  - 257 57   -  -
8741   60 160 260 360 160 60 260 60 360 60
8742   63 163 263 363   -  - 263 63   -  -
8743   66 166 266 366 166 66 266 66   -  -
8744   69 169 269 369   -  - 269 69   -  -
8745   72 172 272 372 172 72 272 72   -  -
8746   75 175 275 375   -  - 275 75 375 75
8747   78 178 278 378 178 78 278 78   -  -
8748   81 181 281 381   -  - 281 81   -  -
8749   84 184 284 384 184 84 284 84   -  -
8750   87 187 287 387   -  - 287 87   -  -
8751   90 190 290 390 190 90 290 90 390 90
8752   93 193 293 393   -  - 293 93   -  -
8754 do_execsql_test joinD-327 {
8755   SELECT t1.*, t2.*, t3.*, t4.*
8756   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
8757   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
8758   LEFT JOIN t4 ON t1.d=t4.d
8759   WHERE t4.z>0
8760   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8761 } {
8762   15 115 215 315   -  - 215 15 315 15
8763   30 130 230 330 130 30 230 30 330 30
8764   45 145 245 345   -  - 245 45 345 45
8765   60 160 260 360 160 60 260 60 360 60
8766   75 175 275 375   -  - 275 75 375 75
8767   90 190 290 390 190 90 290 90 390 90
8769 do_execsql_test joinD-328 {
8770   SELECT t1.*, t2.*, t3.*, t4.*
8771   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
8772   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
8773   LEFT JOIN t4 ON t1.d=t4.d
8774   WHERE t4.z IS NULL OR t4.z>0
8775   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8776 } {
8777    3 103 203 303   -  - 203  3   -  -
8778    6 106 206 306 106  6 206  6   -  -
8779    9 109 209 309   -  - 209  9   -  -
8780   12 112 212 312 112 12 212 12   -  -
8781   15 115 215 315   -  - 215 15 315 15
8782   18 118 218 318 118 18 218 18   -  -
8783   21 121 221 321   -  - 221 21   -  -
8784   24 124 224 324 124 24 224 24   -  -
8785   27 127 227 327   -  - 227 27   -  -
8786   30 130 230 330 130 30 230 30 330 30
8787   33 133 233 333   -  - 233 33   -  -
8788   36 136 236 336 136 36 236 36   -  -
8789   39 139 239 339   -  - 239 39   -  -
8790   42 142 242 342 142 42 242 42   -  -
8791   45 145 245 345   -  - 245 45 345 45
8792   48 148 248 348 148 48 248 48   -  -
8793   51 151 251 351   -  - 251 51   -  -
8794   54 154 254 354 154 54 254 54   -  -
8795   57 157 257 357   -  - 257 57   -  -
8796   60 160 260 360 160 60 260 60 360 60
8797   63 163 263 363   -  - 263 63   -  -
8798   66 166 266 366 166 66 266 66   -  -
8799   69 169 269 369   -  - 269 69   -  -
8800   72 172 272 372 172 72 272 72   -  -
8801   75 175 275 375   -  - 275 75 375 75
8802   78 178 278 378 178 78 278 78   -  -
8803   81 181 281 381   -  - 281 81   -  -
8804   84 184 284 384 184 84 284 84   -  -
8805   87 187 287 387   -  - 287 87   -  -
8806   90 190 290 390 190 90 290 90 390 90
8807   93 193 293 393   -  - 293 93   -  -
8809 do_execsql_test joinD-329 {
8810   SELECT t1.*, t2.*, t3.*, t4.*
8811   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
8812   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
8813   LEFT JOIN t4 ON t1.d=t4.d
8814   WHERE t2.x>0 AND t4.z>0
8815   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8816 } {
8817   30 130 230 330 130 30 230 30 330 30
8818   60 160 260 360 160 60 260 60 360 60
8819   90 190 290 390 190 90 290 90 390 90
8821 do_execsql_test joinD-330 {
8822   SELECT t1.*, t2.*, t3.*, t4.*
8823   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
8824   INNER JOIN t3 ON t1.c=t3.c
8825   LEFT JOIN t4 ON t1.d=t4.d
8826   WHERE t4.z>0 AND t3.y>0
8827   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8828 } {
8829   15 115 215 315   -  - 215 15 315 15
8830   30 130 230 330 130 30 230 30 330 30
8831   45 145 245 345   -  - 245 45 345 45
8832   60 160 260 360 160 60 260 60 360 60
8833   75 175 275 375   -  - 275 75 375 75
8834   90 190 290 390 190 90 290 90 390 90
8836 do_execsql_test joinD-331 {
8837   SELECT t1.*, t2.*, t3.*, t4.*
8838   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
8839   INNER JOIN t3 ON t1.c=t3.c
8840   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
8841   WHERE t2.x>0 AND t3.y>0
8842   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8843 } {
8844    6 106 206 306 106  6 206  6   -  -
8845   12 112 212 312 112 12 212 12   -  -
8846   18 118 218 318 118 18 218 18   -  -
8847   24 124 224 324 124 24 224 24   -  -
8848   30 130 230 330 130 30 230 30 330 30
8849   36 136 236 336 136 36 236 36   -  -
8850   42 142 242 342 142 42 242 42   -  -
8851   48 148 248 348 148 48 248 48   -  -
8852   54 154 254 354 154 54 254 54   -  -
8853   60 160 260 360 160 60 260 60 360 60
8854   66 166 266 366 166 66 266 66   -  -
8855   72 172 272 372 172 72 272 72   -  -
8856   78 178 278 378 178 78 278 78   -  -
8857   84 184 284 384 184 84 284 84   -  -
8858   90 190 290 390 190 90 290 90 390 90
8860 do_execsql_test joinD-332 {
8861   SELECT t1.*, t2.*, t3.*, t4.*
8862   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
8863   INNER JOIN t3 ON t1.c=t3.c
8864   LEFT JOIN t4 ON t1.d=t4.d
8865   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
8866   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8867 } {
8868   30 130 230 330 130 30 230 30 330 30
8869   60 160 260 360 160 60 260 60 360 60
8870   90 190 290 390 190 90 290 90 390 90
8872 do_execsql_test joinD-333 {
8873   SELECT t1.*, t2.*, t3.*, t4.*
8874   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
8875   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
8876   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
8877   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8878 } {
8879    3 103 203 303   -  - 203  3   -  -
8880    6 106 206 306 106  6 206  6   -  -
8881    9 109 209 309   -  - 209  9   -  -
8882   12 112 212 312 112 12 212 12   -  -
8883   15 115 215 315   -  - 215 15 315 15
8884   18 118 218 318 118 18 218 18   -  -
8885   21 121 221 321   -  - 221 21   -  -
8886   24 124 224 324 124 24 224 24   -  -
8887   27 127 227 327   -  - 227 27   -  -
8888   30 130 230 330 130 30 230 30 330 30
8889   33 133 233 333   -  - 233 33   -  -
8890   36 136 236 336 136 36 236 36   -  -
8891   39 139 239 339   -  - 239 39   -  -
8892   42 142 242 342 142 42 242 42   -  -
8893   45 145 245 345   -  - 245 45 345 45
8894   48 148 248 348 148 48 248 48   -  -
8895   51 151 251 351   -  - 251 51   -  -
8896   54 154 254 354 154 54 254 54   -  -
8897   57 157 257 357   -  - 257 57   -  -
8898   60 160 260 360 160 60 260 60 360 60
8899   63 163 263 363   -  - 263 63   -  -
8900   66 166 266 366 166 66 266 66   -  -
8901   69 169 269 369   -  - 269 69   -  -
8902   72 172 272 372 172 72 272 72   -  -
8903   75 175 275 375   -  - 275 75 375 75
8904   78 178 278 378 178 78 278 78   -  -
8905   81 181 281 381   -  - 281 81   -  -
8906   84 184 284 384 184 84 284 84   -  -
8907   87 187 287 387   -  - 287 87   -  -
8908   90 190 290 390 190 90 290 90 390 90
8909   93 193 293 393   -  - 293 93   -  -
8911 do_execsql_test joinD-334 {
8912   SELECT t1.*, t2.*, t3.*, t4.*
8913   FROM t1 LEFT JOIN t2 ON t2.x>0
8914   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
8915   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
8916   WHERE t1.b IS NOT DISTINCT FROM t2.b
8917   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8918 } {
8919    6 106 206 306 106  6 206  6   -  -
8920   12 112 212 312 112 12 212 12   -  -
8921   18 118 218 318 118 18 218 18   -  -
8922   24 124 224 324 124 24 224 24   -  -
8923   30 130 230 330 130 30 230 30 330 30
8924   36 136 236 336 136 36 236 36   -  -
8925   42 142 242 342 142 42 242 42   -  -
8926   48 148 248 348 148 48 248 48   -  -
8927   54 154 254 354 154 54 254 54   -  -
8928   60 160 260 360 160 60 260 60 360 60
8929   66 166 266 366 166 66 266 66   -  -
8930   72 172 272 372 172 72 272 72   -  -
8931   78 178 278 378 178 78 278 78   -  -
8932   84 184 284 384 184 84 284 84   -  -
8933   90 190 290 390 190 90 290 90 390 90
8935 do_execsql_test joinD-335 {
8936   SELECT t1.*, t2.*, t3.*, t4.*
8937   FROM t1 LEFT JOIN t2 ON t2.x>0
8938   INNER JOIN t3 ON t3.y>0
8939   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
8940   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
8941   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8942 } {
8943    6 106 206 306 106  6 206  6   -  -
8944   12 112 212 312 112 12 212 12   -  -
8945   18 118 218 318 118 18 218 18   -  -
8946   24 124 224 324 124 24 224 24   -  -
8947   30 130 230 330 130 30 230 30 330 30
8948   36 136 236 336 136 36 236 36   -  -
8949   42 142 242 342 142 42 242 42   -  -
8950   48 148 248 348 148 48 248 48   -  -
8951   54 154 254 354 154 54 254 54   -  -
8952   60 160 260 360 160 60 260 60 360 60
8953   66 166 266 366 166 66 266 66   -  -
8954   72 172 272 372 172 72 272 72   -  -
8955   78 178 278 378 178 78 278 78   -  -
8956   84 184 284 384 184 84 284 84   -  -
8957   90 190 290 390 190 90 290 90 390 90
8959 do_execsql_test joinD-336 {
8960   SELECT t1.*, t2.*, t3.*, t4.*
8961   FROM t1 LEFT JOIN t2 ON t2.x>0
8962   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
8963   LEFT JOIN t4 ON t4.z>0
8964   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
8965   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8966 } {
8967   30 130 230 330 130 30 230 30 330 30
8968   60 160 260 360 160 60 260 60 360 60
8969   90 190 290 390 190 90 290 90 390 90
8971 do_execsql_test joinD-337 {
8972   SELECT t1.*, t2.*, t3.*, t4.*
8973   FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
8974   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
8975   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
8976   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
8977 } {
8978    3 103 203 303   -  - 203  3   -  -
8979    6 106 206 306 106  6 206  6   -  -
8980    9 109 209 309   -  - 209  9   -  -
8981   12 112 212 312 112 12 212 12   -  -
8982   15 115 215 315   -  - 215 15 315 15
8983   18 118 218 318 118 18 218 18   -  -
8984   21 121 221 321   -  - 221 21   -  -
8985   24 124 224 324 124 24 224 24   -  -
8986   27 127 227 327   -  - 227 27   -  -
8987   30 130 230 330 130 30 230 30 330 30
8988   33 133 233 333   -  - 233 33   -  -
8989   36 136 236 336 136 36 236 36   -  -
8990   39 139 239 339   -  - 239 39   -  -
8991   42 142 242 342 142 42 242 42   -  -
8992   45 145 245 345   -  - 245 45 345 45
8993   48 148 248 348 148 48 248 48   -  -
8994   51 151 251 351   -  - 251 51   -  -
8995   54 154 254 354 154 54 254 54   -  -
8996   57 157 257 357   -  - 257 57   -  -
8997   60 160 260 360 160 60 260 60 360 60
8998   63 163 263 363   -  - 263 63   -  -
8999   66 166 266 366 166 66 266 66   -  -
9000   69 169 269 369   -  - 269 69   -  -
9001   72 172 272 372 172 72 272 72   -  -
9002   75 175 275 375   -  - 275 75 375 75
9003   78 178 278 378 178 78 278 78   -  -
9004   81 181 281 381   -  - 281 81   -  -
9005   84 184 284 384 184 84 284 84   -  -
9006   87 187 287 387   -  - 287 87   -  -
9007   90 190 290 390 190 90 290 90 390 90
9008   93 193 293 393   -  - 293 93   -  -
9010 do_execsql_test joinD-338 {
9011   SELECT t1.*, t2.*, t3.*, t4.*
9012   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
9013   INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
9014   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
9015   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9016 } {
9017    3 103 203 303   -  - 203  3   -  -
9018    6 106 206 306 106  6 206  6   -  -
9019    9 109 209 309   -  - 209  9   -  -
9020   12 112 212 312 112 12 212 12   -  -
9021   15 115 215 315   -  - 215 15 315 15
9022   18 118 218 318 118 18 218 18   -  -
9023   21 121 221 321   -  - 221 21   -  -
9024   24 124 224 324 124 24 224 24   -  -
9025   27 127 227 327   -  - 227 27   -  -
9026   30 130 230 330 130 30 230 30 330 30
9027   33 133 233 333   -  - 233 33   -  -
9028   36 136 236 336 136 36 236 36   -  -
9029   39 139 239 339   -  - 239 39   -  -
9030   42 142 242 342 142 42 242 42   -  -
9031   45 145 245 345   -  - 245 45 345 45
9032   48 148 248 348 148 48 248 48   -  -
9033   51 151 251 351   -  - 251 51   -  -
9034   54 154 254 354 154 54 254 54   -  -
9035   57 157 257 357   -  - 257 57   -  -
9036   60 160 260 360 160 60 260 60 360 60
9037   63 163 263 363   -  - 263 63   -  -
9038   66 166 266 366 166 66 266 66   -  -
9039   69 169 269 369   -  - 269 69   -  -
9040   72 172 272 372 172 72 272 72   -  -
9041   75 175 275 375   -  - 275 75 375 75
9042   78 178 278 378 178 78 278 78   -  -
9043   81 181 281 381   -  - 281 81   -  -
9044   84 184 284 384 184 84 284 84   -  -
9045   87 187 287 387   -  - 287 87   -  -
9046   90 190 290 390 190 90 290 90 390 90
9047   93 193 293 393   -  - 293 93   -  -
9049 do_execsql_test joinD-339 {
9050   SELECT t1.*, t2.*, t3.*, t4.*
9051   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
9052   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
9053   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
9054   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9055 } {
9056   15 115 215 315   -  - 215 15 315 15
9057   30 130 230 330 130 30 230 30 330 30
9058   45 145 245 345   -  - 245 45 345 45
9059   60 160 260 360 160 60 260 60 360 60
9060   75 175 275 375   -  - 275 75 375 75
9061   90 190 290 390 190 90 290 90 390 90
9062    -   -   -   -   -  -   -  - 300  0
9063    -   -   -   -   -  -   -  - 305  5
9064    -   -   -   -   -  -   -  - 310 10
9065    -   -   -   -   -  -   -  - 320 20
9066    -   -   -   -   -  -   -  - 325 25
9067    -   -   -   -   -  -   -  - 335 35
9068    -   -   -   -   -  -   -  - 340 40
9069    -   -   -   -   -  -   -  - 350 50
9070    -   -   -   -   -  -   -  - 355 55
9071    -   -   -   -   -  -   -  - 365 65
9072    -   -   -   -   -  -   -  - 370 70
9073    -   -   -   -   -  -   -  - 380 80
9074    -   -   -   -   -  -   -  - 385 85
9075    -   -   -   -   -  -   -  - 395 95
9077 do_execsql_test joinD-340 {
9078   SELECT t1.*, t2.*, t3.*, t4.*
9079   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
9080   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
9081   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
9082   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9083 } {
9084   15 115 215 315   -  - 215 15 315 15
9085   30 130 230 330 130 30 230 30 330 30
9086   45 145 245 345   -  - 245 45 345 45
9087   60 160 260 360 160 60 260 60 360 60
9088   75 175 275 375   -  - 275 75 375 75
9089   90 190 290 390 190 90 290 90 390 90
9090    -   -   -   -   -  -   -  - 300  0
9091    -   -   -   -   -  -   -  - 305  5
9092    -   -   -   -   -  -   -  - 310 10
9093    -   -   -   -   -  -   -  - 320 20
9094    -   -   -   -   -  -   -  - 325 25
9095    -   -   -   -   -  -   -  - 335 35
9096    -   -   -   -   -  -   -  - 340 40
9097    -   -   -   -   -  -   -  - 350 50
9098    -   -   -   -   -  -   -  - 355 55
9099    -   -   -   -   -  -   -  - 365 65
9100    -   -   -   -   -  -   -  - 370 70
9101    -   -   -   -   -  -   -  - 380 80
9102    -   -   -   -   -  -   -  - 385 85
9103    -   -   -   -   -  -   -  - 395 95
9105 do_execsql_test joinD-341 {
9106   SELECT t1.*, t2.*, t3.*, t4.*
9107   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
9108   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
9109   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
9110   WHERE t2.x>0
9111   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9112 } {
9113   30 130 230 330 130 30 230 30 330 30
9114   60 160 260 360 160 60 260 60 360 60
9115   90 190 290 390 190 90 290 90 390 90
9117 do_execsql_test joinD-342 {
9118   SELECT t1.*, t2.*, t3.*, t4.*
9119   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
9120   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
9121   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
9122   WHERE (t2.x>0 OR t2.x IS NULL)
9123   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9124 } {
9125   15 115 215 315   -  - 215 15 315 15
9126   30 130 230 330 130 30 230 30 330 30
9127   45 145 245 345   -  - 245 45 345 45
9128   60 160 260 360 160 60 260 60 360 60
9129   75 175 275 375   -  - 275 75 375 75
9130   90 190 290 390 190 90 290 90 390 90
9131    -   -   -   -   -  -   -  - 300  0
9132    -   -   -   -   -  -   -  - 305  5
9133    -   -   -   -   -  -   -  - 310 10
9134    -   -   -   -   -  -   -  - 320 20
9135    -   -   -   -   -  -   -  - 325 25
9136    -   -   -   -   -  -   -  - 335 35
9137    -   -   -   -   -  -   -  - 340 40
9138    -   -   -   -   -  -   -  - 350 50
9139    -   -   -   -   -  -   -  - 355 55
9140    -   -   -   -   -  -   -  - 365 65
9141    -   -   -   -   -  -   -  - 370 70
9142    -   -   -   -   -  -   -  - 380 80
9143    -   -   -   -   -  -   -  - 385 85
9144    -   -   -   -   -  -   -  - 395 95
9146 do_execsql_test joinD-343 {
9147   SELECT t1.*, t2.*, t3.*, t4.*
9148   FROM t1 LEFT JOIN t2 ON true
9149   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
9150   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
9151   WHERE t1.b=t2.b AND t2.x>0
9152   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9153 } {
9154   30 130 230 330 130 30 230 30 330 30
9155   60 160 260 360 160 60 260 60 360 60
9156   90 190 290 390 190 90 290 90 390 90
9158 do_execsql_test joinD-344 {
9159   SELECT t1.*, t2.*, t3.*, t4.*
9160   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
9161   INNER JOIN t3 ON t1.c=t3.c
9162   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
9163   WHERE t3.y>0
9164   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9165 } {
9166   15 115 215 315   -  - 215 15 315 15
9167   30 130 230 330 130 30 230 30 330 30
9168   45 145 245 345   -  - 245 45 345 45
9169   60 160 260 360 160 60 260 60 360 60
9170   75 175 275 375   -  - 275 75 375 75
9171   90 190 290 390 190 90 290 90 390 90
9173 do_execsql_test joinD-345 {
9174   SELECT t1.*, t2.*, t3.*, t4.*
9175   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
9176   INNER JOIN t3 ON t1.c=t3.c
9177   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
9178   WHERE t3.y>0 OR t3.y IS NULL
9179   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9180 } {
9181   15 115 215 315   -  - 215 15 315 15
9182   30 130 230 330 130 30 230 30 330 30
9183   45 145 245 345   -  - 245 45 345 45
9184   60 160 260 360 160 60 260 60 360 60
9185   75 175 275 375   -  - 275 75 375 75
9186   90 190 290 390 190 90 290 90 390 90
9187    -   -   -   -   -  -   -  - 300  0
9188    -   -   -   -   -  -   -  - 305  5
9189    -   -   -   -   -  -   -  - 310 10
9190    -   -   -   -   -  -   -  - 320 20
9191    -   -   -   -   -  -   -  - 325 25
9192    -   -   -   -   -  -   -  - 335 35
9193    -   -   -   -   -  -   -  - 340 40
9194    -   -   -   -   -  -   -  - 350 50
9195    -   -   -   -   -  -   -  - 355 55
9196    -   -   -   -   -  -   -  - 365 65
9197    -   -   -   -   -  -   -  - 370 70
9198    -   -   -   -   -  -   -  - 380 80
9199    -   -   -   -   -  -   -  - 385 85
9200    -   -   -   -   -  -   -  - 395 95
9202 do_execsql_test joinD-346 {
9203   SELECT t1.*, t2.*, t3.*, t4.*
9204   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
9205   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
9206   RIGHT JOIN t4 ON t1.d=t4.d
9207   WHERE t4.z>0
9208   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9209 } {
9210   15 115 215 315   -  - 215 15 315 15
9211   30 130 230 330 130 30 230 30 330 30
9212   45 145 245 345   -  - 245 45 345 45
9213   60 160 260 360 160 60 260 60 360 60
9214   75 175 275 375   -  - 275 75 375 75
9215   90 190 290 390 190 90 290 90 390 90
9216    -   -   -   -   -  -   -  - 305  5
9217    -   -   -   -   -  -   -  - 310 10
9218    -   -   -   -   -  -   -  - 320 20
9219    -   -   -   -   -  -   -  - 325 25
9220    -   -   -   -   -  -   -  - 335 35
9221    -   -   -   -   -  -   -  - 340 40
9222    -   -   -   -   -  -   -  - 350 50
9223    -   -   -   -   -  -   -  - 355 55
9224    -   -   -   -   -  -   -  - 365 65
9225    -   -   -   -   -  -   -  - 370 70
9226    -   -   -   -   -  -   -  - 380 80
9227    -   -   -   -   -  -   -  - 385 85
9228    -   -   -   -   -  -   -  - 395 95
9230 do_execsql_test joinD-347 {
9231   SELECT t1.*, t2.*, t3.*, t4.*
9232   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
9233   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
9234   RIGHT JOIN t4 ON t1.d=t4.d
9235   WHERE t4.z IS NULL OR t4.z>0
9236   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9237 } {
9238   15 115 215 315   -  - 215 15 315 15
9239   30 130 230 330 130 30 230 30 330 30
9240   45 145 245 345   -  - 245 45 345 45
9241   60 160 260 360 160 60 260 60 360 60
9242   75 175 275 375   -  - 275 75 375 75
9243   90 190 290 390 190 90 290 90 390 90
9244    -   -   -   -   -  -   -  - 305  5
9245    -   -   -   -   -  -   -  - 310 10
9246    -   -   -   -   -  -   -  - 320 20
9247    -   -   -   -   -  -   -  - 325 25
9248    -   -   -   -   -  -   -  - 335 35
9249    -   -   -   -   -  -   -  - 340 40
9250    -   -   -   -   -  -   -  - 350 50
9251    -   -   -   -   -  -   -  - 355 55
9252    -   -   -   -   -  -   -  - 365 65
9253    -   -   -   -   -  -   -  - 370 70
9254    -   -   -   -   -  -   -  - 380 80
9255    -   -   -   -   -  -   -  - 385 85
9256    -   -   -   -   -  -   -  - 395 95
9258 do_execsql_test joinD-348 {
9259   SELECT t1.*, t2.*, t3.*, t4.*
9260   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
9261   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
9262   RIGHT JOIN t4 ON t1.d=t4.d
9263   WHERE t2.x>0 AND t4.z>0
9264   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9265 } {
9266   30 130 230 330 130 30 230 30 330 30
9267   60 160 260 360 160 60 260 60 360 60
9268   90 190 290 390 190 90 290 90 390 90
9270 do_execsql_test joinD-349 {
9271   SELECT t1.*, t2.*, t3.*, t4.*
9272   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
9273   INNER JOIN t3 ON t1.c=t3.c
9274   RIGHT JOIN t4 ON t1.d=t4.d
9275   WHERE t4.z>0 AND t3.y>0
9276   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9277 } {
9278   15 115 215 315   -  - 215 15 315 15
9279   30 130 230 330 130 30 230 30 330 30
9280   45 145 245 345   -  - 245 45 345 45
9281   60 160 260 360 160 60 260 60 360 60
9282   75 175 275 375   -  - 275 75 375 75
9283   90 190 290 390 190 90 290 90 390 90
9285 do_execsql_test joinD-350 {
9286   SELECT t1.*, t2.*, t3.*, t4.*
9287   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
9288   INNER JOIN t3 ON t1.c=t3.c
9289   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
9290   WHERE t2.x>0 AND t3.y>0
9291   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9292 } {
9293   30 130 230 330 130 30 230 30 330 30
9294   60 160 260 360 160 60 260 60 360 60
9295   90 190 290 390 190 90 290 90 390 90
9297 do_execsql_test joinD-351 {
9298   SELECT t1.*, t2.*, t3.*, t4.*
9299   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
9300   INNER JOIN t3 ON t1.c=t3.c
9301   RIGHT JOIN t4 ON t1.d=t4.d
9302   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
9303   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9304 } {
9305   30 130 230 330 130 30 230 30 330 30
9306   60 160 260 360 160 60 260 60 360 60
9307   90 190 290 390 190 90 290 90 390 90
9309 do_execsql_test joinD-352 {
9310   SELECT t1.*, t2.*, t3.*, t4.*
9311   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
9312   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
9313   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
9314   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9315 } {
9316   15 115 215 315   -  - 215 15 315 15
9317   30 130 230 330 130 30 230 30 330 30
9318   45 145 245 345   -  - 245 45 345 45
9319   60 160 260 360 160 60 260 60 360 60
9320   75 175 275 375   -  - 275 75 375 75
9321   90 190 290 390 190 90 290 90 390 90
9322    -   -   -   -   -  -   -  - 300  0
9323    -   -   -   -   -  -   -  - 305  5
9324    -   -   -   -   -  -   -  - 310 10
9325    -   -   -   -   -  -   -  - 320 20
9326    -   -   -   -   -  -   -  - 325 25
9327    -   -   -   -   -  -   -  - 335 35
9328    -   -   -   -   -  -   -  - 340 40
9329    -   -   -   -   -  -   -  - 350 50
9330    -   -   -   -   -  -   -  - 355 55
9331    -   -   -   -   -  -   -  - 365 65
9332    -   -   -   -   -  -   -  - 370 70
9333    -   -   -   -   -  -   -  - 380 80
9334    -   -   -   -   -  -   -  - 385 85
9335    -   -   -   -   -  -   -  - 395 95
9337 do_execsql_test joinD-353 {
9338   SELECT t1.*, t2.*, t3.*, t4.*
9339   FROM t1 LEFT JOIN t2 ON t2.x>0
9340   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
9341   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
9342   WHERE t1.b IS NOT DISTINCT FROM t2.b
9343   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9344 } {
9345   30 130 230 330 130 30 230 30 330 30
9346   60 160 260 360 160 60 260 60 360 60
9347   90 190 290 390 190 90 290 90 390 90
9348    -   -   -   -   -  -   -  - 300  0
9349    -   -   -   -   -  -   -  - 305  5
9350    -   -   -   -   -  -   -  - 310 10
9351    -   -   -   -   -  -   -  - 320 20
9352    -   -   -   -   -  -   -  - 325 25
9353    -   -   -   -   -  -   -  - 335 35
9354    -   -   -   -   -  -   -  - 340 40
9355    -   -   -   -   -  -   -  - 350 50
9356    -   -   -   -   -  -   -  - 355 55
9357    -   -   -   -   -  -   -  - 365 65
9358    -   -   -   -   -  -   -  - 370 70
9359    -   -   -   -   -  -   -  - 380 80
9360    -   -   -   -   -  -   -  - 385 85
9361    -   -   -   -   -  -   -  - 395 95
9363 do_execsql_test joinD-354 {
9364   SELECT t1.*, t2.*, t3.*, t4.*
9365   FROM t1 LEFT JOIN t2 ON t2.x>0
9366   INNER JOIN t3 ON t3.y>0
9367   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
9368   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
9369   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9370 } {
9371   30 130 230 330 130 30 230 30 330 30
9372   60 160 260 360 160 60 260 60 360 60
9373   90 190 290 390 190 90 290 90 390 90
9374    -   -   -   -   -  -   -  - 300  0
9376 do_execsql_test joinD-355 {
9377   SELECT t1.*, t2.*, t3.*, t4.*
9378   FROM t1 LEFT JOIN t2 ON t2.x>0
9379   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
9380   RIGHT JOIN t4 ON t4.z>0
9381   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
9382   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9383 } {
9384   30 130 230 330 130 30 230 30 330 30
9385   60 160 260 360 160 60 260 60 360 60
9386   90 190 290 390 190 90 290 90 390 90
9388 do_execsql_test joinD-356 {
9389   SELECT t1.*, t2.*, t3.*, t4.*
9390   FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
9391   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
9392   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
9393   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9394 } {
9395   15 115 215 315   -  - 215 15 315 15
9396   30 130 230 330 130 30 230 30 330 30
9397   45 145 245 345   -  - 245 45 345 45
9398   60 160 260 360 160 60 260 60 360 60
9399   75 175 275 375   -  - 275 75 375 75
9400   90 190 290 390 190 90 290 90 390 90
9401    -   -   -   -   -  -   -  - 300  0
9402    -   -   -   -   -  -   -  - 305  5
9403    -   -   -   -   -  -   -  - 310 10
9404    -   -   -   -   -  -   -  - 320 20
9405    -   -   -   -   -  -   -  - 325 25
9406    -   -   -   -   -  -   -  - 335 35
9407    -   -   -   -   -  -   -  - 340 40
9408    -   -   -   -   -  -   -  - 350 50
9409    -   -   -   -   -  -   -  - 355 55
9410    -   -   -   -   -  -   -  - 365 65
9411    -   -   -   -   -  -   -  - 370 70
9412    -   -   -   -   -  -   -  - 380 80
9413    -   -   -   -   -  -   -  - 385 85
9414    -   -   -   -   -  -   -  - 395 95
9416 do_execsql_test joinD-357 {
9417   SELECT t1.*, t2.*, t3.*, t4.*
9418   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
9419   INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
9420   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
9421   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9422 } {
9423   15 115 215 315   -  - 215 15 315 15
9424   30 130 230 330 130 30 230 30 330 30
9425   45 145 245 345   -  - 245 45 345 45
9426   60 160 260 360 160 60 260 60 360 60
9427   75 175 275 375   -  - 275 75 375 75
9428   90 190 290 390 190 90 290 90 390 90
9429    -   -   -   -   -  -   -  - 300  0
9430    -   -   -   -   -  -   -  - 305  5
9431    -   -   -   -   -  -   -  - 310 10
9432    -   -   -   -   -  -   -  - 320 20
9433    -   -   -   -   -  -   -  - 325 25
9434    -   -   -   -   -  -   -  - 335 35
9435    -   -   -   -   -  -   -  - 340 40
9436    -   -   -   -   -  -   -  - 350 50
9437    -   -   -   -   -  -   -  - 355 55
9438    -   -   -   -   -  -   -  - 365 65
9439    -   -   -   -   -  -   -  - 370 70
9440    -   -   -   -   -  -   -  - 380 80
9441    -   -   -   -   -  -   -  - 385 85
9442    -   -   -   -   -  -   -  - 395 95
9444 do_execsql_test joinD-358 {
9445   SELECT t1.*, t2.*, t3.*, t4.*
9446   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
9447   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
9448   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
9449   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9450 } {
9451    3 103 203 303   -  - 203  3   -  -
9452    6 106 206 306 106  6 206  6   -  -
9453    9 109 209 309   -  - 209  9   -  -
9454   12 112 212 312 112 12 212 12   -  -
9455   15 115 215 315   -  - 215 15 315 15
9456   18 118 218 318 118 18 218 18   -  -
9457   21 121 221 321   -  - 221 21   -  -
9458   24 124 224 324 124 24 224 24   -  -
9459   27 127 227 327   -  - 227 27   -  -
9460   30 130 230 330 130 30 230 30 330 30
9461   33 133 233 333   -  - 233 33   -  -
9462   36 136 236 336 136 36 236 36   -  -
9463   39 139 239 339   -  - 239 39   -  -
9464   42 142 242 342 142 42 242 42   -  -
9465   45 145 245 345   -  - 245 45 345 45
9466   48 148 248 348 148 48 248 48   -  -
9467   51 151 251 351   -  - 251 51   -  -
9468   54 154 254 354 154 54 254 54   -  -
9469   57 157 257 357   -  - 257 57   -  -
9470   60 160 260 360 160 60 260 60 360 60
9471   63 163 263 363   -  - 263 63   -  -
9472   66 166 266 366 166 66 266 66   -  -
9473   69 169 269 369   -  - 269 69   -  -
9474   72 172 272 372 172 72 272 72   -  -
9475   75 175 275 375   -  - 275 75 375 75
9476   78 178 278 378 178 78 278 78   -  -
9477   81 181 281 381   -  - 281 81   -  -
9478   84 184 284 384 184 84 284 84   -  -
9479   87 187 287 387   -  - 287 87   -  -
9480   90 190 290 390 190 90 290 90 390 90
9481   93 193 293 393   -  - 293 93   -  -
9482    -   -   -   -   -  -   -  - 300  0
9483    -   -   -   -   -  -   -  - 305  5
9484    -   -   -   -   -  -   -  - 310 10
9485    -   -   -   -   -  -   -  - 320 20
9486    -   -   -   -   -  -   -  - 325 25
9487    -   -   -   -   -  -   -  - 335 35
9488    -   -   -   -   -  -   -  - 340 40
9489    -   -   -   -   -  -   -  - 350 50
9490    -   -   -   -   -  -   -  - 355 55
9491    -   -   -   -   -  -   -  - 365 65
9492    -   -   -   -   -  -   -  - 370 70
9493    -   -   -   -   -  -   -  - 380 80
9494    -   -   -   -   -  -   -  - 385 85
9495    -   -   -   -   -  -   -  - 395 95
9497 do_execsql_test joinD-359 {
9498   SELECT t1.*, t2.*, t3.*, t4.*
9499   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
9500   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
9501   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
9502   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9503 } {
9504    3 103 203 303   -  - 203  3   -  -
9505    6 106 206 306 106  6 206  6   -  -
9506    9 109 209 309   -  - 209  9   -  -
9507   12 112 212 312 112 12 212 12   -  -
9508   15 115 215 315   -  - 215 15 315 15
9509   18 118 218 318 118 18 218 18   -  -
9510   21 121 221 321   -  - 221 21   -  -
9511   24 124 224 324 124 24 224 24   -  -
9512   27 127 227 327   -  - 227 27   -  -
9513   30 130 230 330 130 30 230 30 330 30
9514   33 133 233 333   -  - 233 33   -  -
9515   36 136 236 336 136 36 236 36   -  -
9516   39 139 239 339   -  - 239 39   -  -
9517   42 142 242 342 142 42 242 42   -  -
9518   45 145 245 345   -  - 245 45 345 45
9519   48 148 248 348 148 48 248 48   -  -
9520   51 151 251 351   -  - 251 51   -  -
9521   54 154 254 354 154 54 254 54   -  -
9522   57 157 257 357   -  - 257 57   -  -
9523   60 160 260 360 160 60 260 60 360 60
9524   63 163 263 363   -  - 263 63   -  -
9525   66 166 266 366 166 66 266 66   -  -
9526   69 169 269 369   -  - 269 69   -  -
9527   72 172 272 372 172 72 272 72   -  -
9528   75 175 275 375   -  - 275 75 375 75
9529   78 178 278 378 178 78 278 78   -  -
9530   81 181 281 381   -  - 281 81   -  -
9531   84 184 284 384 184 84 284 84   -  -
9532   87 187 287 387   -  - 287 87   -  -
9533   90 190 290 390 190 90 290 90 390 90
9534   93 193 293 393   -  - 293 93   -  -
9535    -   -   -   -   -  -   -  - 300  0
9536    -   -   -   -   -  -   -  - 305  5
9537    -   -   -   -   -  -   -  - 310 10
9538    -   -   -   -   -  -   -  - 320 20
9539    -   -   -   -   -  -   -  - 325 25
9540    -   -   -   -   -  -   -  - 335 35
9541    -   -   -   -   -  -   -  - 340 40
9542    -   -   -   -   -  -   -  - 350 50
9543    -   -   -   -   -  -   -  - 355 55
9544    -   -   -   -   -  -   -  - 365 65
9545    -   -   -   -   -  -   -  - 370 70
9546    -   -   -   -   -  -   -  - 380 80
9547    -   -   -   -   -  -   -  - 385 85
9548    -   -   -   -   -  -   -  - 395 95
9550 do_execsql_test joinD-360 {
9551   SELECT t1.*, t2.*, t3.*, t4.*
9552   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
9553   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
9554   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
9555   WHERE t2.x>0
9556   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9557 } {
9558    6 106 206 306 106  6 206  6   -  -
9559   12 112 212 312 112 12 212 12   -  -
9560   18 118 218 318 118 18 218 18   -  -
9561   24 124 224 324 124 24 224 24   -  -
9562   30 130 230 330 130 30 230 30 330 30
9563   36 136 236 336 136 36 236 36   -  -
9564   42 142 242 342 142 42 242 42   -  -
9565   48 148 248 348 148 48 248 48   -  -
9566   54 154 254 354 154 54 254 54   -  -
9567   60 160 260 360 160 60 260 60 360 60
9568   66 166 266 366 166 66 266 66   -  -
9569   72 172 272 372 172 72 272 72   -  -
9570   78 178 278 378 178 78 278 78   -  -
9571   84 184 284 384 184 84 284 84   -  -
9572   90 190 290 390 190 90 290 90 390 90
9574 do_execsql_test joinD-361 {
9575   SELECT t1.*, t2.*, t3.*, t4.*
9576   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
9577   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
9578   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
9579   WHERE (t2.x>0 OR t2.x IS NULL)
9580   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9581 } {
9582    3 103 203 303   -  - 203  3   -  -
9583    6 106 206 306 106  6 206  6   -  -
9584    9 109 209 309   -  - 209  9   -  -
9585   12 112 212 312 112 12 212 12   -  -
9586   15 115 215 315   -  - 215 15 315 15
9587   18 118 218 318 118 18 218 18   -  -
9588   21 121 221 321   -  - 221 21   -  -
9589   24 124 224 324 124 24 224 24   -  -
9590   27 127 227 327   -  - 227 27   -  -
9591   30 130 230 330 130 30 230 30 330 30
9592   33 133 233 333   -  - 233 33   -  -
9593   36 136 236 336 136 36 236 36   -  -
9594   39 139 239 339   -  - 239 39   -  -
9595   42 142 242 342 142 42 242 42   -  -
9596   45 145 245 345   -  - 245 45 345 45
9597   48 148 248 348 148 48 248 48   -  -
9598   51 151 251 351   -  - 251 51   -  -
9599   54 154 254 354 154 54 254 54   -  -
9600   57 157 257 357   -  - 257 57   -  -
9601   60 160 260 360 160 60 260 60 360 60
9602   63 163 263 363   -  - 263 63   -  -
9603   66 166 266 366 166 66 266 66   -  -
9604   69 169 269 369   -  - 269 69   -  -
9605   72 172 272 372 172 72 272 72   -  -
9606   75 175 275 375   -  - 275 75 375 75
9607   78 178 278 378 178 78 278 78   -  -
9608   81 181 281 381   -  - 281 81   -  -
9609   84 184 284 384 184 84 284 84   -  -
9610   87 187 287 387   -  - 287 87   -  -
9611   90 190 290 390 190 90 290 90 390 90
9612   93 193 293 393   -  - 293 93   -  -
9613    -   -   -   -   -  -   -  - 300  0
9614    -   -   -   -   -  -   -  - 305  5
9615    -   -   -   -   -  -   -  - 310 10
9616    -   -   -   -   -  -   -  - 320 20
9617    -   -   -   -   -  -   -  - 325 25
9618    -   -   -   -   -  -   -  - 335 35
9619    -   -   -   -   -  -   -  - 340 40
9620    -   -   -   -   -  -   -  - 350 50
9621    -   -   -   -   -  -   -  - 355 55
9622    -   -   -   -   -  -   -  - 365 65
9623    -   -   -   -   -  -   -  - 370 70
9624    -   -   -   -   -  -   -  - 380 80
9625    -   -   -   -   -  -   -  - 385 85
9626    -   -   -   -   -  -   -  - 395 95
9628 do_execsql_test joinD-362 {
9629   SELECT t1.*, t2.*, t3.*, t4.*
9630   FROM t1 LEFT JOIN t2 ON true
9631   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
9632   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
9633   WHERE t1.b=t2.b AND t2.x>0
9634   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9635 } {
9636    6 106 206 306 106  6 206  6   -  -
9637   12 112 212 312 112 12 212 12   -  -
9638   18 118 218 318 118 18 218 18   -  -
9639   24 124 224 324 124 24 224 24   -  -
9640   30 130 230 330 130 30 230 30 330 30
9641   36 136 236 336 136 36 236 36   -  -
9642   42 142 242 342 142 42 242 42   -  -
9643   48 148 248 348 148 48 248 48   -  -
9644   54 154 254 354 154 54 254 54   -  -
9645   60 160 260 360 160 60 260 60 360 60
9646   66 166 266 366 166 66 266 66   -  -
9647   72 172 272 372 172 72 272 72   -  -
9648   78 178 278 378 178 78 278 78   -  -
9649   84 184 284 384 184 84 284 84   -  -
9650   90 190 290 390 190 90 290 90 390 90
9652 do_execsql_test joinD-363 {
9653   SELECT t1.*, t2.*, t3.*, t4.*
9654   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
9655   INNER JOIN t3 ON t1.c=t3.c
9656   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
9657   WHERE t3.y>0
9658   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9659 } {
9660    3 103 203 303   -  - 203  3   -  -
9661    6 106 206 306 106  6 206  6   -  -
9662    9 109 209 309   -  - 209  9   -  -
9663   12 112 212 312 112 12 212 12   -  -
9664   15 115 215 315   -  - 215 15 315 15
9665   18 118 218 318 118 18 218 18   -  -
9666   21 121 221 321   -  - 221 21   -  -
9667   24 124 224 324 124 24 224 24   -  -
9668   27 127 227 327   -  - 227 27   -  -
9669   30 130 230 330 130 30 230 30 330 30
9670   33 133 233 333   -  - 233 33   -  -
9671   36 136 236 336 136 36 236 36   -  -
9672   39 139 239 339   -  - 239 39   -  -
9673   42 142 242 342 142 42 242 42   -  -
9674   45 145 245 345   -  - 245 45 345 45
9675   48 148 248 348 148 48 248 48   -  -
9676   51 151 251 351   -  - 251 51   -  -
9677   54 154 254 354 154 54 254 54   -  -
9678   57 157 257 357   -  - 257 57   -  -
9679   60 160 260 360 160 60 260 60 360 60
9680   63 163 263 363   -  - 263 63   -  -
9681   66 166 266 366 166 66 266 66   -  -
9682   69 169 269 369   -  - 269 69   -  -
9683   72 172 272 372 172 72 272 72   -  -
9684   75 175 275 375   -  - 275 75 375 75
9685   78 178 278 378 178 78 278 78   -  -
9686   81 181 281 381   -  - 281 81   -  -
9687   84 184 284 384 184 84 284 84   -  -
9688   87 187 287 387   -  - 287 87   -  -
9689   90 190 290 390 190 90 290 90 390 90
9690   93 193 293 393   -  - 293 93   -  -
9692 do_execsql_test joinD-364 {
9693   SELECT t1.*, t2.*, t3.*, t4.*
9694   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
9695   INNER JOIN t3 ON t1.c=t3.c
9696   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
9697   WHERE t3.y>0 OR t3.y IS NULL
9698   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9699 } {
9700    3 103 203 303   -  - 203  3   -  -
9701    6 106 206 306 106  6 206  6   -  -
9702    9 109 209 309   -  - 209  9   -  -
9703   12 112 212 312 112 12 212 12   -  -
9704   15 115 215 315   -  - 215 15 315 15
9705   18 118 218 318 118 18 218 18   -  -
9706   21 121 221 321   -  - 221 21   -  -
9707   24 124 224 324 124 24 224 24   -  -
9708   27 127 227 327   -  - 227 27   -  -
9709   30 130 230 330 130 30 230 30 330 30
9710   33 133 233 333   -  - 233 33   -  -
9711   36 136 236 336 136 36 236 36   -  -
9712   39 139 239 339   -  - 239 39   -  -
9713   42 142 242 342 142 42 242 42   -  -
9714   45 145 245 345   -  - 245 45 345 45
9715   48 148 248 348 148 48 248 48   -  -
9716   51 151 251 351   -  - 251 51   -  -
9717   54 154 254 354 154 54 254 54   -  -
9718   57 157 257 357   -  - 257 57   -  -
9719   60 160 260 360 160 60 260 60 360 60
9720   63 163 263 363   -  - 263 63   -  -
9721   66 166 266 366 166 66 266 66   -  -
9722   69 169 269 369   -  - 269 69   -  -
9723   72 172 272 372 172 72 272 72   -  -
9724   75 175 275 375   -  - 275 75 375 75
9725   78 178 278 378 178 78 278 78   -  -
9726   81 181 281 381   -  - 281 81   -  -
9727   84 184 284 384 184 84 284 84   -  -
9728   87 187 287 387   -  - 287 87   -  -
9729   90 190 290 390 190 90 290 90 390 90
9730   93 193 293 393   -  - 293 93   -  -
9731    -   -   -   -   -  -   -  - 300  0
9732    -   -   -   -   -  -   -  - 305  5
9733    -   -   -   -   -  -   -  - 310 10
9734    -   -   -   -   -  -   -  - 320 20
9735    -   -   -   -   -  -   -  - 325 25
9736    -   -   -   -   -  -   -  - 335 35
9737    -   -   -   -   -  -   -  - 340 40
9738    -   -   -   -   -  -   -  - 350 50
9739    -   -   -   -   -  -   -  - 355 55
9740    -   -   -   -   -  -   -  - 365 65
9741    -   -   -   -   -  -   -  - 370 70
9742    -   -   -   -   -  -   -  - 380 80
9743    -   -   -   -   -  -   -  - 385 85
9744    -   -   -   -   -  -   -  - 395 95
9746 do_execsql_test joinD-365 {
9747   SELECT t1.*, t2.*, t3.*, t4.*
9748   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
9749   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
9750   FULL JOIN t4 ON t1.d=t4.d
9751   WHERE t4.z>0
9752   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9753 } {
9754   15 115 215 315   -  - 215 15 315 15
9755   30 130 230 330 130 30 230 30 330 30
9756   45 145 245 345   -  - 245 45 345 45
9757   60 160 260 360 160 60 260 60 360 60
9758   75 175 275 375   -  - 275 75 375 75
9759   90 190 290 390 190 90 290 90 390 90
9760    -   -   -   -   -  -   -  - 305  5
9761    -   -   -   -   -  -   -  - 310 10
9762    -   -   -   -   -  -   -  - 320 20
9763    -   -   -   -   -  -   -  - 325 25
9764    -   -   -   -   -  -   -  - 335 35
9765    -   -   -   -   -  -   -  - 340 40
9766    -   -   -   -   -  -   -  - 350 50
9767    -   -   -   -   -  -   -  - 355 55
9768    -   -   -   -   -  -   -  - 365 65
9769    -   -   -   -   -  -   -  - 370 70
9770    -   -   -   -   -  -   -  - 380 80
9771    -   -   -   -   -  -   -  - 385 85
9772    -   -   -   -   -  -   -  - 395 95
9774 do_execsql_test joinD-366 {
9775   SELECT t1.*, t2.*, t3.*, t4.*
9776   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
9777   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
9778   FULL JOIN t4 ON t1.d=t4.d
9779   WHERE t4.z IS NULL OR t4.z>0
9780   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9781 } {
9782    3 103 203 303   -  - 203  3   -  -
9783    6 106 206 306 106  6 206  6   -  -
9784    9 109 209 309   -  - 209  9   -  -
9785   12 112 212 312 112 12 212 12   -  -
9786   15 115 215 315   -  - 215 15 315 15
9787   18 118 218 318 118 18 218 18   -  -
9788   21 121 221 321   -  - 221 21   -  -
9789   24 124 224 324 124 24 224 24   -  -
9790   27 127 227 327   -  - 227 27   -  -
9791   30 130 230 330 130 30 230 30 330 30
9792   33 133 233 333   -  - 233 33   -  -
9793   36 136 236 336 136 36 236 36   -  -
9794   39 139 239 339   -  - 239 39   -  -
9795   42 142 242 342 142 42 242 42   -  -
9796   45 145 245 345   -  - 245 45 345 45
9797   48 148 248 348 148 48 248 48   -  -
9798   51 151 251 351   -  - 251 51   -  -
9799   54 154 254 354 154 54 254 54   -  -
9800   57 157 257 357   -  - 257 57   -  -
9801   60 160 260 360 160 60 260 60 360 60
9802   63 163 263 363   -  - 263 63   -  -
9803   66 166 266 366 166 66 266 66   -  -
9804   69 169 269 369   -  - 269 69   -  -
9805   72 172 272 372 172 72 272 72   -  -
9806   75 175 275 375   -  - 275 75 375 75
9807   78 178 278 378 178 78 278 78   -  -
9808   81 181 281 381   -  - 281 81   -  -
9809   84 184 284 384 184 84 284 84   -  -
9810   87 187 287 387   -  - 287 87   -  -
9811   90 190 290 390 190 90 290 90 390 90
9812   93 193 293 393   -  - 293 93   -  -
9813    -   -   -   -   -  -   -  - 305  5
9814    -   -   -   -   -  -   -  - 310 10
9815    -   -   -   -   -  -   -  - 320 20
9816    -   -   -   -   -  -   -  - 325 25
9817    -   -   -   -   -  -   -  - 335 35
9818    -   -   -   -   -  -   -  - 340 40
9819    -   -   -   -   -  -   -  - 350 50
9820    -   -   -   -   -  -   -  - 355 55
9821    -   -   -   -   -  -   -  - 365 65
9822    -   -   -   -   -  -   -  - 370 70
9823    -   -   -   -   -  -   -  - 380 80
9824    -   -   -   -   -  -   -  - 385 85
9825    -   -   -   -   -  -   -  - 395 95
9827 do_execsql_test joinD-367 {
9828   SELECT t1.*, t2.*, t3.*, t4.*
9829   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
9830   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
9831   FULL JOIN t4 ON t1.d=t4.d
9832   WHERE t2.x>0 AND t4.z>0
9833   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9834 } {
9835   30 130 230 330 130 30 230 30 330 30
9836   60 160 260 360 160 60 260 60 360 60
9837   90 190 290 390 190 90 290 90 390 90
9839 do_execsql_test joinD-368 {
9840   SELECT t1.*, t2.*, t3.*, t4.*
9841   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
9842   INNER JOIN t3 ON t1.c=t3.c
9843   FULL JOIN t4 ON t1.d=t4.d
9844   WHERE t4.z>0 AND t3.y>0
9845   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9846 } {
9847   15 115 215 315   -  - 215 15 315 15
9848   30 130 230 330 130 30 230 30 330 30
9849   45 145 245 345   -  - 245 45 345 45
9850   60 160 260 360 160 60 260 60 360 60
9851   75 175 275 375   -  - 275 75 375 75
9852   90 190 290 390 190 90 290 90 390 90
9854 do_execsql_test joinD-369 {
9855   SELECT t1.*, t2.*, t3.*, t4.*
9856   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
9857   INNER JOIN t3 ON t1.c=t3.c
9858   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
9859   WHERE t2.x>0 AND t3.y>0
9860   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9861 } {
9862    6 106 206 306 106  6 206  6   -  -
9863   12 112 212 312 112 12 212 12   -  -
9864   18 118 218 318 118 18 218 18   -  -
9865   24 124 224 324 124 24 224 24   -  -
9866   30 130 230 330 130 30 230 30 330 30
9867   36 136 236 336 136 36 236 36   -  -
9868   42 142 242 342 142 42 242 42   -  -
9869   48 148 248 348 148 48 248 48   -  -
9870   54 154 254 354 154 54 254 54   -  -
9871   60 160 260 360 160 60 260 60 360 60
9872   66 166 266 366 166 66 266 66   -  -
9873   72 172 272 372 172 72 272 72   -  -
9874   78 178 278 378 178 78 278 78   -  -
9875   84 184 284 384 184 84 284 84   -  -
9876   90 190 290 390 190 90 290 90 390 90
9878 do_execsql_test joinD-370 {
9879   SELECT t1.*, t2.*, t3.*, t4.*
9880   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
9881   INNER JOIN t3 ON t1.c=t3.c
9882   FULL JOIN t4 ON t1.d=t4.d
9883   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
9884   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9885 } {
9886   30 130 230 330 130 30 230 30 330 30
9887   60 160 260 360 160 60 260 60 360 60
9888   90 190 290 390 190 90 290 90 390 90
9890 do_execsql_test joinD-371 {
9891   SELECT t1.*, t2.*, t3.*, t4.*
9892   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
9893   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
9894   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
9895   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9896 } {
9897    3 103 203 303   -  - 203  3   -  -
9898    6 106 206 306 106  6 206  6   -  -
9899    9 109 209 309   -  - 209  9   -  -
9900   12 112 212 312 112 12 212 12   -  -
9901   15 115 215 315   -  - 215 15 315 15
9902   18 118 218 318 118 18 218 18   -  -
9903   21 121 221 321   -  - 221 21   -  -
9904   24 124 224 324 124 24 224 24   -  -
9905   27 127 227 327   -  - 227 27   -  -
9906   30 130 230 330 130 30 230 30 330 30
9907   33 133 233 333   -  - 233 33   -  -
9908   36 136 236 336 136 36 236 36   -  -
9909   39 139 239 339   -  - 239 39   -  -
9910   42 142 242 342 142 42 242 42   -  -
9911   45 145 245 345   -  - 245 45 345 45
9912   48 148 248 348 148 48 248 48   -  -
9913   51 151 251 351   -  - 251 51   -  -
9914   54 154 254 354 154 54 254 54   -  -
9915   57 157 257 357   -  - 257 57   -  -
9916   60 160 260 360 160 60 260 60 360 60
9917   63 163 263 363   -  - 263 63   -  -
9918   66 166 266 366 166 66 266 66   -  -
9919   69 169 269 369   -  - 269 69   -  -
9920   72 172 272 372 172 72 272 72   -  -
9921   75 175 275 375   -  - 275 75 375 75
9922   78 178 278 378 178 78 278 78   -  -
9923   81 181 281 381   -  - 281 81   -  -
9924   84 184 284 384 184 84 284 84   -  -
9925   87 187 287 387   -  - 287 87   -  -
9926   90 190 290 390 190 90 290 90 390 90
9927   93 193 293 393   -  - 293 93   -  -
9928    -   -   -   -   -  -   -  - 300  0
9929    -   -   -   -   -  -   -  - 305  5
9930    -   -   -   -   -  -   -  - 310 10
9931    -   -   -   -   -  -   -  - 320 20
9932    -   -   -   -   -  -   -  - 325 25
9933    -   -   -   -   -  -   -  - 335 35
9934    -   -   -   -   -  -   -  - 340 40
9935    -   -   -   -   -  -   -  - 350 50
9936    -   -   -   -   -  -   -  - 355 55
9937    -   -   -   -   -  -   -  - 365 65
9938    -   -   -   -   -  -   -  - 370 70
9939    -   -   -   -   -  -   -  - 380 80
9940    -   -   -   -   -  -   -  - 385 85
9941    -   -   -   -   -  -   -  - 395 95
9943 do_execsql_test joinD-372 {
9944   SELECT t1.*, t2.*, t3.*, t4.*
9945   FROM t1 LEFT JOIN t2 ON t2.x>0
9946   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
9947   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
9948   WHERE t1.b IS NOT DISTINCT FROM t2.b
9949   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9950 } {
9951    6 106 206 306 106  6 206  6   -  -
9952   12 112 212 312 112 12 212 12   -  -
9953   18 118 218 318 118 18 218 18   -  -
9954   24 124 224 324 124 24 224 24   -  -
9955   30 130 230 330 130 30 230 30 330 30
9956   36 136 236 336 136 36 236 36   -  -
9957   42 142 242 342 142 42 242 42   -  -
9958   48 148 248 348 148 48 248 48   -  -
9959   54 154 254 354 154 54 254 54   -  -
9960   60 160 260 360 160 60 260 60 360 60
9961   66 166 266 366 166 66 266 66   -  -
9962   72 172 272 372 172 72 272 72   -  -
9963   78 178 278 378 178 78 278 78   -  -
9964   84 184 284 384 184 84 284 84   -  -
9965   90 190 290 390 190 90 290 90 390 90
9966    -   -   -   -   -  -   -  - 300  0
9967    -   -   -   -   -  -   -  - 305  5
9968    -   -   -   -   -  -   -  - 310 10
9969    -   -   -   -   -  -   -  - 320 20
9970    -   -   -   -   -  -   -  - 325 25
9971    -   -   -   -   -  -   -  - 335 35
9972    -   -   -   -   -  -   -  - 340 40
9973    -   -   -   -   -  -   -  - 350 50
9974    -   -   -   -   -  -   -  - 355 55
9975    -   -   -   -   -  -   -  - 365 65
9976    -   -   -   -   -  -   -  - 370 70
9977    -   -   -   -   -  -   -  - 380 80
9978    -   -   -   -   -  -   -  - 385 85
9979    -   -   -   -   -  -   -  - 395 95
9981 do_execsql_test joinD-373 {
9982   SELECT t1.*, t2.*, t3.*, t4.*
9983   FROM t1 LEFT JOIN t2 ON t2.x>0
9984   INNER JOIN t3 ON t3.y>0
9985   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
9986   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
9987   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
9988 } {
9989    6 106 206 306 106  6 206  6   -  -
9990   12 112 212 312 112 12 212 12   -  -
9991   18 118 218 318 118 18 218 18   -  -
9992   24 124 224 324 124 24 224 24   -  -
9993   30 130 230 330 130 30 230 30 330 30
9994   36 136 236 336 136 36 236 36   -  -
9995   42 142 242 342 142 42 242 42   -  -
9996   48 148 248 348 148 48 248 48   -  -
9997   54 154 254 354 154 54 254 54   -  -
9998   60 160 260 360 160 60 260 60 360 60
9999   66 166 266 366 166 66 266 66   -  -
10000   72 172 272 372 172 72 272 72   -  -
10001   78 178 278 378 178 78 278 78   -  -
10002   84 184 284 384 184 84 284 84   -  -
10003   90 190 290 390 190 90 290 90 390 90
10004    -   -   -   -   -  -   -  - 300  0
10006 do_execsql_test joinD-374 {
10007   SELECT t1.*, t2.*, t3.*, t4.*
10008   FROM t1 LEFT JOIN t2 ON t2.x>0
10009   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
10010   FULL JOIN t4 ON t4.z>0
10011   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
10012   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10013 } {
10014   30 130 230 330 130 30 230 30 330 30
10015   60 160 260 360 160 60 260 60 360 60
10016   90 190 290 390 190 90 290 90 390 90
10018 do_execsql_test joinD-375 {
10019   SELECT t1.*, t2.*, t3.*, t4.*
10020   FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
10021   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
10022   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
10023   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10024 } {
10025    3 103 203 303   -  - 203  3   -  -
10026    6 106 206 306 106  6 206  6   -  -
10027    9 109 209 309   -  - 209  9   -  -
10028   12 112 212 312 112 12 212 12   -  -
10029   15 115 215 315   -  - 215 15 315 15
10030   18 118 218 318 118 18 218 18   -  -
10031   21 121 221 321   -  - 221 21   -  -
10032   24 124 224 324 124 24 224 24   -  -
10033   27 127 227 327   -  - 227 27   -  -
10034   30 130 230 330 130 30 230 30 330 30
10035   33 133 233 333   -  - 233 33   -  -
10036   36 136 236 336 136 36 236 36   -  -
10037   39 139 239 339   -  - 239 39   -  -
10038   42 142 242 342 142 42 242 42   -  -
10039   45 145 245 345   -  - 245 45 345 45
10040   48 148 248 348 148 48 248 48   -  -
10041   51 151 251 351   -  - 251 51   -  -
10042   54 154 254 354 154 54 254 54   -  -
10043   57 157 257 357   -  - 257 57   -  -
10044   60 160 260 360 160 60 260 60 360 60
10045   63 163 263 363   -  - 263 63   -  -
10046   66 166 266 366 166 66 266 66   -  -
10047   69 169 269 369   -  - 269 69   -  -
10048   72 172 272 372 172 72 272 72   -  -
10049   75 175 275 375   -  - 275 75 375 75
10050   78 178 278 378 178 78 278 78   -  -
10051   81 181 281 381   -  - 281 81   -  -
10052   84 184 284 384 184 84 284 84   -  -
10053   87 187 287 387   -  - 287 87   -  -
10054   90 190 290 390 190 90 290 90 390 90
10055   93 193 293 393   -  - 293 93   -  -
10056    -   -   -   -   -  -   -  - 300  0
10057    -   -   -   -   -  -   -  - 305  5
10058    -   -   -   -   -  -   -  - 310 10
10059    -   -   -   -   -  -   -  - 320 20
10060    -   -   -   -   -  -   -  - 325 25
10061    -   -   -   -   -  -   -  - 335 35
10062    -   -   -   -   -  -   -  - 340 40
10063    -   -   -   -   -  -   -  - 350 50
10064    -   -   -   -   -  -   -  - 355 55
10065    -   -   -   -   -  -   -  - 365 65
10066    -   -   -   -   -  -   -  - 370 70
10067    -   -   -   -   -  -   -  - 380 80
10068    -   -   -   -   -  -   -  - 385 85
10069    -   -   -   -   -  -   -  - 395 95
10071 do_execsql_test joinD-376 {
10072   SELECT t1.*, t2.*, t3.*, t4.*
10073   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
10074   INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
10075   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
10076   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10077 } {
10078    3 103 203 303   -  - 203  3   -  -
10079    6 106 206 306 106  6 206  6   -  -
10080    9 109 209 309   -  - 209  9   -  -
10081   12 112 212 312 112 12 212 12   -  -
10082   15 115 215 315   -  - 215 15 315 15
10083   18 118 218 318 118 18 218 18   -  -
10084   21 121 221 321   -  - 221 21   -  -
10085   24 124 224 324 124 24 224 24   -  -
10086   27 127 227 327   -  - 227 27   -  -
10087   30 130 230 330 130 30 230 30 330 30
10088   33 133 233 333   -  - 233 33   -  -
10089   36 136 236 336 136 36 236 36   -  -
10090   39 139 239 339   -  - 239 39   -  -
10091   42 142 242 342 142 42 242 42   -  -
10092   45 145 245 345   -  - 245 45 345 45
10093   48 148 248 348 148 48 248 48   -  -
10094   51 151 251 351   -  - 251 51   -  -
10095   54 154 254 354 154 54 254 54   -  -
10096   57 157 257 357   -  - 257 57   -  -
10097   60 160 260 360 160 60 260 60 360 60
10098   63 163 263 363   -  - 263 63   -  -
10099   66 166 266 366 166 66 266 66   -  -
10100   69 169 269 369   -  - 269 69   -  -
10101   72 172 272 372 172 72 272 72   -  -
10102   75 175 275 375   -  - 275 75 375 75
10103   78 178 278 378 178 78 278 78   -  -
10104   81 181 281 381   -  - 281 81   -  -
10105   84 184 284 384 184 84 284 84   -  -
10106   87 187 287 387   -  - 287 87   -  -
10107   90 190 290 390 190 90 290 90 390 90
10108   93 193 293 393   -  - 293 93   -  -
10109    -   -   -   -   -  -   -  - 300  0
10110    -   -   -   -   -  -   -  - 305  5
10111    -   -   -   -   -  -   -  - 310 10
10112    -   -   -   -   -  -   -  - 320 20
10113    -   -   -   -   -  -   -  - 325 25
10114    -   -   -   -   -  -   -  - 335 35
10115    -   -   -   -   -  -   -  - 340 40
10116    -   -   -   -   -  -   -  - 350 50
10117    -   -   -   -   -  -   -  - 355 55
10118    -   -   -   -   -  -   -  - 365 65
10119    -   -   -   -   -  -   -  - 370 70
10120    -   -   -   -   -  -   -  - 380 80
10121    -   -   -   -   -  -   -  - 385 85
10122    -   -   -   -   -  -   -  - 395 95
10124 do_execsql_test joinD-377 {
10125   SELECT t1.*, t2.*, t3.*, t4.*
10126   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
10127   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
10128   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
10129   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10130 } {
10131    5 105 205 305   -  -   -  - 305  5
10132   10 110 210 310 110 10   -  - 310 10
10133   15 115 215 315   -  - 215 15 315 15
10134   20 120 220 320 120 20   -  - 320 20
10135   25 125 225 325   -  -   -  - 325 25
10136   30 130 230 330 130 30 230 30 330 30
10137   35 135 235 335   -  -   -  - 335 35
10138   40 140 240 340 140 40   -  - 340 40
10139   45 145 245 345   -  - 245 45 345 45
10140   50 150 250 350 150 50   -  - 350 50
10141   55 155 255 355   -  -   -  - 355 55
10142   60 160 260 360 160 60 260 60 360 60
10143   65 165 265 365   -  -   -  - 365 65
10144   70 170 270 370 170 70   -  - 370 70
10145   75 175 275 375   -  - 275 75 375 75
10146   80 180 280 380 180 80   -  - 380 80
10147   85 185 285 385   -  -   -  - 385 85
10148   90 190 290 390 190 90 290 90 390 90
10149   95 195 295 395   -  -   -  - 395 95
10151 do_execsql_test joinD-378 {
10152   SELECT t1.*, t2.*, t3.*, t4.*
10153   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
10154   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
10155   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
10156   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10157 } {
10158    5 105 205 305   -  -   -  - 305  5
10159   10 110 210 310 110 10   -  - 310 10
10160   15 115 215 315   -  - 215 15 315 15
10161   20 120 220 320 120 20   -  - 320 20
10162   25 125 225 325   -  -   -  - 325 25
10163   30 130 230 330 130 30 230 30 330 30
10164   35 135 235 335   -  -   -  - 335 35
10165   40 140 240 340 140 40   -  - 340 40
10166   45 145 245 345   -  - 245 45 345 45
10167   50 150 250 350 150 50   -  - 350 50
10168   55 155 255 355   -  -   -  - 355 55
10169   60 160 260 360 160 60 260 60 360 60
10170   65 165 265 365   -  -   -  - 365 65
10171   70 170 270 370 170 70   -  - 370 70
10172   75 175 275 375   -  - 275 75 375 75
10173   80 180 280 380 180 80   -  - 380 80
10174   85 185 285 385   -  -   -  - 385 85
10175   90 190 290 390 190 90 290 90 390 90
10176   95 195 295 395   -  -   -  - 395 95
10178 do_execsql_test joinD-379 {
10179   SELECT t1.*, t2.*, t3.*, t4.*
10180   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
10181   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
10182   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
10183   WHERE t2.x>0
10184   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10185 } {
10186   10 110 210 310 110 10   -  - 310 10
10187   20 120 220 320 120 20   -  - 320 20
10188   30 130 230 330 130 30 230 30 330 30
10189   40 140 240 340 140 40   -  - 340 40
10190   50 150 250 350 150 50   -  - 350 50
10191   60 160 260 360 160 60 260 60 360 60
10192   70 170 270 370 170 70   -  - 370 70
10193   80 180 280 380 180 80   -  - 380 80
10194   90 190 290 390 190 90 290 90 390 90
10196 do_execsql_test joinD-380 {
10197   SELECT t1.*, t2.*, t3.*, t4.*
10198   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
10199   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
10200   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
10201   WHERE (t2.x>0 OR t2.x IS NULL)
10202   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10203 } {
10204    5 105 205 305   -  -   -  - 305  5
10205   10 110 210 310 110 10   -  - 310 10
10206   15 115 215 315   -  - 215 15 315 15
10207   20 120 220 320 120 20   -  - 320 20
10208   25 125 225 325   -  -   -  - 325 25
10209   30 130 230 330 130 30 230 30 330 30
10210   35 135 235 335   -  -   -  - 335 35
10211   40 140 240 340 140 40   -  - 340 40
10212   45 145 245 345   -  - 245 45 345 45
10213   50 150 250 350 150 50   -  - 350 50
10214   55 155 255 355   -  -   -  - 355 55
10215   60 160 260 360 160 60 260 60 360 60
10216   65 165 265 365   -  -   -  - 365 65
10217   70 170 270 370 170 70   -  - 370 70
10218   75 175 275 375   -  - 275 75 375 75
10219   80 180 280 380 180 80   -  - 380 80
10220   85 185 285 385   -  -   -  - 385 85
10221   90 190 290 390 190 90 290 90 390 90
10222   95 195 295 395   -  -   -  - 395 95
10224 do_execsql_test joinD-381 {
10225   SELECT t1.*, t2.*, t3.*, t4.*
10226   FROM t1 LEFT JOIN t2 ON true
10227   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
10228   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
10229   WHERE t1.b=t2.b AND t2.x>0
10230   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10231 } {
10232   10 110 210 310 110 10   -  - 310 10
10233   20 120 220 320 120 20   -  - 320 20
10234   30 130 230 330 130 30 230 30 330 30
10235   40 140 240 340 140 40   -  - 340 40
10236   50 150 250 350 150 50   -  - 350 50
10237   60 160 260 360 160 60 260 60 360 60
10238   70 170 270 370 170 70   -  - 370 70
10239   80 180 280 380 180 80   -  - 380 80
10240   90 190 290 390 190 90 290 90 390 90
10242 do_execsql_test joinD-382 {
10243   SELECT t1.*, t2.*, t3.*, t4.*
10244   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
10245   LEFT JOIN t3 ON t1.c=t3.c
10246   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
10247   WHERE t3.y>0
10248   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10249 } {
10250   15 115 215 315   -  - 215 15 315 15
10251   30 130 230 330 130 30 230 30 330 30
10252   45 145 245 345   -  - 245 45 345 45
10253   60 160 260 360 160 60 260 60 360 60
10254   75 175 275 375   -  - 275 75 375 75
10255   90 190 290 390 190 90 290 90 390 90
10257 do_execsql_test joinD-383 {
10258   SELECT t1.*, t2.*, t3.*, t4.*
10259   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
10260   LEFT JOIN t3 ON t1.c=t3.c
10261   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
10262   WHERE t3.y>0 OR t3.y IS NULL
10263   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10264 } {
10265    5 105 205 305   -  -   -  - 305  5
10266   10 110 210 310 110 10   -  - 310 10
10267   15 115 215 315   -  - 215 15 315 15
10268   20 120 220 320 120 20   -  - 320 20
10269   25 125 225 325   -  -   -  - 325 25
10270   30 130 230 330 130 30 230 30 330 30
10271   35 135 235 335   -  -   -  - 335 35
10272   40 140 240 340 140 40   -  - 340 40
10273   45 145 245 345   -  - 245 45 345 45
10274   50 150 250 350 150 50   -  - 350 50
10275   55 155 255 355   -  -   -  - 355 55
10276   60 160 260 360 160 60 260 60 360 60
10277   65 165 265 365   -  -   -  - 365 65
10278   70 170 270 370 170 70   -  - 370 70
10279   75 175 275 375   -  - 275 75 375 75
10280   80 180 280 380 180 80   -  - 380 80
10281   85 185 285 385   -  -   -  - 385 85
10282   90 190 290 390 190 90 290 90 390 90
10283   95 195 295 395   -  -   -  - 395 95
10285 do_execsql_test joinD-384 {
10286   SELECT t1.*, t2.*, t3.*, t4.*
10287   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
10288   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
10289   INNER JOIN t4 ON t1.d=t4.d
10290   WHERE t4.z>0
10291   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10292 } {
10293    5 105 205 305   -  -   -  - 305  5
10294   10 110 210 310 110 10   -  - 310 10
10295   15 115 215 315   -  - 215 15 315 15
10296   20 120 220 320 120 20   -  - 320 20
10297   25 125 225 325   -  -   -  - 325 25
10298   30 130 230 330 130 30 230 30 330 30
10299   35 135 235 335   -  -   -  - 335 35
10300   40 140 240 340 140 40   -  - 340 40
10301   45 145 245 345   -  - 245 45 345 45
10302   50 150 250 350 150 50   -  - 350 50
10303   55 155 255 355   -  -   -  - 355 55
10304   60 160 260 360 160 60 260 60 360 60
10305   65 165 265 365   -  -   -  - 365 65
10306   70 170 270 370 170 70   -  - 370 70
10307   75 175 275 375   -  - 275 75 375 75
10308   80 180 280 380 180 80   -  - 380 80
10309   85 185 285 385   -  -   -  - 385 85
10310   90 190 290 390 190 90 290 90 390 90
10311   95 195 295 395   -  -   -  - 395 95
10313 do_execsql_test joinD-385 {
10314   SELECT t1.*, t2.*, t3.*, t4.*
10315   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
10316   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
10317   INNER JOIN t4 ON t1.d=t4.d
10318   WHERE t4.z IS NULL OR t4.z>0
10319   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10320 } {
10321    5 105 205 305   -  -   -  - 305  5
10322   10 110 210 310 110 10   -  - 310 10
10323   15 115 215 315   -  - 215 15 315 15
10324   20 120 220 320 120 20   -  - 320 20
10325   25 125 225 325   -  -   -  - 325 25
10326   30 130 230 330 130 30 230 30 330 30
10327   35 135 235 335   -  -   -  - 335 35
10328   40 140 240 340 140 40   -  - 340 40
10329   45 145 245 345   -  - 245 45 345 45
10330   50 150 250 350 150 50   -  - 350 50
10331   55 155 255 355   -  -   -  - 355 55
10332   60 160 260 360 160 60 260 60 360 60
10333   65 165 265 365   -  -   -  - 365 65
10334   70 170 270 370 170 70   -  - 370 70
10335   75 175 275 375   -  - 275 75 375 75
10336   80 180 280 380 180 80   -  - 380 80
10337   85 185 285 385   -  -   -  - 385 85
10338   90 190 290 390 190 90 290 90 390 90
10339   95 195 295 395   -  -   -  - 395 95
10341 do_execsql_test joinD-386 {
10342   SELECT t1.*, t2.*, t3.*, t4.*
10343   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
10344   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
10345   INNER JOIN t4 ON t1.d=t4.d
10346   WHERE t2.x>0 AND t4.z>0
10347   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10348 } {
10349   10 110 210 310 110 10   -  - 310 10
10350   20 120 220 320 120 20   -  - 320 20
10351   30 130 230 330 130 30 230 30 330 30
10352   40 140 240 340 140 40   -  - 340 40
10353   50 150 250 350 150 50   -  - 350 50
10354   60 160 260 360 160 60 260 60 360 60
10355   70 170 270 370 170 70   -  - 370 70
10356   80 180 280 380 180 80   -  - 380 80
10357   90 190 290 390 190 90 290 90 390 90
10359 do_execsql_test joinD-387 {
10360   SELECT t1.*, t2.*, t3.*, t4.*
10361   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
10362   LEFT JOIN t3 ON t1.c=t3.c
10363   INNER JOIN t4 ON t1.d=t4.d
10364   WHERE t4.z>0 AND t3.y>0
10365   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10366 } {
10367   15 115 215 315   -  - 215 15 315 15
10368   30 130 230 330 130 30 230 30 330 30
10369   45 145 245 345   -  - 245 45 345 45
10370   60 160 260 360 160 60 260 60 360 60
10371   75 175 275 375   -  - 275 75 375 75
10372   90 190 290 390 190 90 290 90 390 90
10374 do_execsql_test joinD-388 {
10375   SELECT t1.*, t2.*, t3.*, t4.*
10376   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
10377   LEFT JOIN t3 ON t1.c=t3.c
10378   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
10379   WHERE t2.x>0 AND t3.y>0
10380   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10381 } {
10382   30 130 230 330 130 30 230 30 330 30
10383   60 160 260 360 160 60 260 60 360 60
10384   90 190 290 390 190 90 290 90 390 90
10386 do_execsql_test joinD-389 {
10387   SELECT t1.*, t2.*, t3.*, t4.*
10388   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
10389   LEFT JOIN t3 ON t1.c=t3.c
10390   INNER JOIN t4 ON t1.d=t4.d
10391   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
10392   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10393 } {
10394   30 130 230 330 130 30 230 30 330 30
10395   60 160 260 360 160 60 260 60 360 60
10396   90 190 290 390 190 90 290 90 390 90
10398 do_execsql_test joinD-390 {
10399   SELECT t1.*, t2.*, t3.*, t4.*
10400   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
10401   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
10402   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
10403   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10404 } {
10405    5 105 205 305   -  -   -  - 305  5
10406   10 110 210 310 110 10   -  - 310 10
10407   15 115 215 315   -  - 215 15 315 15
10408   20 120 220 320 120 20   -  - 320 20
10409   25 125 225 325   -  -   -  - 325 25
10410   30 130 230 330 130 30 230 30 330 30
10411   35 135 235 335   -  -   -  - 335 35
10412   40 140 240 340 140 40   -  - 340 40
10413   45 145 245 345   -  - 245 45 345 45
10414   50 150 250 350 150 50   -  - 350 50
10415   55 155 255 355   -  -   -  - 355 55
10416   60 160 260 360 160 60 260 60 360 60
10417   65 165 265 365   -  -   -  - 365 65
10418   70 170 270 370 170 70   -  - 370 70
10419   75 175 275 375   -  - 275 75 375 75
10420   80 180 280 380 180 80   -  - 380 80
10421   85 185 285 385   -  -   -  - 385 85
10422   90 190 290 390 190 90 290 90 390 90
10423   95 195 295 395   -  -   -  - 395 95
10425 do_execsql_test joinD-391 {
10426   SELECT t1.*, t2.*, t3.*, t4.*
10427   FROM t1 LEFT JOIN t2 ON t2.x>0
10428   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
10429   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
10430   WHERE t1.b IS NOT DISTINCT FROM t2.b
10431   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10432 } {
10433   10 110 210 310 110 10   -  - 310 10
10434   20 120 220 320 120 20   -  - 320 20
10435   30 130 230 330 130 30 230 30 330 30
10436   40 140 240 340 140 40   -  - 340 40
10437   50 150 250 350 150 50   -  - 350 50
10438   60 160 260 360 160 60 260 60 360 60
10439   70 170 270 370 170 70   -  - 370 70
10440   80 180 280 380 180 80   -  - 380 80
10441   90 190 290 390 190 90 290 90 390 90
10443 do_execsql_test joinD-392 {
10444   SELECT t1.*, t2.*, t3.*, t4.*
10445   FROM t1 LEFT JOIN t2 ON t2.x>0
10446   LEFT JOIN t3 ON t3.y>0
10447   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
10448   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
10449   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10450 } {
10451   30 130 230 330 130 30 230 30 330 30
10452   60 160 260 360 160 60 260 60 360 60
10453   90 190 290 390 190 90 290 90 390 90
10455 do_execsql_test joinD-393 {
10456   SELECT t1.*, t2.*, t3.*, t4.*
10457   FROM t1 LEFT JOIN t2 ON t2.x>0
10458   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
10459   INNER JOIN t4 ON t4.z>0
10460   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
10461   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10462 } {
10463   10 110 210 310 110 10   -  - 310 10
10464   20 120 220 320 120 20   -  - 320 20
10465   30 130 230 330 130 30 230 30 330 30
10466   40 140 240 340 140 40   -  - 340 40
10467   50 150 250 350 150 50   -  - 350 50
10468   60 160 260 360 160 60 260 60 360 60
10469   70 170 270 370 170 70   -  - 370 70
10470   80 180 280 380 180 80   -  - 380 80
10471   90 190 290 390 190 90 290 90 390 90
10473 do_execsql_test joinD-394 {
10474   SELECT t1.*, t2.*, t3.*, t4.*
10475   FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
10476   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
10477   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
10478   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10479 } {
10480    5 105 205 305   -  -   -  - 305  5
10481   10 110 210 310 110 10   -  - 310 10
10482   15 115 215 315   -  - 215 15 315 15
10483   20 120 220 320 120 20   -  - 320 20
10484   25 125 225 325   -  -   -  - 325 25
10485   30 130 230 330 130 30 230 30 330 30
10486   35 135 235 335   -  -   -  - 335 35
10487   40 140 240 340 140 40   -  - 340 40
10488   45 145 245 345   -  - 245 45 345 45
10489   50 150 250 350 150 50   -  - 350 50
10490   55 155 255 355   -  -   -  - 355 55
10491   60 160 260 360 160 60 260 60 360 60
10492   65 165 265 365   -  -   -  - 365 65
10493   70 170 270 370 170 70   -  - 370 70
10494   75 175 275 375   -  - 275 75 375 75
10495   80 180 280 380 180 80   -  - 380 80
10496   85 185 285 385   -  -   -  - 385 85
10497   90 190 290 390 190 90 290 90 390 90
10498   95 195 295 395   -  -   -  - 395 95
10500 do_execsql_test joinD-395 {
10501   SELECT t1.*, t2.*, t3.*, t4.*
10502   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
10503   LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
10504   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
10505   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10506 } {
10507    5 105 205 305   -  -   -  - 305  5
10508   10 110 210 310 110 10   -  - 310 10
10509   15 115 215 315   -  - 215 15 315 15
10510   20 120 220 320 120 20   -  - 320 20
10511   25 125 225 325   -  -   -  - 325 25
10512   30 130 230 330 130 30 230 30 330 30
10513   35 135 235 335   -  -   -  - 335 35
10514   40 140 240 340 140 40   -  - 340 40
10515   45 145 245 345   -  - 245 45 345 45
10516   50 150 250 350 150 50   -  - 350 50
10517   55 155 255 355   -  -   -  - 355 55
10518   60 160 260 360 160 60 260 60 360 60
10519   65 165 265 365   -  -   -  - 365 65
10520   70 170 270 370 170 70   -  - 370 70
10521   75 175 275 375   -  - 275 75 375 75
10522   80 180 280 380 180 80   -  - 380 80
10523   85 185 285 385   -  -   -  - 385 85
10524   90 190 290 390 190 90 290 90 390 90
10525   95 195 295 395   -  -   -  - 395 95
10527 do_execsql_test joinD-396 {
10528   SELECT t1.*, t2.*, t3.*, t4.*
10529   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
10530   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
10531   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
10532   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10533 } {
10534    0 100 200 300   -  -   -  -   -  -
10535    1 101 201 301   -  -   -  -   -  -
10536    2 102 202 302 102  2   -  -   -  -
10537    3 103 203 303   -  - 203  3   -  -
10538    4 104 204 304 104  4   -  -   -  -
10539    5 105 205 305   -  -   -  - 305  5
10540    6 106 206 306 106  6 206  6   -  -
10541    7 107 207 307   -  -   -  -   -  -
10542    8 108 208 308 108  8   -  -   -  -
10543    9 109 209 309   -  - 209  9   -  -
10544   10 110 210 310 110 10   -  - 310 10
10545   11 111 211 311   -  -   -  -   -  -
10546   12 112 212 312 112 12 212 12   -  -
10547   13 113 213 313   -  -   -  -   -  -
10548   14 114 214 314 114 14   -  -   -  -
10549   15 115 215 315   -  - 215 15 315 15
10550   16 116 216 316 116 16   -  -   -  -
10551   17 117 217 317   -  -   -  -   -  -
10552   18 118 218 318 118 18 218 18   -  -
10553   19 119 219 319   -  -   -  -   -  -
10554   20 120 220 320 120 20   -  - 320 20
10555   21 121 221 321   -  - 221 21   -  -
10556   22 122 222 322 122 22   -  -   -  -
10557   23 123 223 323   -  -   -  -   -  -
10558   24 124 224 324 124 24 224 24   -  -
10559   25 125 225 325   -  -   -  - 325 25
10560   26 126 226 326 126 26   -  -   -  -
10561   27 127 227 327   -  - 227 27   -  -
10562   28 128 228 328 128 28   -  -   -  -
10563   29 129 229 329   -  -   -  -   -  -
10564   30 130 230 330 130 30 230 30 330 30
10565   31 131 231 331   -  -   -  -   -  -
10566   32 132 232 332 132 32   -  -   -  -
10567   33 133 233 333   -  - 233 33   -  -
10568   34 134 234 334 134 34   -  -   -  -
10569   35 135 235 335   -  -   -  - 335 35
10570   36 136 236 336 136 36 236 36   -  -
10571   37 137 237 337   -  -   -  -   -  -
10572   38 138 238 338 138 38   -  -   -  -
10573   39 139 239 339   -  - 239 39   -  -
10574   40 140 240 340 140 40   -  - 340 40
10575   41 141 241 341   -  -   -  -   -  -
10576   42 142 242 342 142 42 242 42   -  -
10577   43 143 243 343   -  -   -  -   -  -
10578   44 144 244 344 144 44   -  -   -  -
10579   45 145 245 345   -  - 245 45 345 45
10580   46 146 246 346 146 46   -  -   -  -
10581   47 147 247 347   -  -   -  -   -  -
10582   48 148 248 348 148 48 248 48   -  -
10583   49 149 249 349   -  -   -  -   -  -
10584   50 150 250 350 150 50   -  - 350 50
10585   51 151 251 351   -  - 251 51   -  -
10586   52 152 252 352 152 52   -  -   -  -
10587   53 153 253 353   -  -   -  -   -  -
10588   54 154 254 354 154 54 254 54   -  -
10589   55 155 255 355   -  -   -  - 355 55
10590   56 156 256 356 156 56   -  -   -  -
10591   57 157 257 357   -  - 257 57   -  -
10592   58 158 258 358 158 58   -  -   -  -
10593   59 159 259 359   -  -   -  -   -  -
10594   60 160 260 360 160 60 260 60 360 60
10595   61 161 261 361   -  -   -  -   -  -
10596   62 162 262 362 162 62   -  -   -  -
10597   63 163 263 363   -  - 263 63   -  -
10598   64 164 264 364 164 64   -  -   -  -
10599   65 165 265 365   -  -   -  - 365 65
10600   66 166 266 366 166 66 266 66   -  -
10601   67 167 267 367   -  -   -  -   -  -
10602   68 168 268 368 168 68   -  -   -  -
10603   69 169 269 369   -  - 269 69   -  -
10604   70 170 270 370 170 70   -  - 370 70
10605   71 171 271 371   -  -   -  -   -  -
10606   72 172 272 372 172 72 272 72   -  -
10607   73 173 273 373   -  -   -  -   -  -
10608   74 174 274 374 174 74   -  -   -  -
10609   75 175 275 375   -  - 275 75 375 75
10610   76 176 276 376 176 76   -  -   -  -
10611   77 177 277 377   -  -   -  -   -  -
10612   78 178 278 378 178 78 278 78   -  -
10613   79 179 279 379   -  -   -  -   -  -
10614   80 180 280 380 180 80   -  - 380 80
10615   81 181 281 381   -  - 281 81   -  -
10616   82 182 282 382 182 82   -  -   -  -
10617   83 183 283 383   -  -   -  -   -  -
10618   84 184 284 384 184 84 284 84   -  -
10619   85 185 285 385   -  -   -  - 385 85
10620   86 186 286 386 186 86   -  -   -  -
10621   87 187 287 387   -  - 287 87   -  -
10622   88 188 288 388 188 88   -  -   -  -
10623   89 189 289 389   -  -   -  -   -  -
10624   90 190 290 390 190 90 290 90 390 90
10625   91 191 291 391   -  -   -  -   -  -
10626   92 192 292 392 192 92   -  -   -  -
10627   93 193 293 393   -  - 293 93   -  -
10628   94 194 294 394 194 94   -  -   -  -
10629   95 195 295 395   -  -   -  - 395 95
10630   96   - 296 396   -  -   -  -   -  -
10631   97 197   - 397   -  -   -  -   -  -
10632   98 198 298   -   -  -   -  -   -  -
10633   99   -   -   -   -  -   -  -   -  -
10635 do_execsql_test joinD-397 {
10636   SELECT t1.*, t2.*, t3.*, t4.*
10637   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
10638   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
10639   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
10640   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10641 } {
10642    0 100 200 300   -  -   -  -   -  -
10643    1 101 201 301   -  -   -  -   -  -
10644    2 102 202 302 102  2   -  -   -  -
10645    3 103 203 303   -  - 203  3   -  -
10646    4 104 204 304 104  4   -  -   -  -
10647    5 105 205 305   -  -   -  - 305  5
10648    6 106 206 306 106  6 206  6   -  -
10649    7 107 207 307   -  -   -  -   -  -
10650    8 108 208 308 108  8   -  -   -  -
10651    9 109 209 309   -  - 209  9   -  -
10652   10 110 210 310 110 10   -  - 310 10
10653   11 111 211 311   -  -   -  -   -  -
10654   12 112 212 312 112 12 212 12   -  -
10655   13 113 213 313   -  -   -  -   -  -
10656   14 114 214 314 114 14   -  -   -  -
10657   15 115 215 315   -  - 215 15 315 15
10658   16 116 216 316 116 16   -  -   -  -
10659   17 117 217 317   -  -   -  -   -  -
10660   18 118 218 318 118 18 218 18   -  -
10661   19 119 219 319   -  -   -  -   -  -
10662   20 120 220 320 120 20   -  - 320 20
10663   21 121 221 321   -  - 221 21   -  -
10664   22 122 222 322 122 22   -  -   -  -
10665   23 123 223 323   -  -   -  -   -  -
10666   24 124 224 324 124 24 224 24   -  -
10667   25 125 225 325   -  -   -  - 325 25
10668   26 126 226 326 126 26   -  -   -  -
10669   27 127 227 327   -  - 227 27   -  -
10670   28 128 228 328 128 28   -  -   -  -
10671   29 129 229 329   -  -   -  -   -  -
10672   30 130 230 330 130 30 230 30 330 30
10673   31 131 231 331   -  -   -  -   -  -
10674   32 132 232 332 132 32   -  -   -  -
10675   33 133 233 333   -  - 233 33   -  -
10676   34 134 234 334 134 34   -  -   -  -
10677   35 135 235 335   -  -   -  - 335 35
10678   36 136 236 336 136 36 236 36   -  -
10679   37 137 237 337   -  -   -  -   -  -
10680   38 138 238 338 138 38   -  -   -  -
10681   39 139 239 339   -  - 239 39   -  -
10682   40 140 240 340 140 40   -  - 340 40
10683   41 141 241 341   -  -   -  -   -  -
10684   42 142 242 342 142 42 242 42   -  -
10685   43 143 243 343   -  -   -  -   -  -
10686   44 144 244 344 144 44   -  -   -  -
10687   45 145 245 345   -  - 245 45 345 45
10688   46 146 246 346 146 46   -  -   -  -
10689   47 147 247 347   -  -   -  -   -  -
10690   48 148 248 348 148 48 248 48   -  -
10691   49 149 249 349   -  -   -  -   -  -
10692   50 150 250 350 150 50   -  - 350 50
10693   51 151 251 351   -  - 251 51   -  -
10694   52 152 252 352 152 52   -  -   -  -
10695   53 153 253 353   -  -   -  -   -  -
10696   54 154 254 354 154 54 254 54   -  -
10697   55 155 255 355   -  -   -  - 355 55
10698   56 156 256 356 156 56   -  -   -  -
10699   57 157 257 357   -  - 257 57   -  -
10700   58 158 258 358 158 58   -  -   -  -
10701   59 159 259 359   -  -   -  -   -  -
10702   60 160 260 360 160 60 260 60 360 60
10703   61 161 261 361   -  -   -  -   -  -
10704   62 162 262 362 162 62   -  -   -  -
10705   63 163 263 363   -  - 263 63   -  -
10706   64 164 264 364 164 64   -  -   -  -
10707   65 165 265 365   -  -   -  - 365 65
10708   66 166 266 366 166 66 266 66   -  -
10709   67 167 267 367   -  -   -  -   -  -
10710   68 168 268 368 168 68   -  -   -  -
10711   69 169 269 369   -  - 269 69   -  -
10712   70 170 270 370 170 70   -  - 370 70
10713   71 171 271 371   -  -   -  -   -  -
10714   72 172 272 372 172 72 272 72   -  -
10715   73 173 273 373   -  -   -  -   -  -
10716   74 174 274 374 174 74   -  -   -  -
10717   75 175 275 375   -  - 275 75 375 75
10718   76 176 276 376 176 76   -  -   -  -
10719   77 177 277 377   -  -   -  -   -  -
10720   78 178 278 378 178 78 278 78   -  -
10721   79 179 279 379   -  -   -  -   -  -
10722   80 180 280 380 180 80   -  - 380 80
10723   81 181 281 381   -  - 281 81   -  -
10724   82 182 282 382 182 82   -  -   -  -
10725   83 183 283 383   -  -   -  -   -  -
10726   84 184 284 384 184 84 284 84   -  -
10727   85 185 285 385   -  -   -  - 385 85
10728   86 186 286 386 186 86   -  -   -  -
10729   87 187 287 387   -  - 287 87   -  -
10730   88 188 288 388 188 88   -  -   -  -
10731   89 189 289 389   -  -   -  -   -  -
10732   90 190 290 390 190 90 290 90 390 90
10733   91 191 291 391   -  -   -  -   -  -
10734   92 192 292 392 192 92   -  -   -  -
10735   93 193 293 393   -  - 293 93   -  -
10736   94 194 294 394 194 94   -  -   -  -
10737   95 195 295 395   -  -   -  - 395 95
10738   96   - 296 396   -  -   -  -   -  -
10739   97 197   - 397   -  -   -  -   -  -
10740   98 198 298   -   -  -   -  -   -  -
10741   99   -   -   -   -  -   -  -   -  -
10743 do_execsql_test joinD-398 {
10744   SELECT t1.*, t2.*, t3.*, t4.*
10745   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
10746   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
10747   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
10748   WHERE t2.x>0
10749   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10750 } {
10751    2 102 202 302 102  2   -  -   -  -
10752    4 104 204 304 104  4   -  -   -  -
10753    6 106 206 306 106  6 206  6   -  -
10754    8 108 208 308 108  8   -  -   -  -
10755   10 110 210 310 110 10   -  - 310 10
10756   12 112 212 312 112 12 212 12   -  -
10757   14 114 214 314 114 14   -  -   -  -
10758   16 116 216 316 116 16   -  -   -  -
10759   18 118 218 318 118 18 218 18   -  -
10760   20 120 220 320 120 20   -  - 320 20
10761   22 122 222 322 122 22   -  -   -  -
10762   24 124 224 324 124 24 224 24   -  -
10763   26 126 226 326 126 26   -  -   -  -
10764   28 128 228 328 128 28   -  -   -  -
10765   30 130 230 330 130 30 230 30 330 30
10766   32 132 232 332 132 32   -  -   -  -
10767   34 134 234 334 134 34   -  -   -  -
10768   36 136 236 336 136 36 236 36   -  -
10769   38 138 238 338 138 38   -  -   -  -
10770   40 140 240 340 140 40   -  - 340 40
10771   42 142 242 342 142 42 242 42   -  -
10772   44 144 244 344 144 44   -  -   -  -
10773   46 146 246 346 146 46   -  -   -  -
10774   48 148 248 348 148 48 248 48   -  -
10775   50 150 250 350 150 50   -  - 350 50
10776   52 152 252 352 152 52   -  -   -  -
10777   54 154 254 354 154 54 254 54   -  -
10778   56 156 256 356 156 56   -  -   -  -
10779   58 158 258 358 158 58   -  -   -  -
10780   60 160 260 360 160 60 260 60 360 60
10781   62 162 262 362 162 62   -  -   -  -
10782   64 164 264 364 164 64   -  -   -  -
10783   66 166 266 366 166 66 266 66   -  -
10784   68 168 268 368 168 68   -  -   -  -
10785   70 170 270 370 170 70   -  - 370 70
10786   72 172 272 372 172 72 272 72   -  -
10787   74 174 274 374 174 74   -  -   -  -
10788   76 176 276 376 176 76   -  -   -  -
10789   78 178 278 378 178 78 278 78   -  -
10790   80 180 280 380 180 80   -  - 380 80
10791   82 182 282 382 182 82   -  -   -  -
10792   84 184 284 384 184 84 284 84   -  -
10793   86 186 286 386 186 86   -  -   -  -
10794   88 188 288 388 188 88   -  -   -  -
10795   90 190 290 390 190 90 290 90 390 90
10796   92 192 292 392 192 92   -  -   -  -
10797   94 194 294 394 194 94   -  -   -  -
10799 do_execsql_test joinD-399 {
10800   SELECT t1.*, t2.*, t3.*, t4.*
10801   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
10802   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
10803   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
10804   WHERE (t2.x>0 OR t2.x IS NULL)
10805   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10806 } {
10807    1 101 201 301   -  -   -  -   -  -
10808    2 102 202 302 102  2   -  -   -  -
10809    3 103 203 303   -  - 203  3   -  -
10810    4 104 204 304 104  4   -  -   -  -
10811    5 105 205 305   -  -   -  - 305  5
10812    6 106 206 306 106  6 206  6   -  -
10813    7 107 207 307   -  -   -  -   -  -
10814    8 108 208 308 108  8   -  -   -  -
10815    9 109 209 309   -  - 209  9   -  -
10816   10 110 210 310 110 10   -  - 310 10
10817   11 111 211 311   -  -   -  -   -  -
10818   12 112 212 312 112 12 212 12   -  -
10819   13 113 213 313   -  -   -  -   -  -
10820   14 114 214 314 114 14   -  -   -  -
10821   15 115 215 315   -  - 215 15 315 15
10822   16 116 216 316 116 16   -  -   -  -
10823   17 117 217 317   -  -   -  -   -  -
10824   18 118 218 318 118 18 218 18   -  -
10825   19 119 219 319   -  -   -  -   -  -
10826   20 120 220 320 120 20   -  - 320 20
10827   21 121 221 321   -  - 221 21   -  -
10828   22 122 222 322 122 22   -  -   -  -
10829   23 123 223 323   -  -   -  -   -  -
10830   24 124 224 324 124 24 224 24   -  -
10831   25 125 225 325   -  -   -  - 325 25
10832   26 126 226 326 126 26   -  -   -  -
10833   27 127 227 327   -  - 227 27   -  -
10834   28 128 228 328 128 28   -  -   -  -
10835   29 129 229 329   -  -   -  -   -  -
10836   30 130 230 330 130 30 230 30 330 30
10837   31 131 231 331   -  -   -  -   -  -
10838   32 132 232 332 132 32   -  -   -  -
10839   33 133 233 333   -  - 233 33   -  -
10840   34 134 234 334 134 34   -  -   -  -
10841   35 135 235 335   -  -   -  - 335 35
10842   36 136 236 336 136 36 236 36   -  -
10843   37 137 237 337   -  -   -  -   -  -
10844   38 138 238 338 138 38   -  -   -  -
10845   39 139 239 339   -  - 239 39   -  -
10846   40 140 240 340 140 40   -  - 340 40
10847   41 141 241 341   -  -   -  -   -  -
10848   42 142 242 342 142 42 242 42   -  -
10849   43 143 243 343   -  -   -  -   -  -
10850   44 144 244 344 144 44   -  -   -  -
10851   45 145 245 345   -  - 245 45 345 45
10852   46 146 246 346 146 46   -  -   -  -
10853   47 147 247 347   -  -   -  -   -  -
10854   48 148 248 348 148 48 248 48   -  -
10855   49 149 249 349   -  -   -  -   -  -
10856   50 150 250 350 150 50   -  - 350 50
10857   51 151 251 351   -  - 251 51   -  -
10858   52 152 252 352 152 52   -  -   -  -
10859   53 153 253 353   -  -   -  -   -  -
10860   54 154 254 354 154 54 254 54   -  -
10861   55 155 255 355   -  -   -  - 355 55
10862   56 156 256 356 156 56   -  -   -  -
10863   57 157 257 357   -  - 257 57   -  -
10864   58 158 258 358 158 58   -  -   -  -
10865   59 159 259 359   -  -   -  -   -  -
10866   60 160 260 360 160 60 260 60 360 60
10867   61 161 261 361   -  -   -  -   -  -
10868   62 162 262 362 162 62   -  -   -  -
10869   63 163 263 363   -  - 263 63   -  -
10870   64 164 264 364 164 64   -  -   -  -
10871   65 165 265 365   -  -   -  - 365 65
10872   66 166 266 366 166 66 266 66   -  -
10873   67 167 267 367   -  -   -  -   -  -
10874   68 168 268 368 168 68   -  -   -  -
10875   69 169 269 369   -  - 269 69   -  -
10876   70 170 270 370 170 70   -  - 370 70
10877   71 171 271 371   -  -   -  -   -  -
10878   72 172 272 372 172 72 272 72   -  -
10879   73 173 273 373   -  -   -  -   -  -
10880   74 174 274 374 174 74   -  -   -  -
10881   75 175 275 375   -  - 275 75 375 75
10882   76 176 276 376 176 76   -  -   -  -
10883   77 177 277 377   -  -   -  -   -  -
10884   78 178 278 378 178 78 278 78   -  -
10885   79 179 279 379   -  -   -  -   -  -
10886   80 180 280 380 180 80   -  - 380 80
10887   81 181 281 381   -  - 281 81   -  -
10888   82 182 282 382 182 82   -  -   -  -
10889   83 183 283 383   -  -   -  -   -  -
10890   84 184 284 384 184 84 284 84   -  -
10891   85 185 285 385   -  -   -  - 385 85
10892   86 186 286 386 186 86   -  -   -  -
10893   87 187 287 387   -  - 287 87   -  -
10894   88 188 288 388 188 88   -  -   -  -
10895   89 189 289 389   -  -   -  -   -  -
10896   90 190 290 390 190 90 290 90 390 90
10897   91 191 291 391   -  -   -  -   -  -
10898   92 192 292 392 192 92   -  -   -  -
10899   93 193 293 393   -  - 293 93   -  -
10900   94 194 294 394 194 94   -  -   -  -
10901   95 195 295 395   -  -   -  - 395 95
10902   96   - 296 396   -  -   -  -   -  -
10903   97 197   - 397   -  -   -  -   -  -
10904   98 198 298   -   -  -   -  -   -  -
10905   99   -   -   -   -  -   -  -   -  -
10907 do_execsql_test joinD-400 {
10908   SELECT t1.*, t2.*, t3.*, t4.*
10909   FROM t1 LEFT JOIN t2 ON true
10910   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
10911   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
10912   WHERE t1.b=t2.b AND t2.x>0
10913   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10914 } {
10915    2 102 202 302 102  2   -  -   -  -
10916    4 104 204 304 104  4   -  -   -  -
10917    6 106 206 306 106  6 206  6   -  -
10918    8 108 208 308 108  8   -  -   -  -
10919   10 110 210 310 110 10   -  - 310 10
10920   12 112 212 312 112 12 212 12   -  -
10921   14 114 214 314 114 14   -  -   -  -
10922   16 116 216 316 116 16   -  -   -  -
10923   18 118 218 318 118 18 218 18   -  -
10924   20 120 220 320 120 20   -  - 320 20
10925   22 122 222 322 122 22   -  -   -  -
10926   24 124 224 324 124 24 224 24   -  -
10927   26 126 226 326 126 26   -  -   -  -
10928   28 128 228 328 128 28   -  -   -  -
10929   30 130 230 330 130 30 230 30 330 30
10930   32 132 232 332 132 32   -  -   -  -
10931   34 134 234 334 134 34   -  -   -  -
10932   36 136 236 336 136 36 236 36   -  -
10933   38 138 238 338 138 38   -  -   -  -
10934   40 140 240 340 140 40   -  - 340 40
10935   42 142 242 342 142 42 242 42   -  -
10936   44 144 244 344 144 44   -  -   -  -
10937   46 146 246 346 146 46   -  -   -  -
10938   48 148 248 348 148 48 248 48   -  -
10939   50 150 250 350 150 50   -  - 350 50
10940   52 152 252 352 152 52   -  -   -  -
10941   54 154 254 354 154 54 254 54   -  -
10942   56 156 256 356 156 56   -  -   -  -
10943   58 158 258 358 158 58   -  -   -  -
10944   60 160 260 360 160 60 260 60 360 60
10945   62 162 262 362 162 62   -  -   -  -
10946   64 164 264 364 164 64   -  -   -  -
10947   66 166 266 366 166 66 266 66   -  -
10948   68 168 268 368 168 68   -  -   -  -
10949   70 170 270 370 170 70   -  - 370 70
10950   72 172 272 372 172 72 272 72   -  -
10951   74 174 274 374 174 74   -  -   -  -
10952   76 176 276 376 176 76   -  -   -  -
10953   78 178 278 378 178 78 278 78   -  -
10954   80 180 280 380 180 80   -  - 380 80
10955   82 182 282 382 182 82   -  -   -  -
10956   84 184 284 384 184 84 284 84   -  -
10957   86 186 286 386 186 86   -  -   -  -
10958   88 188 288 388 188 88   -  -   -  -
10959   90 190 290 390 190 90 290 90 390 90
10960   92 192 292 392 192 92   -  -   -  -
10961   94 194 294 394 194 94   -  -   -  -
10963 do_execsql_test joinD-401 {
10964   SELECT t1.*, t2.*, t3.*, t4.*
10965   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
10966   LEFT JOIN t3 ON t1.c=t3.c
10967   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
10968   WHERE t3.y>0
10969   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
10970 } {
10971    3 103 203 303   -  - 203  3   -  -
10972    6 106 206 306 106  6 206  6   -  -
10973    9 109 209 309   -  - 209  9   -  -
10974   12 112 212 312 112 12 212 12   -  -
10975   15 115 215 315   -  - 215 15 315 15
10976   18 118 218 318 118 18 218 18   -  -
10977   21 121 221 321   -  - 221 21   -  -
10978   24 124 224 324 124 24 224 24   -  -
10979   27 127 227 327   -  - 227 27   -  -
10980   30 130 230 330 130 30 230 30 330 30
10981   33 133 233 333   -  - 233 33   -  -
10982   36 136 236 336 136 36 236 36   -  -
10983   39 139 239 339   -  - 239 39   -  -
10984   42 142 242 342 142 42 242 42   -  -
10985   45 145 245 345   -  - 245 45 345 45
10986   48 148 248 348 148 48 248 48   -  -
10987   51 151 251 351   -  - 251 51   -  -
10988   54 154 254 354 154 54 254 54   -  -
10989   57 157 257 357   -  - 257 57   -  -
10990   60 160 260 360 160 60 260 60 360 60
10991   63 163 263 363   -  - 263 63   -  -
10992   66 166 266 366 166 66 266 66   -  -
10993   69 169 269 369   -  - 269 69   -  -
10994   72 172 272 372 172 72 272 72   -  -
10995   75 175 275 375   -  - 275 75 375 75
10996   78 178 278 378 178 78 278 78   -  -
10997   81 181 281 381   -  - 281 81   -  -
10998   84 184 284 384 184 84 284 84   -  -
10999   87 187 287 387   -  - 287 87   -  -
11000   90 190 290 390 190 90 290 90 390 90
11001   93 193 293 393   -  - 293 93   -  -
11003 do_execsql_test joinD-402 {
11004   SELECT t1.*, t2.*, t3.*, t4.*
11005   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
11006   LEFT JOIN t3 ON t1.c=t3.c
11007   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
11008   WHERE t3.y>0 OR t3.y IS NULL
11009   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11010 } {
11011    1 101 201 301   -  -   -  -   -  -
11012    2 102 202 302 102  2   -  -   -  -
11013    3 103 203 303   -  - 203  3   -  -
11014    4 104 204 304 104  4   -  -   -  -
11015    5 105 205 305   -  -   -  - 305  5
11016    6 106 206 306 106  6 206  6   -  -
11017    7 107 207 307   -  -   -  -   -  -
11018    8 108 208 308 108  8   -  -   -  -
11019    9 109 209 309   -  - 209  9   -  -
11020   10 110 210 310 110 10   -  - 310 10
11021   11 111 211 311   -  -   -  -   -  -
11022   12 112 212 312 112 12 212 12   -  -
11023   13 113 213 313   -  -   -  -   -  -
11024   14 114 214 314 114 14   -  -   -  -
11025   15 115 215 315   -  - 215 15 315 15
11026   16 116 216 316 116 16   -  -   -  -
11027   17 117 217 317   -  -   -  -   -  -
11028   18 118 218 318 118 18 218 18   -  -
11029   19 119 219 319   -  -   -  -   -  -
11030   20 120 220 320 120 20   -  - 320 20
11031   21 121 221 321   -  - 221 21   -  -
11032   22 122 222 322 122 22   -  -   -  -
11033   23 123 223 323   -  -   -  -   -  -
11034   24 124 224 324 124 24 224 24   -  -
11035   25 125 225 325   -  -   -  - 325 25
11036   26 126 226 326 126 26   -  -   -  -
11037   27 127 227 327   -  - 227 27   -  -
11038   28 128 228 328 128 28   -  -   -  -
11039   29 129 229 329   -  -   -  -   -  -
11040   30 130 230 330 130 30 230 30 330 30
11041   31 131 231 331   -  -   -  -   -  -
11042   32 132 232 332 132 32   -  -   -  -
11043   33 133 233 333   -  - 233 33   -  -
11044   34 134 234 334 134 34   -  -   -  -
11045   35 135 235 335   -  -   -  - 335 35
11046   36 136 236 336 136 36 236 36   -  -
11047   37 137 237 337   -  -   -  -   -  -
11048   38 138 238 338 138 38   -  -   -  -
11049   39 139 239 339   -  - 239 39   -  -
11050   40 140 240 340 140 40   -  - 340 40
11051   41 141 241 341   -  -   -  -   -  -
11052   42 142 242 342 142 42 242 42   -  -
11053   43 143 243 343   -  -   -  -   -  -
11054   44 144 244 344 144 44   -  -   -  -
11055   45 145 245 345   -  - 245 45 345 45
11056   46 146 246 346 146 46   -  -   -  -
11057   47 147 247 347   -  -   -  -   -  -
11058   48 148 248 348 148 48 248 48   -  -
11059   49 149 249 349   -  -   -  -   -  -
11060   50 150 250 350 150 50   -  - 350 50
11061   51 151 251 351   -  - 251 51   -  -
11062   52 152 252 352 152 52   -  -   -  -
11063   53 153 253 353   -  -   -  -   -  -
11064   54 154 254 354 154 54 254 54   -  -
11065   55 155 255 355   -  -   -  - 355 55
11066   56 156 256 356 156 56   -  -   -  -
11067   57 157 257 357   -  - 257 57   -  -
11068   58 158 258 358 158 58   -  -   -  -
11069   59 159 259 359   -  -   -  -   -  -
11070   60 160 260 360 160 60 260 60 360 60
11071   61 161 261 361   -  -   -  -   -  -
11072   62 162 262 362 162 62   -  -   -  -
11073   63 163 263 363   -  - 263 63   -  -
11074   64 164 264 364 164 64   -  -   -  -
11075   65 165 265 365   -  -   -  - 365 65
11076   66 166 266 366 166 66 266 66   -  -
11077   67 167 267 367   -  -   -  -   -  -
11078   68 168 268 368 168 68   -  -   -  -
11079   69 169 269 369   -  - 269 69   -  -
11080   70 170 270 370 170 70   -  - 370 70
11081   71 171 271 371   -  -   -  -   -  -
11082   72 172 272 372 172 72 272 72   -  -
11083   73 173 273 373   -  -   -  -   -  -
11084   74 174 274 374 174 74   -  -   -  -
11085   75 175 275 375   -  - 275 75 375 75
11086   76 176 276 376 176 76   -  -   -  -
11087   77 177 277 377   -  -   -  -   -  -
11088   78 178 278 378 178 78 278 78   -  -
11089   79 179 279 379   -  -   -  -   -  -
11090   80 180 280 380 180 80   -  - 380 80
11091   81 181 281 381   -  - 281 81   -  -
11092   82 182 282 382 182 82   -  -   -  -
11093   83 183 283 383   -  -   -  -   -  -
11094   84 184 284 384 184 84 284 84   -  -
11095   85 185 285 385   -  -   -  - 385 85
11096   86 186 286 386 186 86   -  -   -  -
11097   87 187 287 387   -  - 287 87   -  -
11098   88 188 288 388 188 88   -  -   -  -
11099   89 189 289 389   -  -   -  -   -  -
11100   90 190 290 390 190 90 290 90 390 90
11101   91 191 291 391   -  -   -  -   -  -
11102   92 192 292 392 192 92   -  -   -  -
11103   93 193 293 393   -  - 293 93   -  -
11104   94 194 294 394 194 94   -  -   -  -
11105   95 195 295 395   -  -   -  - 395 95
11106   96   - 296 396   -  -   -  -   -  -
11107   97 197   - 397   -  -   -  -   -  -
11108   98 198 298   -   -  -   -  -   -  -
11109   99   -   -   -   -  -   -  -   -  -
11111 do_execsql_test joinD-403 {
11112   SELECT t1.*, t2.*, t3.*, t4.*
11113   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
11114   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
11115   LEFT JOIN t4 ON t1.d=t4.d
11116   WHERE t4.z>0
11117   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11118 } {
11119    5 105 205 305   -  -   -  - 305  5
11120   10 110 210 310 110 10   -  - 310 10
11121   15 115 215 315   -  - 215 15 315 15
11122   20 120 220 320 120 20   -  - 320 20
11123   25 125 225 325   -  -   -  - 325 25
11124   30 130 230 330 130 30 230 30 330 30
11125   35 135 235 335   -  -   -  - 335 35
11126   40 140 240 340 140 40   -  - 340 40
11127   45 145 245 345   -  - 245 45 345 45
11128   50 150 250 350 150 50   -  - 350 50
11129   55 155 255 355   -  -   -  - 355 55
11130   60 160 260 360 160 60 260 60 360 60
11131   65 165 265 365   -  -   -  - 365 65
11132   70 170 270 370 170 70   -  - 370 70
11133   75 175 275 375   -  - 275 75 375 75
11134   80 180 280 380 180 80   -  - 380 80
11135   85 185 285 385   -  -   -  - 385 85
11136   90 190 290 390 190 90 290 90 390 90
11137   95 195 295 395   -  -   -  - 395 95
11139 do_execsql_test joinD-404 {
11140   SELECT t1.*, t2.*, t3.*, t4.*
11141   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
11142   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
11143   LEFT JOIN t4 ON t1.d=t4.d
11144   WHERE t4.z IS NULL OR t4.z>0
11145   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11146 } {
11147    1 101 201 301   -  -   -  -   -  -
11148    2 102 202 302 102  2   -  -   -  -
11149    3 103 203 303   -  - 203  3   -  -
11150    4 104 204 304 104  4   -  -   -  -
11151    5 105 205 305   -  -   -  - 305  5
11152    6 106 206 306 106  6 206  6   -  -
11153    7 107 207 307   -  -   -  -   -  -
11154    8 108 208 308 108  8   -  -   -  -
11155    9 109 209 309   -  - 209  9   -  -
11156   10 110 210 310 110 10   -  - 310 10
11157   11 111 211 311   -  -   -  -   -  -
11158   12 112 212 312 112 12 212 12   -  -
11159   13 113 213 313   -  -   -  -   -  -
11160   14 114 214 314 114 14   -  -   -  -
11161   15 115 215 315   -  - 215 15 315 15
11162   16 116 216 316 116 16   -  -   -  -
11163   17 117 217 317   -  -   -  -   -  -
11164   18 118 218 318 118 18 218 18   -  -
11165   19 119 219 319   -  -   -  -   -  -
11166   20 120 220 320 120 20   -  - 320 20
11167   21 121 221 321   -  - 221 21   -  -
11168   22 122 222 322 122 22   -  -   -  -
11169   23 123 223 323   -  -   -  -   -  -
11170   24 124 224 324 124 24 224 24   -  -
11171   25 125 225 325   -  -   -  - 325 25
11172   26 126 226 326 126 26   -  -   -  -
11173   27 127 227 327   -  - 227 27   -  -
11174   28 128 228 328 128 28   -  -   -  -
11175   29 129 229 329   -  -   -  -   -  -
11176   30 130 230 330 130 30 230 30 330 30
11177   31 131 231 331   -  -   -  -   -  -
11178   32 132 232 332 132 32   -  -   -  -
11179   33 133 233 333   -  - 233 33   -  -
11180   34 134 234 334 134 34   -  -   -  -
11181   35 135 235 335   -  -   -  - 335 35
11182   36 136 236 336 136 36 236 36   -  -
11183   37 137 237 337   -  -   -  -   -  -
11184   38 138 238 338 138 38   -  -   -  -
11185   39 139 239 339   -  - 239 39   -  -
11186   40 140 240 340 140 40   -  - 340 40
11187   41 141 241 341   -  -   -  -   -  -
11188   42 142 242 342 142 42 242 42   -  -
11189   43 143 243 343   -  -   -  -   -  -
11190   44 144 244 344 144 44   -  -   -  -
11191   45 145 245 345   -  - 245 45 345 45
11192   46 146 246 346 146 46   -  -   -  -
11193   47 147 247 347   -  -   -  -   -  -
11194   48 148 248 348 148 48 248 48   -  -
11195   49 149 249 349   -  -   -  -   -  -
11196   50 150 250 350 150 50   -  - 350 50
11197   51 151 251 351   -  - 251 51   -  -
11198   52 152 252 352 152 52   -  -   -  -
11199   53 153 253 353   -  -   -  -   -  -
11200   54 154 254 354 154 54 254 54   -  -
11201   55 155 255 355   -  -   -  - 355 55
11202   56 156 256 356 156 56   -  -   -  -
11203   57 157 257 357   -  - 257 57   -  -
11204   58 158 258 358 158 58   -  -   -  -
11205   59 159 259 359   -  -   -  -   -  -
11206   60 160 260 360 160 60 260 60 360 60
11207   61 161 261 361   -  -   -  -   -  -
11208   62 162 262 362 162 62   -  -   -  -
11209   63 163 263 363   -  - 263 63   -  -
11210   64 164 264 364 164 64   -  -   -  -
11211   65 165 265 365   -  -   -  - 365 65
11212   66 166 266 366 166 66 266 66   -  -
11213   67 167 267 367   -  -   -  -   -  -
11214   68 168 268 368 168 68   -  -   -  -
11215   69 169 269 369   -  - 269 69   -  -
11216   70 170 270 370 170 70   -  - 370 70
11217   71 171 271 371   -  -   -  -   -  -
11218   72 172 272 372 172 72 272 72   -  -
11219   73 173 273 373   -  -   -  -   -  -
11220   74 174 274 374 174 74   -  -   -  -
11221   75 175 275 375   -  - 275 75 375 75
11222   76 176 276 376 176 76   -  -   -  -
11223   77 177 277 377   -  -   -  -   -  -
11224   78 178 278 378 178 78 278 78   -  -
11225   79 179 279 379   -  -   -  -   -  -
11226   80 180 280 380 180 80   -  - 380 80
11227   81 181 281 381   -  - 281 81   -  -
11228   82 182 282 382 182 82   -  -   -  -
11229   83 183 283 383   -  -   -  -   -  -
11230   84 184 284 384 184 84 284 84   -  -
11231   85 185 285 385   -  -   -  - 385 85
11232   86 186 286 386 186 86   -  -   -  -
11233   87 187 287 387   -  - 287 87   -  -
11234   88 188 288 388 188 88   -  -   -  -
11235   89 189 289 389   -  -   -  -   -  -
11236   90 190 290 390 190 90 290 90 390 90
11237   91 191 291 391   -  -   -  -   -  -
11238   92 192 292 392 192 92   -  -   -  -
11239   93 193 293 393   -  - 293 93   -  -
11240   94 194 294 394 194 94   -  -   -  -
11241   95 195 295 395   -  -   -  - 395 95
11242   96   - 296 396   -  -   -  -   -  -
11243   97 197   - 397   -  -   -  -   -  -
11244   98 198 298   -   -  -   -  -   -  -
11245   99   -   -   -   -  -   -  -   -  -
11247 do_execsql_test joinD-405 {
11248   SELECT t1.*, t2.*, t3.*, t4.*
11249   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
11250   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
11251   LEFT JOIN t4 ON t1.d=t4.d
11252   WHERE t2.x>0 AND t4.z>0
11253   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11254 } {
11255   10 110 210 310 110 10   -  - 310 10
11256   20 120 220 320 120 20   -  - 320 20
11257   30 130 230 330 130 30 230 30 330 30
11258   40 140 240 340 140 40   -  - 340 40
11259   50 150 250 350 150 50   -  - 350 50
11260   60 160 260 360 160 60 260 60 360 60
11261   70 170 270 370 170 70   -  - 370 70
11262   80 180 280 380 180 80   -  - 380 80
11263   90 190 290 390 190 90 290 90 390 90
11265 do_execsql_test joinD-406 {
11266   SELECT t1.*, t2.*, t3.*, t4.*
11267   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
11268   LEFT JOIN t3 ON t1.c=t3.c
11269   LEFT JOIN t4 ON t1.d=t4.d
11270   WHERE t4.z>0 AND t3.y>0
11271   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11272 } {
11273   15 115 215 315   -  - 215 15 315 15
11274   30 130 230 330 130 30 230 30 330 30
11275   45 145 245 345   -  - 245 45 345 45
11276   60 160 260 360 160 60 260 60 360 60
11277   75 175 275 375   -  - 275 75 375 75
11278   90 190 290 390 190 90 290 90 390 90
11280 do_execsql_test joinD-407 {
11281   SELECT t1.*, t2.*, t3.*, t4.*
11282   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
11283   LEFT JOIN t3 ON t1.c=t3.c
11284   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
11285   WHERE t2.x>0 AND t3.y>0
11286   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11287 } {
11288    6 106 206 306 106  6 206  6   -  -
11289   12 112 212 312 112 12 212 12   -  -
11290   18 118 218 318 118 18 218 18   -  -
11291   24 124 224 324 124 24 224 24   -  -
11292   30 130 230 330 130 30 230 30 330 30
11293   36 136 236 336 136 36 236 36   -  -
11294   42 142 242 342 142 42 242 42   -  -
11295   48 148 248 348 148 48 248 48   -  -
11296   54 154 254 354 154 54 254 54   -  -
11297   60 160 260 360 160 60 260 60 360 60
11298   66 166 266 366 166 66 266 66   -  -
11299   72 172 272 372 172 72 272 72   -  -
11300   78 178 278 378 178 78 278 78   -  -
11301   84 184 284 384 184 84 284 84   -  -
11302   90 190 290 390 190 90 290 90 390 90
11304 do_execsql_test joinD-408 {
11305   SELECT t1.*, t2.*, t3.*, t4.*
11306   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
11307   LEFT JOIN t3 ON t1.c=t3.c
11308   LEFT JOIN t4 ON t1.d=t4.d
11309   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
11310   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11311 } {
11312   30 130 230 330 130 30 230 30 330 30
11313   60 160 260 360 160 60 260 60 360 60
11314   90 190 290 390 190 90 290 90 390 90
11316 do_execsql_test joinD-409 {
11317   SELECT t1.*, t2.*, t3.*, t4.*
11318   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
11319   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
11320   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
11321   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11322 } {
11323    0 100 200 300   -  -   -  -   -  -
11324    1 101 201 301   -  -   -  -   -  -
11325    2 102 202 302 102  2   -  -   -  -
11326    3 103 203 303   -  - 203  3   -  -
11327    4 104 204 304 104  4   -  -   -  -
11328    5 105 205 305   -  -   -  - 305  5
11329    6 106 206 306 106  6 206  6   -  -
11330    7 107 207 307   -  -   -  -   -  -
11331    8 108 208 308 108  8   -  -   -  -
11332    9 109 209 309   -  - 209  9   -  -
11333   10 110 210 310 110 10   -  - 310 10
11334   11 111 211 311   -  -   -  -   -  -
11335   12 112 212 312 112 12 212 12   -  -
11336   13 113 213 313   -  -   -  -   -  -
11337   14 114 214 314 114 14   -  -   -  -
11338   15 115 215 315   -  - 215 15 315 15
11339   16 116 216 316 116 16   -  -   -  -
11340   17 117 217 317   -  -   -  -   -  -
11341   18 118 218 318 118 18 218 18   -  -
11342   19 119 219 319   -  -   -  -   -  -
11343   20 120 220 320 120 20   -  - 320 20
11344   21 121 221 321   -  - 221 21   -  -
11345   22 122 222 322 122 22   -  -   -  -
11346   23 123 223 323   -  -   -  -   -  -
11347   24 124 224 324 124 24 224 24   -  -
11348   25 125 225 325   -  -   -  - 325 25
11349   26 126 226 326 126 26   -  -   -  -
11350   27 127 227 327   -  - 227 27   -  -
11351   28 128 228 328 128 28   -  -   -  -
11352   29 129 229 329   -  -   -  -   -  -
11353   30 130 230 330 130 30 230 30 330 30
11354   31 131 231 331   -  -   -  -   -  -
11355   32 132 232 332 132 32   -  -   -  -
11356   33 133 233 333   -  - 233 33   -  -
11357   34 134 234 334 134 34   -  -   -  -
11358   35 135 235 335   -  -   -  - 335 35
11359   36 136 236 336 136 36 236 36   -  -
11360   37 137 237 337   -  -   -  -   -  -
11361   38 138 238 338 138 38   -  -   -  -
11362   39 139 239 339   -  - 239 39   -  -
11363   40 140 240 340 140 40   -  - 340 40
11364   41 141 241 341   -  -   -  -   -  -
11365   42 142 242 342 142 42 242 42   -  -
11366   43 143 243 343   -  -   -  -   -  -
11367   44 144 244 344 144 44   -  -   -  -
11368   45 145 245 345   -  - 245 45 345 45
11369   46 146 246 346 146 46   -  -   -  -
11370   47 147 247 347   -  -   -  -   -  -
11371   48 148 248 348 148 48 248 48   -  -
11372   49 149 249 349   -  -   -  -   -  -
11373   50 150 250 350 150 50   -  - 350 50
11374   51 151 251 351   -  - 251 51   -  -
11375   52 152 252 352 152 52   -  -   -  -
11376   53 153 253 353   -  -   -  -   -  -
11377   54 154 254 354 154 54 254 54   -  -
11378   55 155 255 355   -  -   -  - 355 55
11379   56 156 256 356 156 56   -  -   -  -
11380   57 157 257 357   -  - 257 57   -  -
11381   58 158 258 358 158 58   -  -   -  -
11382   59 159 259 359   -  -   -  -   -  -
11383   60 160 260 360 160 60 260 60 360 60
11384   61 161 261 361   -  -   -  -   -  -
11385   62 162 262 362 162 62   -  -   -  -
11386   63 163 263 363   -  - 263 63   -  -
11387   64 164 264 364 164 64   -  -   -  -
11388   65 165 265 365   -  -   -  - 365 65
11389   66 166 266 366 166 66 266 66   -  -
11390   67 167 267 367   -  -   -  -   -  -
11391   68 168 268 368 168 68   -  -   -  -
11392   69 169 269 369   -  - 269 69   -  -
11393   70 170 270 370 170 70   -  - 370 70
11394   71 171 271 371   -  -   -  -   -  -
11395   72 172 272 372 172 72 272 72   -  -
11396   73 173 273 373   -  -   -  -   -  -
11397   74 174 274 374 174 74   -  -   -  -
11398   75 175 275 375   -  - 275 75 375 75
11399   76 176 276 376 176 76   -  -   -  -
11400   77 177 277 377   -  -   -  -   -  -
11401   78 178 278 378 178 78 278 78   -  -
11402   79 179 279 379   -  -   -  -   -  -
11403   80 180 280 380 180 80   -  - 380 80
11404   81 181 281 381   -  - 281 81   -  -
11405   82 182 282 382 182 82   -  -   -  -
11406   83 183 283 383   -  -   -  -   -  -
11407   84 184 284 384 184 84 284 84   -  -
11408   85 185 285 385   -  -   -  - 385 85
11409   86 186 286 386 186 86   -  -   -  -
11410   87 187 287 387   -  - 287 87   -  -
11411   88 188 288 388 188 88   -  -   -  -
11412   89 189 289 389   -  -   -  -   -  -
11413   90 190 290 390 190 90 290 90 390 90
11414   91 191 291 391   -  -   -  -   -  -
11415   92 192 292 392 192 92   -  -   -  -
11416   93 193 293 393   -  - 293 93   -  -
11417   94 194 294 394 194 94   -  -   -  -
11418   95 195 295 395   -  -   -  - 395 95
11419   96   - 296 396   -  -   -  -   -  -
11420   97 197   - 397   -  -   -  -   -  -
11421   98 198 298   -   -  -   -  -   -  -
11422   99   -   -   -   -  -   -  -   -  -
11424 do_execsql_test joinD-410 {
11425   SELECT t1.*, t2.*, t3.*, t4.*
11426   FROM t1 LEFT JOIN t2 ON t2.x>0
11427   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
11428   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
11429   WHERE t1.b IS NOT DISTINCT FROM t2.b
11430   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11431 } {
11432    2 102 202 302 102  2   -  -   -  -
11433    4 104 204 304 104  4   -  -   -  -
11434    6 106 206 306 106  6 206  6   -  -
11435    8 108 208 308 108  8   -  -   -  -
11436   10 110 210 310 110 10   -  - 310 10
11437   12 112 212 312 112 12 212 12   -  -
11438   14 114 214 314 114 14   -  -   -  -
11439   16 116 216 316 116 16   -  -   -  -
11440   18 118 218 318 118 18 218 18   -  -
11441   20 120 220 320 120 20   -  - 320 20
11442   22 122 222 322 122 22   -  -   -  -
11443   24 124 224 324 124 24 224 24   -  -
11444   26 126 226 326 126 26   -  -   -  -
11445   28 128 228 328 128 28   -  -   -  -
11446   30 130 230 330 130 30 230 30 330 30
11447   32 132 232 332 132 32   -  -   -  -
11448   34 134 234 334 134 34   -  -   -  -
11449   36 136 236 336 136 36 236 36   -  -
11450   38 138 238 338 138 38   -  -   -  -
11451   40 140 240 340 140 40   -  - 340 40
11452   42 142 242 342 142 42 242 42   -  -
11453   44 144 244 344 144 44   -  -   -  -
11454   46 146 246 346 146 46   -  -   -  -
11455   48 148 248 348 148 48 248 48   -  -
11456   50 150 250 350 150 50   -  - 350 50
11457   52 152 252 352 152 52   -  -   -  -
11458   54 154 254 354 154 54 254 54   -  -
11459   56 156 256 356 156 56   -  -   -  -
11460   58 158 258 358 158 58   -  -   -  -
11461   60 160 260 360 160 60 260 60 360 60
11462   62 162 262 362 162 62   -  -   -  -
11463   64 164 264 364 164 64   -  -   -  -
11464   66 166 266 366 166 66 266 66   -  -
11465   68 168 268 368 168 68   -  -   -  -
11466   70 170 270 370 170 70   -  - 370 70
11467   72 172 272 372 172 72 272 72   -  -
11468   74 174 274 374 174 74   -  -   -  -
11469   76 176 276 376 176 76   -  -   -  -
11470   78 178 278 378 178 78 278 78   -  -
11471   80 180 280 380 180 80   -  - 380 80
11472   82 182 282 382 182 82   -  -   -  -
11473   84 184 284 384 184 84 284 84   -  -
11474   86 186 286 386 186 86   -  -   -  -
11475   88 188 288 388 188 88   -  -   -  -
11476   90 190 290 390 190 90 290 90 390 90
11477   92 192 292 392 192 92   -  -   -  -
11478   94 194 294 394 194 94   -  -   -  -
11480 do_execsql_test joinD-411 {
11481   SELECT t1.*, t2.*, t3.*, t4.*
11482   FROM t1 LEFT JOIN t2 ON t2.x>0
11483   LEFT JOIN t3 ON t3.y>0
11484   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
11485   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
11486   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11487 } {
11488    6 106 206 306 106  6 206  6   -  -
11489   12 112 212 312 112 12 212 12   -  -
11490   18 118 218 318 118 18 218 18   -  -
11491   24 124 224 324 124 24 224 24   -  -
11492   30 130 230 330 130 30 230 30 330 30
11493   36 136 236 336 136 36 236 36   -  -
11494   42 142 242 342 142 42 242 42   -  -
11495   48 148 248 348 148 48 248 48   -  -
11496   54 154 254 354 154 54 254 54   -  -
11497   60 160 260 360 160 60 260 60 360 60
11498   66 166 266 366 166 66 266 66   -  -
11499   72 172 272 372 172 72 272 72   -  -
11500   78 178 278 378 178 78 278 78   -  -
11501   84 184 284 384 184 84 284 84   -  -
11502   90 190 290 390 190 90 290 90 390 90
11504 do_execsql_test joinD-412 {
11505   SELECT t1.*, t2.*, t3.*, t4.*
11506   FROM t1 LEFT JOIN t2 ON t2.x>0
11507   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
11508   LEFT JOIN t4 ON t4.z>0
11509   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
11510   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11511 } {
11512   10 110 210 310 110 10   -  - 310 10
11513   20 120 220 320 120 20   -  - 320 20
11514   30 130 230 330 130 30 230 30 330 30
11515   40 140 240 340 140 40   -  - 340 40
11516   50 150 250 350 150 50   -  - 350 50
11517   60 160 260 360 160 60 260 60 360 60
11518   70 170 270 370 170 70   -  - 370 70
11519   80 180 280 380 180 80   -  - 380 80
11520   90 190 290 390 190 90 290 90 390 90
11522 do_execsql_test joinD-413 {
11523   SELECT t1.*, t2.*, t3.*, t4.*
11524   FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
11525   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
11526   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
11527   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11528 } {
11529    0 100 200 300   -  -   -  -   -  -
11530    1 101 201 301   -  -   -  -   -  -
11531    2 102 202 302 102  2   -  -   -  -
11532    3 103 203 303   -  - 203  3   -  -
11533    4 104 204 304 104  4   -  -   -  -
11534    5 105 205 305   -  -   -  - 305  5
11535    6 106 206 306 106  6 206  6   -  -
11536    7 107 207 307   -  -   -  -   -  -
11537    8 108 208 308 108  8   -  -   -  -
11538    9 109 209 309   -  - 209  9   -  -
11539   10 110 210 310 110 10   -  - 310 10
11540   11 111 211 311   -  -   -  -   -  -
11541   12 112 212 312 112 12 212 12   -  -
11542   13 113 213 313   -  -   -  -   -  -
11543   14 114 214 314 114 14   -  -   -  -
11544   15 115 215 315   -  - 215 15 315 15
11545   16 116 216 316 116 16   -  -   -  -
11546   17 117 217 317   -  -   -  -   -  -
11547   18 118 218 318 118 18 218 18   -  -
11548   19 119 219 319   -  -   -  -   -  -
11549   20 120 220 320 120 20   -  - 320 20
11550   21 121 221 321   -  - 221 21   -  -
11551   22 122 222 322 122 22   -  -   -  -
11552   23 123 223 323   -  -   -  -   -  -
11553   24 124 224 324 124 24 224 24   -  -
11554   25 125 225 325   -  -   -  - 325 25
11555   26 126 226 326 126 26   -  -   -  -
11556   27 127 227 327   -  - 227 27   -  -
11557   28 128 228 328 128 28   -  -   -  -
11558   29 129 229 329   -  -   -  -   -  -
11559   30 130 230 330 130 30 230 30 330 30
11560   31 131 231 331   -  -   -  -   -  -
11561   32 132 232 332 132 32   -  -   -  -
11562   33 133 233 333   -  - 233 33   -  -
11563   34 134 234 334 134 34   -  -   -  -
11564   35 135 235 335   -  -   -  - 335 35
11565   36 136 236 336 136 36 236 36   -  -
11566   37 137 237 337   -  -   -  -   -  -
11567   38 138 238 338 138 38   -  -   -  -
11568   39 139 239 339   -  - 239 39   -  -
11569   40 140 240 340 140 40   -  - 340 40
11570   41 141 241 341   -  -   -  -   -  -
11571   42 142 242 342 142 42 242 42   -  -
11572   43 143 243 343   -  -   -  -   -  -
11573   44 144 244 344 144 44   -  -   -  -
11574   45 145 245 345   -  - 245 45 345 45
11575   46 146 246 346 146 46   -  -   -  -
11576   47 147 247 347   -  -   -  -   -  -
11577   48 148 248 348 148 48 248 48   -  -
11578   49 149 249 349   -  -   -  -   -  -
11579   50 150 250 350 150 50   -  - 350 50
11580   51 151 251 351   -  - 251 51   -  -
11581   52 152 252 352 152 52   -  -   -  -
11582   53 153 253 353   -  -   -  -   -  -
11583   54 154 254 354 154 54 254 54   -  -
11584   55 155 255 355   -  -   -  - 355 55
11585   56 156 256 356 156 56   -  -   -  -
11586   57 157 257 357   -  - 257 57   -  -
11587   58 158 258 358 158 58   -  -   -  -
11588   59 159 259 359   -  -   -  -   -  -
11589   60 160 260 360 160 60 260 60 360 60
11590   61 161 261 361   -  -   -  -   -  -
11591   62 162 262 362 162 62   -  -   -  -
11592   63 163 263 363   -  - 263 63   -  -
11593   64 164 264 364 164 64   -  -   -  -
11594   65 165 265 365   -  -   -  - 365 65
11595   66 166 266 366 166 66 266 66   -  -
11596   67 167 267 367   -  -   -  -   -  -
11597   68 168 268 368 168 68   -  -   -  -
11598   69 169 269 369   -  - 269 69   -  -
11599   70 170 270 370 170 70   -  - 370 70
11600   71 171 271 371   -  -   -  -   -  -
11601   72 172 272 372 172 72 272 72   -  -
11602   73 173 273 373   -  -   -  -   -  -
11603   74 174 274 374 174 74   -  -   -  -
11604   75 175 275 375   -  - 275 75 375 75
11605   76 176 276 376 176 76   -  -   -  -
11606   77 177 277 377   -  -   -  -   -  -
11607   78 178 278 378 178 78 278 78   -  -
11608   79 179 279 379   -  -   -  -   -  -
11609   80 180 280 380 180 80   -  - 380 80
11610   81 181 281 381   -  - 281 81   -  -
11611   82 182 282 382 182 82   -  -   -  -
11612   83 183 283 383   -  -   -  -   -  -
11613   84 184 284 384 184 84 284 84   -  -
11614   85 185 285 385   -  -   -  - 385 85
11615   86 186 286 386 186 86   -  -   -  -
11616   87 187 287 387   -  - 287 87   -  -
11617   88 188 288 388 188 88   -  -   -  -
11618   89 189 289 389   -  -   -  -   -  -
11619   90 190 290 390 190 90 290 90 390 90
11620   91 191 291 391   -  -   -  -   -  -
11621   92 192 292 392 192 92   -  -   -  -
11622   93 193 293 393   -  - 293 93   -  -
11623   94 194 294 394 194 94   -  -   -  -
11624   95 195 295 395   -  -   -  - 395 95
11625   96   - 296 396   -  -   -  -   -  -
11626   97 197   - 397   -  -   -  -   -  -
11627   98 198 298   -   -  -   -  -   -  -
11628   99   -   -   -   -  -   -  -   -  -
11630 do_execsql_test joinD-414 {
11631   SELECT t1.*, t2.*, t3.*, t4.*
11632   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
11633   LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
11634   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
11635   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11636 } {
11637    0 100 200 300   -  -   -  -   -  -
11638    1 101 201 301   -  -   -  -   -  -
11639    2 102 202 302 102  2   -  -   -  -
11640    3 103 203 303   -  - 203  3   -  -
11641    4 104 204 304 104  4   -  -   -  -
11642    5 105 205 305   -  -   -  - 305  5
11643    6 106 206 306 106  6 206  6   -  -
11644    7 107 207 307   -  -   -  -   -  -
11645    8 108 208 308 108  8   -  -   -  -
11646    9 109 209 309   -  - 209  9   -  -
11647   10 110 210 310 110 10   -  - 310 10
11648   11 111 211 311   -  -   -  -   -  -
11649   12 112 212 312 112 12 212 12   -  -
11650   13 113 213 313   -  -   -  -   -  -
11651   14 114 214 314 114 14   -  -   -  -
11652   15 115 215 315   -  - 215 15 315 15
11653   16 116 216 316 116 16   -  -   -  -
11654   17 117 217 317   -  -   -  -   -  -
11655   18 118 218 318 118 18 218 18   -  -
11656   19 119 219 319   -  -   -  -   -  -
11657   20 120 220 320 120 20   -  - 320 20
11658   21 121 221 321   -  - 221 21   -  -
11659   22 122 222 322 122 22   -  -   -  -
11660   23 123 223 323   -  -   -  -   -  -
11661   24 124 224 324 124 24 224 24   -  -
11662   25 125 225 325   -  -   -  - 325 25
11663   26 126 226 326 126 26   -  -   -  -
11664   27 127 227 327   -  - 227 27   -  -
11665   28 128 228 328 128 28   -  -   -  -
11666   29 129 229 329   -  -   -  -   -  -
11667   30 130 230 330 130 30 230 30 330 30
11668   31 131 231 331   -  -   -  -   -  -
11669   32 132 232 332 132 32   -  -   -  -
11670   33 133 233 333   -  - 233 33   -  -
11671   34 134 234 334 134 34   -  -   -  -
11672   35 135 235 335   -  -   -  - 335 35
11673   36 136 236 336 136 36 236 36   -  -
11674   37 137 237 337   -  -   -  -   -  -
11675   38 138 238 338 138 38   -  -   -  -
11676   39 139 239 339   -  - 239 39   -  -
11677   40 140 240 340 140 40   -  - 340 40
11678   41 141 241 341   -  -   -  -   -  -
11679   42 142 242 342 142 42 242 42   -  -
11680   43 143 243 343   -  -   -  -   -  -
11681   44 144 244 344 144 44   -  -   -  -
11682   45 145 245 345   -  - 245 45 345 45
11683   46 146 246 346 146 46   -  -   -  -
11684   47 147 247 347   -  -   -  -   -  -
11685   48 148 248 348 148 48 248 48   -  -
11686   49 149 249 349   -  -   -  -   -  -
11687   50 150 250 350 150 50   -  - 350 50
11688   51 151 251 351   -  - 251 51   -  -
11689   52 152 252 352 152 52   -  -   -  -
11690   53 153 253 353   -  -   -  -   -  -
11691   54 154 254 354 154 54 254 54   -  -
11692   55 155 255 355   -  -   -  - 355 55
11693   56 156 256 356 156 56   -  -   -  -
11694   57 157 257 357   -  - 257 57   -  -
11695   58 158 258 358 158 58   -  -   -  -
11696   59 159 259 359   -  -   -  -   -  -
11697   60 160 260 360 160 60 260 60 360 60
11698   61 161 261 361   -  -   -  -   -  -
11699   62 162 262 362 162 62   -  -   -  -
11700   63 163 263 363   -  - 263 63   -  -
11701   64 164 264 364 164 64   -  -   -  -
11702   65 165 265 365   -  -   -  - 365 65
11703   66 166 266 366 166 66 266 66   -  -
11704   67 167 267 367   -  -   -  -   -  -
11705   68 168 268 368 168 68   -  -   -  -
11706   69 169 269 369   -  - 269 69   -  -
11707   70 170 270 370 170 70   -  - 370 70
11708   71 171 271 371   -  -   -  -   -  -
11709   72 172 272 372 172 72 272 72   -  -
11710   73 173 273 373   -  -   -  -   -  -
11711   74 174 274 374 174 74   -  -   -  -
11712   75 175 275 375   -  - 275 75 375 75
11713   76 176 276 376 176 76   -  -   -  -
11714   77 177 277 377   -  -   -  -   -  -
11715   78 178 278 378 178 78 278 78   -  -
11716   79 179 279 379   -  -   -  -   -  -
11717   80 180 280 380 180 80   -  - 380 80
11718   81 181 281 381   -  - 281 81   -  -
11719   82 182 282 382 182 82   -  -   -  -
11720   83 183 283 383   -  -   -  -   -  -
11721   84 184 284 384 184 84 284 84   -  -
11722   85 185 285 385   -  -   -  - 385 85
11723   86 186 286 386 186 86   -  -   -  -
11724   87 187 287 387   -  - 287 87   -  -
11725   88 188 288 388 188 88   -  -   -  -
11726   89 189 289 389   -  -   -  -   -  -
11727   90 190 290 390 190 90 290 90 390 90
11728   91 191 291 391   -  -   -  -   -  -
11729   92 192 292 392 192 92   -  -   -  -
11730   93 193 293 393   -  - 293 93   -  -
11731   94 194 294 394 194 94   -  -   -  -
11732   95 195 295 395   -  -   -  - 395 95
11733   96   - 296 396   -  -   -  -   -  -
11734   97 197   - 397   -  -   -  -   -  -
11735   98 198 298   -   -  -   -  -   -  -
11736   99   -   -   -   -  -   -  -   -  -
11738 do_execsql_test joinD-415 {
11739   SELECT t1.*, t2.*, t3.*, t4.*
11740   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
11741   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
11742   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
11743   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11744 } {
11745    5 105 205 305   -  -   -  - 305  5
11746   10 110 210 310 110 10   -  - 310 10
11747   15 115 215 315   -  - 215 15 315 15
11748   20 120 220 320 120 20   -  - 320 20
11749   25 125 225 325   -  -   -  - 325 25
11750   30 130 230 330 130 30 230 30 330 30
11751   35 135 235 335   -  -   -  - 335 35
11752   40 140 240 340 140 40   -  - 340 40
11753   45 145 245 345   -  - 245 45 345 45
11754   50 150 250 350 150 50   -  - 350 50
11755   55 155 255 355   -  -   -  - 355 55
11756   60 160 260 360 160 60 260 60 360 60
11757   65 165 265 365   -  -   -  - 365 65
11758   70 170 270 370 170 70   -  - 370 70
11759   75 175 275 375   -  - 275 75 375 75
11760   80 180 280 380 180 80   -  - 380 80
11761   85 185 285 385   -  -   -  - 385 85
11762   90 190 290 390 190 90 290 90 390 90
11763   95 195 295 395   -  -   -  - 395 95
11764    -   -   -   -   -  -   -  - 300  0
11766 do_execsql_test joinD-416 {
11767   SELECT t1.*, t2.*, t3.*, t4.*
11768   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
11769   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
11770   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
11771   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11772 } {
11773    5 105 205 305   -  -   -  - 305  5
11774   10 110 210 310 110 10   -  - 310 10
11775   15 115 215 315   -  - 215 15 315 15
11776   20 120 220 320 120 20   -  - 320 20
11777   25 125 225 325   -  -   -  - 325 25
11778   30 130 230 330 130 30 230 30 330 30
11779   35 135 235 335   -  -   -  - 335 35
11780   40 140 240 340 140 40   -  - 340 40
11781   45 145 245 345   -  - 245 45 345 45
11782   50 150 250 350 150 50   -  - 350 50
11783   55 155 255 355   -  -   -  - 355 55
11784   60 160 260 360 160 60 260 60 360 60
11785   65 165 265 365   -  -   -  - 365 65
11786   70 170 270 370 170 70   -  - 370 70
11787   75 175 275 375   -  - 275 75 375 75
11788   80 180 280 380 180 80   -  - 380 80
11789   85 185 285 385   -  -   -  - 385 85
11790   90 190 290 390 190 90 290 90 390 90
11791   95 195 295 395   -  -   -  - 395 95
11792    -   -   -   -   -  -   -  - 300  0
11794 do_execsql_test joinD-417 {
11795   SELECT t1.*, t2.*, t3.*, t4.*
11796   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
11797   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
11798   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
11799   WHERE t2.x>0
11800   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11801 } {
11802   10 110 210 310 110 10   -  - 310 10
11803   20 120 220 320 120 20   -  - 320 20
11804   30 130 230 330 130 30 230 30 330 30
11805   40 140 240 340 140 40   -  - 340 40
11806   50 150 250 350 150 50   -  - 350 50
11807   60 160 260 360 160 60 260 60 360 60
11808   70 170 270 370 170 70   -  - 370 70
11809   80 180 280 380 180 80   -  - 380 80
11810   90 190 290 390 190 90 290 90 390 90
11812 do_execsql_test joinD-418 {
11813   SELECT t1.*, t2.*, t3.*, t4.*
11814   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
11815   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
11816   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
11817   WHERE (t2.x>0 OR t2.x IS NULL)
11818   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11819 } {
11820    5 105 205 305   -  -   -  - 305  5
11821   10 110 210 310 110 10   -  - 310 10
11822   15 115 215 315   -  - 215 15 315 15
11823   20 120 220 320 120 20   -  - 320 20
11824   25 125 225 325   -  -   -  - 325 25
11825   30 130 230 330 130 30 230 30 330 30
11826   35 135 235 335   -  -   -  - 335 35
11827   40 140 240 340 140 40   -  - 340 40
11828   45 145 245 345   -  - 245 45 345 45
11829   50 150 250 350 150 50   -  - 350 50
11830   55 155 255 355   -  -   -  - 355 55
11831   60 160 260 360 160 60 260 60 360 60
11832   65 165 265 365   -  -   -  - 365 65
11833   70 170 270 370 170 70   -  - 370 70
11834   75 175 275 375   -  - 275 75 375 75
11835   80 180 280 380 180 80   -  - 380 80
11836   85 185 285 385   -  -   -  - 385 85
11837   90 190 290 390 190 90 290 90 390 90
11838   95 195 295 395   -  -   -  - 395 95
11839    -   -   -   -   -  -   -  - 300  0
11841 do_execsql_test joinD-419 {
11842   SELECT t1.*, t2.*, t3.*, t4.*
11843   FROM t1 LEFT JOIN t2 ON true
11844   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
11845   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
11846   WHERE t1.b=t2.b AND t2.x>0
11847   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11848 } {
11849   10 110 210 310 110 10   -  - 310 10
11850   20 120 220 320 120 20   -  - 320 20
11851   30 130 230 330 130 30 230 30 330 30
11852   40 140 240 340 140 40   -  - 340 40
11853   50 150 250 350 150 50   -  - 350 50
11854   60 160 260 360 160 60 260 60 360 60
11855   70 170 270 370 170 70   -  - 370 70
11856   80 180 280 380 180 80   -  - 380 80
11857   90 190 290 390 190 90 290 90 390 90
11859 do_execsql_test joinD-420 {
11860   SELECT t1.*, t2.*, t3.*, t4.*
11861   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
11862   LEFT JOIN t3 ON t1.c=t3.c
11863   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
11864   WHERE t3.y>0
11865   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11866 } {
11867   15 115 215 315   -  - 215 15 315 15
11868   30 130 230 330 130 30 230 30 330 30
11869   45 145 245 345   -  - 245 45 345 45
11870   60 160 260 360 160 60 260 60 360 60
11871   75 175 275 375   -  - 275 75 375 75
11872   90 190 290 390 190 90 290 90 390 90
11874 do_execsql_test joinD-421 {
11875   SELECT t1.*, t2.*, t3.*, t4.*
11876   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
11877   LEFT JOIN t3 ON t1.c=t3.c
11878   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
11879   WHERE t3.y>0 OR t3.y IS NULL
11880   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11881 } {
11882    5 105 205 305   -  -   -  - 305  5
11883   10 110 210 310 110 10   -  - 310 10
11884   15 115 215 315   -  - 215 15 315 15
11885   20 120 220 320 120 20   -  - 320 20
11886   25 125 225 325   -  -   -  - 325 25
11887   30 130 230 330 130 30 230 30 330 30
11888   35 135 235 335   -  -   -  - 335 35
11889   40 140 240 340 140 40   -  - 340 40
11890   45 145 245 345   -  - 245 45 345 45
11891   50 150 250 350 150 50   -  - 350 50
11892   55 155 255 355   -  -   -  - 355 55
11893   60 160 260 360 160 60 260 60 360 60
11894   65 165 265 365   -  -   -  - 365 65
11895   70 170 270 370 170 70   -  - 370 70
11896   75 175 275 375   -  - 275 75 375 75
11897   80 180 280 380 180 80   -  - 380 80
11898   85 185 285 385   -  -   -  - 385 85
11899   90 190 290 390 190 90 290 90 390 90
11900   95 195 295 395   -  -   -  - 395 95
11901    -   -   -   -   -  -   -  - 300  0
11903 do_execsql_test joinD-422 {
11904   SELECT t1.*, t2.*, t3.*, t4.*
11905   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
11906   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
11907   RIGHT JOIN t4 ON t1.d=t4.d
11908   WHERE t4.z>0
11909   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11910 } {
11911    5 105 205 305   -  -   -  - 305  5
11912   10 110 210 310 110 10   -  - 310 10
11913   15 115 215 315   -  - 215 15 315 15
11914   20 120 220 320 120 20   -  - 320 20
11915   25 125 225 325   -  -   -  - 325 25
11916   30 130 230 330 130 30 230 30 330 30
11917   35 135 235 335   -  -   -  - 335 35
11918   40 140 240 340 140 40   -  - 340 40
11919   45 145 245 345   -  - 245 45 345 45
11920   50 150 250 350 150 50   -  - 350 50
11921   55 155 255 355   -  -   -  - 355 55
11922   60 160 260 360 160 60 260 60 360 60
11923   65 165 265 365   -  -   -  - 365 65
11924   70 170 270 370 170 70   -  - 370 70
11925   75 175 275 375   -  - 275 75 375 75
11926   80 180 280 380 180 80   -  - 380 80
11927   85 185 285 385   -  -   -  - 385 85
11928   90 190 290 390 190 90 290 90 390 90
11929   95 195 295 395   -  -   -  - 395 95
11931 do_execsql_test joinD-423 {
11932   SELECT t1.*, t2.*, t3.*, t4.*
11933   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
11934   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
11935   RIGHT JOIN t4 ON t1.d=t4.d
11936   WHERE t4.z IS NULL OR t4.z>0
11937   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11938 } {
11939    5 105 205 305   -  -   -  - 305  5
11940   10 110 210 310 110 10   -  - 310 10
11941   15 115 215 315   -  - 215 15 315 15
11942   20 120 220 320 120 20   -  - 320 20
11943   25 125 225 325   -  -   -  - 325 25
11944   30 130 230 330 130 30 230 30 330 30
11945   35 135 235 335   -  -   -  - 335 35
11946   40 140 240 340 140 40   -  - 340 40
11947   45 145 245 345   -  - 245 45 345 45
11948   50 150 250 350 150 50   -  - 350 50
11949   55 155 255 355   -  -   -  - 355 55
11950   60 160 260 360 160 60 260 60 360 60
11951   65 165 265 365   -  -   -  - 365 65
11952   70 170 270 370 170 70   -  - 370 70
11953   75 175 275 375   -  - 275 75 375 75
11954   80 180 280 380 180 80   -  - 380 80
11955   85 185 285 385   -  -   -  - 385 85
11956   90 190 290 390 190 90 290 90 390 90
11957   95 195 295 395   -  -   -  - 395 95
11959 do_execsql_test joinD-424 {
11960   SELECT t1.*, t2.*, t3.*, t4.*
11961   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
11962   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
11963   RIGHT JOIN t4 ON t1.d=t4.d
11964   WHERE t2.x>0 AND t4.z>0
11965   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11966 } {
11967   10 110 210 310 110 10   -  - 310 10
11968   20 120 220 320 120 20   -  - 320 20
11969   30 130 230 330 130 30 230 30 330 30
11970   40 140 240 340 140 40   -  - 340 40
11971   50 150 250 350 150 50   -  - 350 50
11972   60 160 260 360 160 60 260 60 360 60
11973   70 170 270 370 170 70   -  - 370 70
11974   80 180 280 380 180 80   -  - 380 80
11975   90 190 290 390 190 90 290 90 390 90
11977 do_execsql_test joinD-425 {
11978   SELECT t1.*, t2.*, t3.*, t4.*
11979   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
11980   LEFT JOIN t3 ON t1.c=t3.c
11981   RIGHT JOIN t4 ON t1.d=t4.d
11982   WHERE t4.z>0 AND t3.y>0
11983   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11984 } {
11985   15 115 215 315   -  - 215 15 315 15
11986   30 130 230 330 130 30 230 30 330 30
11987   45 145 245 345   -  - 245 45 345 45
11988   60 160 260 360 160 60 260 60 360 60
11989   75 175 275 375   -  - 275 75 375 75
11990   90 190 290 390 190 90 290 90 390 90
11992 do_execsql_test joinD-426 {
11993   SELECT t1.*, t2.*, t3.*, t4.*
11994   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
11995   LEFT JOIN t3 ON t1.c=t3.c
11996   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
11997   WHERE t2.x>0 AND t3.y>0
11998   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
11999 } {
12000   30 130 230 330 130 30 230 30 330 30
12001   60 160 260 360 160 60 260 60 360 60
12002   90 190 290 390 190 90 290 90 390 90
12004 do_execsql_test joinD-427 {
12005   SELECT t1.*, t2.*, t3.*, t4.*
12006   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
12007   LEFT JOIN t3 ON t1.c=t3.c
12008   RIGHT JOIN t4 ON t1.d=t4.d
12009   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
12010   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12011 } {
12012   30 130 230 330 130 30 230 30 330 30
12013   60 160 260 360 160 60 260 60 360 60
12014   90 190 290 390 190 90 290 90 390 90
12016 do_execsql_test joinD-428 {
12017   SELECT t1.*, t2.*, t3.*, t4.*
12018   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
12019   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
12020   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
12021   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12022 } {
12023    5 105 205 305   -  -   -  - 305  5
12024   10 110 210 310 110 10   -  - 310 10
12025   15 115 215 315   -  - 215 15 315 15
12026   20 120 220 320 120 20   -  - 320 20
12027   25 125 225 325   -  -   -  - 325 25
12028   30 130 230 330 130 30 230 30 330 30
12029   35 135 235 335   -  -   -  - 335 35
12030   40 140 240 340 140 40   -  - 340 40
12031   45 145 245 345   -  - 245 45 345 45
12032   50 150 250 350 150 50   -  - 350 50
12033   55 155 255 355   -  -   -  - 355 55
12034   60 160 260 360 160 60 260 60 360 60
12035   65 165 265 365   -  -   -  - 365 65
12036   70 170 270 370 170 70   -  - 370 70
12037   75 175 275 375   -  - 275 75 375 75
12038   80 180 280 380 180 80   -  - 380 80
12039   85 185 285 385   -  -   -  - 385 85
12040   90 190 290 390 190 90 290 90 390 90
12041   95 195 295 395   -  -   -  - 395 95
12042    -   -   -   -   -  -   -  - 300  0
12044 do_execsql_test joinD-429 {
12045   SELECT t1.*, t2.*, t3.*, t4.*
12046   FROM t1 LEFT JOIN t2 ON t2.x>0
12047   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
12048   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
12049   WHERE t1.b IS NOT DISTINCT FROM t2.b
12050   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12051 } {
12052   10 110 210 310 110 10   -  - 310 10
12053   20 120 220 320 120 20   -  - 320 20
12054   30 130 230 330 130 30 230 30 330 30
12055   40 140 240 340 140 40   -  - 340 40
12056   50 150 250 350 150 50   -  - 350 50
12057   60 160 260 360 160 60 260 60 360 60
12058   70 170 270 370 170 70   -  - 370 70
12059   80 180 280 380 180 80   -  - 380 80
12060   90 190 290 390 190 90 290 90 390 90
12061    -   -   -   -   -  -   -  - 300  0
12063 do_execsql_test joinD-430 {
12064   SELECT t1.*, t2.*, t3.*, t4.*
12065   FROM t1 LEFT JOIN t2 ON t2.x>0
12066   LEFT JOIN t3 ON t3.y>0
12067   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
12068   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
12069   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12070 } {
12071   30 130 230 330 130 30 230 30 330 30
12072   60 160 260 360 160 60 260 60 360 60
12073   90 190 290 390 190 90 290 90 390 90
12074    -   -   -   -   -  -   -  - 300  0
12076 do_execsql_test joinD-431 {
12077   SELECT t1.*, t2.*, t3.*, t4.*
12078   FROM t1 LEFT JOIN t2 ON t2.x>0
12079   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
12080   RIGHT JOIN t4 ON t4.z>0
12081   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
12082   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12083 } {
12084   10 110 210 310 110 10   -  - 310 10
12085   20 120 220 320 120 20   -  - 320 20
12086   30 130 230 330 130 30 230 30 330 30
12087   40 140 240 340 140 40   -  - 340 40
12088   50 150 250 350 150 50   -  - 350 50
12089   60 160 260 360 160 60 260 60 360 60
12090   70 170 270 370 170 70   -  - 370 70
12091   80 180 280 380 180 80   -  - 380 80
12092   90 190 290 390 190 90 290 90 390 90
12094 do_execsql_test joinD-432 {
12095   SELECT t1.*, t2.*, t3.*, t4.*
12096   FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
12097   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
12098   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
12099   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12100 } {
12101    5 105 205 305   -  -   -  - 305  5
12102   10 110 210 310 110 10   -  - 310 10
12103   15 115 215 315   -  - 215 15 315 15
12104   20 120 220 320 120 20   -  - 320 20
12105   25 125 225 325   -  -   -  - 325 25
12106   30 130 230 330 130 30 230 30 330 30
12107   35 135 235 335   -  -   -  - 335 35
12108   40 140 240 340 140 40   -  - 340 40
12109   45 145 245 345   -  - 245 45 345 45
12110   50 150 250 350 150 50   -  - 350 50
12111   55 155 255 355   -  -   -  - 355 55
12112   60 160 260 360 160 60 260 60 360 60
12113   65 165 265 365   -  -   -  - 365 65
12114   70 170 270 370 170 70   -  - 370 70
12115   75 175 275 375   -  - 275 75 375 75
12116   80 180 280 380 180 80   -  - 380 80
12117   85 185 285 385   -  -   -  - 385 85
12118   90 190 290 390 190 90 290 90 390 90
12119   95 195 295 395   -  -   -  - 395 95
12120    -   -   -   -   -  -   -  - 300  0
12122 do_execsql_test joinD-433 {
12123   SELECT t1.*, t2.*, t3.*, t4.*
12124   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
12125   LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
12126   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
12127   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12128 } {
12129    5 105 205 305   -  -   -  - 305  5
12130   10 110 210 310 110 10   -  - 310 10
12131   15 115 215 315   -  - 215 15 315 15
12132   20 120 220 320 120 20   -  - 320 20
12133   25 125 225 325   -  -   -  - 325 25
12134   30 130 230 330 130 30 230 30 330 30
12135   35 135 235 335   -  -   -  - 335 35
12136   40 140 240 340 140 40   -  - 340 40
12137   45 145 245 345   -  - 245 45 345 45
12138   50 150 250 350 150 50   -  - 350 50
12139   55 155 255 355   -  -   -  - 355 55
12140   60 160 260 360 160 60 260 60 360 60
12141   65 165 265 365   -  -   -  - 365 65
12142   70 170 270 370 170 70   -  - 370 70
12143   75 175 275 375   -  - 275 75 375 75
12144   80 180 280 380 180 80   -  - 380 80
12145   85 185 285 385   -  -   -  - 385 85
12146   90 190 290 390 190 90 290 90 390 90
12147   95 195 295 395   -  -   -  - 395 95
12148    -   -   -   -   -  -   -  - 300  0
12150 do_execsql_test joinD-434 {
12151   SELECT t1.*, t2.*, t3.*, t4.*
12152   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
12153   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
12154   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
12155   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12156 } {
12157    0 100 200 300   -  -   -  -   -  -
12158    1 101 201 301   -  -   -  -   -  -
12159    2 102 202 302 102  2   -  -   -  -
12160    3 103 203 303   -  - 203  3   -  -
12161    4 104 204 304 104  4   -  -   -  -
12162    5 105 205 305   -  -   -  - 305  5
12163    6 106 206 306 106  6 206  6   -  -
12164    7 107 207 307   -  -   -  -   -  -
12165    8 108 208 308 108  8   -  -   -  -
12166    9 109 209 309   -  - 209  9   -  -
12167   10 110 210 310 110 10   -  - 310 10
12168   11 111 211 311   -  -   -  -   -  -
12169   12 112 212 312 112 12 212 12   -  -
12170   13 113 213 313   -  -   -  -   -  -
12171   14 114 214 314 114 14   -  -   -  -
12172   15 115 215 315   -  - 215 15 315 15
12173   16 116 216 316 116 16   -  -   -  -
12174   17 117 217 317   -  -   -  -   -  -
12175   18 118 218 318 118 18 218 18   -  -
12176   19 119 219 319   -  -   -  -   -  -
12177   20 120 220 320 120 20   -  - 320 20
12178   21 121 221 321   -  - 221 21   -  -
12179   22 122 222 322 122 22   -  -   -  -
12180   23 123 223 323   -  -   -  -   -  -
12181   24 124 224 324 124 24 224 24   -  -
12182   25 125 225 325   -  -   -  - 325 25
12183   26 126 226 326 126 26   -  -   -  -
12184   27 127 227 327   -  - 227 27   -  -
12185   28 128 228 328 128 28   -  -   -  -
12186   29 129 229 329   -  -   -  -   -  -
12187   30 130 230 330 130 30 230 30 330 30
12188   31 131 231 331   -  -   -  -   -  -
12189   32 132 232 332 132 32   -  -   -  -
12190   33 133 233 333   -  - 233 33   -  -
12191   34 134 234 334 134 34   -  -   -  -
12192   35 135 235 335   -  -   -  - 335 35
12193   36 136 236 336 136 36 236 36   -  -
12194   37 137 237 337   -  -   -  -   -  -
12195   38 138 238 338 138 38   -  -   -  -
12196   39 139 239 339   -  - 239 39   -  -
12197   40 140 240 340 140 40   -  - 340 40
12198   41 141 241 341   -  -   -  -   -  -
12199   42 142 242 342 142 42 242 42   -  -
12200   43 143 243 343   -  -   -  -   -  -
12201   44 144 244 344 144 44   -  -   -  -
12202   45 145 245 345   -  - 245 45 345 45
12203   46 146 246 346 146 46   -  -   -  -
12204   47 147 247 347   -  -   -  -   -  -
12205   48 148 248 348 148 48 248 48   -  -
12206   49 149 249 349   -  -   -  -   -  -
12207   50 150 250 350 150 50   -  - 350 50
12208   51 151 251 351   -  - 251 51   -  -
12209   52 152 252 352 152 52   -  -   -  -
12210   53 153 253 353   -  -   -  -   -  -
12211   54 154 254 354 154 54 254 54   -  -
12212   55 155 255 355   -  -   -  - 355 55
12213   56 156 256 356 156 56   -  -   -  -
12214   57 157 257 357   -  - 257 57   -  -
12215   58 158 258 358 158 58   -  -   -  -
12216   59 159 259 359   -  -   -  -   -  -
12217   60 160 260 360 160 60 260 60 360 60
12218   61 161 261 361   -  -   -  -   -  -
12219   62 162 262 362 162 62   -  -   -  -
12220   63 163 263 363   -  - 263 63   -  -
12221   64 164 264 364 164 64   -  -   -  -
12222   65 165 265 365   -  -   -  - 365 65
12223   66 166 266 366 166 66 266 66   -  -
12224   67 167 267 367   -  -   -  -   -  -
12225   68 168 268 368 168 68   -  -   -  -
12226   69 169 269 369   -  - 269 69   -  -
12227   70 170 270 370 170 70   -  - 370 70
12228   71 171 271 371   -  -   -  -   -  -
12229   72 172 272 372 172 72 272 72   -  -
12230   73 173 273 373   -  -   -  -   -  -
12231   74 174 274 374 174 74   -  -   -  -
12232   75 175 275 375   -  - 275 75 375 75
12233   76 176 276 376 176 76   -  -   -  -
12234   77 177 277 377   -  -   -  -   -  -
12235   78 178 278 378 178 78 278 78   -  -
12236   79 179 279 379   -  -   -  -   -  -
12237   80 180 280 380 180 80   -  - 380 80
12238   81 181 281 381   -  - 281 81   -  -
12239   82 182 282 382 182 82   -  -   -  -
12240   83 183 283 383   -  -   -  -   -  -
12241   84 184 284 384 184 84 284 84   -  -
12242   85 185 285 385   -  -   -  - 385 85
12243   86 186 286 386 186 86   -  -   -  -
12244   87 187 287 387   -  - 287 87   -  -
12245   88 188 288 388 188 88   -  -   -  -
12246   89 189 289 389   -  -   -  -   -  -
12247   90 190 290 390 190 90 290 90 390 90
12248   91 191 291 391   -  -   -  -   -  -
12249   92 192 292 392 192 92   -  -   -  -
12250   93 193 293 393   -  - 293 93   -  -
12251   94 194 294 394 194 94   -  -   -  -
12252   95 195 295 395   -  -   -  - 395 95
12253   96   - 296 396   -  -   -  -   -  -
12254   97 197   - 397   -  -   -  -   -  -
12255   98 198 298   -   -  -   -  -   -  -
12256   99   -   -   -   -  -   -  -   -  -
12257    -   -   -   -   -  -   -  - 300  0
12259 do_execsql_test joinD-435 {
12260   SELECT t1.*, t2.*, t3.*, t4.*
12261   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
12262   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
12263   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
12264   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12265 } {
12266    0 100 200 300   -  -   -  -   -  -
12267    1 101 201 301   -  -   -  -   -  -
12268    2 102 202 302 102  2   -  -   -  -
12269    3 103 203 303   -  - 203  3   -  -
12270    4 104 204 304 104  4   -  -   -  -
12271    5 105 205 305   -  -   -  - 305  5
12272    6 106 206 306 106  6 206  6   -  -
12273    7 107 207 307   -  -   -  -   -  -
12274    8 108 208 308 108  8   -  -   -  -
12275    9 109 209 309   -  - 209  9   -  -
12276   10 110 210 310 110 10   -  - 310 10
12277   11 111 211 311   -  -   -  -   -  -
12278   12 112 212 312 112 12 212 12   -  -
12279   13 113 213 313   -  -   -  -   -  -
12280   14 114 214 314 114 14   -  -   -  -
12281   15 115 215 315   -  - 215 15 315 15
12282   16 116 216 316 116 16   -  -   -  -
12283   17 117 217 317   -  -   -  -   -  -
12284   18 118 218 318 118 18 218 18   -  -
12285   19 119 219 319   -  -   -  -   -  -
12286   20 120 220 320 120 20   -  - 320 20
12287   21 121 221 321   -  - 221 21   -  -
12288   22 122 222 322 122 22   -  -   -  -
12289   23 123 223 323   -  -   -  -   -  -
12290   24 124 224 324 124 24 224 24   -  -
12291   25 125 225 325   -  -   -  - 325 25
12292   26 126 226 326 126 26   -  -   -  -
12293   27 127 227 327   -  - 227 27   -  -
12294   28 128 228 328 128 28   -  -   -  -
12295   29 129 229 329   -  -   -  -   -  -
12296   30 130 230 330 130 30 230 30 330 30
12297   31 131 231 331   -  -   -  -   -  -
12298   32 132 232 332 132 32   -  -   -  -
12299   33 133 233 333   -  - 233 33   -  -
12300   34 134 234 334 134 34   -  -   -  -
12301   35 135 235 335   -  -   -  - 335 35
12302   36 136 236 336 136 36 236 36   -  -
12303   37 137 237 337   -  -   -  -   -  -
12304   38 138 238 338 138 38   -  -   -  -
12305   39 139 239 339   -  - 239 39   -  -
12306   40 140 240 340 140 40   -  - 340 40
12307   41 141 241 341   -  -   -  -   -  -
12308   42 142 242 342 142 42 242 42   -  -
12309   43 143 243 343   -  -   -  -   -  -
12310   44 144 244 344 144 44   -  -   -  -
12311   45 145 245 345   -  - 245 45 345 45
12312   46 146 246 346 146 46   -  -   -  -
12313   47 147 247 347   -  -   -  -   -  -
12314   48 148 248 348 148 48 248 48   -  -
12315   49 149 249 349   -  -   -  -   -  -
12316   50 150 250 350 150 50   -  - 350 50
12317   51 151 251 351   -  - 251 51   -  -
12318   52 152 252 352 152 52   -  -   -  -
12319   53 153 253 353   -  -   -  -   -  -
12320   54 154 254 354 154 54 254 54   -  -
12321   55 155 255 355   -  -   -  - 355 55
12322   56 156 256 356 156 56   -  -   -  -
12323   57 157 257 357   -  - 257 57   -  -
12324   58 158 258 358 158 58   -  -   -  -
12325   59 159 259 359   -  -   -  -   -  -
12326   60 160 260 360 160 60 260 60 360 60
12327   61 161 261 361   -  -   -  -   -  -
12328   62 162 262 362 162 62   -  -   -  -
12329   63 163 263 363   -  - 263 63   -  -
12330   64 164 264 364 164 64   -  -   -  -
12331   65 165 265 365   -  -   -  - 365 65
12332   66 166 266 366 166 66 266 66   -  -
12333   67 167 267 367   -  -   -  -   -  -
12334   68 168 268 368 168 68   -  -   -  -
12335   69 169 269 369   -  - 269 69   -  -
12336   70 170 270 370 170 70   -  - 370 70
12337   71 171 271 371   -  -   -  -   -  -
12338   72 172 272 372 172 72 272 72   -  -
12339   73 173 273 373   -  -   -  -   -  -
12340   74 174 274 374 174 74   -  -   -  -
12341   75 175 275 375   -  - 275 75 375 75
12342   76 176 276 376 176 76   -  -   -  -
12343   77 177 277 377   -  -   -  -   -  -
12344   78 178 278 378 178 78 278 78   -  -
12345   79 179 279 379   -  -   -  -   -  -
12346   80 180 280 380 180 80   -  - 380 80
12347   81 181 281 381   -  - 281 81   -  -
12348   82 182 282 382 182 82   -  -   -  -
12349   83 183 283 383   -  -   -  -   -  -
12350   84 184 284 384 184 84 284 84   -  -
12351   85 185 285 385   -  -   -  - 385 85
12352   86 186 286 386 186 86   -  -   -  -
12353   87 187 287 387   -  - 287 87   -  -
12354   88 188 288 388 188 88   -  -   -  -
12355   89 189 289 389   -  -   -  -   -  -
12356   90 190 290 390 190 90 290 90 390 90
12357   91 191 291 391   -  -   -  -   -  -
12358   92 192 292 392 192 92   -  -   -  -
12359   93 193 293 393   -  - 293 93   -  -
12360   94 194 294 394 194 94   -  -   -  -
12361   95 195 295 395   -  -   -  - 395 95
12362   96   - 296 396   -  -   -  -   -  -
12363   97 197   - 397   -  -   -  -   -  -
12364   98 198 298   -   -  -   -  -   -  -
12365   99   -   -   -   -  -   -  -   -  -
12366    -   -   -   -   -  -   -  - 300  0
12368 do_execsql_test joinD-436 {
12369   SELECT t1.*, t2.*, t3.*, t4.*
12370   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
12371   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
12372   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
12373   WHERE t2.x>0
12374   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12375 } {
12376    2 102 202 302 102  2   -  -   -  -
12377    4 104 204 304 104  4   -  -   -  -
12378    6 106 206 306 106  6 206  6   -  -
12379    8 108 208 308 108  8   -  -   -  -
12380   10 110 210 310 110 10   -  - 310 10
12381   12 112 212 312 112 12 212 12   -  -
12382   14 114 214 314 114 14   -  -   -  -
12383   16 116 216 316 116 16   -  -   -  -
12384   18 118 218 318 118 18 218 18   -  -
12385   20 120 220 320 120 20   -  - 320 20
12386   22 122 222 322 122 22   -  -   -  -
12387   24 124 224 324 124 24 224 24   -  -
12388   26 126 226 326 126 26   -  -   -  -
12389   28 128 228 328 128 28   -  -   -  -
12390   30 130 230 330 130 30 230 30 330 30
12391   32 132 232 332 132 32   -  -   -  -
12392   34 134 234 334 134 34   -  -   -  -
12393   36 136 236 336 136 36 236 36   -  -
12394   38 138 238 338 138 38   -  -   -  -
12395   40 140 240 340 140 40   -  - 340 40
12396   42 142 242 342 142 42 242 42   -  -
12397   44 144 244 344 144 44   -  -   -  -
12398   46 146 246 346 146 46   -  -   -  -
12399   48 148 248 348 148 48 248 48   -  -
12400   50 150 250 350 150 50   -  - 350 50
12401   52 152 252 352 152 52   -  -   -  -
12402   54 154 254 354 154 54 254 54   -  -
12403   56 156 256 356 156 56   -  -   -  -
12404   58 158 258 358 158 58   -  -   -  -
12405   60 160 260 360 160 60 260 60 360 60
12406   62 162 262 362 162 62   -  -   -  -
12407   64 164 264 364 164 64   -  -   -  -
12408   66 166 266 366 166 66 266 66   -  -
12409   68 168 268 368 168 68   -  -   -  -
12410   70 170 270 370 170 70   -  - 370 70
12411   72 172 272 372 172 72 272 72   -  -
12412   74 174 274 374 174 74   -  -   -  -
12413   76 176 276 376 176 76   -  -   -  -
12414   78 178 278 378 178 78 278 78   -  -
12415   80 180 280 380 180 80   -  - 380 80
12416   82 182 282 382 182 82   -  -   -  -
12417   84 184 284 384 184 84 284 84   -  -
12418   86 186 286 386 186 86   -  -   -  -
12419   88 188 288 388 188 88   -  -   -  -
12420   90 190 290 390 190 90 290 90 390 90
12421   92 192 292 392 192 92   -  -   -  -
12422   94 194 294 394 194 94   -  -   -  -
12424 do_execsql_test joinD-437 {
12425   SELECT t1.*, t2.*, t3.*, t4.*
12426   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
12427   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
12428   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
12429   WHERE (t2.x>0 OR t2.x IS NULL)
12430   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12431 } {
12432    1 101 201 301   -  -   -  -   -  -
12433    2 102 202 302 102  2   -  -   -  -
12434    3 103 203 303   -  - 203  3   -  -
12435    4 104 204 304 104  4   -  -   -  -
12436    5 105 205 305   -  -   -  - 305  5
12437    6 106 206 306 106  6 206  6   -  -
12438    7 107 207 307   -  -   -  -   -  -
12439    8 108 208 308 108  8   -  -   -  -
12440    9 109 209 309   -  - 209  9   -  -
12441   10 110 210 310 110 10   -  - 310 10
12442   11 111 211 311   -  -   -  -   -  -
12443   12 112 212 312 112 12 212 12   -  -
12444   13 113 213 313   -  -   -  -   -  -
12445   14 114 214 314 114 14   -  -   -  -
12446   15 115 215 315   -  - 215 15 315 15
12447   16 116 216 316 116 16   -  -   -  -
12448   17 117 217 317   -  -   -  -   -  -
12449   18 118 218 318 118 18 218 18   -  -
12450   19 119 219 319   -  -   -  -   -  -
12451   20 120 220 320 120 20   -  - 320 20
12452   21 121 221 321   -  - 221 21   -  -
12453   22 122 222 322 122 22   -  -   -  -
12454   23 123 223 323   -  -   -  -   -  -
12455   24 124 224 324 124 24 224 24   -  -
12456   25 125 225 325   -  -   -  - 325 25
12457   26 126 226 326 126 26   -  -   -  -
12458   27 127 227 327   -  - 227 27   -  -
12459   28 128 228 328 128 28   -  -   -  -
12460   29 129 229 329   -  -   -  -   -  -
12461   30 130 230 330 130 30 230 30 330 30
12462   31 131 231 331   -  -   -  -   -  -
12463   32 132 232 332 132 32   -  -   -  -
12464   33 133 233 333   -  - 233 33   -  -
12465   34 134 234 334 134 34   -  -   -  -
12466   35 135 235 335   -  -   -  - 335 35
12467   36 136 236 336 136 36 236 36   -  -
12468   37 137 237 337   -  -   -  -   -  -
12469   38 138 238 338 138 38   -  -   -  -
12470   39 139 239 339   -  - 239 39   -  -
12471   40 140 240 340 140 40   -  - 340 40
12472   41 141 241 341   -  -   -  -   -  -
12473   42 142 242 342 142 42 242 42   -  -
12474   43 143 243 343   -  -   -  -   -  -
12475   44 144 244 344 144 44   -  -   -  -
12476   45 145 245 345   -  - 245 45 345 45
12477   46 146 246 346 146 46   -  -   -  -
12478   47 147 247 347   -  -   -  -   -  -
12479   48 148 248 348 148 48 248 48   -  -
12480   49 149 249 349   -  -   -  -   -  -
12481   50 150 250 350 150 50   -  - 350 50
12482   51 151 251 351   -  - 251 51   -  -
12483   52 152 252 352 152 52   -  -   -  -
12484   53 153 253 353   -  -   -  -   -  -
12485   54 154 254 354 154 54 254 54   -  -
12486   55 155 255 355   -  -   -  - 355 55
12487   56 156 256 356 156 56   -  -   -  -
12488   57 157 257 357   -  - 257 57   -  -
12489   58 158 258 358 158 58   -  -   -  -
12490   59 159 259 359   -  -   -  -   -  -
12491   60 160 260 360 160 60 260 60 360 60
12492   61 161 261 361   -  -   -  -   -  -
12493   62 162 262 362 162 62   -  -   -  -
12494   63 163 263 363   -  - 263 63   -  -
12495   64 164 264 364 164 64   -  -   -  -
12496   65 165 265 365   -  -   -  - 365 65
12497   66 166 266 366 166 66 266 66   -  -
12498   67 167 267 367   -  -   -  -   -  -
12499   68 168 268 368 168 68   -  -   -  -
12500   69 169 269 369   -  - 269 69   -  -
12501   70 170 270 370 170 70   -  - 370 70
12502   71 171 271 371   -  -   -  -   -  -
12503   72 172 272 372 172 72 272 72   -  -
12504   73 173 273 373   -  -   -  -   -  -
12505   74 174 274 374 174 74   -  -   -  -
12506   75 175 275 375   -  - 275 75 375 75
12507   76 176 276 376 176 76   -  -   -  -
12508   77 177 277 377   -  -   -  -   -  -
12509   78 178 278 378 178 78 278 78   -  -
12510   79 179 279 379   -  -   -  -   -  -
12511   80 180 280 380 180 80   -  - 380 80
12512   81 181 281 381   -  - 281 81   -  -
12513   82 182 282 382 182 82   -  -   -  -
12514   83 183 283 383   -  -   -  -   -  -
12515   84 184 284 384 184 84 284 84   -  -
12516   85 185 285 385   -  -   -  - 385 85
12517   86 186 286 386 186 86   -  -   -  -
12518   87 187 287 387   -  - 287 87   -  -
12519   88 188 288 388 188 88   -  -   -  -
12520   89 189 289 389   -  -   -  -   -  -
12521   90 190 290 390 190 90 290 90 390 90
12522   91 191 291 391   -  -   -  -   -  -
12523   92 192 292 392 192 92   -  -   -  -
12524   93 193 293 393   -  - 293 93   -  -
12525   94 194 294 394 194 94   -  -   -  -
12526   95 195 295 395   -  -   -  - 395 95
12527   96   - 296 396   -  -   -  -   -  -
12528   97 197   - 397   -  -   -  -   -  -
12529   98 198 298   -   -  -   -  -   -  -
12530   99   -   -   -   -  -   -  -   -  -
12531    -   -   -   -   -  -   -  - 300  0
12533 do_execsql_test joinD-438 {
12534   SELECT t1.*, t2.*, t3.*, t4.*
12535   FROM t1 LEFT JOIN t2 ON true
12536   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
12537   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
12538   WHERE t1.b=t2.b AND t2.x>0
12539   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12540 } {
12541    2 102 202 302 102  2   -  -   -  -
12542    4 104 204 304 104  4   -  -   -  -
12543    6 106 206 306 106  6 206  6   -  -
12544    8 108 208 308 108  8   -  -   -  -
12545   10 110 210 310 110 10   -  - 310 10
12546   12 112 212 312 112 12 212 12   -  -
12547   14 114 214 314 114 14   -  -   -  -
12548   16 116 216 316 116 16   -  -   -  -
12549   18 118 218 318 118 18 218 18   -  -
12550   20 120 220 320 120 20   -  - 320 20
12551   22 122 222 322 122 22   -  -   -  -
12552   24 124 224 324 124 24 224 24   -  -
12553   26 126 226 326 126 26   -  -   -  -
12554   28 128 228 328 128 28   -  -   -  -
12555   30 130 230 330 130 30 230 30 330 30
12556   32 132 232 332 132 32   -  -   -  -
12557   34 134 234 334 134 34   -  -   -  -
12558   36 136 236 336 136 36 236 36   -  -
12559   38 138 238 338 138 38   -  -   -  -
12560   40 140 240 340 140 40   -  - 340 40
12561   42 142 242 342 142 42 242 42   -  -
12562   44 144 244 344 144 44   -  -   -  -
12563   46 146 246 346 146 46   -  -   -  -
12564   48 148 248 348 148 48 248 48   -  -
12565   50 150 250 350 150 50   -  - 350 50
12566   52 152 252 352 152 52   -  -   -  -
12567   54 154 254 354 154 54 254 54   -  -
12568   56 156 256 356 156 56   -  -   -  -
12569   58 158 258 358 158 58   -  -   -  -
12570   60 160 260 360 160 60 260 60 360 60
12571   62 162 262 362 162 62   -  -   -  -
12572   64 164 264 364 164 64   -  -   -  -
12573   66 166 266 366 166 66 266 66   -  -
12574   68 168 268 368 168 68   -  -   -  -
12575   70 170 270 370 170 70   -  - 370 70
12576   72 172 272 372 172 72 272 72   -  -
12577   74 174 274 374 174 74   -  -   -  -
12578   76 176 276 376 176 76   -  -   -  -
12579   78 178 278 378 178 78 278 78   -  -
12580   80 180 280 380 180 80   -  - 380 80
12581   82 182 282 382 182 82   -  -   -  -
12582   84 184 284 384 184 84 284 84   -  -
12583   86 186 286 386 186 86   -  -   -  -
12584   88 188 288 388 188 88   -  -   -  -
12585   90 190 290 390 190 90 290 90 390 90
12586   92 192 292 392 192 92   -  -   -  -
12587   94 194 294 394 194 94   -  -   -  -
12589 do_execsql_test joinD-439 {
12590   SELECT t1.*, t2.*, t3.*, t4.*
12591   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
12592   LEFT JOIN t3 ON t1.c=t3.c
12593   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
12594   WHERE t3.y>0
12595   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12596 } {
12597    3 103 203 303   -  - 203  3   -  -
12598    6 106 206 306 106  6 206  6   -  -
12599    9 109 209 309   -  - 209  9   -  -
12600   12 112 212 312 112 12 212 12   -  -
12601   15 115 215 315   -  - 215 15 315 15
12602   18 118 218 318 118 18 218 18   -  -
12603   21 121 221 321   -  - 221 21   -  -
12604   24 124 224 324 124 24 224 24   -  -
12605   27 127 227 327   -  - 227 27   -  -
12606   30 130 230 330 130 30 230 30 330 30
12607   33 133 233 333   -  - 233 33   -  -
12608   36 136 236 336 136 36 236 36   -  -
12609   39 139 239 339   -  - 239 39   -  -
12610   42 142 242 342 142 42 242 42   -  -
12611   45 145 245 345   -  - 245 45 345 45
12612   48 148 248 348 148 48 248 48   -  -
12613   51 151 251 351   -  - 251 51   -  -
12614   54 154 254 354 154 54 254 54   -  -
12615   57 157 257 357   -  - 257 57   -  -
12616   60 160 260 360 160 60 260 60 360 60
12617   63 163 263 363   -  - 263 63   -  -
12618   66 166 266 366 166 66 266 66   -  -
12619   69 169 269 369   -  - 269 69   -  -
12620   72 172 272 372 172 72 272 72   -  -
12621   75 175 275 375   -  - 275 75 375 75
12622   78 178 278 378 178 78 278 78   -  -
12623   81 181 281 381   -  - 281 81   -  -
12624   84 184 284 384 184 84 284 84   -  -
12625   87 187 287 387   -  - 287 87   -  -
12626   90 190 290 390 190 90 290 90 390 90
12627   93 193 293 393   -  - 293 93   -  -
12629 do_execsql_test joinD-440 {
12630   SELECT t1.*, t2.*, t3.*, t4.*
12631   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
12632   LEFT JOIN t3 ON t1.c=t3.c
12633   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
12634   WHERE t3.y>0 OR t3.y IS NULL
12635   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12636 } {
12637    1 101 201 301   -  -   -  -   -  -
12638    2 102 202 302 102  2   -  -   -  -
12639    3 103 203 303   -  - 203  3   -  -
12640    4 104 204 304 104  4   -  -   -  -
12641    5 105 205 305   -  -   -  - 305  5
12642    6 106 206 306 106  6 206  6   -  -
12643    7 107 207 307   -  -   -  -   -  -
12644    8 108 208 308 108  8   -  -   -  -
12645    9 109 209 309   -  - 209  9   -  -
12646   10 110 210 310 110 10   -  - 310 10
12647   11 111 211 311   -  -   -  -   -  -
12648   12 112 212 312 112 12 212 12   -  -
12649   13 113 213 313   -  -   -  -   -  -
12650   14 114 214 314 114 14   -  -   -  -
12651   15 115 215 315   -  - 215 15 315 15
12652   16 116 216 316 116 16   -  -   -  -
12653   17 117 217 317   -  -   -  -   -  -
12654   18 118 218 318 118 18 218 18   -  -
12655   19 119 219 319   -  -   -  -   -  -
12656   20 120 220 320 120 20   -  - 320 20
12657   21 121 221 321   -  - 221 21   -  -
12658   22 122 222 322 122 22   -  -   -  -
12659   23 123 223 323   -  -   -  -   -  -
12660   24 124 224 324 124 24 224 24   -  -
12661   25 125 225 325   -  -   -  - 325 25
12662   26 126 226 326 126 26   -  -   -  -
12663   27 127 227 327   -  - 227 27   -  -
12664   28 128 228 328 128 28   -  -   -  -
12665   29 129 229 329   -  -   -  -   -  -
12666   30 130 230 330 130 30 230 30 330 30
12667   31 131 231 331   -  -   -  -   -  -
12668   32 132 232 332 132 32   -  -   -  -
12669   33 133 233 333   -  - 233 33   -  -
12670   34 134 234 334 134 34   -  -   -  -
12671   35 135 235 335   -  -   -  - 335 35
12672   36 136 236 336 136 36 236 36   -  -
12673   37 137 237 337   -  -   -  -   -  -
12674   38 138 238 338 138 38   -  -   -  -
12675   39 139 239 339   -  - 239 39   -  -
12676   40 140 240 340 140 40   -  - 340 40
12677   41 141 241 341   -  -   -  -   -  -
12678   42 142 242 342 142 42 242 42   -  -
12679   43 143 243 343   -  -   -  -   -  -
12680   44 144 244 344 144 44   -  -   -  -
12681   45 145 245 345   -  - 245 45 345 45
12682   46 146 246 346 146 46   -  -   -  -
12683   47 147 247 347   -  -   -  -   -  -
12684   48 148 248 348 148 48 248 48   -  -
12685   49 149 249 349   -  -   -  -   -  -
12686   50 150 250 350 150 50   -  - 350 50
12687   51 151 251 351   -  - 251 51   -  -
12688   52 152 252 352 152 52   -  -   -  -
12689   53 153 253 353   -  -   -  -   -  -
12690   54 154 254 354 154 54 254 54   -  -
12691   55 155 255 355   -  -   -  - 355 55
12692   56 156 256 356 156 56   -  -   -  -
12693   57 157 257 357   -  - 257 57   -  -
12694   58 158 258 358 158 58   -  -   -  -
12695   59 159 259 359   -  -   -  -   -  -
12696   60 160 260 360 160 60 260 60 360 60
12697   61 161 261 361   -  -   -  -   -  -
12698   62 162 262 362 162 62   -  -   -  -
12699   63 163 263 363   -  - 263 63   -  -
12700   64 164 264 364 164 64   -  -   -  -
12701   65 165 265 365   -  -   -  - 365 65
12702   66 166 266 366 166 66 266 66   -  -
12703   67 167 267 367   -  -   -  -   -  -
12704   68 168 268 368 168 68   -  -   -  -
12705   69 169 269 369   -  - 269 69   -  -
12706   70 170 270 370 170 70   -  - 370 70
12707   71 171 271 371   -  -   -  -   -  -
12708   72 172 272 372 172 72 272 72   -  -
12709   73 173 273 373   -  -   -  -   -  -
12710   74 174 274 374 174 74   -  -   -  -
12711   75 175 275 375   -  - 275 75 375 75
12712   76 176 276 376 176 76   -  -   -  -
12713   77 177 277 377   -  -   -  -   -  -
12714   78 178 278 378 178 78 278 78   -  -
12715   79 179 279 379   -  -   -  -   -  -
12716   80 180 280 380 180 80   -  - 380 80
12717   81 181 281 381   -  - 281 81   -  -
12718   82 182 282 382 182 82   -  -   -  -
12719   83 183 283 383   -  -   -  -   -  -
12720   84 184 284 384 184 84 284 84   -  -
12721   85 185 285 385   -  -   -  - 385 85
12722   86 186 286 386 186 86   -  -   -  -
12723   87 187 287 387   -  - 287 87   -  -
12724   88 188 288 388 188 88   -  -   -  -
12725   89 189 289 389   -  -   -  -   -  -
12726   90 190 290 390 190 90 290 90 390 90
12727   91 191 291 391   -  -   -  -   -  -
12728   92 192 292 392 192 92   -  -   -  -
12729   93 193 293 393   -  - 293 93   -  -
12730   94 194 294 394 194 94   -  -   -  -
12731   95 195 295 395   -  -   -  - 395 95
12732   96   - 296 396   -  -   -  -   -  -
12733   97 197   - 397   -  -   -  -   -  -
12734   98 198 298   -   -  -   -  -   -  -
12735   99   -   -   -   -  -   -  -   -  -
12736    -   -   -   -   -  -   -  - 300  0
12738 do_execsql_test joinD-441 {
12739   SELECT t1.*, t2.*, t3.*, t4.*
12740   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
12741   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
12742   FULL JOIN t4 ON t1.d=t4.d
12743   WHERE t4.z>0
12744   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12745 } {
12746    5 105 205 305   -  -   -  - 305  5
12747   10 110 210 310 110 10   -  - 310 10
12748   15 115 215 315   -  - 215 15 315 15
12749   20 120 220 320 120 20   -  - 320 20
12750   25 125 225 325   -  -   -  - 325 25
12751   30 130 230 330 130 30 230 30 330 30
12752   35 135 235 335   -  -   -  - 335 35
12753   40 140 240 340 140 40   -  - 340 40
12754   45 145 245 345   -  - 245 45 345 45
12755   50 150 250 350 150 50   -  - 350 50
12756   55 155 255 355   -  -   -  - 355 55
12757   60 160 260 360 160 60 260 60 360 60
12758   65 165 265 365   -  -   -  - 365 65
12759   70 170 270 370 170 70   -  - 370 70
12760   75 175 275 375   -  - 275 75 375 75
12761   80 180 280 380 180 80   -  - 380 80
12762   85 185 285 385   -  -   -  - 385 85
12763   90 190 290 390 190 90 290 90 390 90
12764   95 195 295 395   -  -   -  - 395 95
12766 do_execsql_test joinD-442 {
12767   SELECT t1.*, t2.*, t3.*, t4.*
12768   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
12769   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
12770   FULL JOIN t4 ON t1.d=t4.d
12771   WHERE t4.z IS NULL OR t4.z>0
12772   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12773 } {
12774    1 101 201 301   -  -   -  -   -  -
12775    2 102 202 302 102  2   -  -   -  -
12776    3 103 203 303   -  - 203  3   -  -
12777    4 104 204 304 104  4   -  -   -  -
12778    5 105 205 305   -  -   -  - 305  5
12779    6 106 206 306 106  6 206  6   -  -
12780    7 107 207 307   -  -   -  -   -  -
12781    8 108 208 308 108  8   -  -   -  -
12782    9 109 209 309   -  - 209  9   -  -
12783   10 110 210 310 110 10   -  - 310 10
12784   11 111 211 311   -  -   -  -   -  -
12785   12 112 212 312 112 12 212 12   -  -
12786   13 113 213 313   -  -   -  -   -  -
12787   14 114 214 314 114 14   -  -   -  -
12788   15 115 215 315   -  - 215 15 315 15
12789   16 116 216 316 116 16   -  -   -  -
12790   17 117 217 317   -  -   -  -   -  -
12791   18 118 218 318 118 18 218 18   -  -
12792   19 119 219 319   -  -   -  -   -  -
12793   20 120 220 320 120 20   -  - 320 20
12794   21 121 221 321   -  - 221 21   -  -
12795   22 122 222 322 122 22   -  -   -  -
12796   23 123 223 323   -  -   -  -   -  -
12797   24 124 224 324 124 24 224 24   -  -
12798   25 125 225 325   -  -   -  - 325 25
12799   26 126 226 326 126 26   -  -   -  -
12800   27 127 227 327   -  - 227 27   -  -
12801   28 128 228 328 128 28   -  -   -  -
12802   29 129 229 329   -  -   -  -   -  -
12803   30 130 230 330 130 30 230 30 330 30
12804   31 131 231 331   -  -   -  -   -  -
12805   32 132 232 332 132 32   -  -   -  -
12806   33 133 233 333   -  - 233 33   -  -
12807   34 134 234 334 134 34   -  -   -  -
12808   35 135 235 335   -  -   -  - 335 35
12809   36 136 236 336 136 36 236 36   -  -
12810   37 137 237 337   -  -   -  -   -  -
12811   38 138 238 338 138 38   -  -   -  -
12812   39 139 239 339   -  - 239 39   -  -
12813   40 140 240 340 140 40   -  - 340 40
12814   41 141 241 341   -  -   -  -   -  -
12815   42 142 242 342 142 42 242 42   -  -
12816   43 143 243 343   -  -   -  -   -  -
12817   44 144 244 344 144 44   -  -   -  -
12818   45 145 245 345   -  - 245 45 345 45
12819   46 146 246 346 146 46   -  -   -  -
12820   47 147 247 347   -  -   -  -   -  -
12821   48 148 248 348 148 48 248 48   -  -
12822   49 149 249 349   -  -   -  -   -  -
12823   50 150 250 350 150 50   -  - 350 50
12824   51 151 251 351   -  - 251 51   -  -
12825   52 152 252 352 152 52   -  -   -  -
12826   53 153 253 353   -  -   -  -   -  -
12827   54 154 254 354 154 54 254 54   -  -
12828   55 155 255 355   -  -   -  - 355 55
12829   56 156 256 356 156 56   -  -   -  -
12830   57 157 257 357   -  - 257 57   -  -
12831   58 158 258 358 158 58   -  -   -  -
12832   59 159 259 359   -  -   -  -   -  -
12833   60 160 260 360 160 60 260 60 360 60
12834   61 161 261 361   -  -   -  -   -  -
12835   62 162 262 362 162 62   -  -   -  -
12836   63 163 263 363   -  - 263 63   -  -
12837   64 164 264 364 164 64   -  -   -  -
12838   65 165 265 365   -  -   -  - 365 65
12839   66 166 266 366 166 66 266 66   -  -
12840   67 167 267 367   -  -   -  -   -  -
12841   68 168 268 368 168 68   -  -   -  -
12842   69 169 269 369   -  - 269 69   -  -
12843   70 170 270 370 170 70   -  - 370 70
12844   71 171 271 371   -  -   -  -   -  -
12845   72 172 272 372 172 72 272 72   -  -
12846   73 173 273 373   -  -   -  -   -  -
12847   74 174 274 374 174 74   -  -   -  -
12848   75 175 275 375   -  - 275 75 375 75
12849   76 176 276 376 176 76   -  -   -  -
12850   77 177 277 377   -  -   -  -   -  -
12851   78 178 278 378 178 78 278 78   -  -
12852   79 179 279 379   -  -   -  -   -  -
12853   80 180 280 380 180 80   -  - 380 80
12854   81 181 281 381   -  - 281 81   -  -
12855   82 182 282 382 182 82   -  -   -  -
12856   83 183 283 383   -  -   -  -   -  -
12857   84 184 284 384 184 84 284 84   -  -
12858   85 185 285 385   -  -   -  - 385 85
12859   86 186 286 386 186 86   -  -   -  -
12860   87 187 287 387   -  - 287 87   -  -
12861   88 188 288 388 188 88   -  -   -  -
12862   89 189 289 389   -  -   -  -   -  -
12863   90 190 290 390 190 90 290 90 390 90
12864   91 191 291 391   -  -   -  -   -  -
12865   92 192 292 392 192 92   -  -   -  -
12866   93 193 293 393   -  - 293 93   -  -
12867   94 194 294 394 194 94   -  -   -  -
12868   95 195 295 395   -  -   -  - 395 95
12869   96   - 296 396   -  -   -  -   -  -
12870   97 197   - 397   -  -   -  -   -  -
12871   98 198 298   -   -  -   -  -   -  -
12872   99   -   -   -   -  -   -  -   -  -
12874 do_execsql_test joinD-443 {
12875   SELECT t1.*, t2.*, t3.*, t4.*
12876   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
12877   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
12878   FULL JOIN t4 ON t1.d=t4.d
12879   WHERE t2.x>0 AND t4.z>0
12880   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12881 } {
12882   10 110 210 310 110 10   -  - 310 10
12883   20 120 220 320 120 20   -  - 320 20
12884   30 130 230 330 130 30 230 30 330 30
12885   40 140 240 340 140 40   -  - 340 40
12886   50 150 250 350 150 50   -  - 350 50
12887   60 160 260 360 160 60 260 60 360 60
12888   70 170 270 370 170 70   -  - 370 70
12889   80 180 280 380 180 80   -  - 380 80
12890   90 190 290 390 190 90 290 90 390 90
12892 do_execsql_test joinD-444 {
12893   SELECT t1.*, t2.*, t3.*, t4.*
12894   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
12895   LEFT JOIN t3 ON t1.c=t3.c
12896   FULL JOIN t4 ON t1.d=t4.d
12897   WHERE t4.z>0 AND t3.y>0
12898   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12899 } {
12900   15 115 215 315   -  - 215 15 315 15
12901   30 130 230 330 130 30 230 30 330 30
12902   45 145 245 345   -  - 245 45 345 45
12903   60 160 260 360 160 60 260 60 360 60
12904   75 175 275 375   -  - 275 75 375 75
12905   90 190 290 390 190 90 290 90 390 90
12907 do_execsql_test joinD-445 {
12908   SELECT t1.*, t2.*, t3.*, t4.*
12909   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
12910   LEFT JOIN t3 ON t1.c=t3.c
12911   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
12912   WHERE t2.x>0 AND t3.y>0
12913   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12914 } {
12915    6 106 206 306 106  6 206  6   -  -
12916   12 112 212 312 112 12 212 12   -  -
12917   18 118 218 318 118 18 218 18   -  -
12918   24 124 224 324 124 24 224 24   -  -
12919   30 130 230 330 130 30 230 30 330 30
12920   36 136 236 336 136 36 236 36   -  -
12921   42 142 242 342 142 42 242 42   -  -
12922   48 148 248 348 148 48 248 48   -  -
12923   54 154 254 354 154 54 254 54   -  -
12924   60 160 260 360 160 60 260 60 360 60
12925   66 166 266 366 166 66 266 66   -  -
12926   72 172 272 372 172 72 272 72   -  -
12927   78 178 278 378 178 78 278 78   -  -
12928   84 184 284 384 184 84 284 84   -  -
12929   90 190 290 390 190 90 290 90 390 90
12931 do_execsql_test joinD-446 {
12932   SELECT t1.*, t2.*, t3.*, t4.*
12933   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
12934   LEFT JOIN t3 ON t1.c=t3.c
12935   FULL JOIN t4 ON t1.d=t4.d
12936   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
12937   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12938 } {
12939   30 130 230 330 130 30 230 30 330 30
12940   60 160 260 360 160 60 260 60 360 60
12941   90 190 290 390 190 90 290 90 390 90
12943 do_execsql_test joinD-447 {
12944   SELECT t1.*, t2.*, t3.*, t4.*
12945   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
12946   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
12947   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
12948   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
12949 } {
12950    0 100 200 300   -  -   -  -   -  -
12951    1 101 201 301   -  -   -  -   -  -
12952    2 102 202 302 102  2   -  -   -  -
12953    3 103 203 303   -  - 203  3   -  -
12954    4 104 204 304 104  4   -  -   -  -
12955    5 105 205 305   -  -   -  - 305  5
12956    6 106 206 306 106  6 206  6   -  -
12957    7 107 207 307   -  -   -  -   -  -
12958    8 108 208 308 108  8   -  -   -  -
12959    9 109 209 309   -  - 209  9   -  -
12960   10 110 210 310 110 10   -  - 310 10
12961   11 111 211 311   -  -   -  -   -  -
12962   12 112 212 312 112 12 212 12   -  -
12963   13 113 213 313   -  -   -  -   -  -
12964   14 114 214 314 114 14   -  -   -  -
12965   15 115 215 315   -  - 215 15 315 15
12966   16 116 216 316 116 16   -  -   -  -
12967   17 117 217 317   -  -   -  -   -  -
12968   18 118 218 318 118 18 218 18   -  -
12969   19 119 219 319   -  -   -  -   -  -
12970   20 120 220 320 120 20   -  - 320 20
12971   21 121 221 321   -  - 221 21   -  -
12972   22 122 222 322 122 22   -  -   -  -
12973   23 123 223 323   -  -   -  -   -  -
12974   24 124 224 324 124 24 224 24   -  -
12975   25 125 225 325   -  -   -  - 325 25
12976   26 126 226 326 126 26   -  -   -  -
12977   27 127 227 327   -  - 227 27   -  -
12978   28 128 228 328 128 28   -  -   -  -
12979   29 129 229 329   -  -   -  -   -  -
12980   30 130 230 330 130 30 230 30 330 30
12981   31 131 231 331   -  -   -  -   -  -
12982   32 132 232 332 132 32   -  -   -  -
12983   33 133 233 333   -  - 233 33   -  -
12984   34 134 234 334 134 34   -  -   -  -
12985   35 135 235 335   -  -   -  - 335 35
12986   36 136 236 336 136 36 236 36   -  -
12987   37 137 237 337   -  -   -  -   -  -
12988   38 138 238 338 138 38   -  -   -  -
12989   39 139 239 339   -  - 239 39   -  -
12990   40 140 240 340 140 40   -  - 340 40
12991   41 141 241 341   -  -   -  -   -  -
12992   42 142 242 342 142 42 242 42   -  -
12993   43 143 243 343   -  -   -  -   -  -
12994   44 144 244 344 144 44   -  -   -  -
12995   45 145 245 345   -  - 245 45 345 45
12996   46 146 246 346 146 46   -  -   -  -
12997   47 147 247 347   -  -   -  -   -  -
12998   48 148 248 348 148 48 248 48   -  -
12999   49 149 249 349   -  -   -  -   -  -
13000   50 150 250 350 150 50   -  - 350 50
13001   51 151 251 351   -  - 251 51   -  -
13002   52 152 252 352 152 52   -  -   -  -
13003   53 153 253 353   -  -   -  -   -  -
13004   54 154 254 354 154 54 254 54   -  -
13005   55 155 255 355   -  -   -  - 355 55
13006   56 156 256 356 156 56   -  -   -  -
13007   57 157 257 357   -  - 257 57   -  -
13008   58 158 258 358 158 58   -  -   -  -
13009   59 159 259 359   -  -   -  -   -  -
13010   60 160 260 360 160 60 260 60 360 60
13011   61 161 261 361   -  -   -  -   -  -
13012   62 162 262 362 162 62   -  -   -  -
13013   63 163 263 363   -  - 263 63   -  -
13014   64 164 264 364 164 64   -  -   -  -
13015   65 165 265 365   -  -   -  - 365 65
13016   66 166 266 366 166 66 266 66   -  -
13017   67 167 267 367   -  -   -  -   -  -
13018   68 168 268 368 168 68   -  -   -  -
13019   69 169 269 369   -  - 269 69   -  -
13020   70 170 270 370 170 70   -  - 370 70
13021   71 171 271 371   -  -   -  -   -  -
13022   72 172 272 372 172 72 272 72   -  -
13023   73 173 273 373   -  -   -  -   -  -
13024   74 174 274 374 174 74   -  -   -  -
13025   75 175 275 375   -  - 275 75 375 75
13026   76 176 276 376 176 76   -  -   -  -
13027   77 177 277 377   -  -   -  -   -  -
13028   78 178 278 378 178 78 278 78   -  -
13029   79 179 279 379   -  -   -  -   -  -
13030   80 180 280 380 180 80   -  - 380 80
13031   81 181 281 381   -  - 281 81   -  -
13032   82 182 282 382 182 82   -  -   -  -
13033   83 183 283 383   -  -   -  -   -  -
13034   84 184 284 384 184 84 284 84   -  -
13035   85 185 285 385   -  -   -  - 385 85
13036   86 186 286 386 186 86   -  -   -  -
13037   87 187 287 387   -  - 287 87   -  -
13038   88 188 288 388 188 88   -  -   -  -
13039   89 189 289 389   -  -   -  -   -  -
13040   90 190 290 390 190 90 290 90 390 90
13041   91 191 291 391   -  -   -  -   -  -
13042   92 192 292 392 192 92   -  -   -  -
13043   93 193 293 393   -  - 293 93   -  -
13044   94 194 294 394 194 94   -  -   -  -
13045   95 195 295 395   -  -   -  - 395 95
13046   96   - 296 396   -  -   -  -   -  -
13047   97 197   - 397   -  -   -  -   -  -
13048   98 198 298   -   -  -   -  -   -  -
13049   99   -   -   -   -  -   -  -   -  -
13050    -   -   -   -   -  -   -  - 300  0
13052 do_execsql_test joinD-448 {
13053   SELECT t1.*, t2.*, t3.*, t4.*
13054   FROM t1 LEFT JOIN t2 ON t2.x>0
13055   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
13056   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
13057   WHERE t1.b IS NOT DISTINCT FROM t2.b
13058   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13059 } {
13060    2 102 202 302 102  2   -  -   -  -
13061    4 104 204 304 104  4   -  -   -  -
13062    6 106 206 306 106  6 206  6   -  -
13063    8 108 208 308 108  8   -  -   -  -
13064   10 110 210 310 110 10   -  - 310 10
13065   12 112 212 312 112 12 212 12   -  -
13066   14 114 214 314 114 14   -  -   -  -
13067   16 116 216 316 116 16   -  -   -  -
13068   18 118 218 318 118 18 218 18   -  -
13069   20 120 220 320 120 20   -  - 320 20
13070   22 122 222 322 122 22   -  -   -  -
13071   24 124 224 324 124 24 224 24   -  -
13072   26 126 226 326 126 26   -  -   -  -
13073   28 128 228 328 128 28   -  -   -  -
13074   30 130 230 330 130 30 230 30 330 30
13075   32 132 232 332 132 32   -  -   -  -
13076   34 134 234 334 134 34   -  -   -  -
13077   36 136 236 336 136 36 236 36   -  -
13078   38 138 238 338 138 38   -  -   -  -
13079   40 140 240 340 140 40   -  - 340 40
13080   42 142 242 342 142 42 242 42   -  -
13081   44 144 244 344 144 44   -  -   -  -
13082   46 146 246 346 146 46   -  -   -  -
13083   48 148 248 348 148 48 248 48   -  -
13084   50 150 250 350 150 50   -  - 350 50
13085   52 152 252 352 152 52   -  -   -  -
13086   54 154 254 354 154 54 254 54   -  -
13087   56 156 256 356 156 56   -  -   -  -
13088   58 158 258 358 158 58   -  -   -  -
13089   60 160 260 360 160 60 260 60 360 60
13090   62 162 262 362 162 62   -  -   -  -
13091   64 164 264 364 164 64   -  -   -  -
13092   66 166 266 366 166 66 266 66   -  -
13093   68 168 268 368 168 68   -  -   -  -
13094   70 170 270 370 170 70   -  - 370 70
13095   72 172 272 372 172 72 272 72   -  -
13096   74 174 274 374 174 74   -  -   -  -
13097   76 176 276 376 176 76   -  -   -  -
13098   78 178 278 378 178 78 278 78   -  -
13099   80 180 280 380 180 80   -  - 380 80
13100   82 182 282 382 182 82   -  -   -  -
13101   84 184 284 384 184 84 284 84   -  -
13102   86 186 286 386 186 86   -  -   -  -
13103   88 188 288 388 188 88   -  -   -  -
13104   90 190 290 390 190 90 290 90 390 90
13105   92 192 292 392 192 92   -  -   -  -
13106   94 194 294 394 194 94   -  -   -  -
13107    -   -   -   -   -  -   -  - 300  0
13109 do_execsql_test joinD-449 {
13110   SELECT t1.*, t2.*, t3.*, t4.*
13111   FROM t1 LEFT JOIN t2 ON t2.x>0
13112   LEFT JOIN t3 ON t3.y>0
13113   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
13114   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
13115   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13116 } {
13117    6 106 206 306 106  6 206  6   -  -
13118   12 112 212 312 112 12 212 12   -  -
13119   18 118 218 318 118 18 218 18   -  -
13120   24 124 224 324 124 24 224 24   -  -
13121   30 130 230 330 130 30 230 30 330 30
13122   36 136 236 336 136 36 236 36   -  -
13123   42 142 242 342 142 42 242 42   -  -
13124   48 148 248 348 148 48 248 48   -  -
13125   54 154 254 354 154 54 254 54   -  -
13126   60 160 260 360 160 60 260 60 360 60
13127   66 166 266 366 166 66 266 66   -  -
13128   72 172 272 372 172 72 272 72   -  -
13129   78 178 278 378 178 78 278 78   -  -
13130   84 184 284 384 184 84 284 84   -  -
13131   90 190 290 390 190 90 290 90 390 90
13132    -   -   -   -   -  -   -  - 300  0
13134 do_execsql_test joinD-450 {
13135   SELECT t1.*, t2.*, t3.*, t4.*
13136   FROM t1 LEFT JOIN t2 ON t2.x>0
13137   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
13138   FULL JOIN t4 ON t4.z>0
13139   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
13140   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13141 } {
13142   10 110 210 310 110 10   -  - 310 10
13143   20 120 220 320 120 20   -  - 320 20
13144   30 130 230 330 130 30 230 30 330 30
13145   40 140 240 340 140 40   -  - 340 40
13146   50 150 250 350 150 50   -  - 350 50
13147   60 160 260 360 160 60 260 60 360 60
13148   70 170 270 370 170 70   -  - 370 70
13149   80 180 280 380 180 80   -  - 380 80
13150   90 190 290 390 190 90 290 90 390 90
13152 do_execsql_test joinD-451 {
13153   SELECT t1.*, t2.*, t3.*, t4.*
13154   FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
13155   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
13156   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
13157   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13158 } {
13159    0 100 200 300   -  -   -  -   -  -
13160    1 101 201 301   -  -   -  -   -  -
13161    2 102 202 302 102  2   -  -   -  -
13162    3 103 203 303   -  - 203  3   -  -
13163    4 104 204 304 104  4   -  -   -  -
13164    5 105 205 305   -  -   -  - 305  5
13165    6 106 206 306 106  6 206  6   -  -
13166    7 107 207 307   -  -   -  -   -  -
13167    8 108 208 308 108  8   -  -   -  -
13168    9 109 209 309   -  - 209  9   -  -
13169   10 110 210 310 110 10   -  - 310 10
13170   11 111 211 311   -  -   -  -   -  -
13171   12 112 212 312 112 12 212 12   -  -
13172   13 113 213 313   -  -   -  -   -  -
13173   14 114 214 314 114 14   -  -   -  -
13174   15 115 215 315   -  - 215 15 315 15
13175   16 116 216 316 116 16   -  -   -  -
13176   17 117 217 317   -  -   -  -   -  -
13177   18 118 218 318 118 18 218 18   -  -
13178   19 119 219 319   -  -   -  -   -  -
13179   20 120 220 320 120 20   -  - 320 20
13180   21 121 221 321   -  - 221 21   -  -
13181   22 122 222 322 122 22   -  -   -  -
13182   23 123 223 323   -  -   -  -   -  -
13183   24 124 224 324 124 24 224 24   -  -
13184   25 125 225 325   -  -   -  - 325 25
13185   26 126 226 326 126 26   -  -   -  -
13186   27 127 227 327   -  - 227 27   -  -
13187   28 128 228 328 128 28   -  -   -  -
13188   29 129 229 329   -  -   -  -   -  -
13189   30 130 230 330 130 30 230 30 330 30
13190   31 131 231 331   -  -   -  -   -  -
13191   32 132 232 332 132 32   -  -   -  -
13192   33 133 233 333   -  - 233 33   -  -
13193   34 134 234 334 134 34   -  -   -  -
13194   35 135 235 335   -  -   -  - 335 35
13195   36 136 236 336 136 36 236 36   -  -
13196   37 137 237 337   -  -   -  -   -  -
13197   38 138 238 338 138 38   -  -   -  -
13198   39 139 239 339   -  - 239 39   -  -
13199   40 140 240 340 140 40   -  - 340 40
13200   41 141 241 341   -  -   -  -   -  -
13201   42 142 242 342 142 42 242 42   -  -
13202   43 143 243 343   -  -   -  -   -  -
13203   44 144 244 344 144 44   -  -   -  -
13204   45 145 245 345   -  - 245 45 345 45
13205   46 146 246 346 146 46   -  -   -  -
13206   47 147 247 347   -  -   -  -   -  -
13207   48 148 248 348 148 48 248 48   -  -
13208   49 149 249 349   -  -   -  -   -  -
13209   50 150 250 350 150 50   -  - 350 50
13210   51 151 251 351   -  - 251 51   -  -
13211   52 152 252 352 152 52   -  -   -  -
13212   53 153 253 353   -  -   -  -   -  -
13213   54 154 254 354 154 54 254 54   -  -
13214   55 155 255 355   -  -   -  - 355 55
13215   56 156 256 356 156 56   -  -   -  -
13216   57 157 257 357   -  - 257 57   -  -
13217   58 158 258 358 158 58   -  -   -  -
13218   59 159 259 359   -  -   -  -   -  -
13219   60 160 260 360 160 60 260 60 360 60
13220   61 161 261 361   -  -   -  -   -  -
13221   62 162 262 362 162 62   -  -   -  -
13222   63 163 263 363   -  - 263 63   -  -
13223   64 164 264 364 164 64   -  -   -  -
13224   65 165 265 365   -  -   -  - 365 65
13225   66 166 266 366 166 66 266 66   -  -
13226   67 167 267 367   -  -   -  -   -  -
13227   68 168 268 368 168 68   -  -   -  -
13228   69 169 269 369   -  - 269 69   -  -
13229   70 170 270 370 170 70   -  - 370 70
13230   71 171 271 371   -  -   -  -   -  -
13231   72 172 272 372 172 72 272 72   -  -
13232   73 173 273 373   -  -   -  -   -  -
13233   74 174 274 374 174 74   -  -   -  -
13234   75 175 275 375   -  - 275 75 375 75
13235   76 176 276 376 176 76   -  -   -  -
13236   77 177 277 377   -  -   -  -   -  -
13237   78 178 278 378 178 78 278 78   -  -
13238   79 179 279 379   -  -   -  -   -  -
13239   80 180 280 380 180 80   -  - 380 80
13240   81 181 281 381   -  - 281 81   -  -
13241   82 182 282 382 182 82   -  -   -  -
13242   83 183 283 383   -  -   -  -   -  -
13243   84 184 284 384 184 84 284 84   -  -
13244   85 185 285 385   -  -   -  - 385 85
13245   86 186 286 386 186 86   -  -   -  -
13246   87 187 287 387   -  - 287 87   -  -
13247   88 188 288 388 188 88   -  -   -  -
13248   89 189 289 389   -  -   -  -   -  -
13249   90 190 290 390 190 90 290 90 390 90
13250   91 191 291 391   -  -   -  -   -  -
13251   92 192 292 392 192 92   -  -   -  -
13252   93 193 293 393   -  - 293 93   -  -
13253   94 194 294 394 194 94   -  -   -  -
13254   95 195 295 395   -  -   -  - 395 95
13255   96   - 296 396   -  -   -  -   -  -
13256   97 197   - 397   -  -   -  -   -  -
13257   98 198 298   -   -  -   -  -   -  -
13258   99   -   -   -   -  -   -  -   -  -
13259    -   -   -   -   -  -   -  - 300  0
13261 do_execsql_test joinD-452 {
13262   SELECT t1.*, t2.*, t3.*, t4.*
13263   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
13264   LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
13265   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
13266   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13267 } {
13268    0 100 200 300   -  -   -  -   -  -
13269    1 101 201 301   -  -   -  -   -  -
13270    2 102 202 302 102  2   -  -   -  -
13271    3 103 203 303   -  - 203  3   -  -
13272    4 104 204 304 104  4   -  -   -  -
13273    5 105 205 305   -  -   -  - 305  5
13274    6 106 206 306 106  6 206  6   -  -
13275    7 107 207 307   -  -   -  -   -  -
13276    8 108 208 308 108  8   -  -   -  -
13277    9 109 209 309   -  - 209  9   -  -
13278   10 110 210 310 110 10   -  - 310 10
13279   11 111 211 311   -  -   -  -   -  -
13280   12 112 212 312 112 12 212 12   -  -
13281   13 113 213 313   -  -   -  -   -  -
13282   14 114 214 314 114 14   -  -   -  -
13283   15 115 215 315   -  - 215 15 315 15
13284   16 116 216 316 116 16   -  -   -  -
13285   17 117 217 317   -  -   -  -   -  -
13286   18 118 218 318 118 18 218 18   -  -
13287   19 119 219 319   -  -   -  -   -  -
13288   20 120 220 320 120 20   -  - 320 20
13289   21 121 221 321   -  - 221 21   -  -
13290   22 122 222 322 122 22   -  -   -  -
13291   23 123 223 323   -  -   -  -   -  -
13292   24 124 224 324 124 24 224 24   -  -
13293   25 125 225 325   -  -   -  - 325 25
13294   26 126 226 326 126 26   -  -   -  -
13295   27 127 227 327   -  - 227 27   -  -
13296   28 128 228 328 128 28   -  -   -  -
13297   29 129 229 329   -  -   -  -   -  -
13298   30 130 230 330 130 30 230 30 330 30
13299   31 131 231 331   -  -   -  -   -  -
13300   32 132 232 332 132 32   -  -   -  -
13301   33 133 233 333   -  - 233 33   -  -
13302   34 134 234 334 134 34   -  -   -  -
13303   35 135 235 335   -  -   -  - 335 35
13304   36 136 236 336 136 36 236 36   -  -
13305   37 137 237 337   -  -   -  -   -  -
13306   38 138 238 338 138 38   -  -   -  -
13307   39 139 239 339   -  - 239 39   -  -
13308   40 140 240 340 140 40   -  - 340 40
13309   41 141 241 341   -  -   -  -   -  -
13310   42 142 242 342 142 42 242 42   -  -
13311   43 143 243 343   -  -   -  -   -  -
13312   44 144 244 344 144 44   -  -   -  -
13313   45 145 245 345   -  - 245 45 345 45
13314   46 146 246 346 146 46   -  -   -  -
13315   47 147 247 347   -  -   -  -   -  -
13316   48 148 248 348 148 48 248 48   -  -
13317   49 149 249 349   -  -   -  -   -  -
13318   50 150 250 350 150 50   -  - 350 50
13319   51 151 251 351   -  - 251 51   -  -
13320   52 152 252 352 152 52   -  -   -  -
13321   53 153 253 353   -  -   -  -   -  -
13322   54 154 254 354 154 54 254 54   -  -
13323   55 155 255 355   -  -   -  - 355 55
13324   56 156 256 356 156 56   -  -   -  -
13325   57 157 257 357   -  - 257 57   -  -
13326   58 158 258 358 158 58   -  -   -  -
13327   59 159 259 359   -  -   -  -   -  -
13328   60 160 260 360 160 60 260 60 360 60
13329   61 161 261 361   -  -   -  -   -  -
13330   62 162 262 362 162 62   -  -   -  -
13331   63 163 263 363   -  - 263 63   -  -
13332   64 164 264 364 164 64   -  -   -  -
13333   65 165 265 365   -  -   -  - 365 65
13334   66 166 266 366 166 66 266 66   -  -
13335   67 167 267 367   -  -   -  -   -  -
13336   68 168 268 368 168 68   -  -   -  -
13337   69 169 269 369   -  - 269 69   -  -
13338   70 170 270 370 170 70   -  - 370 70
13339   71 171 271 371   -  -   -  -   -  -
13340   72 172 272 372 172 72 272 72   -  -
13341   73 173 273 373   -  -   -  -   -  -
13342   74 174 274 374 174 74   -  -   -  -
13343   75 175 275 375   -  - 275 75 375 75
13344   76 176 276 376 176 76   -  -   -  -
13345   77 177 277 377   -  -   -  -   -  -
13346   78 178 278 378 178 78 278 78   -  -
13347   79 179 279 379   -  -   -  -   -  -
13348   80 180 280 380 180 80   -  - 380 80
13349   81 181 281 381   -  - 281 81   -  -
13350   82 182 282 382 182 82   -  -   -  -
13351   83 183 283 383   -  -   -  -   -  -
13352   84 184 284 384 184 84 284 84   -  -
13353   85 185 285 385   -  -   -  - 385 85
13354   86 186 286 386 186 86   -  -   -  -
13355   87 187 287 387   -  - 287 87   -  -
13356   88 188 288 388 188 88   -  -   -  -
13357   89 189 289 389   -  -   -  -   -  -
13358   90 190 290 390 190 90 290 90 390 90
13359   91 191 291 391   -  -   -  -   -  -
13360   92 192 292 392 192 92   -  -   -  -
13361   93 193 293 393   -  - 293 93   -  -
13362   94 194 294 394 194 94   -  -   -  -
13363   95 195 295 395   -  -   -  - 395 95
13364   96   - 296 396   -  -   -  -   -  -
13365   97 197   - 397   -  -   -  -   -  -
13366   98 198 298   -   -  -   -  -   -  -
13367   99   -   -   -   -  -   -  -   -  -
13368    -   -   -   -   -  -   -  - 300  0
13370 do_execsql_test joinD-453 {
13371   SELECT t1.*, t2.*, t3.*, t4.*
13372   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
13373   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
13374   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
13375   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13376 } {
13377   15 115 215 315   -  - 215 15 315 15
13378   30 130 230 330 130 30 230 30 330 30
13379   45 145 245 345   -  - 245 45 345 45
13380   60 160 260 360 160 60 260 60 360 60
13381   75 175 275 375   -  - 275 75 375 75
13382   90 190 290 390 190 90 290 90 390 90
13384 do_execsql_test joinD-454 {
13385   SELECT t1.*, t2.*, t3.*, t4.*
13386   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
13387   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
13388   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
13389   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13390 } {
13391   15 115 215 315   -  - 215 15 315 15
13392   30 130 230 330 130 30 230 30 330 30
13393   45 145 245 345   -  - 245 45 345 45
13394   60 160 260 360 160 60 260 60 360 60
13395   75 175 275 375   -  - 275 75 375 75
13396   90 190 290 390 190 90 290 90 390 90
13398 do_execsql_test joinD-455 {
13399   SELECT t1.*, t2.*, t3.*, t4.*
13400   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
13401   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
13402   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
13403   WHERE t2.x>0
13404   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13405 } {
13406   30 130 230 330 130 30 230 30 330 30
13407   60 160 260 360 160 60 260 60 360 60
13408   90 190 290 390 190 90 290 90 390 90
13410 do_execsql_test joinD-456 {
13411   SELECT t1.*, t2.*, t3.*, t4.*
13412   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
13413   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
13414   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
13415   WHERE (t2.x>0 OR t2.x IS NULL)
13416   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13417 } {
13418   15 115 215 315   -  - 215 15 315 15
13419   30 130 230 330 130 30 230 30 330 30
13420   45 145 245 345   -  - 245 45 345 45
13421   60 160 260 360 160 60 260 60 360 60
13422   75 175 275 375   -  - 275 75 375 75
13423   90 190 290 390 190 90 290 90 390 90
13425 do_execsql_test joinD-457 {
13426   SELECT t1.*, t2.*, t3.*, t4.*
13427   FROM t1 LEFT JOIN t2 ON true
13428   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
13429   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
13430   WHERE t1.b=t2.b AND t2.x>0
13431   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13432 } {
13433   30 130 230 330 130 30 230 30 330 30
13434   60 160 260 360 160 60 260 60 360 60
13435   90 190 290 390 190 90 290 90 390 90
13437 do_execsql_test joinD-458 {
13438   SELECT t1.*, t2.*, t3.*, t4.*
13439   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
13440   RIGHT JOIN t3 ON t1.c=t3.c
13441   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
13442   WHERE t3.y>0
13443   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13444 } {
13445   15 115 215 315   -  - 215 15 315 15
13446   30 130 230 330 130 30 230 30 330 30
13447   45 145 245 345   -  - 245 45 345 45
13448   60 160 260 360 160 60 260 60 360 60
13449   75 175 275 375   -  - 275 75 375 75
13450   90 190 290 390 190 90 290 90 390 90
13452 do_execsql_test joinD-459 {
13453   SELECT t1.*, t2.*, t3.*, t4.*
13454   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
13455   RIGHT JOIN t3 ON t1.c=t3.c
13456   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
13457   WHERE t3.y>0 OR t3.y IS NULL
13458   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13459 } {
13460   15 115 215 315   -  - 215 15 315 15
13461   30 130 230 330 130 30 230 30 330 30
13462   45 145 245 345   -  - 245 45 345 45
13463   60 160 260 360 160 60 260 60 360 60
13464   75 175 275 375   -  - 275 75 375 75
13465   90 190 290 390 190 90 290 90 390 90
13467 do_execsql_test joinD-460 {
13468   SELECT t1.*, t2.*, t3.*, t4.*
13469   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
13470   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
13471   INNER JOIN t4 ON t1.d=t4.d
13472   WHERE t4.z>0
13473   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13474 } {
13475   15 115 215 315   -  - 215 15 315 15
13476   30 130 230 330 130 30 230 30 330 30
13477   45 145 245 345   -  - 245 45 345 45
13478   60 160 260 360 160 60 260 60 360 60
13479   75 175 275 375   -  - 275 75 375 75
13480   90 190 290 390 190 90 290 90 390 90
13482 do_execsql_test joinD-461 {
13483   SELECT t1.*, t2.*, t3.*, t4.*
13484   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
13485   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
13486   INNER JOIN t4 ON t1.d=t4.d
13487   WHERE t4.z IS NULL OR t4.z>0
13488   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13489 } {
13490   15 115 215 315   -  - 215 15 315 15
13491   30 130 230 330 130 30 230 30 330 30
13492   45 145 245 345   -  - 245 45 345 45
13493   60 160 260 360 160 60 260 60 360 60
13494   75 175 275 375   -  - 275 75 375 75
13495   90 190 290 390 190 90 290 90 390 90
13497 do_execsql_test joinD-462 {
13498   SELECT t1.*, t2.*, t3.*, t4.*
13499   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
13500   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
13501   INNER JOIN t4 ON t1.d=t4.d
13502   WHERE t2.x>0 AND t4.z>0
13503   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13504 } {
13505   30 130 230 330 130 30 230 30 330 30
13506   60 160 260 360 160 60 260 60 360 60
13507   90 190 290 390 190 90 290 90 390 90
13509 do_execsql_test joinD-463 {
13510   SELECT t1.*, t2.*, t3.*, t4.*
13511   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
13512   RIGHT JOIN t3 ON t1.c=t3.c
13513   INNER JOIN t4 ON t1.d=t4.d
13514   WHERE t4.z>0 AND t3.y>0
13515   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13516 } {
13517   15 115 215 315   -  - 215 15 315 15
13518   30 130 230 330 130 30 230 30 330 30
13519   45 145 245 345   -  - 245 45 345 45
13520   60 160 260 360 160 60 260 60 360 60
13521   75 175 275 375   -  - 275 75 375 75
13522   90 190 290 390 190 90 290 90 390 90
13524 do_execsql_test joinD-464 {
13525   SELECT t1.*, t2.*, t3.*, t4.*
13526   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
13527   RIGHT JOIN t3 ON t1.c=t3.c
13528   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
13529   WHERE t2.x>0 AND t3.y>0
13530   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13531 } {
13532   30 130 230 330 130 30 230 30 330 30
13533   60 160 260 360 160 60 260 60 360 60
13534   90 190 290 390 190 90 290 90 390 90
13536 do_execsql_test joinD-465 {
13537   SELECT t1.*, t2.*, t3.*, t4.*
13538   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
13539   RIGHT JOIN t3 ON t1.c=t3.c
13540   INNER JOIN t4 ON t1.d=t4.d
13541   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
13542   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13543 } {
13544   30 130 230 330 130 30 230 30 330 30
13545   60 160 260 360 160 60 260 60 360 60
13546   90 190 290 390 190 90 290 90 390 90
13548 do_execsql_test joinD-466 {
13549   SELECT t1.*, t2.*, t3.*, t4.*
13550   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
13551   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
13552   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
13553   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13554 } {
13555   15 115 215 315   -  - 215 15 315 15
13556   30 130 230 330 130 30 230 30 330 30
13557   45 145 245 345   -  - 245 45 345 45
13558   60 160 260 360 160 60 260 60 360 60
13559   75 175 275 375   -  - 275 75 375 75
13560   90 190 290 390 190 90 290 90 390 90
13562 do_execsql_test joinD-467 {
13563   SELECT t1.*, t2.*, t3.*, t4.*
13564   FROM t1 LEFT JOIN t2 ON t2.x>0
13565   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
13566   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
13567   WHERE t1.b IS NOT DISTINCT FROM t2.b
13568   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13569 } {
13570   30 130 230 330 130 30 230 30 330 30
13571   60 160 260 360 160 60 260 60 360 60
13572   90 190 290 390 190 90 290 90 390 90
13574 do_execsql_test joinD-468 {
13575   SELECT t1.*, t2.*, t3.*, t4.*
13576   FROM t1 LEFT JOIN t2 ON t2.x>0
13577   RIGHT JOIN t3 ON t3.y>0
13578   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
13579   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
13580   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13581 } {
13582   30 130 230 330 130 30 230 30 330 30
13583   60 160 260 360 160 60 260 60 360 60
13584   90 190 290 390 190 90 290 90 390 90
13586 do_execsql_test joinD-469 {
13587   SELECT t1.*, t2.*, t3.*, t4.*
13588   FROM t1 LEFT JOIN t2 ON t2.x>0
13589   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
13590   INNER JOIN t4 ON t4.z>0
13591   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
13592   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13593 } {
13594   30 130 230 330 130 30 230 30 330 30
13595   60 160 260 360 160 60 260 60 360 60
13596   90 190 290 390 190 90 290 90 390 90
13598 do_execsql_test joinD-470 {
13599   SELECT t1.*, t2.*, t3.*, t4.*
13600   FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
13601   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
13602   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
13603   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13604 } {
13605   15 115 215 315   -  - 215 15 315 15
13606   30 130 230 330 130 30 230 30 330 30
13607   45 145 245 345   -  - 245 45 345 45
13608   60 160 260 360 160 60 260 60 360 60
13609   75 175 275 375   -  - 275 75 375 75
13610   90 190 290 390 190 90 290 90 390 90
13612 do_execsql_test joinD-471 {
13613   SELECT t1.*, t2.*, t3.*, t4.*
13614   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
13615   RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
13616   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
13617   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13618 } {
13619   15 115 215 315   -  - 215 15 315 15
13620   30 130 230 330 130 30 230 30 330 30
13621   45 145 245 345   -  - 245 45 345 45
13622   60 160 260 360 160 60 260 60 360 60
13623   75 175 275 375   -  - 275 75 375 75
13624   90 190 290 390 190 90 290 90 390 90
13626 do_execsql_test joinD-472 {
13627   SELECT t1.*, t2.*, t3.*, t4.*
13628   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
13629   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
13630   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
13631   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13632 } {
13633    3 103 203 303   -  - 203  3   -  -
13634    6 106 206 306 106  6 206  6   -  -
13635    9 109 209 309   -  - 209  9   -  -
13636   12 112 212 312 112 12 212 12   -  -
13637   15 115 215 315   -  - 215 15 315 15
13638   18 118 218 318 118 18 218 18   -  -
13639   21 121 221 321   -  - 221 21   -  -
13640   24 124 224 324 124 24 224 24   -  -
13641   27 127 227 327   -  - 227 27   -  -
13642   30 130 230 330 130 30 230 30 330 30
13643   33 133 233 333   -  - 233 33   -  -
13644   36 136 236 336 136 36 236 36   -  -
13645   39 139 239 339   -  - 239 39   -  -
13646   42 142 242 342 142 42 242 42   -  -
13647   45 145 245 345   -  - 245 45 345 45
13648   48 148 248 348 148 48 248 48   -  -
13649   51 151 251 351   -  - 251 51   -  -
13650   54 154 254 354 154 54 254 54   -  -
13651   57 157 257 357   -  - 257 57   -  -
13652   60 160 260 360 160 60 260 60 360 60
13653   63 163 263 363   -  - 263 63   -  -
13654   66 166 266 366 166 66 266 66   -  -
13655   69 169 269 369   -  - 269 69   -  -
13656   72 172 272 372 172 72 272 72   -  -
13657   75 175 275 375   -  - 275 75 375 75
13658   78 178 278 378 178 78 278 78   -  -
13659   81 181 281 381   -  - 281 81   -  -
13660   84 184 284 384 184 84 284 84   -  -
13661   87 187 287 387   -  - 287 87   -  -
13662   90 190 290 390 190 90 290 90 390 90
13663   93 193 293 393   -  - 293 93   -  -
13664    -   -   -   -   -  - 200  0   -  -
13666 do_execsql_test joinD-473 {
13667   SELECT t1.*, t2.*, t3.*, t4.*
13668   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
13669   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
13670   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
13671   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13672 } {
13673    3 103 203 303   -  - 203  3   -  -
13674    6 106 206 306 106  6 206  6   -  -
13675    9 109 209 309   -  - 209  9   -  -
13676   12 112 212 312 112 12 212 12   -  -
13677   15 115 215 315   -  - 215 15 315 15
13678   18 118 218 318 118 18 218 18   -  -
13679   21 121 221 321   -  - 221 21   -  -
13680   24 124 224 324 124 24 224 24   -  -
13681   27 127 227 327   -  - 227 27   -  -
13682   30 130 230 330 130 30 230 30 330 30
13683   33 133 233 333   -  - 233 33   -  -
13684   36 136 236 336 136 36 236 36   -  -
13685   39 139 239 339   -  - 239 39   -  -
13686   42 142 242 342 142 42 242 42   -  -
13687   45 145 245 345   -  - 245 45 345 45
13688   48 148 248 348 148 48 248 48   -  -
13689   51 151 251 351   -  - 251 51   -  -
13690   54 154 254 354 154 54 254 54   -  -
13691   57 157 257 357   -  - 257 57   -  -
13692   60 160 260 360 160 60 260 60 360 60
13693   63 163 263 363   -  - 263 63   -  -
13694   66 166 266 366 166 66 266 66   -  -
13695   69 169 269 369   -  - 269 69   -  -
13696   72 172 272 372 172 72 272 72   -  -
13697   75 175 275 375   -  - 275 75 375 75
13698   78 178 278 378 178 78 278 78   -  -
13699   81 181 281 381   -  - 281 81   -  -
13700   84 184 284 384 184 84 284 84   -  -
13701   87 187 287 387   -  - 287 87   -  -
13702   90 190 290 390 190 90 290 90 390 90
13703   93 193 293 393   -  - 293 93   -  -
13704    -   -   -   -   -  - 200  0   -  -
13706 do_execsql_test joinD-474 {
13707   SELECT t1.*, t2.*, t3.*, t4.*
13708   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
13709   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
13710   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
13711   WHERE t2.x>0
13712   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13713 } {
13714    6 106 206 306 106  6 206  6   -  -
13715   12 112 212 312 112 12 212 12   -  -
13716   18 118 218 318 118 18 218 18   -  -
13717   24 124 224 324 124 24 224 24   -  -
13718   30 130 230 330 130 30 230 30 330 30
13719   36 136 236 336 136 36 236 36   -  -
13720   42 142 242 342 142 42 242 42   -  -
13721   48 148 248 348 148 48 248 48   -  -
13722   54 154 254 354 154 54 254 54   -  -
13723   60 160 260 360 160 60 260 60 360 60
13724   66 166 266 366 166 66 266 66   -  -
13725   72 172 272 372 172 72 272 72   -  -
13726   78 178 278 378 178 78 278 78   -  -
13727   84 184 284 384 184 84 284 84   -  -
13728   90 190 290 390 190 90 290 90 390 90
13730 do_execsql_test joinD-475 {
13731   SELECT t1.*, t2.*, t3.*, t4.*
13732   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
13733   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
13734   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
13735   WHERE (t2.x>0 OR t2.x IS NULL)
13736   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13737 } {
13738    3 103 203 303   -  - 203  3   -  -
13739    6 106 206 306 106  6 206  6   -  -
13740    9 109 209 309   -  - 209  9   -  -
13741   12 112 212 312 112 12 212 12   -  -
13742   15 115 215 315   -  - 215 15 315 15
13743   18 118 218 318 118 18 218 18   -  -
13744   21 121 221 321   -  - 221 21   -  -
13745   24 124 224 324 124 24 224 24   -  -
13746   27 127 227 327   -  - 227 27   -  -
13747   30 130 230 330 130 30 230 30 330 30
13748   33 133 233 333   -  - 233 33   -  -
13749   36 136 236 336 136 36 236 36   -  -
13750   39 139 239 339   -  - 239 39   -  -
13751   42 142 242 342 142 42 242 42   -  -
13752   45 145 245 345   -  - 245 45 345 45
13753   48 148 248 348 148 48 248 48   -  -
13754   51 151 251 351   -  - 251 51   -  -
13755   54 154 254 354 154 54 254 54   -  -
13756   57 157 257 357   -  - 257 57   -  -
13757   60 160 260 360 160 60 260 60 360 60
13758   63 163 263 363   -  - 263 63   -  -
13759   66 166 266 366 166 66 266 66   -  -
13760   69 169 269 369   -  - 269 69   -  -
13761   72 172 272 372 172 72 272 72   -  -
13762   75 175 275 375   -  - 275 75 375 75
13763   78 178 278 378 178 78 278 78   -  -
13764   81 181 281 381   -  - 281 81   -  -
13765   84 184 284 384 184 84 284 84   -  -
13766   87 187 287 387   -  - 287 87   -  -
13767   90 190 290 390 190 90 290 90 390 90
13768   93 193 293 393   -  - 293 93   -  -
13769    -   -   -   -   -  - 200  0   -  -
13771 do_execsql_test joinD-476 {
13772   SELECT t1.*, t2.*, t3.*, t4.*
13773   FROM t1 LEFT JOIN t2 ON true
13774   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
13775   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
13776   WHERE t1.b=t2.b AND t2.x>0
13777   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13778 } {
13779    6 106 206 306 106  6 206  6   -  -
13780   12 112 212 312 112 12 212 12   -  -
13781   18 118 218 318 118 18 218 18   -  -
13782   24 124 224 324 124 24 224 24   -  -
13783   30 130 230 330 130 30 230 30 330 30
13784   36 136 236 336 136 36 236 36   -  -
13785   42 142 242 342 142 42 242 42   -  -
13786   48 148 248 348 148 48 248 48   -  -
13787   54 154 254 354 154 54 254 54   -  -
13788   60 160 260 360 160 60 260 60 360 60
13789   66 166 266 366 166 66 266 66   -  -
13790   72 172 272 372 172 72 272 72   -  -
13791   78 178 278 378 178 78 278 78   -  -
13792   84 184 284 384 184 84 284 84   -  -
13793   90 190 290 390 190 90 290 90 390 90
13795 do_execsql_test joinD-477 {
13796   SELECT t1.*, t2.*, t3.*, t4.*
13797   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
13798   RIGHT JOIN t3 ON t1.c=t3.c
13799   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
13800   WHERE t3.y>0
13801   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13802 } {
13803    3 103 203 303   -  - 203  3   -  -
13804    6 106 206 306 106  6 206  6   -  -
13805    9 109 209 309   -  - 209  9   -  -
13806   12 112 212 312 112 12 212 12   -  -
13807   15 115 215 315   -  - 215 15 315 15
13808   18 118 218 318 118 18 218 18   -  -
13809   21 121 221 321   -  - 221 21   -  -
13810   24 124 224 324 124 24 224 24   -  -
13811   27 127 227 327   -  - 227 27   -  -
13812   30 130 230 330 130 30 230 30 330 30
13813   33 133 233 333   -  - 233 33   -  -
13814   36 136 236 336 136 36 236 36   -  -
13815   39 139 239 339   -  - 239 39   -  -
13816   42 142 242 342 142 42 242 42   -  -
13817   45 145 245 345   -  - 245 45 345 45
13818   48 148 248 348 148 48 248 48   -  -
13819   51 151 251 351   -  - 251 51   -  -
13820   54 154 254 354 154 54 254 54   -  -
13821   57 157 257 357   -  - 257 57   -  -
13822   60 160 260 360 160 60 260 60 360 60
13823   63 163 263 363   -  - 263 63   -  -
13824   66 166 266 366 166 66 266 66   -  -
13825   69 169 269 369   -  - 269 69   -  -
13826   72 172 272 372 172 72 272 72   -  -
13827   75 175 275 375   -  - 275 75 375 75
13828   78 178 278 378 178 78 278 78   -  -
13829   81 181 281 381   -  - 281 81   -  -
13830   84 184 284 384 184 84 284 84   -  -
13831   87 187 287 387   -  - 287 87   -  -
13832   90 190 290 390 190 90 290 90 390 90
13833   93 193 293 393   -  - 293 93   -  -
13835 do_execsql_test joinD-478 {
13836   SELECT t1.*, t2.*, t3.*, t4.*
13837   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
13838   RIGHT JOIN t3 ON t1.c=t3.c
13839   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
13840   WHERE t3.y>0 OR t3.y IS NULL
13841   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13842 } {
13843    3 103 203 303   -  - 203  3   -  -
13844    6 106 206 306 106  6 206  6   -  -
13845    9 109 209 309   -  - 209  9   -  -
13846   12 112 212 312 112 12 212 12   -  -
13847   15 115 215 315   -  - 215 15 315 15
13848   18 118 218 318 118 18 218 18   -  -
13849   21 121 221 321   -  - 221 21   -  -
13850   24 124 224 324 124 24 224 24   -  -
13851   27 127 227 327   -  - 227 27   -  -
13852   30 130 230 330 130 30 230 30 330 30
13853   33 133 233 333   -  - 233 33   -  -
13854   36 136 236 336 136 36 236 36   -  -
13855   39 139 239 339   -  - 239 39   -  -
13856   42 142 242 342 142 42 242 42   -  -
13857   45 145 245 345   -  - 245 45 345 45
13858   48 148 248 348 148 48 248 48   -  -
13859   51 151 251 351   -  - 251 51   -  -
13860   54 154 254 354 154 54 254 54   -  -
13861   57 157 257 357   -  - 257 57   -  -
13862   60 160 260 360 160 60 260 60 360 60
13863   63 163 263 363   -  - 263 63   -  -
13864   66 166 266 366 166 66 266 66   -  -
13865   69 169 269 369   -  - 269 69   -  -
13866   72 172 272 372 172 72 272 72   -  -
13867   75 175 275 375   -  - 275 75 375 75
13868   78 178 278 378 178 78 278 78   -  -
13869   81 181 281 381   -  - 281 81   -  -
13870   84 184 284 384 184 84 284 84   -  -
13871   87 187 287 387   -  - 287 87   -  -
13872   90 190 290 390 190 90 290 90 390 90
13873   93 193 293 393   -  - 293 93   -  -
13875 do_execsql_test joinD-479 {
13876   SELECT t1.*, t2.*, t3.*, t4.*
13877   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
13878   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
13879   LEFT JOIN t4 ON t1.d=t4.d
13880   WHERE t4.z>0
13881   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13882 } {
13883   15 115 215 315   -  - 215 15 315 15
13884   30 130 230 330 130 30 230 30 330 30
13885   45 145 245 345   -  - 245 45 345 45
13886   60 160 260 360 160 60 260 60 360 60
13887   75 175 275 375   -  - 275 75 375 75
13888   90 190 290 390 190 90 290 90 390 90
13890 do_execsql_test joinD-480 {
13891   SELECT t1.*, t2.*, t3.*, t4.*
13892   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
13893   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
13894   LEFT JOIN t4 ON t1.d=t4.d
13895   WHERE t4.z IS NULL OR t4.z>0
13896   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13897 } {
13898    3 103 203 303   -  - 203  3   -  -
13899    6 106 206 306 106  6 206  6   -  -
13900    9 109 209 309   -  - 209  9   -  -
13901   12 112 212 312 112 12 212 12   -  -
13902   15 115 215 315   -  - 215 15 315 15
13903   18 118 218 318 118 18 218 18   -  -
13904   21 121 221 321   -  - 221 21   -  -
13905   24 124 224 324 124 24 224 24   -  -
13906   27 127 227 327   -  - 227 27   -  -
13907   30 130 230 330 130 30 230 30 330 30
13908   33 133 233 333   -  - 233 33   -  -
13909   36 136 236 336 136 36 236 36   -  -
13910   39 139 239 339   -  - 239 39   -  -
13911   42 142 242 342 142 42 242 42   -  -
13912   45 145 245 345   -  - 245 45 345 45
13913   48 148 248 348 148 48 248 48   -  -
13914   51 151 251 351   -  - 251 51   -  -
13915   54 154 254 354 154 54 254 54   -  -
13916   57 157 257 357   -  - 257 57   -  -
13917   60 160 260 360 160 60 260 60 360 60
13918   63 163 263 363   -  - 263 63   -  -
13919   66 166 266 366 166 66 266 66   -  -
13920   69 169 269 369   -  - 269 69   -  -
13921   72 172 272 372 172 72 272 72   -  -
13922   75 175 275 375   -  - 275 75 375 75
13923   78 178 278 378 178 78 278 78   -  -
13924   81 181 281 381   -  - 281 81   -  -
13925   84 184 284 384 184 84 284 84   -  -
13926   87 187 287 387   -  - 287 87   -  -
13927   90 190 290 390 190 90 290 90 390 90
13928   93 193 293 393   -  - 293 93   -  -
13929    -   -   -   -   -  - 200  0   -  -
13931 do_execsql_test joinD-481 {
13932   SELECT t1.*, t2.*, t3.*, t4.*
13933   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
13934   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
13935   LEFT JOIN t4 ON t1.d=t4.d
13936   WHERE t2.x>0 AND t4.z>0
13937   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13938 } {
13939   30 130 230 330 130 30 230 30 330 30
13940   60 160 260 360 160 60 260 60 360 60
13941   90 190 290 390 190 90 290 90 390 90
13943 do_execsql_test joinD-482 {
13944   SELECT t1.*, t2.*, t3.*, t4.*
13945   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
13946   RIGHT JOIN t3 ON t1.c=t3.c
13947   LEFT JOIN t4 ON t1.d=t4.d
13948   WHERE t4.z>0 AND t3.y>0
13949   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13950 } {
13951   15 115 215 315   -  - 215 15 315 15
13952   30 130 230 330 130 30 230 30 330 30
13953   45 145 245 345   -  - 245 45 345 45
13954   60 160 260 360 160 60 260 60 360 60
13955   75 175 275 375   -  - 275 75 375 75
13956   90 190 290 390 190 90 290 90 390 90
13958 do_execsql_test joinD-483 {
13959   SELECT t1.*, t2.*, t3.*, t4.*
13960   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
13961   RIGHT JOIN t3 ON t1.c=t3.c
13962   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
13963   WHERE t2.x>0 AND t3.y>0
13964   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13965 } {
13966    6 106 206 306 106  6 206  6   -  -
13967   12 112 212 312 112 12 212 12   -  -
13968   18 118 218 318 118 18 218 18   -  -
13969   24 124 224 324 124 24 224 24   -  -
13970   30 130 230 330 130 30 230 30 330 30
13971   36 136 236 336 136 36 236 36   -  -
13972   42 142 242 342 142 42 242 42   -  -
13973   48 148 248 348 148 48 248 48   -  -
13974   54 154 254 354 154 54 254 54   -  -
13975   60 160 260 360 160 60 260 60 360 60
13976   66 166 266 366 166 66 266 66   -  -
13977   72 172 272 372 172 72 272 72   -  -
13978   78 178 278 378 178 78 278 78   -  -
13979   84 184 284 384 184 84 284 84   -  -
13980   90 190 290 390 190 90 290 90 390 90
13982 do_execsql_test joinD-484 {
13983   SELECT t1.*, t2.*, t3.*, t4.*
13984   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
13985   RIGHT JOIN t3 ON t1.c=t3.c
13986   LEFT JOIN t4 ON t1.d=t4.d
13987   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
13988   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
13989 } {
13990   30 130 230 330 130 30 230 30 330 30
13991   60 160 260 360 160 60 260 60 360 60
13992   90 190 290 390 190 90 290 90 390 90
13994 do_execsql_test joinD-485 {
13995   SELECT t1.*, t2.*, t3.*, t4.*
13996   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
13997   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
13998   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
13999   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14000 } {
14001    3 103 203 303   -  - 203  3   -  -
14002    6 106 206 306 106  6 206  6   -  -
14003    9 109 209 309   -  - 209  9   -  -
14004   12 112 212 312 112 12 212 12   -  -
14005   15 115 215 315   -  - 215 15 315 15
14006   18 118 218 318 118 18 218 18   -  -
14007   21 121 221 321   -  - 221 21   -  -
14008   24 124 224 324 124 24 224 24   -  -
14009   27 127 227 327   -  - 227 27   -  -
14010   30 130 230 330 130 30 230 30 330 30
14011   33 133 233 333   -  - 233 33   -  -
14012   36 136 236 336 136 36 236 36   -  -
14013   39 139 239 339   -  - 239 39   -  -
14014   42 142 242 342 142 42 242 42   -  -
14015   45 145 245 345   -  - 245 45 345 45
14016   48 148 248 348 148 48 248 48   -  -
14017   51 151 251 351   -  - 251 51   -  -
14018   54 154 254 354 154 54 254 54   -  -
14019   57 157 257 357   -  - 257 57   -  -
14020   60 160 260 360 160 60 260 60 360 60
14021   63 163 263 363   -  - 263 63   -  -
14022   66 166 266 366 166 66 266 66   -  -
14023   69 169 269 369   -  - 269 69   -  -
14024   72 172 272 372 172 72 272 72   -  -
14025   75 175 275 375   -  - 275 75 375 75
14026   78 178 278 378 178 78 278 78   -  -
14027   81 181 281 381   -  - 281 81   -  -
14028   84 184 284 384 184 84 284 84   -  -
14029   87 187 287 387   -  - 287 87   -  -
14030   90 190 290 390 190 90 290 90 390 90
14031   93 193 293 393   -  - 293 93   -  -
14032    -   -   -   -   -  - 200  0   -  -
14034 do_execsql_test joinD-486 {
14035   SELECT t1.*, t2.*, t3.*, t4.*
14036   FROM t1 LEFT JOIN t2 ON t2.x>0
14037   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
14038   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
14039   WHERE t1.b IS NOT DISTINCT FROM t2.b
14040   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14041 } {
14042    6 106 206 306 106  6 206  6   -  -
14043   12 112 212 312 112 12 212 12   -  -
14044   18 118 218 318 118 18 218 18   -  -
14045   24 124 224 324 124 24 224 24   -  -
14046   30 130 230 330 130 30 230 30 330 30
14047   36 136 236 336 136 36 236 36   -  -
14048   42 142 242 342 142 42 242 42   -  -
14049   48 148 248 348 148 48 248 48   -  -
14050   54 154 254 354 154 54 254 54   -  -
14051   60 160 260 360 160 60 260 60 360 60
14052   66 166 266 366 166 66 266 66   -  -
14053   72 172 272 372 172 72 272 72   -  -
14054   78 178 278 378 178 78 278 78   -  -
14055   84 184 284 384 184 84 284 84   -  -
14056   90 190 290 390 190 90 290 90 390 90
14057    -   -   -   -   -  - 200  0   -  -
14059 do_execsql_test joinD-487 {
14060   SELECT t1.*, t2.*, t3.*, t4.*
14061   FROM t1 LEFT JOIN t2 ON t2.x>0
14062   RIGHT JOIN t3 ON t3.y>0
14063   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
14064   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
14065   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14066 } {
14067    6 106 206 306 106  6 206  6   -  -
14068   12 112 212 312 112 12 212 12   -  -
14069   18 118 218 318 118 18 218 18   -  -
14070   24 124 224 324 124 24 224 24   -  -
14071   30 130 230 330 130 30 230 30 330 30
14072   36 136 236 336 136 36 236 36   -  -
14073   42 142 242 342 142 42 242 42   -  -
14074   48 148 248 348 148 48 248 48   -  -
14075   54 154 254 354 154 54 254 54   -  -
14076   60 160 260 360 160 60 260 60 360 60
14077   66 166 266 366 166 66 266 66   -  -
14078   72 172 272 372 172 72 272 72   -  -
14079   78 178 278 378 178 78 278 78   -  -
14080   84 184 284 384 184 84 284 84   -  -
14081   90 190 290 390 190 90 290 90 390 90
14083 do_execsql_test joinD-488 {
14084   SELECT t1.*, t2.*, t3.*, t4.*
14085   FROM t1 LEFT JOIN t2 ON t2.x>0
14086   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
14087   LEFT JOIN t4 ON t4.z>0
14088   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
14089   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14090 } {
14091   30 130 230 330 130 30 230 30 330 30
14092   60 160 260 360 160 60 260 60 360 60
14093   90 190 290 390 190 90 290 90 390 90
14095 do_execsql_test joinD-489 {
14096   SELECT t1.*, t2.*, t3.*, t4.*
14097   FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
14098   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
14099   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
14100   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14101 } {
14102    3 103 203 303   -  - 203  3   -  -
14103    6 106 206 306 106  6 206  6   -  -
14104    9 109 209 309   -  - 209  9   -  -
14105   12 112 212 312 112 12 212 12   -  -
14106   15 115 215 315   -  - 215 15 315 15
14107   18 118 218 318 118 18 218 18   -  -
14108   21 121 221 321   -  - 221 21   -  -
14109   24 124 224 324 124 24 224 24   -  -
14110   27 127 227 327   -  - 227 27   -  -
14111   30 130 230 330 130 30 230 30 330 30
14112   33 133 233 333   -  - 233 33   -  -
14113   36 136 236 336 136 36 236 36   -  -
14114   39 139 239 339   -  - 239 39   -  -
14115   42 142 242 342 142 42 242 42   -  -
14116   45 145 245 345   -  - 245 45 345 45
14117   48 148 248 348 148 48 248 48   -  -
14118   51 151 251 351   -  - 251 51   -  -
14119   54 154 254 354 154 54 254 54   -  -
14120   57 157 257 357   -  - 257 57   -  -
14121   60 160 260 360 160 60 260 60 360 60
14122   63 163 263 363   -  - 263 63   -  -
14123   66 166 266 366 166 66 266 66   -  -
14124   69 169 269 369   -  - 269 69   -  -
14125   72 172 272 372 172 72 272 72   -  -
14126   75 175 275 375   -  - 275 75 375 75
14127   78 178 278 378 178 78 278 78   -  -
14128   81 181 281 381   -  - 281 81   -  -
14129   84 184 284 384 184 84 284 84   -  -
14130   87 187 287 387   -  - 287 87   -  -
14131   90 190 290 390 190 90 290 90 390 90
14132   93 193 293 393   -  - 293 93   -  -
14133    -   -   -   -   -  - 200  0   -  -
14135 do_execsql_test joinD-490 {
14136   SELECT t1.*, t2.*, t3.*, t4.*
14137   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
14138   RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
14139   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
14140   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14141 } {
14142    3 103 203 303   -  - 203  3   -  -
14143    6 106 206 306 106  6 206  6   -  -
14144    9 109 209 309   -  - 209  9   -  -
14145   12 112 212 312 112 12 212 12   -  -
14146   15 115 215 315   -  - 215 15 315 15
14147   18 118 218 318 118 18 218 18   -  -
14148   21 121 221 321   -  - 221 21   -  -
14149   24 124 224 324 124 24 224 24   -  -
14150   27 127 227 327   -  - 227 27   -  -
14151   30 130 230 330 130 30 230 30 330 30
14152   33 133 233 333   -  - 233 33   -  -
14153   36 136 236 336 136 36 236 36   -  -
14154   39 139 239 339   -  - 239 39   -  -
14155   42 142 242 342 142 42 242 42   -  -
14156   45 145 245 345   -  - 245 45 345 45
14157   48 148 248 348 148 48 248 48   -  -
14158   51 151 251 351   -  - 251 51   -  -
14159   54 154 254 354 154 54 254 54   -  -
14160   57 157 257 357   -  - 257 57   -  -
14161   60 160 260 360 160 60 260 60 360 60
14162   63 163 263 363   -  - 263 63   -  -
14163   66 166 266 366 166 66 266 66   -  -
14164   69 169 269 369   -  - 269 69   -  -
14165   72 172 272 372 172 72 272 72   -  -
14166   75 175 275 375   -  - 275 75 375 75
14167   78 178 278 378 178 78 278 78   -  -
14168   81 181 281 381   -  - 281 81   -  -
14169   84 184 284 384 184 84 284 84   -  -
14170   87 187 287 387   -  - 287 87   -  -
14171   90 190 290 390 190 90 290 90 390 90
14172   93 193 293 393   -  - 293 93   -  -
14173    -   -   -   -   -  - 200  0   -  -
14175 do_execsql_test joinD-491 {
14176   SELECT t1.*, t2.*, t3.*, t4.*
14177   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
14178   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
14179   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
14180   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14181 } {
14182   15 115 215 315   -  - 215 15 315 15
14183   30 130 230 330 130 30 230 30 330 30
14184   45 145 245 345   -  - 245 45 345 45
14185   60 160 260 360 160 60 260 60 360 60
14186   75 175 275 375   -  - 275 75 375 75
14187   90 190 290 390 190 90 290 90 390 90
14188    -   -   -   -   -  -   -  - 300  0
14189    -   -   -   -   -  -   -  - 305  5
14190    -   -   -   -   -  -   -  - 310 10
14191    -   -   -   -   -  -   -  - 320 20
14192    -   -   -   -   -  -   -  - 325 25
14193    -   -   -   -   -  -   -  - 335 35
14194    -   -   -   -   -  -   -  - 340 40
14195    -   -   -   -   -  -   -  - 350 50
14196    -   -   -   -   -  -   -  - 355 55
14197    -   -   -   -   -  -   -  - 365 65
14198    -   -   -   -   -  -   -  - 370 70
14199    -   -   -   -   -  -   -  - 380 80
14200    -   -   -   -   -  -   -  - 385 85
14201    -   -   -   -   -  -   -  - 395 95
14203 do_execsql_test joinD-492 {
14204   SELECT t1.*, t2.*, t3.*, t4.*
14205   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
14206   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
14207   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
14208   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14209 } {
14210   15 115 215 315   -  - 215 15 315 15
14211   30 130 230 330 130 30 230 30 330 30
14212   45 145 245 345   -  - 245 45 345 45
14213   60 160 260 360 160 60 260 60 360 60
14214   75 175 275 375   -  - 275 75 375 75
14215   90 190 290 390 190 90 290 90 390 90
14216    -   -   -   -   -  -   -  - 300  0
14217    -   -   -   -   -  -   -  - 305  5
14218    -   -   -   -   -  -   -  - 310 10
14219    -   -   -   -   -  -   -  - 320 20
14220    -   -   -   -   -  -   -  - 325 25
14221    -   -   -   -   -  -   -  - 335 35
14222    -   -   -   -   -  -   -  - 340 40
14223    -   -   -   -   -  -   -  - 350 50
14224    -   -   -   -   -  -   -  - 355 55
14225    -   -   -   -   -  -   -  - 365 65
14226    -   -   -   -   -  -   -  - 370 70
14227    -   -   -   -   -  -   -  - 380 80
14228    -   -   -   -   -  -   -  - 385 85
14229    -   -   -   -   -  -   -  - 395 95
14231 do_execsql_test joinD-493 {
14232   SELECT t1.*, t2.*, t3.*, t4.*
14233   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
14234   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
14235   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
14236   WHERE t2.x>0
14237   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14238 } {
14239   30 130 230 330 130 30 230 30 330 30
14240   60 160 260 360 160 60 260 60 360 60
14241   90 190 290 390 190 90 290 90 390 90
14243 do_execsql_test joinD-494 {
14244   SELECT t1.*, t2.*, t3.*, t4.*
14245   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
14246   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
14247   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
14248   WHERE (t2.x>0 OR t2.x IS NULL)
14249   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14250 } {
14251   15 115 215 315   -  - 215 15 315 15
14252   30 130 230 330 130 30 230 30 330 30
14253   45 145 245 345   -  - 245 45 345 45
14254   60 160 260 360 160 60 260 60 360 60
14255   75 175 275 375   -  - 275 75 375 75
14256   90 190 290 390 190 90 290 90 390 90
14257    -   -   -   -   -  -   -  - 300  0
14258    -   -   -   -   -  -   -  - 305  5
14259    -   -   -   -   -  -   -  - 310 10
14260    -   -   -   -   -  -   -  - 320 20
14261    -   -   -   -   -  -   -  - 325 25
14262    -   -   -   -   -  -   -  - 335 35
14263    -   -   -   -   -  -   -  - 340 40
14264    -   -   -   -   -  -   -  - 350 50
14265    -   -   -   -   -  -   -  - 355 55
14266    -   -   -   -   -  -   -  - 365 65
14267    -   -   -   -   -  -   -  - 370 70
14268    -   -   -   -   -  -   -  - 380 80
14269    -   -   -   -   -  -   -  - 385 85
14270    -   -   -   -   -  -   -  - 395 95
14272 do_execsql_test joinD-495 {
14273   SELECT t1.*, t2.*, t3.*, t4.*
14274   FROM t1 LEFT JOIN t2 ON true
14275   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
14276   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
14277   WHERE t1.b=t2.b AND t2.x>0
14278   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14279 } {
14280   30 130 230 330 130 30 230 30 330 30
14281   60 160 260 360 160 60 260 60 360 60
14282   90 190 290 390 190 90 290 90 390 90
14284 do_execsql_test joinD-496 {
14285   SELECT t1.*, t2.*, t3.*, t4.*
14286   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
14287   RIGHT JOIN t3 ON t1.c=t3.c
14288   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
14289   WHERE t3.y>0
14290   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14291 } {
14292   15 115 215 315   -  - 215 15 315 15
14293   30 130 230 330 130 30 230 30 330 30
14294   45 145 245 345   -  - 245 45 345 45
14295   60 160 260 360 160 60 260 60 360 60
14296   75 175 275 375   -  - 275 75 375 75
14297   90 190 290 390 190 90 290 90 390 90
14299 do_execsql_test joinD-497 {
14300   SELECT t1.*, t2.*, t3.*, t4.*
14301   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
14302   RIGHT JOIN t3 ON t1.c=t3.c
14303   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
14304   WHERE t3.y>0 OR t3.y IS NULL
14305   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14306 } {
14307   15 115 215 315   -  - 215 15 315 15
14308   30 130 230 330 130 30 230 30 330 30
14309   45 145 245 345   -  - 245 45 345 45
14310   60 160 260 360 160 60 260 60 360 60
14311   75 175 275 375   -  - 275 75 375 75
14312   90 190 290 390 190 90 290 90 390 90
14313    -   -   -   -   -  -   -  - 300  0
14314    -   -   -   -   -  -   -  - 305  5
14315    -   -   -   -   -  -   -  - 310 10
14316    -   -   -   -   -  -   -  - 320 20
14317    -   -   -   -   -  -   -  - 325 25
14318    -   -   -   -   -  -   -  - 335 35
14319    -   -   -   -   -  -   -  - 340 40
14320    -   -   -   -   -  -   -  - 350 50
14321    -   -   -   -   -  -   -  - 355 55
14322    -   -   -   -   -  -   -  - 365 65
14323    -   -   -   -   -  -   -  - 370 70
14324    -   -   -   -   -  -   -  - 380 80
14325    -   -   -   -   -  -   -  - 385 85
14326    -   -   -   -   -  -   -  - 395 95
14328 do_execsql_test joinD-498 {
14329   SELECT t1.*, t2.*, t3.*, t4.*
14330   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
14331   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
14332   RIGHT JOIN t4 ON t1.d=t4.d
14333   WHERE t4.z>0
14334   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14335 } {
14336   15 115 215 315   -  - 215 15 315 15
14337   30 130 230 330 130 30 230 30 330 30
14338   45 145 245 345   -  - 245 45 345 45
14339   60 160 260 360 160 60 260 60 360 60
14340   75 175 275 375   -  - 275 75 375 75
14341   90 190 290 390 190 90 290 90 390 90
14342    -   -   -   -   -  -   -  - 305  5
14343    -   -   -   -   -  -   -  - 310 10
14344    -   -   -   -   -  -   -  - 320 20
14345    -   -   -   -   -  -   -  - 325 25
14346    -   -   -   -   -  -   -  - 335 35
14347    -   -   -   -   -  -   -  - 340 40
14348    -   -   -   -   -  -   -  - 350 50
14349    -   -   -   -   -  -   -  - 355 55
14350    -   -   -   -   -  -   -  - 365 65
14351    -   -   -   -   -  -   -  - 370 70
14352    -   -   -   -   -  -   -  - 380 80
14353    -   -   -   -   -  -   -  - 385 85
14354    -   -   -   -   -  -   -  - 395 95
14356 do_execsql_test joinD-499 {
14357   SELECT t1.*, t2.*, t3.*, t4.*
14358   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
14359   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
14360   RIGHT JOIN t4 ON t1.d=t4.d
14361   WHERE t4.z IS NULL OR t4.z>0
14362   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14363 } {
14364   15 115 215 315   -  - 215 15 315 15
14365   30 130 230 330 130 30 230 30 330 30
14366   45 145 245 345   -  - 245 45 345 45
14367   60 160 260 360 160 60 260 60 360 60
14368   75 175 275 375   -  - 275 75 375 75
14369   90 190 290 390 190 90 290 90 390 90
14370    -   -   -   -   -  -   -  - 305  5
14371    -   -   -   -   -  -   -  - 310 10
14372    -   -   -   -   -  -   -  - 320 20
14373    -   -   -   -   -  -   -  - 325 25
14374    -   -   -   -   -  -   -  - 335 35
14375    -   -   -   -   -  -   -  - 340 40
14376    -   -   -   -   -  -   -  - 350 50
14377    -   -   -   -   -  -   -  - 355 55
14378    -   -   -   -   -  -   -  - 365 65
14379    -   -   -   -   -  -   -  - 370 70
14380    -   -   -   -   -  -   -  - 380 80
14381    -   -   -   -   -  -   -  - 385 85
14382    -   -   -   -   -  -   -  - 395 95
14384 do_execsql_test joinD-500 {
14385   SELECT t1.*, t2.*, t3.*, t4.*
14386   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
14387   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
14388   RIGHT JOIN t4 ON t1.d=t4.d
14389   WHERE t2.x>0 AND t4.z>0
14390   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14391 } {
14392   30 130 230 330 130 30 230 30 330 30
14393   60 160 260 360 160 60 260 60 360 60
14394   90 190 290 390 190 90 290 90 390 90
14396 do_execsql_test joinD-501 {
14397   SELECT t1.*, t2.*, t3.*, t4.*
14398   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
14399   RIGHT JOIN t3 ON t1.c=t3.c
14400   RIGHT JOIN t4 ON t1.d=t4.d
14401   WHERE t4.z>0 AND t3.y>0
14402   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14403 } {
14404   15 115 215 315   -  - 215 15 315 15
14405   30 130 230 330 130 30 230 30 330 30
14406   45 145 245 345   -  - 245 45 345 45
14407   60 160 260 360 160 60 260 60 360 60
14408   75 175 275 375   -  - 275 75 375 75
14409   90 190 290 390 190 90 290 90 390 90
14411 do_execsql_test joinD-502 {
14412   SELECT t1.*, t2.*, t3.*, t4.*
14413   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
14414   RIGHT JOIN t3 ON t1.c=t3.c
14415   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
14416   WHERE t2.x>0 AND t3.y>0
14417   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14418 } {
14419   30 130 230 330 130 30 230 30 330 30
14420   60 160 260 360 160 60 260 60 360 60
14421   90 190 290 390 190 90 290 90 390 90
14423 do_execsql_test joinD-503 {
14424   SELECT t1.*, t2.*, t3.*, t4.*
14425   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
14426   RIGHT JOIN t3 ON t1.c=t3.c
14427   RIGHT JOIN t4 ON t1.d=t4.d
14428   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
14429   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14430 } {
14431   30 130 230 330 130 30 230 30 330 30
14432   60 160 260 360 160 60 260 60 360 60
14433   90 190 290 390 190 90 290 90 390 90
14435 do_execsql_test joinD-504 {
14436   SELECT t1.*, t2.*, t3.*, t4.*
14437   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
14438   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
14439   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
14440   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14441 } {
14442   15 115 215 315   -  - 215 15 315 15
14443   30 130 230 330 130 30 230 30 330 30
14444   45 145 245 345   -  - 245 45 345 45
14445   60 160 260 360 160 60 260 60 360 60
14446   75 175 275 375   -  - 275 75 375 75
14447   90 190 290 390 190 90 290 90 390 90
14448    -   -   -   -   -  -   -  - 300  0
14449    -   -   -   -   -  -   -  - 305  5
14450    -   -   -   -   -  -   -  - 310 10
14451    -   -   -   -   -  -   -  - 320 20
14452    -   -   -   -   -  -   -  - 325 25
14453    -   -   -   -   -  -   -  - 335 35
14454    -   -   -   -   -  -   -  - 340 40
14455    -   -   -   -   -  -   -  - 350 50
14456    -   -   -   -   -  -   -  - 355 55
14457    -   -   -   -   -  -   -  - 365 65
14458    -   -   -   -   -  -   -  - 370 70
14459    -   -   -   -   -  -   -  - 380 80
14460    -   -   -   -   -  -   -  - 385 85
14461    -   -   -   -   -  -   -  - 395 95
14463 do_execsql_test joinD-505 {
14464   SELECT t1.*, t2.*, t3.*, t4.*
14465   FROM t1 LEFT JOIN t2 ON t2.x>0
14466   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
14467   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
14468   WHERE t1.b IS NOT DISTINCT FROM t2.b
14469   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14470 } {
14471   30 130 230 330 130 30 230 30 330 30
14472   60 160 260 360 160 60 260 60 360 60
14473   90 190 290 390 190 90 290 90 390 90
14474    -   -   -   -   -  -   -  - 300  0
14475    -   -   -   -   -  -   -  - 305  5
14476    -   -   -   -   -  -   -  - 310 10
14477    -   -   -   -   -  -   -  - 320 20
14478    -   -   -   -   -  -   -  - 325 25
14479    -   -   -   -   -  -   -  - 335 35
14480    -   -   -   -   -  -   -  - 340 40
14481    -   -   -   -   -  -   -  - 350 50
14482    -   -   -   -   -  -   -  - 355 55
14483    -   -   -   -   -  -   -  - 365 65
14484    -   -   -   -   -  -   -  - 370 70
14485    -   -   -   -   -  -   -  - 380 80
14486    -   -   -   -   -  -   -  - 385 85
14487    -   -   -   -   -  -   -  - 395 95
14489 do_execsql_test joinD-506 {
14490   SELECT t1.*, t2.*, t3.*, t4.*
14491   FROM t1 LEFT JOIN t2 ON t2.x>0
14492   RIGHT JOIN t3 ON t3.y>0
14493   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
14494   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
14495   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14496 } {
14497   30 130 230 330 130 30 230 30 330 30
14498   60 160 260 360 160 60 260 60 360 60
14499   90 190 290 390 190 90 290 90 390 90
14500    -   -   -   -   -  -   -  - 300  0
14502 do_execsql_test joinD-507 {
14503   SELECT t1.*, t2.*, t3.*, t4.*
14504   FROM t1 LEFT JOIN t2 ON t2.x>0
14505   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
14506   RIGHT JOIN t4 ON t4.z>0
14507   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
14508   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14509 } {
14510   30 130 230 330 130 30 230 30 330 30
14511   60 160 260 360 160 60 260 60 360 60
14512   90 190 290 390 190 90 290 90 390 90
14514 do_execsql_test joinD-508 {
14515   SELECT t1.*, t2.*, t3.*, t4.*
14516   FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
14517   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
14518   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
14519   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14520 } {
14521   15 115 215 315   -  - 215 15 315 15
14522   30 130 230 330 130 30 230 30 330 30
14523   45 145 245 345   -  - 245 45 345 45
14524   60 160 260 360 160 60 260 60 360 60
14525   75 175 275 375   -  - 275 75 375 75
14526   90 190 290 390 190 90 290 90 390 90
14527    -   -   -   -   -  -   -  - 300  0
14528    -   -   -   -   -  -   -  - 305  5
14529    -   -   -   -   -  -   -  - 310 10
14530    -   -   -   -   -  -   -  - 320 20
14531    -   -   -   -   -  -   -  - 325 25
14532    -   -   -   -   -  -   -  - 335 35
14533    -   -   -   -   -  -   -  - 340 40
14534    -   -   -   -   -  -   -  - 350 50
14535    -   -   -   -   -  -   -  - 355 55
14536    -   -   -   -   -  -   -  - 365 65
14537    -   -   -   -   -  -   -  - 370 70
14538    -   -   -   -   -  -   -  - 380 80
14539    -   -   -   -   -  -   -  - 385 85
14540    -   -   -   -   -  -   -  - 395 95
14542 do_execsql_test joinD-509 {
14543   SELECT t1.*, t2.*, t3.*, t4.*
14544   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
14545   RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
14546   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
14547   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14548 } {
14549   15 115 215 315   -  - 215 15 315 15
14550   30 130 230 330 130 30 230 30 330 30
14551   45 145 245 345   -  - 245 45 345 45
14552   60 160 260 360 160 60 260 60 360 60
14553   75 175 275 375   -  - 275 75 375 75
14554   90 190 290 390 190 90 290 90 390 90
14555    -   -   -   -   -  -   -  - 300  0
14556    -   -   -   -   -  -   -  - 305  5
14557    -   -   -   -   -  -   -  - 310 10
14558    -   -   -   -   -  -   -  - 320 20
14559    -   -   -   -   -  -   -  - 325 25
14560    -   -   -   -   -  -   -  - 335 35
14561    -   -   -   -   -  -   -  - 340 40
14562    -   -   -   -   -  -   -  - 350 50
14563    -   -   -   -   -  -   -  - 355 55
14564    -   -   -   -   -  -   -  - 365 65
14565    -   -   -   -   -  -   -  - 370 70
14566    -   -   -   -   -  -   -  - 380 80
14567    -   -   -   -   -  -   -  - 385 85
14568    -   -   -   -   -  -   -  - 395 95
14570 do_execsql_test joinD-510 {
14571   SELECT t1.*, t2.*, t3.*, t4.*
14572   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
14573   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
14574   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
14575   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14576 } {
14577    3 103 203 303   -  - 203  3   -  -
14578    6 106 206 306 106  6 206  6   -  -
14579    9 109 209 309   -  - 209  9   -  -
14580   12 112 212 312 112 12 212 12   -  -
14581   15 115 215 315   -  - 215 15 315 15
14582   18 118 218 318 118 18 218 18   -  -
14583   21 121 221 321   -  - 221 21   -  -
14584   24 124 224 324 124 24 224 24   -  -
14585   27 127 227 327   -  - 227 27   -  -
14586   30 130 230 330 130 30 230 30 330 30
14587   33 133 233 333   -  - 233 33   -  -
14588   36 136 236 336 136 36 236 36   -  -
14589   39 139 239 339   -  - 239 39   -  -
14590   42 142 242 342 142 42 242 42   -  -
14591   45 145 245 345   -  - 245 45 345 45
14592   48 148 248 348 148 48 248 48   -  -
14593   51 151 251 351   -  - 251 51   -  -
14594   54 154 254 354 154 54 254 54   -  -
14595   57 157 257 357   -  - 257 57   -  -
14596   60 160 260 360 160 60 260 60 360 60
14597   63 163 263 363   -  - 263 63   -  -
14598   66 166 266 366 166 66 266 66   -  -
14599   69 169 269 369   -  - 269 69   -  -
14600   72 172 272 372 172 72 272 72   -  -
14601   75 175 275 375   -  - 275 75 375 75
14602   78 178 278 378 178 78 278 78   -  -
14603   81 181 281 381   -  - 281 81   -  -
14604   84 184 284 384 184 84 284 84   -  -
14605   87 187 287 387   -  - 287 87   -  -
14606   90 190 290 390 190 90 290 90 390 90
14607   93 193 293 393   -  - 293 93   -  -
14608    -   -   -   -   -  - 200  0   -  -
14609    -   -   -   -   -  -   -  - 300  0
14610    -   -   -   -   -  -   -  - 305  5
14611    -   -   -   -   -  -   -  - 310 10
14612    -   -   -   -   -  -   -  - 320 20
14613    -   -   -   -   -  -   -  - 325 25
14614    -   -   -   -   -  -   -  - 335 35
14615    -   -   -   -   -  -   -  - 340 40
14616    -   -   -   -   -  -   -  - 350 50
14617    -   -   -   -   -  -   -  - 355 55
14618    -   -   -   -   -  -   -  - 365 65
14619    -   -   -   -   -  -   -  - 370 70
14620    -   -   -   -   -  -   -  - 380 80
14621    -   -   -   -   -  -   -  - 385 85
14622    -   -   -   -   -  -   -  - 395 95
14624 do_execsql_test joinD-511 {
14625   SELECT t1.*, t2.*, t3.*, t4.*
14626   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
14627   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
14628   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
14629   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14630 } {
14631    3 103 203 303   -  - 203  3   -  -
14632    6 106 206 306 106  6 206  6   -  -
14633    9 109 209 309   -  - 209  9   -  -
14634   12 112 212 312 112 12 212 12   -  -
14635   15 115 215 315   -  - 215 15 315 15
14636   18 118 218 318 118 18 218 18   -  -
14637   21 121 221 321   -  - 221 21   -  -
14638   24 124 224 324 124 24 224 24   -  -
14639   27 127 227 327   -  - 227 27   -  -
14640   30 130 230 330 130 30 230 30 330 30
14641   33 133 233 333   -  - 233 33   -  -
14642   36 136 236 336 136 36 236 36   -  -
14643   39 139 239 339   -  - 239 39   -  -
14644   42 142 242 342 142 42 242 42   -  -
14645   45 145 245 345   -  - 245 45 345 45
14646   48 148 248 348 148 48 248 48   -  -
14647   51 151 251 351   -  - 251 51   -  -
14648   54 154 254 354 154 54 254 54   -  -
14649   57 157 257 357   -  - 257 57   -  -
14650   60 160 260 360 160 60 260 60 360 60
14651   63 163 263 363   -  - 263 63   -  -
14652   66 166 266 366 166 66 266 66   -  -
14653   69 169 269 369   -  - 269 69   -  -
14654   72 172 272 372 172 72 272 72   -  -
14655   75 175 275 375   -  - 275 75 375 75
14656   78 178 278 378 178 78 278 78   -  -
14657   81 181 281 381   -  - 281 81   -  -
14658   84 184 284 384 184 84 284 84   -  -
14659   87 187 287 387   -  - 287 87   -  -
14660   90 190 290 390 190 90 290 90 390 90
14661   93 193 293 393   -  - 293 93   -  -
14662    -   -   -   -   -  - 200  0   -  -
14663    -   -   -   -   -  -   -  - 300  0
14664    -   -   -   -   -  -   -  - 305  5
14665    -   -   -   -   -  -   -  - 310 10
14666    -   -   -   -   -  -   -  - 320 20
14667    -   -   -   -   -  -   -  - 325 25
14668    -   -   -   -   -  -   -  - 335 35
14669    -   -   -   -   -  -   -  - 340 40
14670    -   -   -   -   -  -   -  - 350 50
14671    -   -   -   -   -  -   -  - 355 55
14672    -   -   -   -   -  -   -  - 365 65
14673    -   -   -   -   -  -   -  - 370 70
14674    -   -   -   -   -  -   -  - 380 80
14675    -   -   -   -   -  -   -  - 385 85
14676    -   -   -   -   -  -   -  - 395 95
14678 do_execsql_test joinD-512 {
14679   SELECT t1.*, t2.*, t3.*, t4.*
14680   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
14681   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
14682   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
14683   WHERE t2.x>0
14684   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14685 } {
14686    6 106 206 306 106  6 206  6   -  -
14687   12 112 212 312 112 12 212 12   -  -
14688   18 118 218 318 118 18 218 18   -  -
14689   24 124 224 324 124 24 224 24   -  -
14690   30 130 230 330 130 30 230 30 330 30
14691   36 136 236 336 136 36 236 36   -  -
14692   42 142 242 342 142 42 242 42   -  -
14693   48 148 248 348 148 48 248 48   -  -
14694   54 154 254 354 154 54 254 54   -  -
14695   60 160 260 360 160 60 260 60 360 60
14696   66 166 266 366 166 66 266 66   -  -
14697   72 172 272 372 172 72 272 72   -  -
14698   78 178 278 378 178 78 278 78   -  -
14699   84 184 284 384 184 84 284 84   -  -
14700   90 190 290 390 190 90 290 90 390 90
14702 do_execsql_test joinD-513 {
14703   SELECT t1.*, t2.*, t3.*, t4.*
14704   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
14705   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
14706   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
14707   WHERE (t2.x>0 OR t2.x IS NULL)
14708   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14709 } {
14710    3 103 203 303   -  - 203  3   -  -
14711    6 106 206 306 106  6 206  6   -  -
14712    9 109 209 309   -  - 209  9   -  -
14713   12 112 212 312 112 12 212 12   -  -
14714   15 115 215 315   -  - 215 15 315 15
14715   18 118 218 318 118 18 218 18   -  -
14716   21 121 221 321   -  - 221 21   -  -
14717   24 124 224 324 124 24 224 24   -  -
14718   27 127 227 327   -  - 227 27   -  -
14719   30 130 230 330 130 30 230 30 330 30
14720   33 133 233 333   -  - 233 33   -  -
14721   36 136 236 336 136 36 236 36   -  -
14722   39 139 239 339   -  - 239 39   -  -
14723   42 142 242 342 142 42 242 42   -  -
14724   45 145 245 345   -  - 245 45 345 45
14725   48 148 248 348 148 48 248 48   -  -
14726   51 151 251 351   -  - 251 51   -  -
14727   54 154 254 354 154 54 254 54   -  -
14728   57 157 257 357   -  - 257 57   -  -
14729   60 160 260 360 160 60 260 60 360 60
14730   63 163 263 363   -  - 263 63   -  -
14731   66 166 266 366 166 66 266 66   -  -
14732   69 169 269 369   -  - 269 69   -  -
14733   72 172 272 372 172 72 272 72   -  -
14734   75 175 275 375   -  - 275 75 375 75
14735   78 178 278 378 178 78 278 78   -  -
14736   81 181 281 381   -  - 281 81   -  -
14737   84 184 284 384 184 84 284 84   -  -
14738   87 187 287 387   -  - 287 87   -  -
14739   90 190 290 390 190 90 290 90 390 90
14740   93 193 293 393   -  - 293 93   -  -
14741    -   -   -   -   -  - 200  0   -  -
14742    -   -   -   -   -  -   -  - 300  0
14743    -   -   -   -   -  -   -  - 305  5
14744    -   -   -   -   -  -   -  - 310 10
14745    -   -   -   -   -  -   -  - 320 20
14746    -   -   -   -   -  -   -  - 325 25
14747    -   -   -   -   -  -   -  - 335 35
14748    -   -   -   -   -  -   -  - 340 40
14749    -   -   -   -   -  -   -  - 350 50
14750    -   -   -   -   -  -   -  - 355 55
14751    -   -   -   -   -  -   -  - 365 65
14752    -   -   -   -   -  -   -  - 370 70
14753    -   -   -   -   -  -   -  - 380 80
14754    -   -   -   -   -  -   -  - 385 85
14755    -   -   -   -   -  -   -  - 395 95
14757 do_execsql_test joinD-514 {
14758   SELECT t1.*, t2.*, t3.*, t4.*
14759   FROM t1 LEFT JOIN t2 ON true
14760   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
14761   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
14762   WHERE t1.b=t2.b AND t2.x>0
14763   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14764 } {
14765    6 106 206 306 106  6 206  6   -  -
14766   12 112 212 312 112 12 212 12   -  -
14767   18 118 218 318 118 18 218 18   -  -
14768   24 124 224 324 124 24 224 24   -  -
14769   30 130 230 330 130 30 230 30 330 30
14770   36 136 236 336 136 36 236 36   -  -
14771   42 142 242 342 142 42 242 42   -  -
14772   48 148 248 348 148 48 248 48   -  -
14773   54 154 254 354 154 54 254 54   -  -
14774   60 160 260 360 160 60 260 60 360 60
14775   66 166 266 366 166 66 266 66   -  -
14776   72 172 272 372 172 72 272 72   -  -
14777   78 178 278 378 178 78 278 78   -  -
14778   84 184 284 384 184 84 284 84   -  -
14779   90 190 290 390 190 90 290 90 390 90
14781 do_execsql_test joinD-515 {
14782   SELECT t1.*, t2.*, t3.*, t4.*
14783   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
14784   RIGHT JOIN t3 ON t1.c=t3.c
14785   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
14786   WHERE t3.y>0
14787   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14788 } {
14789    3 103 203 303   -  - 203  3   -  -
14790    6 106 206 306 106  6 206  6   -  -
14791    9 109 209 309   -  - 209  9   -  -
14792   12 112 212 312 112 12 212 12   -  -
14793   15 115 215 315   -  - 215 15 315 15
14794   18 118 218 318 118 18 218 18   -  -
14795   21 121 221 321   -  - 221 21   -  -
14796   24 124 224 324 124 24 224 24   -  -
14797   27 127 227 327   -  - 227 27   -  -
14798   30 130 230 330 130 30 230 30 330 30
14799   33 133 233 333   -  - 233 33   -  -
14800   36 136 236 336 136 36 236 36   -  -
14801   39 139 239 339   -  - 239 39   -  -
14802   42 142 242 342 142 42 242 42   -  -
14803   45 145 245 345   -  - 245 45 345 45
14804   48 148 248 348 148 48 248 48   -  -
14805   51 151 251 351   -  - 251 51   -  -
14806   54 154 254 354 154 54 254 54   -  -
14807   57 157 257 357   -  - 257 57   -  -
14808   60 160 260 360 160 60 260 60 360 60
14809   63 163 263 363   -  - 263 63   -  -
14810   66 166 266 366 166 66 266 66   -  -
14811   69 169 269 369   -  - 269 69   -  -
14812   72 172 272 372 172 72 272 72   -  -
14813   75 175 275 375   -  - 275 75 375 75
14814   78 178 278 378 178 78 278 78   -  -
14815   81 181 281 381   -  - 281 81   -  -
14816   84 184 284 384 184 84 284 84   -  -
14817   87 187 287 387   -  - 287 87   -  -
14818   90 190 290 390 190 90 290 90 390 90
14819   93 193 293 393   -  - 293 93   -  -
14821 do_execsql_test joinD-516 {
14822   SELECT t1.*, t2.*, t3.*, t4.*
14823   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
14824   RIGHT JOIN t3 ON t1.c=t3.c
14825   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
14826   WHERE t3.y>0 OR t3.y IS NULL
14827   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14828 } {
14829    3 103 203 303   -  - 203  3   -  -
14830    6 106 206 306 106  6 206  6   -  -
14831    9 109 209 309   -  - 209  9   -  -
14832   12 112 212 312 112 12 212 12   -  -
14833   15 115 215 315   -  - 215 15 315 15
14834   18 118 218 318 118 18 218 18   -  -
14835   21 121 221 321   -  - 221 21   -  -
14836   24 124 224 324 124 24 224 24   -  -
14837   27 127 227 327   -  - 227 27   -  -
14838   30 130 230 330 130 30 230 30 330 30
14839   33 133 233 333   -  - 233 33   -  -
14840   36 136 236 336 136 36 236 36   -  -
14841   39 139 239 339   -  - 239 39   -  -
14842   42 142 242 342 142 42 242 42   -  -
14843   45 145 245 345   -  - 245 45 345 45
14844   48 148 248 348 148 48 248 48   -  -
14845   51 151 251 351   -  - 251 51   -  -
14846   54 154 254 354 154 54 254 54   -  -
14847   57 157 257 357   -  - 257 57   -  -
14848   60 160 260 360 160 60 260 60 360 60
14849   63 163 263 363   -  - 263 63   -  -
14850   66 166 266 366 166 66 266 66   -  -
14851   69 169 269 369   -  - 269 69   -  -
14852   72 172 272 372 172 72 272 72   -  -
14853   75 175 275 375   -  - 275 75 375 75
14854   78 178 278 378 178 78 278 78   -  -
14855   81 181 281 381   -  - 281 81   -  -
14856   84 184 284 384 184 84 284 84   -  -
14857   87 187 287 387   -  - 287 87   -  -
14858   90 190 290 390 190 90 290 90 390 90
14859   93 193 293 393   -  - 293 93   -  -
14860    -   -   -   -   -  -   -  - 300  0
14861    -   -   -   -   -  -   -  - 305  5
14862    -   -   -   -   -  -   -  - 310 10
14863    -   -   -   -   -  -   -  - 320 20
14864    -   -   -   -   -  -   -  - 325 25
14865    -   -   -   -   -  -   -  - 335 35
14866    -   -   -   -   -  -   -  - 340 40
14867    -   -   -   -   -  -   -  - 350 50
14868    -   -   -   -   -  -   -  - 355 55
14869    -   -   -   -   -  -   -  - 365 65
14870    -   -   -   -   -  -   -  - 370 70
14871    -   -   -   -   -  -   -  - 380 80
14872    -   -   -   -   -  -   -  - 385 85
14873    -   -   -   -   -  -   -  - 395 95
14875 do_execsql_test joinD-517 {
14876   SELECT t1.*, t2.*, t3.*, t4.*
14877   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
14878   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
14879   FULL JOIN t4 ON t1.d=t4.d
14880   WHERE t4.z>0
14881   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14882 } {
14883   15 115 215 315   -  - 215 15 315 15
14884   30 130 230 330 130 30 230 30 330 30
14885   45 145 245 345   -  - 245 45 345 45
14886   60 160 260 360 160 60 260 60 360 60
14887   75 175 275 375   -  - 275 75 375 75
14888   90 190 290 390 190 90 290 90 390 90
14889    -   -   -   -   -  -   -  - 305  5
14890    -   -   -   -   -  -   -  - 310 10
14891    -   -   -   -   -  -   -  - 320 20
14892    -   -   -   -   -  -   -  - 325 25
14893    -   -   -   -   -  -   -  - 335 35
14894    -   -   -   -   -  -   -  - 340 40
14895    -   -   -   -   -  -   -  - 350 50
14896    -   -   -   -   -  -   -  - 355 55
14897    -   -   -   -   -  -   -  - 365 65
14898    -   -   -   -   -  -   -  - 370 70
14899    -   -   -   -   -  -   -  - 380 80
14900    -   -   -   -   -  -   -  - 385 85
14901    -   -   -   -   -  -   -  - 395 95
14903 do_execsql_test joinD-518 {
14904   SELECT t1.*, t2.*, t3.*, t4.*
14905   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
14906   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
14907   FULL JOIN t4 ON t1.d=t4.d
14908   WHERE t4.z IS NULL OR t4.z>0
14909   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14910 } {
14911    3 103 203 303   -  - 203  3   -  -
14912    6 106 206 306 106  6 206  6   -  -
14913    9 109 209 309   -  - 209  9   -  -
14914   12 112 212 312 112 12 212 12   -  -
14915   15 115 215 315   -  - 215 15 315 15
14916   18 118 218 318 118 18 218 18   -  -
14917   21 121 221 321   -  - 221 21   -  -
14918   24 124 224 324 124 24 224 24   -  -
14919   27 127 227 327   -  - 227 27   -  -
14920   30 130 230 330 130 30 230 30 330 30
14921   33 133 233 333   -  - 233 33   -  -
14922   36 136 236 336 136 36 236 36   -  -
14923   39 139 239 339   -  - 239 39   -  -
14924   42 142 242 342 142 42 242 42   -  -
14925   45 145 245 345   -  - 245 45 345 45
14926   48 148 248 348 148 48 248 48   -  -
14927   51 151 251 351   -  - 251 51   -  -
14928   54 154 254 354 154 54 254 54   -  -
14929   57 157 257 357   -  - 257 57   -  -
14930   60 160 260 360 160 60 260 60 360 60
14931   63 163 263 363   -  - 263 63   -  -
14932   66 166 266 366 166 66 266 66   -  -
14933   69 169 269 369   -  - 269 69   -  -
14934   72 172 272 372 172 72 272 72   -  -
14935   75 175 275 375   -  - 275 75 375 75
14936   78 178 278 378 178 78 278 78   -  -
14937   81 181 281 381   -  - 281 81   -  -
14938   84 184 284 384 184 84 284 84   -  -
14939   87 187 287 387   -  - 287 87   -  -
14940   90 190 290 390 190 90 290 90 390 90
14941   93 193 293 393   -  - 293 93   -  -
14942    -   -   -   -   -  - 200  0   -  -
14943    -   -   -   -   -  -   -  - 305  5
14944    -   -   -   -   -  -   -  - 310 10
14945    -   -   -   -   -  -   -  - 320 20
14946    -   -   -   -   -  -   -  - 325 25
14947    -   -   -   -   -  -   -  - 335 35
14948    -   -   -   -   -  -   -  - 340 40
14949    -   -   -   -   -  -   -  - 350 50
14950    -   -   -   -   -  -   -  - 355 55
14951    -   -   -   -   -  -   -  - 365 65
14952    -   -   -   -   -  -   -  - 370 70
14953    -   -   -   -   -  -   -  - 380 80
14954    -   -   -   -   -  -   -  - 385 85
14955    -   -   -   -   -  -   -  - 395 95
14957 do_execsql_test joinD-519 {
14958   SELECT t1.*, t2.*, t3.*, t4.*
14959   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
14960   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
14961   FULL JOIN t4 ON t1.d=t4.d
14962   WHERE t2.x>0 AND t4.z>0
14963   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14964 } {
14965   30 130 230 330 130 30 230 30 330 30
14966   60 160 260 360 160 60 260 60 360 60
14967   90 190 290 390 190 90 290 90 390 90
14969 do_execsql_test joinD-520 {
14970   SELECT t1.*, t2.*, t3.*, t4.*
14971   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
14972   RIGHT JOIN t3 ON t1.c=t3.c
14973   FULL JOIN t4 ON t1.d=t4.d
14974   WHERE t4.z>0 AND t3.y>0
14975   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14976 } {
14977   15 115 215 315   -  - 215 15 315 15
14978   30 130 230 330 130 30 230 30 330 30
14979   45 145 245 345   -  - 245 45 345 45
14980   60 160 260 360 160 60 260 60 360 60
14981   75 175 275 375   -  - 275 75 375 75
14982   90 190 290 390 190 90 290 90 390 90
14984 do_execsql_test joinD-521 {
14985   SELECT t1.*, t2.*, t3.*, t4.*
14986   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
14987   RIGHT JOIN t3 ON t1.c=t3.c
14988   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
14989   WHERE t2.x>0 AND t3.y>0
14990   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
14991 } {
14992    6 106 206 306 106  6 206  6   -  -
14993   12 112 212 312 112 12 212 12   -  -
14994   18 118 218 318 118 18 218 18   -  -
14995   24 124 224 324 124 24 224 24   -  -
14996   30 130 230 330 130 30 230 30 330 30
14997   36 136 236 336 136 36 236 36   -  -
14998   42 142 242 342 142 42 242 42   -  -
14999   48 148 248 348 148 48 248 48   -  -
15000   54 154 254 354 154 54 254 54   -  -
15001   60 160 260 360 160 60 260 60 360 60
15002   66 166 266 366 166 66 266 66   -  -
15003   72 172 272 372 172 72 272 72   -  -
15004   78 178 278 378 178 78 278 78   -  -
15005   84 184 284 384 184 84 284 84   -  -
15006   90 190 290 390 190 90 290 90 390 90
15008 do_execsql_test joinD-522 {
15009   SELECT t1.*, t2.*, t3.*, t4.*
15010   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
15011   RIGHT JOIN t3 ON t1.c=t3.c
15012   FULL JOIN t4 ON t1.d=t4.d
15013   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
15014   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15015 } {
15016   30 130 230 330 130 30 230 30 330 30
15017   60 160 260 360 160 60 260 60 360 60
15018   90 190 290 390 190 90 290 90 390 90
15020 do_execsql_test joinD-523 {
15021   SELECT t1.*, t2.*, t3.*, t4.*
15022   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
15023   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
15024   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
15025   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15026 } {
15027    3 103 203 303   -  - 203  3   -  -
15028    6 106 206 306 106  6 206  6   -  -
15029    9 109 209 309   -  - 209  9   -  -
15030   12 112 212 312 112 12 212 12   -  -
15031   15 115 215 315   -  - 215 15 315 15
15032   18 118 218 318 118 18 218 18   -  -
15033   21 121 221 321   -  - 221 21   -  -
15034   24 124 224 324 124 24 224 24   -  -
15035   27 127 227 327   -  - 227 27   -  -
15036   30 130 230 330 130 30 230 30 330 30
15037   33 133 233 333   -  - 233 33   -  -
15038   36 136 236 336 136 36 236 36   -  -
15039   39 139 239 339   -  - 239 39   -  -
15040   42 142 242 342 142 42 242 42   -  -
15041   45 145 245 345   -  - 245 45 345 45
15042   48 148 248 348 148 48 248 48   -  -
15043   51 151 251 351   -  - 251 51   -  -
15044   54 154 254 354 154 54 254 54   -  -
15045   57 157 257 357   -  - 257 57   -  -
15046   60 160 260 360 160 60 260 60 360 60
15047   63 163 263 363   -  - 263 63   -  -
15048   66 166 266 366 166 66 266 66   -  -
15049   69 169 269 369   -  - 269 69   -  -
15050   72 172 272 372 172 72 272 72   -  -
15051   75 175 275 375   -  - 275 75 375 75
15052   78 178 278 378 178 78 278 78   -  -
15053   81 181 281 381   -  - 281 81   -  -
15054   84 184 284 384 184 84 284 84   -  -
15055   87 187 287 387   -  - 287 87   -  -
15056   90 190 290 390 190 90 290 90 390 90
15057   93 193 293 393   -  - 293 93   -  -
15058    -   -   -   -   -  - 200  0   -  -
15059    -   -   -   -   -  -   -  - 300  0
15060    -   -   -   -   -  -   -  - 305  5
15061    -   -   -   -   -  -   -  - 310 10
15062    -   -   -   -   -  -   -  - 320 20
15063    -   -   -   -   -  -   -  - 325 25
15064    -   -   -   -   -  -   -  - 335 35
15065    -   -   -   -   -  -   -  - 340 40
15066    -   -   -   -   -  -   -  - 350 50
15067    -   -   -   -   -  -   -  - 355 55
15068    -   -   -   -   -  -   -  - 365 65
15069    -   -   -   -   -  -   -  - 370 70
15070    -   -   -   -   -  -   -  - 380 80
15071    -   -   -   -   -  -   -  - 385 85
15072    -   -   -   -   -  -   -  - 395 95
15074 do_execsql_test joinD-524 {
15075   SELECT t1.*, t2.*, t3.*, t4.*
15076   FROM t1 LEFT JOIN t2 ON t2.x>0
15077   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
15078   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
15079   WHERE t1.b IS NOT DISTINCT FROM t2.b
15080   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15081 } {
15082    6 106 206 306 106  6 206  6   -  -
15083   12 112 212 312 112 12 212 12   -  -
15084   18 118 218 318 118 18 218 18   -  -
15085   24 124 224 324 124 24 224 24   -  -
15086   30 130 230 330 130 30 230 30 330 30
15087   36 136 236 336 136 36 236 36   -  -
15088   42 142 242 342 142 42 242 42   -  -
15089   48 148 248 348 148 48 248 48   -  -
15090   54 154 254 354 154 54 254 54   -  -
15091   60 160 260 360 160 60 260 60 360 60
15092   66 166 266 366 166 66 266 66   -  -
15093   72 172 272 372 172 72 272 72   -  -
15094   78 178 278 378 178 78 278 78   -  -
15095   84 184 284 384 184 84 284 84   -  -
15096   90 190 290 390 190 90 290 90 390 90
15097    -   -   -   -   -  - 200  0   -  -
15098    -   -   -   -   -  -   -  - 300  0
15099    -   -   -   -   -  -   -  - 305  5
15100    -   -   -   -   -  -   -  - 310 10
15101    -   -   -   -   -  -   -  - 320 20
15102    -   -   -   -   -  -   -  - 325 25
15103    -   -   -   -   -  -   -  - 335 35
15104    -   -   -   -   -  -   -  - 340 40
15105    -   -   -   -   -  -   -  - 350 50
15106    -   -   -   -   -  -   -  - 355 55
15107    -   -   -   -   -  -   -  - 365 65
15108    -   -   -   -   -  -   -  - 370 70
15109    -   -   -   -   -  -   -  - 380 80
15110    -   -   -   -   -  -   -  - 385 85
15111    -   -   -   -   -  -   -  - 395 95
15113 do_execsql_test joinD-525 {
15114   SELECT t1.*, t2.*, t3.*, t4.*
15115   FROM t1 LEFT JOIN t2 ON t2.x>0
15116   RIGHT JOIN t3 ON t3.y>0
15117   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
15118   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
15119   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15120 } {
15121    6 106 206 306 106  6 206  6   -  -
15122   12 112 212 312 112 12 212 12   -  -
15123   18 118 218 318 118 18 218 18   -  -
15124   24 124 224 324 124 24 224 24   -  -
15125   30 130 230 330 130 30 230 30 330 30
15126   36 136 236 336 136 36 236 36   -  -
15127   42 142 242 342 142 42 242 42   -  -
15128   48 148 248 348 148 48 248 48   -  -
15129   54 154 254 354 154 54 254 54   -  -
15130   60 160 260 360 160 60 260 60 360 60
15131   66 166 266 366 166 66 266 66   -  -
15132   72 172 272 372 172 72 272 72   -  -
15133   78 178 278 378 178 78 278 78   -  -
15134   84 184 284 384 184 84 284 84   -  -
15135   90 190 290 390 190 90 290 90 390 90
15136    -   -   -   -   -  -   -  - 300  0
15138 do_execsql_test joinD-526 {
15139   SELECT t1.*, t2.*, t3.*, t4.*
15140   FROM t1 LEFT JOIN t2 ON t2.x>0
15141   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
15142   FULL JOIN t4 ON t4.z>0
15143   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
15144   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15145 } {
15146   30 130 230 330 130 30 230 30 330 30
15147   60 160 260 360 160 60 260 60 360 60
15148   90 190 290 390 190 90 290 90 390 90
15150 do_execsql_test joinD-527 {
15151   SELECT t1.*, t2.*, t3.*, t4.*
15152   FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
15153   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
15154   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
15155   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15156 } {
15157    3 103 203 303   -  - 203  3   -  -
15158    6 106 206 306 106  6 206  6   -  -
15159    9 109 209 309   -  - 209  9   -  -
15160   12 112 212 312 112 12 212 12   -  -
15161   15 115 215 315   -  - 215 15 315 15
15162   18 118 218 318 118 18 218 18   -  -
15163   21 121 221 321   -  - 221 21   -  -
15164   24 124 224 324 124 24 224 24   -  -
15165   27 127 227 327   -  - 227 27   -  -
15166   30 130 230 330 130 30 230 30 330 30
15167   33 133 233 333   -  - 233 33   -  -
15168   36 136 236 336 136 36 236 36   -  -
15169   39 139 239 339   -  - 239 39   -  -
15170   42 142 242 342 142 42 242 42   -  -
15171   45 145 245 345   -  - 245 45 345 45
15172   48 148 248 348 148 48 248 48   -  -
15173   51 151 251 351   -  - 251 51   -  -
15174   54 154 254 354 154 54 254 54   -  -
15175   57 157 257 357   -  - 257 57   -  -
15176   60 160 260 360 160 60 260 60 360 60
15177   63 163 263 363   -  - 263 63   -  -
15178   66 166 266 366 166 66 266 66   -  -
15179   69 169 269 369   -  - 269 69   -  -
15180   72 172 272 372 172 72 272 72   -  -
15181   75 175 275 375   -  - 275 75 375 75
15182   78 178 278 378 178 78 278 78   -  -
15183   81 181 281 381   -  - 281 81   -  -
15184   84 184 284 384 184 84 284 84   -  -
15185   87 187 287 387   -  - 287 87   -  -
15186   90 190 290 390 190 90 290 90 390 90
15187   93 193 293 393   -  - 293 93   -  -
15188    -   -   -   -   -  - 200  0   -  -
15189    -   -   -   -   -  -   -  - 300  0
15190    -   -   -   -   -  -   -  - 305  5
15191    -   -   -   -   -  -   -  - 310 10
15192    -   -   -   -   -  -   -  - 320 20
15193    -   -   -   -   -  -   -  - 325 25
15194    -   -   -   -   -  -   -  - 335 35
15195    -   -   -   -   -  -   -  - 340 40
15196    -   -   -   -   -  -   -  - 350 50
15197    -   -   -   -   -  -   -  - 355 55
15198    -   -   -   -   -  -   -  - 365 65
15199    -   -   -   -   -  -   -  - 370 70
15200    -   -   -   -   -  -   -  - 380 80
15201    -   -   -   -   -  -   -  - 385 85
15202    -   -   -   -   -  -   -  - 395 95
15204 do_execsql_test joinD-528 {
15205   SELECT t1.*, t2.*, t3.*, t4.*
15206   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
15207   RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
15208   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
15209   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15210 } {
15211    3 103 203 303   -  - 203  3   -  -
15212    6 106 206 306 106  6 206  6   -  -
15213    9 109 209 309   -  - 209  9   -  -
15214   12 112 212 312 112 12 212 12   -  -
15215   15 115 215 315   -  - 215 15 315 15
15216   18 118 218 318 118 18 218 18   -  -
15217   21 121 221 321   -  - 221 21   -  -
15218   24 124 224 324 124 24 224 24   -  -
15219   27 127 227 327   -  - 227 27   -  -
15220   30 130 230 330 130 30 230 30 330 30
15221   33 133 233 333   -  - 233 33   -  -
15222   36 136 236 336 136 36 236 36   -  -
15223   39 139 239 339   -  - 239 39   -  -
15224   42 142 242 342 142 42 242 42   -  -
15225   45 145 245 345   -  - 245 45 345 45
15226   48 148 248 348 148 48 248 48   -  -
15227   51 151 251 351   -  - 251 51   -  -
15228   54 154 254 354 154 54 254 54   -  -
15229   57 157 257 357   -  - 257 57   -  -
15230   60 160 260 360 160 60 260 60 360 60
15231   63 163 263 363   -  - 263 63   -  -
15232   66 166 266 366 166 66 266 66   -  -
15233   69 169 269 369   -  - 269 69   -  -
15234   72 172 272 372 172 72 272 72   -  -
15235   75 175 275 375   -  - 275 75 375 75
15236   78 178 278 378 178 78 278 78   -  -
15237   81 181 281 381   -  - 281 81   -  -
15238   84 184 284 384 184 84 284 84   -  -
15239   87 187 287 387   -  - 287 87   -  -
15240   90 190 290 390 190 90 290 90 390 90
15241   93 193 293 393   -  - 293 93   -  -
15242    -   -   -   -   -  - 200  0   -  -
15243    -   -   -   -   -  -   -  - 300  0
15244    -   -   -   -   -  -   -  - 305  5
15245    -   -   -   -   -  -   -  - 310 10
15246    -   -   -   -   -  -   -  - 320 20
15247    -   -   -   -   -  -   -  - 325 25
15248    -   -   -   -   -  -   -  - 335 35
15249    -   -   -   -   -  -   -  - 340 40
15250    -   -   -   -   -  -   -  - 350 50
15251    -   -   -   -   -  -   -  - 355 55
15252    -   -   -   -   -  -   -  - 365 65
15253    -   -   -   -   -  -   -  - 370 70
15254    -   -   -   -   -  -   -  - 380 80
15255    -   -   -   -   -  -   -  - 385 85
15256    -   -   -   -   -  -   -  - 395 95
15258 do_execsql_test joinD-529 {
15259   SELECT t1.*, t2.*, t3.*, t4.*
15260   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
15261   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
15262   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
15263   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15264 } {
15265    5 105 205 305   -  -   -  - 305  5
15266   10 110 210 310 110 10   -  - 310 10
15267   15 115 215 315   -  - 215 15 315 15
15268   20 120 220 320 120 20   -  - 320 20
15269   25 125 225 325   -  -   -  - 325 25
15270   30 130 230 330 130 30 230 30 330 30
15271   35 135 235 335   -  -   -  - 335 35
15272   40 140 240 340 140 40   -  - 340 40
15273   45 145 245 345   -  - 245 45 345 45
15274   50 150 250 350 150 50   -  - 350 50
15275   55 155 255 355   -  -   -  - 355 55
15276   60 160 260 360 160 60 260 60 360 60
15277   65 165 265 365   -  -   -  - 365 65
15278   70 170 270 370 170 70   -  - 370 70
15279   75 175 275 375   -  - 275 75 375 75
15280   80 180 280 380 180 80   -  - 380 80
15281   85 185 285 385   -  -   -  - 385 85
15282   90 190 290 390 190 90 290 90 390 90
15283   95 195 295 395   -  -   -  - 395 95
15285 do_execsql_test joinD-530 {
15286   SELECT t1.*, t2.*, t3.*, t4.*
15287   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
15288   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
15289   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
15290   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15291 } {
15292    5 105 205 305   -  -   -  - 305  5
15293   10 110 210 310 110 10   -  - 310 10
15294   15 115 215 315   -  - 215 15 315 15
15295   20 120 220 320 120 20   -  - 320 20
15296   25 125 225 325   -  -   -  - 325 25
15297   30 130 230 330 130 30 230 30 330 30
15298   35 135 235 335   -  -   -  - 335 35
15299   40 140 240 340 140 40   -  - 340 40
15300   45 145 245 345   -  - 245 45 345 45
15301   50 150 250 350 150 50   -  - 350 50
15302   55 155 255 355   -  -   -  - 355 55
15303   60 160 260 360 160 60 260 60 360 60
15304   65 165 265 365   -  -   -  - 365 65
15305   70 170 270 370 170 70   -  - 370 70
15306   75 175 275 375   -  - 275 75 375 75
15307   80 180 280 380 180 80   -  - 380 80
15308   85 185 285 385   -  -   -  - 385 85
15309   90 190 290 390 190 90 290 90 390 90
15310   95 195 295 395   -  -   -  - 395 95
15312 do_execsql_test joinD-531 {
15313   SELECT t1.*, t2.*, t3.*, t4.*
15314   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
15315   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
15316   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
15317   WHERE t2.x>0
15318   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15319 } {
15320   10 110 210 310 110 10   -  - 310 10
15321   20 120 220 320 120 20   -  - 320 20
15322   30 130 230 330 130 30 230 30 330 30
15323   40 140 240 340 140 40   -  - 340 40
15324   50 150 250 350 150 50   -  - 350 50
15325   60 160 260 360 160 60 260 60 360 60
15326   70 170 270 370 170 70   -  - 370 70
15327   80 180 280 380 180 80   -  - 380 80
15328   90 190 290 390 190 90 290 90 390 90
15330 do_execsql_test joinD-532 {
15331   SELECT t1.*, t2.*, t3.*, t4.*
15332   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
15333   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
15334   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
15335   WHERE (t2.x>0 OR t2.x IS NULL)
15336   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15337 } {
15338    5 105 205 305   -  -   -  - 305  5
15339   10 110 210 310 110 10   -  - 310 10
15340   15 115 215 315   -  - 215 15 315 15
15341   20 120 220 320 120 20   -  - 320 20
15342   25 125 225 325   -  -   -  - 325 25
15343   30 130 230 330 130 30 230 30 330 30
15344   35 135 235 335   -  -   -  - 335 35
15345   40 140 240 340 140 40   -  - 340 40
15346   45 145 245 345   -  - 245 45 345 45
15347   50 150 250 350 150 50   -  - 350 50
15348   55 155 255 355   -  -   -  - 355 55
15349   60 160 260 360 160 60 260 60 360 60
15350   65 165 265 365   -  -   -  - 365 65
15351   70 170 270 370 170 70   -  - 370 70
15352   75 175 275 375   -  - 275 75 375 75
15353   80 180 280 380 180 80   -  - 380 80
15354   85 185 285 385   -  -   -  - 385 85
15355   90 190 290 390 190 90 290 90 390 90
15356   95 195 295 395   -  -   -  - 395 95
15358 do_execsql_test joinD-533 {
15359   SELECT t1.*, t2.*, t3.*, t4.*
15360   FROM t1 LEFT JOIN t2 ON true
15361   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
15362   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
15363   WHERE t1.b=t2.b AND t2.x>0
15364   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15365 } {
15366   10 110 210 310 110 10   -  - 310 10
15367   20 120 220 320 120 20   -  - 320 20
15368   30 130 230 330 130 30 230 30 330 30
15369   40 140 240 340 140 40   -  - 340 40
15370   50 150 250 350 150 50   -  - 350 50
15371   60 160 260 360 160 60 260 60 360 60
15372   70 170 270 370 170 70   -  - 370 70
15373   80 180 280 380 180 80   -  - 380 80
15374   90 190 290 390 190 90 290 90 390 90
15376 do_execsql_test joinD-534 {
15377   SELECT t1.*, t2.*, t3.*, t4.*
15378   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
15379   FULL JOIN t3 ON t1.c=t3.c
15380   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
15381   WHERE t3.y>0
15382   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15383 } {
15384   15 115 215 315   -  - 215 15 315 15
15385   30 130 230 330 130 30 230 30 330 30
15386   45 145 245 345   -  - 245 45 345 45
15387   60 160 260 360 160 60 260 60 360 60
15388   75 175 275 375   -  - 275 75 375 75
15389   90 190 290 390 190 90 290 90 390 90
15391 do_execsql_test joinD-535 {
15392   SELECT t1.*, t2.*, t3.*, t4.*
15393   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
15394   FULL JOIN t3 ON t1.c=t3.c
15395   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
15396   WHERE t3.y>0 OR t3.y IS NULL
15397   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15398 } {
15399    5 105 205 305   -  -   -  - 305  5
15400   10 110 210 310 110 10   -  - 310 10
15401   15 115 215 315   -  - 215 15 315 15
15402   20 120 220 320 120 20   -  - 320 20
15403   25 125 225 325   -  -   -  - 325 25
15404   30 130 230 330 130 30 230 30 330 30
15405   35 135 235 335   -  -   -  - 335 35
15406   40 140 240 340 140 40   -  - 340 40
15407   45 145 245 345   -  - 245 45 345 45
15408   50 150 250 350 150 50   -  - 350 50
15409   55 155 255 355   -  -   -  - 355 55
15410   60 160 260 360 160 60 260 60 360 60
15411   65 165 265 365   -  -   -  - 365 65
15412   70 170 270 370 170 70   -  - 370 70
15413   75 175 275 375   -  - 275 75 375 75
15414   80 180 280 380 180 80   -  - 380 80
15415   85 185 285 385   -  -   -  - 385 85
15416   90 190 290 390 190 90 290 90 390 90
15417   95 195 295 395   -  -   -  - 395 95
15419 do_execsql_test joinD-536 {
15420   SELECT t1.*, t2.*, t3.*, t4.*
15421   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
15422   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
15423   INNER JOIN t4 ON t1.d=t4.d
15424   WHERE t4.z>0
15425   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15426 } {
15427    5 105 205 305   -  -   -  - 305  5
15428   10 110 210 310 110 10   -  - 310 10
15429   15 115 215 315   -  - 215 15 315 15
15430   20 120 220 320 120 20   -  - 320 20
15431   25 125 225 325   -  -   -  - 325 25
15432   30 130 230 330 130 30 230 30 330 30
15433   35 135 235 335   -  -   -  - 335 35
15434   40 140 240 340 140 40   -  - 340 40
15435   45 145 245 345   -  - 245 45 345 45
15436   50 150 250 350 150 50   -  - 350 50
15437   55 155 255 355   -  -   -  - 355 55
15438   60 160 260 360 160 60 260 60 360 60
15439   65 165 265 365   -  -   -  - 365 65
15440   70 170 270 370 170 70   -  - 370 70
15441   75 175 275 375   -  - 275 75 375 75
15442   80 180 280 380 180 80   -  - 380 80
15443   85 185 285 385   -  -   -  - 385 85
15444   90 190 290 390 190 90 290 90 390 90
15445   95 195 295 395   -  -   -  - 395 95
15447 do_execsql_test joinD-537 {
15448   SELECT t1.*, t2.*, t3.*, t4.*
15449   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
15450   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
15451   INNER JOIN t4 ON t1.d=t4.d
15452   WHERE t4.z IS NULL OR t4.z>0
15453   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15454 } {
15455    5 105 205 305   -  -   -  - 305  5
15456   10 110 210 310 110 10   -  - 310 10
15457   15 115 215 315   -  - 215 15 315 15
15458   20 120 220 320 120 20   -  - 320 20
15459   25 125 225 325   -  -   -  - 325 25
15460   30 130 230 330 130 30 230 30 330 30
15461   35 135 235 335   -  -   -  - 335 35
15462   40 140 240 340 140 40   -  - 340 40
15463   45 145 245 345   -  - 245 45 345 45
15464   50 150 250 350 150 50   -  - 350 50
15465   55 155 255 355   -  -   -  - 355 55
15466   60 160 260 360 160 60 260 60 360 60
15467   65 165 265 365   -  -   -  - 365 65
15468   70 170 270 370 170 70   -  - 370 70
15469   75 175 275 375   -  - 275 75 375 75
15470   80 180 280 380 180 80   -  - 380 80
15471   85 185 285 385   -  -   -  - 385 85
15472   90 190 290 390 190 90 290 90 390 90
15473   95 195 295 395   -  -   -  - 395 95
15475 do_execsql_test joinD-538 {
15476   SELECT t1.*, t2.*, t3.*, t4.*
15477   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
15478   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
15479   INNER JOIN t4 ON t1.d=t4.d
15480   WHERE t2.x>0 AND t4.z>0
15481   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15482 } {
15483   10 110 210 310 110 10   -  - 310 10
15484   20 120 220 320 120 20   -  - 320 20
15485   30 130 230 330 130 30 230 30 330 30
15486   40 140 240 340 140 40   -  - 340 40
15487   50 150 250 350 150 50   -  - 350 50
15488   60 160 260 360 160 60 260 60 360 60
15489   70 170 270 370 170 70   -  - 370 70
15490   80 180 280 380 180 80   -  - 380 80
15491   90 190 290 390 190 90 290 90 390 90
15493 do_execsql_test joinD-539 {
15494   SELECT t1.*, t2.*, t3.*, t4.*
15495   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
15496   FULL JOIN t3 ON t1.c=t3.c
15497   INNER JOIN t4 ON t1.d=t4.d
15498   WHERE t4.z>0 AND t3.y>0
15499   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15500 } {
15501   15 115 215 315   -  - 215 15 315 15
15502   30 130 230 330 130 30 230 30 330 30
15503   45 145 245 345   -  - 245 45 345 45
15504   60 160 260 360 160 60 260 60 360 60
15505   75 175 275 375   -  - 275 75 375 75
15506   90 190 290 390 190 90 290 90 390 90
15508 do_execsql_test joinD-540 {
15509   SELECT t1.*, t2.*, t3.*, t4.*
15510   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
15511   FULL JOIN t3 ON t1.c=t3.c
15512   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
15513   WHERE t2.x>0 AND t3.y>0
15514   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15515 } {
15516   30 130 230 330 130 30 230 30 330 30
15517   60 160 260 360 160 60 260 60 360 60
15518   90 190 290 390 190 90 290 90 390 90
15520 do_execsql_test joinD-541 {
15521   SELECT t1.*, t2.*, t3.*, t4.*
15522   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
15523   FULL JOIN t3 ON t1.c=t3.c
15524   INNER JOIN t4 ON t1.d=t4.d
15525   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
15526   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15527 } {
15528   30 130 230 330 130 30 230 30 330 30
15529   60 160 260 360 160 60 260 60 360 60
15530   90 190 290 390 190 90 290 90 390 90
15532 do_execsql_test joinD-542 {
15533   SELECT t1.*, t2.*, t3.*, t4.*
15534   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
15535   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
15536   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
15537   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15538 } {
15539    5 105 205 305   -  -   -  - 305  5
15540   10 110 210 310 110 10   -  - 310 10
15541   15 115 215 315   -  - 215 15 315 15
15542   20 120 220 320 120 20   -  - 320 20
15543   25 125 225 325   -  -   -  - 325 25
15544   30 130 230 330 130 30 230 30 330 30
15545   35 135 235 335   -  -   -  - 335 35
15546   40 140 240 340 140 40   -  - 340 40
15547   45 145 245 345   -  - 245 45 345 45
15548   50 150 250 350 150 50   -  - 350 50
15549   55 155 255 355   -  -   -  - 355 55
15550   60 160 260 360 160 60 260 60 360 60
15551   65 165 265 365   -  -   -  - 365 65
15552   70 170 270 370 170 70   -  - 370 70
15553   75 175 275 375   -  - 275 75 375 75
15554   80 180 280 380 180 80   -  - 380 80
15555   85 185 285 385   -  -   -  - 385 85
15556   90 190 290 390 190 90 290 90 390 90
15557   95 195 295 395   -  -   -  - 395 95
15559 do_execsql_test joinD-543 {
15560   SELECT t1.*, t2.*, t3.*, t4.*
15561   FROM t1 LEFT JOIN t2 ON t2.x>0
15562   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
15563   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
15564   WHERE t1.b IS NOT DISTINCT FROM t2.b
15565   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15566 } {
15567   10 110 210 310 110 10   -  - 310 10
15568   20 120 220 320 120 20   -  - 320 20
15569   30 130 230 330 130 30 230 30 330 30
15570   40 140 240 340 140 40   -  - 340 40
15571   50 150 250 350 150 50   -  - 350 50
15572   60 160 260 360 160 60 260 60 360 60
15573   70 170 270 370 170 70   -  - 370 70
15574   80 180 280 380 180 80   -  - 380 80
15575   90 190 290 390 190 90 290 90 390 90
15577 do_execsql_test joinD-544 {
15578   SELECT t1.*, t2.*, t3.*, t4.*
15579   FROM t1 LEFT JOIN t2 ON t2.x>0
15580   FULL JOIN t3 ON t3.y>0
15581   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
15582   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
15583   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15584 } {
15585   30 130 230 330 130 30 230 30 330 30
15586   60 160 260 360 160 60 260 60 360 60
15587   90 190 290 390 190 90 290 90 390 90
15589 do_execsql_test joinD-545 {
15590   SELECT t1.*, t2.*, t3.*, t4.*
15591   FROM t1 LEFT JOIN t2 ON t2.x>0
15592   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
15593   INNER JOIN t4 ON t4.z>0
15594   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
15595   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15596 } {
15597   10 110 210 310 110 10   -  - 310 10
15598   20 120 220 320 120 20   -  - 320 20
15599   30 130 230 330 130 30 230 30 330 30
15600   40 140 240 340 140 40   -  - 340 40
15601   50 150 250 350 150 50   -  - 350 50
15602   60 160 260 360 160 60 260 60 360 60
15603   70 170 270 370 170 70   -  - 370 70
15604   80 180 280 380 180 80   -  - 380 80
15605   90 190 290 390 190 90 290 90 390 90
15607 do_execsql_test joinD-546 {
15608   SELECT t1.*, t2.*, t3.*, t4.*
15609   FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
15610   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
15611   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
15612   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15613 } {
15614    5 105 205 305   -  -   -  - 305  5
15615   10 110 210 310 110 10   -  - 310 10
15616   15 115 215 315   -  - 215 15 315 15
15617   20 120 220 320 120 20   -  - 320 20
15618   25 125 225 325   -  -   -  - 325 25
15619   30 130 230 330 130 30 230 30 330 30
15620   35 135 235 335   -  -   -  - 335 35
15621   40 140 240 340 140 40   -  - 340 40
15622   45 145 245 345   -  - 245 45 345 45
15623   50 150 250 350 150 50   -  - 350 50
15624   55 155 255 355   -  -   -  - 355 55
15625   60 160 260 360 160 60 260 60 360 60
15626   65 165 265 365   -  -   -  - 365 65
15627   70 170 270 370 170 70   -  - 370 70
15628   75 175 275 375   -  - 275 75 375 75
15629   80 180 280 380 180 80   -  - 380 80
15630   85 185 285 385   -  -   -  - 385 85
15631   90 190 290 390 190 90 290 90 390 90
15632   95 195 295 395   -  -   -  - 395 95
15634 do_execsql_test joinD-547 {
15635   SELECT t1.*, t2.*, t3.*, t4.*
15636   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
15637   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
15638   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
15639   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15640 } {
15641    0 100 200 300   -  -   -  -   -  -
15642    1 101 201 301   -  -   -  -   -  -
15643    2 102 202 302 102  2   -  -   -  -
15644    3 103 203 303   -  - 203  3   -  -
15645    4 104 204 304 104  4   -  -   -  -
15646    5 105 205 305   -  -   -  - 305  5
15647    6 106 206 306 106  6 206  6   -  -
15648    7 107 207 307   -  -   -  -   -  -
15649    8 108 208 308 108  8   -  -   -  -
15650    9 109 209 309   -  - 209  9   -  -
15651   10 110 210 310 110 10   -  - 310 10
15652   11 111 211 311   -  -   -  -   -  -
15653   12 112 212 312 112 12 212 12   -  -
15654   13 113 213 313   -  -   -  -   -  -
15655   14 114 214 314 114 14   -  -   -  -
15656   15 115 215 315   -  - 215 15 315 15
15657   16 116 216 316 116 16   -  -   -  -
15658   17 117 217 317   -  -   -  -   -  -
15659   18 118 218 318 118 18 218 18   -  -
15660   19 119 219 319   -  -   -  -   -  -
15661   20 120 220 320 120 20   -  - 320 20
15662   21 121 221 321   -  - 221 21   -  -
15663   22 122 222 322 122 22   -  -   -  -
15664   23 123 223 323   -  -   -  -   -  -
15665   24 124 224 324 124 24 224 24   -  -
15666   25 125 225 325   -  -   -  - 325 25
15667   26 126 226 326 126 26   -  -   -  -
15668   27 127 227 327   -  - 227 27   -  -
15669   28 128 228 328 128 28   -  -   -  -
15670   29 129 229 329   -  -   -  -   -  -
15671   30 130 230 330 130 30 230 30 330 30
15672   31 131 231 331   -  -   -  -   -  -
15673   32 132 232 332 132 32   -  -   -  -
15674   33 133 233 333   -  - 233 33   -  -
15675   34 134 234 334 134 34   -  -   -  -
15676   35 135 235 335   -  -   -  - 335 35
15677   36 136 236 336 136 36 236 36   -  -
15678   37 137 237 337   -  -   -  -   -  -
15679   38 138 238 338 138 38   -  -   -  -
15680   39 139 239 339   -  - 239 39   -  -
15681   40 140 240 340 140 40   -  - 340 40
15682   41 141 241 341   -  -   -  -   -  -
15683   42 142 242 342 142 42 242 42   -  -
15684   43 143 243 343   -  -   -  -   -  -
15685   44 144 244 344 144 44   -  -   -  -
15686   45 145 245 345   -  - 245 45 345 45
15687   46 146 246 346 146 46   -  -   -  -
15688   47 147 247 347   -  -   -  -   -  -
15689   48 148 248 348 148 48 248 48   -  -
15690   49 149 249 349   -  -   -  -   -  -
15691   50 150 250 350 150 50   -  - 350 50
15692   51 151 251 351   -  - 251 51   -  -
15693   52 152 252 352 152 52   -  -   -  -
15694   53 153 253 353   -  -   -  -   -  -
15695   54 154 254 354 154 54 254 54   -  -
15696   55 155 255 355   -  -   -  - 355 55
15697   56 156 256 356 156 56   -  -   -  -
15698   57 157 257 357   -  - 257 57   -  -
15699   58 158 258 358 158 58   -  -   -  -
15700   59 159 259 359   -  -   -  -   -  -
15701   60 160 260 360 160 60 260 60 360 60
15702   61 161 261 361   -  -   -  -   -  -
15703   62 162 262 362 162 62   -  -   -  -
15704   63 163 263 363   -  - 263 63   -  -
15705   64 164 264 364 164 64   -  -   -  -
15706   65 165 265 365   -  -   -  - 365 65
15707   66 166 266 366 166 66 266 66   -  -
15708   67 167 267 367   -  -   -  -   -  -
15709   68 168 268 368 168 68   -  -   -  -
15710   69 169 269 369   -  - 269 69   -  -
15711   70 170 270 370 170 70   -  - 370 70
15712   71 171 271 371   -  -   -  -   -  -
15713   72 172 272 372 172 72 272 72   -  -
15714   73 173 273 373   -  -   -  -   -  -
15715   74 174 274 374 174 74   -  -   -  -
15716   75 175 275 375   -  - 275 75 375 75
15717   76 176 276 376 176 76   -  -   -  -
15718   77 177 277 377   -  -   -  -   -  -
15719   78 178 278 378 178 78 278 78   -  -
15720   79 179 279 379   -  -   -  -   -  -
15721   80 180 280 380 180 80   -  - 380 80
15722   81 181 281 381   -  - 281 81   -  -
15723   82 182 282 382 182 82   -  -   -  -
15724   83 183 283 383   -  -   -  -   -  -
15725   84 184 284 384 184 84 284 84   -  -
15726   85 185 285 385   -  -   -  - 385 85
15727   86 186 286 386 186 86   -  -   -  -
15728   87 187 287 387   -  - 287 87   -  -
15729   88 188 288 388 188 88   -  -   -  -
15730   89 189 289 389   -  -   -  -   -  -
15731   90 190 290 390 190 90 290 90 390 90
15732   91 191 291 391   -  -   -  -   -  -
15733   92 192 292 392 192 92   -  -   -  -
15734   93 193 293 393   -  - 293 93   -  -
15735   94 194 294 394 194 94   -  -   -  -
15736   95 195 295 395   -  -   -  - 395 95
15737   96   - 296 396   -  -   -  -   -  -
15738   97 197   - 397   -  -   -  -   -  -
15739   98 198 298   -   -  -   -  -   -  -
15740   99   -   -   -   -  -   -  -   -  -
15741    -   -   -   -   -  - 200  0   -  -
15743 do_execsql_test joinD-548 {
15744   SELECT t1.*, t2.*, t3.*, t4.*
15745   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
15746   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
15747   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
15748   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15749 } {
15750    0 100 200 300   -  -   -  -   -  -
15751    1 101 201 301   -  -   -  -   -  -
15752    2 102 202 302 102  2   -  -   -  -
15753    3 103 203 303   -  - 203  3   -  -
15754    4 104 204 304 104  4   -  -   -  -
15755    5 105 205 305   -  -   -  - 305  5
15756    6 106 206 306 106  6 206  6   -  -
15757    7 107 207 307   -  -   -  -   -  -
15758    8 108 208 308 108  8   -  -   -  -
15759    9 109 209 309   -  - 209  9   -  -
15760   10 110 210 310 110 10   -  - 310 10
15761   11 111 211 311   -  -   -  -   -  -
15762   12 112 212 312 112 12 212 12   -  -
15763   13 113 213 313   -  -   -  -   -  -
15764   14 114 214 314 114 14   -  -   -  -
15765   15 115 215 315   -  - 215 15 315 15
15766   16 116 216 316 116 16   -  -   -  -
15767   17 117 217 317   -  -   -  -   -  -
15768   18 118 218 318 118 18 218 18   -  -
15769   19 119 219 319   -  -   -  -   -  -
15770   20 120 220 320 120 20   -  - 320 20
15771   21 121 221 321   -  - 221 21   -  -
15772   22 122 222 322 122 22   -  -   -  -
15773   23 123 223 323   -  -   -  -   -  -
15774   24 124 224 324 124 24 224 24   -  -
15775   25 125 225 325   -  -   -  - 325 25
15776   26 126 226 326 126 26   -  -   -  -
15777   27 127 227 327   -  - 227 27   -  -
15778   28 128 228 328 128 28   -  -   -  -
15779   29 129 229 329   -  -   -  -   -  -
15780   30 130 230 330 130 30 230 30 330 30
15781   31 131 231 331   -  -   -  -   -  -
15782   32 132 232 332 132 32   -  -   -  -
15783   33 133 233 333   -  - 233 33   -  -
15784   34 134 234 334 134 34   -  -   -  -
15785   35 135 235 335   -  -   -  - 335 35
15786   36 136 236 336 136 36 236 36   -  -
15787   37 137 237 337   -  -   -  -   -  -
15788   38 138 238 338 138 38   -  -   -  -
15789   39 139 239 339   -  - 239 39   -  -
15790   40 140 240 340 140 40   -  - 340 40
15791   41 141 241 341   -  -   -  -   -  -
15792   42 142 242 342 142 42 242 42   -  -
15793   43 143 243 343   -  -   -  -   -  -
15794   44 144 244 344 144 44   -  -   -  -
15795   45 145 245 345   -  - 245 45 345 45
15796   46 146 246 346 146 46   -  -   -  -
15797   47 147 247 347   -  -   -  -   -  -
15798   48 148 248 348 148 48 248 48   -  -
15799   49 149 249 349   -  -   -  -   -  -
15800   50 150 250 350 150 50   -  - 350 50
15801   51 151 251 351   -  - 251 51   -  -
15802   52 152 252 352 152 52   -  -   -  -
15803   53 153 253 353   -  -   -  -   -  -
15804   54 154 254 354 154 54 254 54   -  -
15805   55 155 255 355   -  -   -  - 355 55
15806   56 156 256 356 156 56   -  -   -  -
15807   57 157 257 357   -  - 257 57   -  -
15808   58 158 258 358 158 58   -  -   -  -
15809   59 159 259 359   -  -   -  -   -  -
15810   60 160 260 360 160 60 260 60 360 60
15811   61 161 261 361   -  -   -  -   -  -
15812   62 162 262 362 162 62   -  -   -  -
15813   63 163 263 363   -  - 263 63   -  -
15814   64 164 264 364 164 64   -  -   -  -
15815   65 165 265 365   -  -   -  - 365 65
15816   66 166 266 366 166 66 266 66   -  -
15817   67 167 267 367   -  -   -  -   -  -
15818   68 168 268 368 168 68   -  -   -  -
15819   69 169 269 369   -  - 269 69   -  -
15820   70 170 270 370 170 70   -  - 370 70
15821   71 171 271 371   -  -   -  -   -  -
15822   72 172 272 372 172 72 272 72   -  -
15823   73 173 273 373   -  -   -  -   -  -
15824   74 174 274 374 174 74   -  -   -  -
15825   75 175 275 375   -  - 275 75 375 75
15826   76 176 276 376 176 76   -  -   -  -
15827   77 177 277 377   -  -   -  -   -  -
15828   78 178 278 378 178 78 278 78   -  -
15829   79 179 279 379   -  -   -  -   -  -
15830   80 180 280 380 180 80   -  - 380 80
15831   81 181 281 381   -  - 281 81   -  -
15832   82 182 282 382 182 82   -  -   -  -
15833   83 183 283 383   -  -   -  -   -  -
15834   84 184 284 384 184 84 284 84   -  -
15835   85 185 285 385   -  -   -  - 385 85
15836   86 186 286 386 186 86   -  -   -  -
15837   87 187 287 387   -  - 287 87   -  -
15838   88 188 288 388 188 88   -  -   -  -
15839   89 189 289 389   -  -   -  -   -  -
15840   90 190 290 390 190 90 290 90 390 90
15841   91 191 291 391   -  -   -  -   -  -
15842   92 192 292 392 192 92   -  -   -  -
15843   93 193 293 393   -  - 293 93   -  -
15844   94 194 294 394 194 94   -  -   -  -
15845   95 195 295 395   -  -   -  - 395 95
15846   96   - 296 396   -  -   -  -   -  -
15847   97 197   - 397   -  -   -  -   -  -
15848   98 198 298   -   -  -   -  -   -  -
15849   99   -   -   -   -  -   -  -   -  -
15850    -   -   -   -   -  - 200  0   -  -
15852 do_execsql_test joinD-549 {
15853   SELECT t1.*, t2.*, t3.*, t4.*
15854   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
15855   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
15856   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
15857   WHERE t2.x>0
15858   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15859 } {
15860    2 102 202 302 102  2   -  -   -  -
15861    4 104 204 304 104  4   -  -   -  -
15862    6 106 206 306 106  6 206  6   -  -
15863    8 108 208 308 108  8   -  -   -  -
15864   10 110 210 310 110 10   -  - 310 10
15865   12 112 212 312 112 12 212 12   -  -
15866   14 114 214 314 114 14   -  -   -  -
15867   16 116 216 316 116 16   -  -   -  -
15868   18 118 218 318 118 18 218 18   -  -
15869   20 120 220 320 120 20   -  - 320 20
15870   22 122 222 322 122 22   -  -   -  -
15871   24 124 224 324 124 24 224 24   -  -
15872   26 126 226 326 126 26   -  -   -  -
15873   28 128 228 328 128 28   -  -   -  -
15874   30 130 230 330 130 30 230 30 330 30
15875   32 132 232 332 132 32   -  -   -  -
15876   34 134 234 334 134 34   -  -   -  -
15877   36 136 236 336 136 36 236 36   -  -
15878   38 138 238 338 138 38   -  -   -  -
15879   40 140 240 340 140 40   -  - 340 40
15880   42 142 242 342 142 42 242 42   -  -
15881   44 144 244 344 144 44   -  -   -  -
15882   46 146 246 346 146 46   -  -   -  -
15883   48 148 248 348 148 48 248 48   -  -
15884   50 150 250 350 150 50   -  - 350 50
15885   52 152 252 352 152 52   -  -   -  -
15886   54 154 254 354 154 54 254 54   -  -
15887   56 156 256 356 156 56   -  -   -  -
15888   58 158 258 358 158 58   -  -   -  -
15889   60 160 260 360 160 60 260 60 360 60
15890   62 162 262 362 162 62   -  -   -  -
15891   64 164 264 364 164 64   -  -   -  -
15892   66 166 266 366 166 66 266 66   -  -
15893   68 168 268 368 168 68   -  -   -  -
15894   70 170 270 370 170 70   -  - 370 70
15895   72 172 272 372 172 72 272 72   -  -
15896   74 174 274 374 174 74   -  -   -  -
15897   76 176 276 376 176 76   -  -   -  -
15898   78 178 278 378 178 78 278 78   -  -
15899   80 180 280 380 180 80   -  - 380 80
15900   82 182 282 382 182 82   -  -   -  -
15901   84 184 284 384 184 84 284 84   -  -
15902   86 186 286 386 186 86   -  -   -  -
15903   88 188 288 388 188 88   -  -   -  -
15904   90 190 290 390 190 90 290 90 390 90
15905   92 192 292 392 192 92   -  -   -  -
15906   94 194 294 394 194 94   -  -   -  -
15908 do_execsql_test joinD-550 {
15909   SELECT t1.*, t2.*, t3.*, t4.*
15910   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
15911   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
15912   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
15913   WHERE (t2.x>0 OR t2.x IS NULL)
15914   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
15915 } {
15916    1 101 201 301   -  -   -  -   -  -
15917    2 102 202 302 102  2   -  -   -  -
15918    3 103 203 303   -  - 203  3   -  -
15919    4 104 204 304 104  4   -  -   -  -
15920    5 105 205 305   -  -   -  - 305  5
15921    6 106 206 306 106  6 206  6   -  -
15922    7 107 207 307   -  -   -  -   -  -
15923    8 108 208 308 108  8   -  -   -  -
15924    9 109 209 309   -  - 209  9   -  -
15925   10 110 210 310 110 10   -  - 310 10
15926   11 111 211 311   -  -   -  -   -  -
15927   12 112 212 312 112 12 212 12   -  -
15928   13 113 213 313   -  -   -  -   -  -
15929   14 114 214 314 114 14   -  -   -  -
15930   15 115 215 315   -  - 215 15 315 15
15931   16 116 216 316 116 16   -  -   -  -
15932   17 117 217 317   -  -   -  -   -  -
15933   18 118 218 318 118 18 218 18   -  -
15934   19 119 219 319   -  -   -  -   -  -
15935   20 120 220 320 120 20   -  - 320 20
15936   21 121 221 321   -  - 221 21   -  -
15937   22 122 222 322 122 22   -  -   -  -
15938   23 123 223 323   -  -   -  -   -  -
15939   24 124 224 324 124 24 224 24   -  -
15940   25 125 225 325   -  -   -  - 325 25
15941   26 126 226 326 126 26   -  -   -  -
15942   27 127 227 327   -  - 227 27   -  -
15943   28 128 228 328 128 28   -  -   -  -
15944   29 129 229 329   -  -   -  -   -  -
15945   30 130 230 330 130 30 230 30 330 30
15946   31 131 231 331   -  -   -  -   -  -
15947   32 132 232 332 132 32   -  -   -  -
15948   33 133 233 333   -  - 233 33   -  -
15949   34 134 234 334 134 34   -  -   -  -
15950   35 135 235 335   -  -   -  - 335 35
15951   36 136 236 336 136 36 236 36   -  -
15952   37 137 237 337   -  -   -  -   -  -
15953   38 138 238 338 138 38   -  -   -  -
15954   39 139 239 339   -  - 239 39   -  -
15955   40 140 240 340 140 40   -  - 340 40
15956   41 141 241 341   -  -   -  -   -  -
15957   42 142 242 342 142 42 242 42   -  -
15958   43 143 243 343   -  -   -  -   -  -
15959   44 144 244 344 144 44   -  -   -  -
15960   45 145 245 345   -  - 245 45 345 45
15961   46 146 246 346 146 46   -  -   -  -
15962   47 147 247 347   -  -   -  -   -  -
15963   48 148 248 348 148 48 248 48   -  -
15964   49 149 249 349   -  -   -  -   -  -
15965   50 150 250 350 150 50   -  - 350 50
15966   51 151 251 351   -  - 251 51   -  -
15967   52 152 252 352 152 52   -  -   -  -
15968   53 153 253 353   -  -   -  -   -  -
15969   54 154 254 354 154 54 254 54   -  -
15970   55 155 255 355   -  -   -  - 355 55
15971   56 156 256 356 156 56   -  -   -  -
15972   57 157 257 357   -  - 257 57   -  -
15973   58 158 258 358 158 58   -  -   -  -
15974   59 159 259 359   -  -   -  -   -  -
15975   60 160 260 360 160 60 260 60 360 60
15976   61 161 261 361   -  -   -  -   -  -
15977   62 162 262 362 162 62   -  -   -  -
15978   63 163 263 363   -  - 263 63   -  -
15979   64 164 264 364 164 64   -  -   -  -
15980   65 165 265 365   -  -   -  - 365 65
15981   66 166 266 366 166 66 266 66   -  -
15982   67 167 267 367   -  -   -  -   -  -
15983   68 168 268 368 168 68   -  -   -  -
15984   69 169 269 369   -  - 269 69   -  -
15985   70 170 270 370 170 70   -  - 370 70
15986   71 171 271 371   -  -   -  -   -  -
15987   72 172 272 372 172 72 272 72   -  -
15988   73 173 273 373   -  -   -  -   -  -
15989   74 174 274 374 174 74   -  -   -  -
15990   75 175 275 375   -  - 275 75 375 75
15991   76 176 276 376 176 76   -  -   -  -
15992   77 177 277 377   -  -   -  -   -  -
15993   78 178 278 378 178 78 278 78   -  -
15994   79 179 279 379   -  -   -  -   -  -
15995   80 180 280 380 180 80   -  - 380 80
15996   81 181 281 381   -  - 281 81   -  -
15997   82 182 282 382 182 82   -  -   -  -
15998   83 183 283 383   -  -   -  -   -  -
15999   84 184 284 384 184 84 284 84   -  -
16000   85 185 285 385   -  -   -  - 385 85
16001   86 186 286 386 186 86   -  -   -  -
16002   87 187 287 387   -  - 287 87   -  -
16003   88 188 288 388 188 88   -  -   -  -
16004   89 189 289 389   -  -   -  -   -  -
16005   90 190 290 390 190 90 290 90 390 90
16006   91 191 291 391   -  -   -  -   -  -
16007   92 192 292 392 192 92   -  -   -  -
16008   93 193 293 393   -  - 293 93   -  -
16009   94 194 294 394 194 94   -  -   -  -
16010   95 195 295 395   -  -   -  - 395 95
16011   96   - 296 396   -  -   -  -   -  -
16012   97 197   - 397   -  -   -  -   -  -
16013   98 198 298   -   -  -   -  -   -  -
16014   99   -   -   -   -  -   -  -   -  -
16015    -   -   -   -   -  - 200  0   -  -
16017 do_execsql_test joinD-551 {
16018   SELECT t1.*, t2.*, t3.*, t4.*
16019   FROM t1 LEFT JOIN t2 ON true
16020   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
16021   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
16022   WHERE t1.b=t2.b AND t2.x>0
16023   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16024 } {
16025    2 102 202 302 102  2   -  -   -  -
16026    4 104 204 304 104  4   -  -   -  -
16027    6 106 206 306 106  6 206  6   -  -
16028    8 108 208 308 108  8   -  -   -  -
16029   10 110 210 310 110 10   -  - 310 10
16030   12 112 212 312 112 12 212 12   -  -
16031   14 114 214 314 114 14   -  -   -  -
16032   16 116 216 316 116 16   -  -   -  -
16033   18 118 218 318 118 18 218 18   -  -
16034   20 120 220 320 120 20   -  - 320 20
16035   22 122 222 322 122 22   -  -   -  -
16036   24 124 224 324 124 24 224 24   -  -
16037   26 126 226 326 126 26   -  -   -  -
16038   28 128 228 328 128 28   -  -   -  -
16039   30 130 230 330 130 30 230 30 330 30
16040   32 132 232 332 132 32   -  -   -  -
16041   34 134 234 334 134 34   -  -   -  -
16042   36 136 236 336 136 36 236 36   -  -
16043   38 138 238 338 138 38   -  -   -  -
16044   40 140 240 340 140 40   -  - 340 40
16045   42 142 242 342 142 42 242 42   -  -
16046   44 144 244 344 144 44   -  -   -  -
16047   46 146 246 346 146 46   -  -   -  -
16048   48 148 248 348 148 48 248 48   -  -
16049   50 150 250 350 150 50   -  - 350 50
16050   52 152 252 352 152 52   -  -   -  -
16051   54 154 254 354 154 54 254 54   -  -
16052   56 156 256 356 156 56   -  -   -  -
16053   58 158 258 358 158 58   -  -   -  -
16054   60 160 260 360 160 60 260 60 360 60
16055   62 162 262 362 162 62   -  -   -  -
16056   64 164 264 364 164 64   -  -   -  -
16057   66 166 266 366 166 66 266 66   -  -
16058   68 168 268 368 168 68   -  -   -  -
16059   70 170 270 370 170 70   -  - 370 70
16060   72 172 272 372 172 72 272 72   -  -
16061   74 174 274 374 174 74   -  -   -  -
16062   76 176 276 376 176 76   -  -   -  -
16063   78 178 278 378 178 78 278 78   -  -
16064   80 180 280 380 180 80   -  - 380 80
16065   82 182 282 382 182 82   -  -   -  -
16066   84 184 284 384 184 84 284 84   -  -
16067   86 186 286 386 186 86   -  -   -  -
16068   88 188 288 388 188 88   -  -   -  -
16069   90 190 290 390 190 90 290 90 390 90
16070   92 192 292 392 192 92   -  -   -  -
16071   94 194 294 394 194 94   -  -   -  -
16073 do_execsql_test joinD-552 {
16074   SELECT t1.*, t2.*, t3.*, t4.*
16075   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
16076   FULL JOIN t3 ON t1.c=t3.c
16077   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
16078   WHERE t3.y>0
16079   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16080 } {
16081    3 103 203 303   -  - 203  3   -  -
16082    6 106 206 306 106  6 206  6   -  -
16083    9 109 209 309   -  - 209  9   -  -
16084   12 112 212 312 112 12 212 12   -  -
16085   15 115 215 315   -  - 215 15 315 15
16086   18 118 218 318 118 18 218 18   -  -
16087   21 121 221 321   -  - 221 21   -  -
16088   24 124 224 324 124 24 224 24   -  -
16089   27 127 227 327   -  - 227 27   -  -
16090   30 130 230 330 130 30 230 30 330 30
16091   33 133 233 333   -  - 233 33   -  -
16092   36 136 236 336 136 36 236 36   -  -
16093   39 139 239 339   -  - 239 39   -  -
16094   42 142 242 342 142 42 242 42   -  -
16095   45 145 245 345   -  - 245 45 345 45
16096   48 148 248 348 148 48 248 48   -  -
16097   51 151 251 351   -  - 251 51   -  -
16098   54 154 254 354 154 54 254 54   -  -
16099   57 157 257 357   -  - 257 57   -  -
16100   60 160 260 360 160 60 260 60 360 60
16101   63 163 263 363   -  - 263 63   -  -
16102   66 166 266 366 166 66 266 66   -  -
16103   69 169 269 369   -  - 269 69   -  -
16104   72 172 272 372 172 72 272 72   -  -
16105   75 175 275 375   -  - 275 75 375 75
16106   78 178 278 378 178 78 278 78   -  -
16107   81 181 281 381   -  - 281 81   -  -
16108   84 184 284 384 184 84 284 84   -  -
16109   87 187 287 387   -  - 287 87   -  -
16110   90 190 290 390 190 90 290 90 390 90
16111   93 193 293 393   -  - 293 93   -  -
16113 do_execsql_test joinD-553 {
16114   SELECT t1.*, t2.*, t3.*, t4.*
16115   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
16116   FULL JOIN t3 ON t1.c=t3.c
16117   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
16118   WHERE t3.y>0 OR t3.y IS NULL
16119   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16120 } {
16121    1 101 201 301   -  -   -  -   -  -
16122    2 102 202 302 102  2   -  -   -  -
16123    3 103 203 303   -  - 203  3   -  -
16124    4 104 204 304 104  4   -  -   -  -
16125    5 105 205 305   -  -   -  - 305  5
16126    6 106 206 306 106  6 206  6   -  -
16127    7 107 207 307   -  -   -  -   -  -
16128    8 108 208 308 108  8   -  -   -  -
16129    9 109 209 309   -  - 209  9   -  -
16130   10 110 210 310 110 10   -  - 310 10
16131   11 111 211 311   -  -   -  -   -  -
16132   12 112 212 312 112 12 212 12   -  -
16133   13 113 213 313   -  -   -  -   -  -
16134   14 114 214 314 114 14   -  -   -  -
16135   15 115 215 315   -  - 215 15 315 15
16136   16 116 216 316 116 16   -  -   -  -
16137   17 117 217 317   -  -   -  -   -  -
16138   18 118 218 318 118 18 218 18   -  -
16139   19 119 219 319   -  -   -  -   -  -
16140   20 120 220 320 120 20   -  - 320 20
16141   21 121 221 321   -  - 221 21   -  -
16142   22 122 222 322 122 22   -  -   -  -
16143   23 123 223 323   -  -   -  -   -  -
16144   24 124 224 324 124 24 224 24   -  -
16145   25 125 225 325   -  -   -  - 325 25
16146   26 126 226 326 126 26   -  -   -  -
16147   27 127 227 327   -  - 227 27   -  -
16148   28 128 228 328 128 28   -  -   -  -
16149   29 129 229 329   -  -   -  -   -  -
16150   30 130 230 330 130 30 230 30 330 30
16151   31 131 231 331   -  -   -  -   -  -
16152   32 132 232 332 132 32   -  -   -  -
16153   33 133 233 333   -  - 233 33   -  -
16154   34 134 234 334 134 34   -  -   -  -
16155   35 135 235 335   -  -   -  - 335 35
16156   36 136 236 336 136 36 236 36   -  -
16157   37 137 237 337   -  -   -  -   -  -
16158   38 138 238 338 138 38   -  -   -  -
16159   39 139 239 339   -  - 239 39   -  -
16160   40 140 240 340 140 40   -  - 340 40
16161   41 141 241 341   -  -   -  -   -  -
16162   42 142 242 342 142 42 242 42   -  -
16163   43 143 243 343   -  -   -  -   -  -
16164   44 144 244 344 144 44   -  -   -  -
16165   45 145 245 345   -  - 245 45 345 45
16166   46 146 246 346 146 46   -  -   -  -
16167   47 147 247 347   -  -   -  -   -  -
16168   48 148 248 348 148 48 248 48   -  -
16169   49 149 249 349   -  -   -  -   -  -
16170   50 150 250 350 150 50   -  - 350 50
16171   51 151 251 351   -  - 251 51   -  -
16172   52 152 252 352 152 52   -  -   -  -
16173   53 153 253 353   -  -   -  -   -  -
16174   54 154 254 354 154 54 254 54   -  -
16175   55 155 255 355   -  -   -  - 355 55
16176   56 156 256 356 156 56   -  -   -  -
16177   57 157 257 357   -  - 257 57   -  -
16178   58 158 258 358 158 58   -  -   -  -
16179   59 159 259 359   -  -   -  -   -  -
16180   60 160 260 360 160 60 260 60 360 60
16181   61 161 261 361   -  -   -  -   -  -
16182   62 162 262 362 162 62   -  -   -  -
16183   63 163 263 363   -  - 263 63   -  -
16184   64 164 264 364 164 64   -  -   -  -
16185   65 165 265 365   -  -   -  - 365 65
16186   66 166 266 366 166 66 266 66   -  -
16187   67 167 267 367   -  -   -  -   -  -
16188   68 168 268 368 168 68   -  -   -  -
16189   69 169 269 369   -  - 269 69   -  -
16190   70 170 270 370 170 70   -  - 370 70
16191   71 171 271 371   -  -   -  -   -  -
16192   72 172 272 372 172 72 272 72   -  -
16193   73 173 273 373   -  -   -  -   -  -
16194   74 174 274 374 174 74   -  -   -  -
16195   75 175 275 375   -  - 275 75 375 75
16196   76 176 276 376 176 76   -  -   -  -
16197   77 177 277 377   -  -   -  -   -  -
16198   78 178 278 378 178 78 278 78   -  -
16199   79 179 279 379   -  -   -  -   -  -
16200   80 180 280 380 180 80   -  - 380 80
16201   81 181 281 381   -  - 281 81   -  -
16202   82 182 282 382 182 82   -  -   -  -
16203   83 183 283 383   -  -   -  -   -  -
16204   84 184 284 384 184 84 284 84   -  -
16205   85 185 285 385   -  -   -  - 385 85
16206   86 186 286 386 186 86   -  -   -  -
16207   87 187 287 387   -  - 287 87   -  -
16208   88 188 288 388 188 88   -  -   -  -
16209   89 189 289 389   -  -   -  -   -  -
16210   90 190 290 390 190 90 290 90 390 90
16211   91 191 291 391   -  -   -  -   -  -
16212   92 192 292 392 192 92   -  -   -  -
16213   93 193 293 393   -  - 293 93   -  -
16214   94 194 294 394 194 94   -  -   -  -
16215   95 195 295 395   -  -   -  - 395 95
16216   96   - 296 396   -  -   -  -   -  -
16217   97 197   - 397   -  -   -  -   -  -
16218   98 198 298   -   -  -   -  -   -  -
16219   99   -   -   -   -  -   -  -   -  -
16221 do_execsql_test joinD-554 {
16222   SELECT t1.*, t2.*, t3.*, t4.*
16223   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
16224   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
16225   LEFT JOIN t4 ON t1.d=t4.d
16226   WHERE t4.z>0
16227   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16228 } {
16229    5 105 205 305   -  -   -  - 305  5
16230   10 110 210 310 110 10   -  - 310 10
16231   15 115 215 315   -  - 215 15 315 15
16232   20 120 220 320 120 20   -  - 320 20
16233   25 125 225 325   -  -   -  - 325 25
16234   30 130 230 330 130 30 230 30 330 30
16235   35 135 235 335   -  -   -  - 335 35
16236   40 140 240 340 140 40   -  - 340 40
16237   45 145 245 345   -  - 245 45 345 45
16238   50 150 250 350 150 50   -  - 350 50
16239   55 155 255 355   -  -   -  - 355 55
16240   60 160 260 360 160 60 260 60 360 60
16241   65 165 265 365   -  -   -  - 365 65
16242   70 170 270 370 170 70   -  - 370 70
16243   75 175 275 375   -  - 275 75 375 75
16244   80 180 280 380 180 80   -  - 380 80
16245   85 185 285 385   -  -   -  - 385 85
16246   90 190 290 390 190 90 290 90 390 90
16247   95 195 295 395   -  -   -  - 395 95
16249 do_execsql_test joinD-555 {
16250   SELECT t1.*, t2.*, t3.*, t4.*
16251   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
16252   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
16253   LEFT JOIN t4 ON t1.d=t4.d
16254   WHERE t4.z IS NULL OR t4.z>0
16255   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16256 } {
16257    1 101 201 301   -  -   -  -   -  -
16258    2 102 202 302 102  2   -  -   -  -
16259    3 103 203 303   -  - 203  3   -  -
16260    4 104 204 304 104  4   -  -   -  -
16261    5 105 205 305   -  -   -  - 305  5
16262    6 106 206 306 106  6 206  6   -  -
16263    7 107 207 307   -  -   -  -   -  -
16264    8 108 208 308 108  8   -  -   -  -
16265    9 109 209 309   -  - 209  9   -  -
16266   10 110 210 310 110 10   -  - 310 10
16267   11 111 211 311   -  -   -  -   -  -
16268   12 112 212 312 112 12 212 12   -  -
16269   13 113 213 313   -  -   -  -   -  -
16270   14 114 214 314 114 14   -  -   -  -
16271   15 115 215 315   -  - 215 15 315 15
16272   16 116 216 316 116 16   -  -   -  -
16273   17 117 217 317   -  -   -  -   -  -
16274   18 118 218 318 118 18 218 18   -  -
16275   19 119 219 319   -  -   -  -   -  -
16276   20 120 220 320 120 20   -  - 320 20
16277   21 121 221 321   -  - 221 21   -  -
16278   22 122 222 322 122 22   -  -   -  -
16279   23 123 223 323   -  -   -  -   -  -
16280   24 124 224 324 124 24 224 24   -  -
16281   25 125 225 325   -  -   -  - 325 25
16282   26 126 226 326 126 26   -  -   -  -
16283   27 127 227 327   -  - 227 27   -  -
16284   28 128 228 328 128 28   -  -   -  -
16285   29 129 229 329   -  -   -  -   -  -
16286   30 130 230 330 130 30 230 30 330 30
16287   31 131 231 331   -  -   -  -   -  -
16288   32 132 232 332 132 32   -  -   -  -
16289   33 133 233 333   -  - 233 33   -  -
16290   34 134 234 334 134 34   -  -   -  -
16291   35 135 235 335   -  -   -  - 335 35
16292   36 136 236 336 136 36 236 36   -  -
16293   37 137 237 337   -  -   -  -   -  -
16294   38 138 238 338 138 38   -  -   -  -
16295   39 139 239 339   -  - 239 39   -  -
16296   40 140 240 340 140 40   -  - 340 40
16297   41 141 241 341   -  -   -  -   -  -
16298   42 142 242 342 142 42 242 42   -  -
16299   43 143 243 343   -  -   -  -   -  -
16300   44 144 244 344 144 44   -  -   -  -
16301   45 145 245 345   -  - 245 45 345 45
16302   46 146 246 346 146 46   -  -   -  -
16303   47 147 247 347   -  -   -  -   -  -
16304   48 148 248 348 148 48 248 48   -  -
16305   49 149 249 349   -  -   -  -   -  -
16306   50 150 250 350 150 50   -  - 350 50
16307   51 151 251 351   -  - 251 51   -  -
16308   52 152 252 352 152 52   -  -   -  -
16309   53 153 253 353   -  -   -  -   -  -
16310   54 154 254 354 154 54 254 54   -  -
16311   55 155 255 355   -  -   -  - 355 55
16312   56 156 256 356 156 56   -  -   -  -
16313   57 157 257 357   -  - 257 57   -  -
16314   58 158 258 358 158 58   -  -   -  -
16315   59 159 259 359   -  -   -  -   -  -
16316   60 160 260 360 160 60 260 60 360 60
16317   61 161 261 361   -  -   -  -   -  -
16318   62 162 262 362 162 62   -  -   -  -
16319   63 163 263 363   -  - 263 63   -  -
16320   64 164 264 364 164 64   -  -   -  -
16321   65 165 265 365   -  -   -  - 365 65
16322   66 166 266 366 166 66 266 66   -  -
16323   67 167 267 367   -  -   -  -   -  -
16324   68 168 268 368 168 68   -  -   -  -
16325   69 169 269 369   -  - 269 69   -  -
16326   70 170 270 370 170 70   -  - 370 70
16327   71 171 271 371   -  -   -  -   -  -
16328   72 172 272 372 172 72 272 72   -  -
16329   73 173 273 373   -  -   -  -   -  -
16330   74 174 274 374 174 74   -  -   -  -
16331   75 175 275 375   -  - 275 75 375 75
16332   76 176 276 376 176 76   -  -   -  -
16333   77 177 277 377   -  -   -  -   -  -
16334   78 178 278 378 178 78 278 78   -  -
16335   79 179 279 379   -  -   -  -   -  -
16336   80 180 280 380 180 80   -  - 380 80
16337   81 181 281 381   -  - 281 81   -  -
16338   82 182 282 382 182 82   -  -   -  -
16339   83 183 283 383   -  -   -  -   -  -
16340   84 184 284 384 184 84 284 84   -  -
16341   85 185 285 385   -  -   -  - 385 85
16342   86 186 286 386 186 86   -  -   -  -
16343   87 187 287 387   -  - 287 87   -  -
16344   88 188 288 388 188 88   -  -   -  -
16345   89 189 289 389   -  -   -  -   -  -
16346   90 190 290 390 190 90 290 90 390 90
16347   91 191 291 391   -  -   -  -   -  -
16348   92 192 292 392 192 92   -  -   -  -
16349   93 193 293 393   -  - 293 93   -  -
16350   94 194 294 394 194 94   -  -   -  -
16351   95 195 295 395   -  -   -  - 395 95
16352   96   - 296 396   -  -   -  -   -  -
16353   97 197   - 397   -  -   -  -   -  -
16354   98 198 298   -   -  -   -  -   -  -
16355   99   -   -   -   -  -   -  -   -  -
16356    -   -   -   -   -  - 200  0   -  -
16358 do_execsql_test joinD-556 {
16359   SELECT t1.*, t2.*, t3.*, t4.*
16360   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
16361   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
16362   LEFT JOIN t4 ON t1.d=t4.d
16363   WHERE t2.x>0 AND t4.z>0
16364   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16365 } {
16366   10 110 210 310 110 10   -  - 310 10
16367   20 120 220 320 120 20   -  - 320 20
16368   30 130 230 330 130 30 230 30 330 30
16369   40 140 240 340 140 40   -  - 340 40
16370   50 150 250 350 150 50   -  - 350 50
16371   60 160 260 360 160 60 260 60 360 60
16372   70 170 270 370 170 70   -  - 370 70
16373   80 180 280 380 180 80   -  - 380 80
16374   90 190 290 390 190 90 290 90 390 90
16376 do_execsql_test joinD-557 {
16377   SELECT t1.*, t2.*, t3.*, t4.*
16378   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
16379   FULL JOIN t3 ON t1.c=t3.c
16380   LEFT JOIN t4 ON t1.d=t4.d
16381   WHERE t4.z>0 AND t3.y>0
16382   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16383 } {
16384   15 115 215 315   -  - 215 15 315 15
16385   30 130 230 330 130 30 230 30 330 30
16386   45 145 245 345   -  - 245 45 345 45
16387   60 160 260 360 160 60 260 60 360 60
16388   75 175 275 375   -  - 275 75 375 75
16389   90 190 290 390 190 90 290 90 390 90
16391 do_execsql_test joinD-558 {
16392   SELECT t1.*, t2.*, t3.*, t4.*
16393   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
16394   FULL JOIN t3 ON t1.c=t3.c
16395   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
16396   WHERE t2.x>0 AND t3.y>0
16397   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16398 } {
16399    6 106 206 306 106  6 206  6   -  -
16400   12 112 212 312 112 12 212 12   -  -
16401   18 118 218 318 118 18 218 18   -  -
16402   24 124 224 324 124 24 224 24   -  -
16403   30 130 230 330 130 30 230 30 330 30
16404   36 136 236 336 136 36 236 36   -  -
16405   42 142 242 342 142 42 242 42   -  -
16406   48 148 248 348 148 48 248 48   -  -
16407   54 154 254 354 154 54 254 54   -  -
16408   60 160 260 360 160 60 260 60 360 60
16409   66 166 266 366 166 66 266 66   -  -
16410   72 172 272 372 172 72 272 72   -  -
16411   78 178 278 378 178 78 278 78   -  -
16412   84 184 284 384 184 84 284 84   -  -
16413   90 190 290 390 190 90 290 90 390 90
16415 do_execsql_test joinD-559 {
16416   SELECT t1.*, t2.*, t3.*, t4.*
16417   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
16418   FULL JOIN t3 ON t1.c=t3.c
16419   LEFT JOIN t4 ON t1.d=t4.d
16420   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
16421   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16422 } {
16423   30 130 230 330 130 30 230 30 330 30
16424   60 160 260 360 160 60 260 60 360 60
16425   90 190 290 390 190 90 290 90 390 90
16427 do_execsql_test joinD-560 {
16428   SELECT t1.*, t2.*, t3.*, t4.*
16429   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
16430   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
16431   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
16432   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16433 } {
16434    0 100 200 300   -  -   -  -   -  -
16435    1 101 201 301   -  -   -  -   -  -
16436    2 102 202 302 102  2   -  -   -  -
16437    3 103 203 303   -  - 203  3   -  -
16438    4 104 204 304 104  4   -  -   -  -
16439    5 105 205 305   -  -   -  - 305  5
16440    6 106 206 306 106  6 206  6   -  -
16441    7 107 207 307   -  -   -  -   -  -
16442    8 108 208 308 108  8   -  -   -  -
16443    9 109 209 309   -  - 209  9   -  -
16444   10 110 210 310 110 10   -  - 310 10
16445   11 111 211 311   -  -   -  -   -  -
16446   12 112 212 312 112 12 212 12   -  -
16447   13 113 213 313   -  -   -  -   -  -
16448   14 114 214 314 114 14   -  -   -  -
16449   15 115 215 315   -  - 215 15 315 15
16450   16 116 216 316 116 16   -  -   -  -
16451   17 117 217 317   -  -   -  -   -  -
16452   18 118 218 318 118 18 218 18   -  -
16453   19 119 219 319   -  -   -  -   -  -
16454   20 120 220 320 120 20   -  - 320 20
16455   21 121 221 321   -  - 221 21   -  -
16456   22 122 222 322 122 22   -  -   -  -
16457   23 123 223 323   -  -   -  -   -  -
16458   24 124 224 324 124 24 224 24   -  -
16459   25 125 225 325   -  -   -  - 325 25
16460   26 126 226 326 126 26   -  -   -  -
16461   27 127 227 327   -  - 227 27   -  -
16462   28 128 228 328 128 28   -  -   -  -
16463   29 129 229 329   -  -   -  -   -  -
16464   30 130 230 330 130 30 230 30 330 30
16465   31 131 231 331   -  -   -  -   -  -
16466   32 132 232 332 132 32   -  -   -  -
16467   33 133 233 333   -  - 233 33   -  -
16468   34 134 234 334 134 34   -  -   -  -
16469   35 135 235 335   -  -   -  - 335 35
16470   36 136 236 336 136 36 236 36   -  -
16471   37 137 237 337   -  -   -  -   -  -
16472   38 138 238 338 138 38   -  -   -  -
16473   39 139 239 339   -  - 239 39   -  -
16474   40 140 240 340 140 40   -  - 340 40
16475   41 141 241 341   -  -   -  -   -  -
16476   42 142 242 342 142 42 242 42   -  -
16477   43 143 243 343   -  -   -  -   -  -
16478   44 144 244 344 144 44   -  -   -  -
16479   45 145 245 345   -  - 245 45 345 45
16480   46 146 246 346 146 46   -  -   -  -
16481   47 147 247 347   -  -   -  -   -  -
16482   48 148 248 348 148 48 248 48   -  -
16483   49 149 249 349   -  -   -  -   -  -
16484   50 150 250 350 150 50   -  - 350 50
16485   51 151 251 351   -  - 251 51   -  -
16486   52 152 252 352 152 52   -  -   -  -
16487   53 153 253 353   -  -   -  -   -  -
16488   54 154 254 354 154 54 254 54   -  -
16489   55 155 255 355   -  -   -  - 355 55
16490   56 156 256 356 156 56   -  -   -  -
16491   57 157 257 357   -  - 257 57   -  -
16492   58 158 258 358 158 58   -  -   -  -
16493   59 159 259 359   -  -   -  -   -  -
16494   60 160 260 360 160 60 260 60 360 60
16495   61 161 261 361   -  -   -  -   -  -
16496   62 162 262 362 162 62   -  -   -  -
16497   63 163 263 363   -  - 263 63   -  -
16498   64 164 264 364 164 64   -  -   -  -
16499   65 165 265 365   -  -   -  - 365 65
16500   66 166 266 366 166 66 266 66   -  -
16501   67 167 267 367   -  -   -  -   -  -
16502   68 168 268 368 168 68   -  -   -  -
16503   69 169 269 369   -  - 269 69   -  -
16504   70 170 270 370 170 70   -  - 370 70
16505   71 171 271 371   -  -   -  -   -  -
16506   72 172 272 372 172 72 272 72   -  -
16507   73 173 273 373   -  -   -  -   -  -
16508   74 174 274 374 174 74   -  -   -  -
16509   75 175 275 375   -  - 275 75 375 75
16510   76 176 276 376 176 76   -  -   -  -
16511   77 177 277 377   -  -   -  -   -  -
16512   78 178 278 378 178 78 278 78   -  -
16513   79 179 279 379   -  -   -  -   -  -
16514   80 180 280 380 180 80   -  - 380 80
16515   81 181 281 381   -  - 281 81   -  -
16516   82 182 282 382 182 82   -  -   -  -
16517   83 183 283 383   -  -   -  -   -  -
16518   84 184 284 384 184 84 284 84   -  -
16519   85 185 285 385   -  -   -  - 385 85
16520   86 186 286 386 186 86   -  -   -  -
16521   87 187 287 387   -  - 287 87   -  -
16522   88 188 288 388 188 88   -  -   -  -
16523   89 189 289 389   -  -   -  -   -  -
16524   90 190 290 390 190 90 290 90 390 90
16525   91 191 291 391   -  -   -  -   -  -
16526   92 192 292 392 192 92   -  -   -  -
16527   93 193 293 393   -  - 293 93   -  -
16528   94 194 294 394 194 94   -  -   -  -
16529   95 195 295 395   -  -   -  - 395 95
16530   96   - 296 396   -  -   -  -   -  -
16531   97 197   - 397   -  -   -  -   -  -
16532   98 198 298   -   -  -   -  -   -  -
16533   99   -   -   -   -  -   -  -   -  -
16534    -   -   -   -   -  - 200  0   -  -
16536 do_execsql_test joinD-561 {
16537   SELECT t1.*, t2.*, t3.*, t4.*
16538   FROM t1 LEFT JOIN t2 ON t2.x>0
16539   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
16540   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
16541   WHERE t1.b IS NOT DISTINCT FROM t2.b
16542   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16543 } {
16544    2 102 202 302 102  2   -  -   -  -
16545    4 104 204 304 104  4   -  -   -  -
16546    6 106 206 306 106  6 206  6   -  -
16547    8 108 208 308 108  8   -  -   -  -
16548   10 110 210 310 110 10   -  - 310 10
16549   12 112 212 312 112 12 212 12   -  -
16550   14 114 214 314 114 14   -  -   -  -
16551   16 116 216 316 116 16   -  -   -  -
16552   18 118 218 318 118 18 218 18   -  -
16553   20 120 220 320 120 20   -  - 320 20
16554   22 122 222 322 122 22   -  -   -  -
16555   24 124 224 324 124 24 224 24   -  -
16556   26 126 226 326 126 26   -  -   -  -
16557   28 128 228 328 128 28   -  -   -  -
16558   30 130 230 330 130 30 230 30 330 30
16559   32 132 232 332 132 32   -  -   -  -
16560   34 134 234 334 134 34   -  -   -  -
16561   36 136 236 336 136 36 236 36   -  -
16562   38 138 238 338 138 38   -  -   -  -
16563   40 140 240 340 140 40   -  - 340 40
16564   42 142 242 342 142 42 242 42   -  -
16565   44 144 244 344 144 44   -  -   -  -
16566   46 146 246 346 146 46   -  -   -  -
16567   48 148 248 348 148 48 248 48   -  -
16568   50 150 250 350 150 50   -  - 350 50
16569   52 152 252 352 152 52   -  -   -  -
16570   54 154 254 354 154 54 254 54   -  -
16571   56 156 256 356 156 56   -  -   -  -
16572   58 158 258 358 158 58   -  -   -  -
16573   60 160 260 360 160 60 260 60 360 60
16574   62 162 262 362 162 62   -  -   -  -
16575   64 164 264 364 164 64   -  -   -  -
16576   66 166 266 366 166 66 266 66   -  -
16577   68 168 268 368 168 68   -  -   -  -
16578   70 170 270 370 170 70   -  - 370 70
16579   72 172 272 372 172 72 272 72   -  -
16580   74 174 274 374 174 74   -  -   -  -
16581   76 176 276 376 176 76   -  -   -  -
16582   78 178 278 378 178 78 278 78   -  -
16583   80 180 280 380 180 80   -  - 380 80
16584   82 182 282 382 182 82   -  -   -  -
16585   84 184 284 384 184 84 284 84   -  -
16586   86 186 286 386 186 86   -  -   -  -
16587   88 188 288 388 188 88   -  -   -  -
16588   90 190 290 390 190 90 290 90 390 90
16589   92 192 292 392 192 92   -  -   -  -
16590   94 194 294 394 194 94   -  -   -  -
16591    -   -   -   -   -  - 200  0   -  -
16593 do_execsql_test joinD-562 {
16594   SELECT t1.*, t2.*, t3.*, t4.*
16595   FROM t1 LEFT JOIN t2 ON t2.x>0
16596   FULL JOIN t3 ON t3.y>0
16597   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
16598   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
16599   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16600 } {
16601    6 106 206 306 106  6 206  6   -  -
16602   12 112 212 312 112 12 212 12   -  -
16603   18 118 218 318 118 18 218 18   -  -
16604   24 124 224 324 124 24 224 24   -  -
16605   30 130 230 330 130 30 230 30 330 30
16606   36 136 236 336 136 36 236 36   -  -
16607   42 142 242 342 142 42 242 42   -  -
16608   48 148 248 348 148 48 248 48   -  -
16609   54 154 254 354 154 54 254 54   -  -
16610   60 160 260 360 160 60 260 60 360 60
16611   66 166 266 366 166 66 266 66   -  -
16612   72 172 272 372 172 72 272 72   -  -
16613   78 178 278 378 178 78 278 78   -  -
16614   84 184 284 384 184 84 284 84   -  -
16615   90 190 290 390 190 90 290 90 390 90
16617 do_execsql_test joinD-563 {
16618   SELECT t1.*, t2.*, t3.*, t4.*
16619   FROM t1 LEFT JOIN t2 ON t2.x>0
16620   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
16621   LEFT JOIN t4 ON t4.z>0
16622   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
16623   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16624 } {
16625   10 110 210 310 110 10   -  - 310 10
16626   20 120 220 320 120 20   -  - 320 20
16627   30 130 230 330 130 30 230 30 330 30
16628   40 140 240 340 140 40   -  - 340 40
16629   50 150 250 350 150 50   -  - 350 50
16630   60 160 260 360 160 60 260 60 360 60
16631   70 170 270 370 170 70   -  - 370 70
16632   80 180 280 380 180 80   -  - 380 80
16633   90 190 290 390 190 90 290 90 390 90
16635 do_execsql_test joinD-564 {
16636   SELECT t1.*, t2.*, t3.*, t4.*
16637   FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
16638   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
16639   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
16640   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16641 } {
16642    0 100 200 300   -  -   -  -   -  -
16643    1 101 201 301   -  -   -  -   -  -
16644    2 102 202 302 102  2   -  -   -  -
16645    3 103 203 303   -  - 203  3   -  -
16646    4 104 204 304 104  4   -  -   -  -
16647    5 105 205 305   -  -   -  - 305  5
16648    6 106 206 306 106  6 206  6   -  -
16649    7 107 207 307   -  -   -  -   -  -
16650    8 108 208 308 108  8   -  -   -  -
16651    9 109 209 309   -  - 209  9   -  -
16652   10 110 210 310 110 10   -  - 310 10
16653   11 111 211 311   -  -   -  -   -  -
16654   12 112 212 312 112 12 212 12   -  -
16655   13 113 213 313   -  -   -  -   -  -
16656   14 114 214 314 114 14   -  -   -  -
16657   15 115 215 315   -  - 215 15 315 15
16658   16 116 216 316 116 16   -  -   -  -
16659   17 117 217 317   -  -   -  -   -  -
16660   18 118 218 318 118 18 218 18   -  -
16661   19 119 219 319   -  -   -  -   -  -
16662   20 120 220 320 120 20   -  - 320 20
16663   21 121 221 321   -  - 221 21   -  -
16664   22 122 222 322 122 22   -  -   -  -
16665   23 123 223 323   -  -   -  -   -  -
16666   24 124 224 324 124 24 224 24   -  -
16667   25 125 225 325   -  -   -  - 325 25
16668   26 126 226 326 126 26   -  -   -  -
16669   27 127 227 327   -  - 227 27   -  -
16670   28 128 228 328 128 28   -  -   -  -
16671   29 129 229 329   -  -   -  -   -  -
16672   30 130 230 330 130 30 230 30 330 30
16673   31 131 231 331   -  -   -  -   -  -
16674   32 132 232 332 132 32   -  -   -  -
16675   33 133 233 333   -  - 233 33   -  -
16676   34 134 234 334 134 34   -  -   -  -
16677   35 135 235 335   -  -   -  - 335 35
16678   36 136 236 336 136 36 236 36   -  -
16679   37 137 237 337   -  -   -  -   -  -
16680   38 138 238 338 138 38   -  -   -  -
16681   39 139 239 339   -  - 239 39   -  -
16682   40 140 240 340 140 40   -  - 340 40
16683   41 141 241 341   -  -   -  -   -  -
16684   42 142 242 342 142 42 242 42   -  -
16685   43 143 243 343   -  -   -  -   -  -
16686   44 144 244 344 144 44   -  -   -  -
16687   45 145 245 345   -  - 245 45 345 45
16688   46 146 246 346 146 46   -  -   -  -
16689   47 147 247 347   -  -   -  -   -  -
16690   48 148 248 348 148 48 248 48   -  -
16691   49 149 249 349   -  -   -  -   -  -
16692   50 150 250 350 150 50   -  - 350 50
16693   51 151 251 351   -  - 251 51   -  -
16694   52 152 252 352 152 52   -  -   -  -
16695   53 153 253 353   -  -   -  -   -  -
16696   54 154 254 354 154 54 254 54   -  -
16697   55 155 255 355   -  -   -  - 355 55
16698   56 156 256 356 156 56   -  -   -  -
16699   57 157 257 357   -  - 257 57   -  -
16700   58 158 258 358 158 58   -  -   -  -
16701   59 159 259 359   -  -   -  -   -  -
16702   60 160 260 360 160 60 260 60 360 60
16703   61 161 261 361   -  -   -  -   -  -
16704   62 162 262 362 162 62   -  -   -  -
16705   63 163 263 363   -  - 263 63   -  -
16706   64 164 264 364 164 64   -  -   -  -
16707   65 165 265 365   -  -   -  - 365 65
16708   66 166 266 366 166 66 266 66   -  -
16709   67 167 267 367   -  -   -  -   -  -
16710   68 168 268 368 168 68   -  -   -  -
16711   69 169 269 369   -  - 269 69   -  -
16712   70 170 270 370 170 70   -  - 370 70
16713   71 171 271 371   -  -   -  -   -  -
16714   72 172 272 372 172 72 272 72   -  -
16715   73 173 273 373   -  -   -  -   -  -
16716   74 174 274 374 174 74   -  -   -  -
16717   75 175 275 375   -  - 275 75 375 75
16718   76 176 276 376 176 76   -  -   -  -
16719   77 177 277 377   -  -   -  -   -  -
16720   78 178 278 378 178 78 278 78   -  -
16721   79 179 279 379   -  -   -  -   -  -
16722   80 180 280 380 180 80   -  - 380 80
16723   81 181 281 381   -  - 281 81   -  -
16724   82 182 282 382 182 82   -  -   -  -
16725   83 183 283 383   -  -   -  -   -  -
16726   84 184 284 384 184 84 284 84   -  -
16727   85 185 285 385   -  -   -  - 385 85
16728   86 186 286 386 186 86   -  -   -  -
16729   87 187 287 387   -  - 287 87   -  -
16730   88 188 288 388 188 88   -  -   -  -
16731   89 189 289 389   -  -   -  -   -  -
16732   90 190 290 390 190 90 290 90 390 90
16733   91 191 291 391   -  -   -  -   -  -
16734   92 192 292 392 192 92   -  -   -  -
16735   93 193 293 393   -  - 293 93   -  -
16736   94 194 294 394 194 94   -  -   -  -
16737   95 195 295 395   -  -   -  - 395 95
16738   96   - 296 396   -  -   -  -   -  -
16739   97 197   - 397   -  -   -  -   -  -
16740   98 198 298   -   -  -   -  -   -  -
16741   99   -   -   -   -  -   -  -   -  -
16742    -   -   -   -   -  - 200  0   -  -
16744 do_execsql_test joinD-565 {
16745   SELECT t1.*, t2.*, t3.*, t4.*
16746   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
16747   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
16748   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
16749   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16750 } {
16751    5 105 205 305   -  -   -  - 305  5
16752   10 110 210 310 110 10   -  - 310 10
16753   15 115 215 315   -  - 215 15 315 15
16754   20 120 220 320 120 20   -  - 320 20
16755   25 125 225 325   -  -   -  - 325 25
16756   30 130 230 330 130 30 230 30 330 30
16757   35 135 235 335   -  -   -  - 335 35
16758   40 140 240 340 140 40   -  - 340 40
16759   45 145 245 345   -  - 245 45 345 45
16760   50 150 250 350 150 50   -  - 350 50
16761   55 155 255 355   -  -   -  - 355 55
16762   60 160 260 360 160 60 260 60 360 60
16763   65 165 265 365   -  -   -  - 365 65
16764   70 170 270 370 170 70   -  - 370 70
16765   75 175 275 375   -  - 275 75 375 75
16766   80 180 280 380 180 80   -  - 380 80
16767   85 185 285 385   -  -   -  - 385 85
16768   90 190 290 390 190 90 290 90 390 90
16769   95 195 295 395   -  -   -  - 395 95
16770    -   -   -   -   -  -   -  - 300  0
16772 do_execsql_test joinD-566 {
16773   SELECT t1.*, t2.*, t3.*, t4.*
16774   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
16775   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
16776   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
16777   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16778 } {
16779    5 105 205 305   -  -   -  - 305  5
16780   10 110 210 310 110 10   -  - 310 10
16781   15 115 215 315   -  - 215 15 315 15
16782   20 120 220 320 120 20   -  - 320 20
16783   25 125 225 325   -  -   -  - 325 25
16784   30 130 230 330 130 30 230 30 330 30
16785   35 135 235 335   -  -   -  - 335 35
16786   40 140 240 340 140 40   -  - 340 40
16787   45 145 245 345   -  - 245 45 345 45
16788   50 150 250 350 150 50   -  - 350 50
16789   55 155 255 355   -  -   -  - 355 55
16790   60 160 260 360 160 60 260 60 360 60
16791   65 165 265 365   -  -   -  - 365 65
16792   70 170 270 370 170 70   -  - 370 70
16793   75 175 275 375   -  - 275 75 375 75
16794   80 180 280 380 180 80   -  - 380 80
16795   85 185 285 385   -  -   -  - 385 85
16796   90 190 290 390 190 90 290 90 390 90
16797   95 195 295 395   -  -   -  - 395 95
16798    -   -   -   -   -  -   -  - 300  0
16800 do_execsql_test joinD-567 {
16801   SELECT t1.*, t2.*, t3.*, t4.*
16802   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
16803   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
16804   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
16805   WHERE t2.x>0
16806   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16807 } {
16808   10 110 210 310 110 10   -  - 310 10
16809   20 120 220 320 120 20   -  - 320 20
16810   30 130 230 330 130 30 230 30 330 30
16811   40 140 240 340 140 40   -  - 340 40
16812   50 150 250 350 150 50   -  - 350 50
16813   60 160 260 360 160 60 260 60 360 60
16814   70 170 270 370 170 70   -  - 370 70
16815   80 180 280 380 180 80   -  - 380 80
16816   90 190 290 390 190 90 290 90 390 90
16818 do_execsql_test joinD-568 {
16819   SELECT t1.*, t2.*, t3.*, t4.*
16820   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
16821   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
16822   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
16823   WHERE (t2.x>0 OR t2.x IS NULL)
16824   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16825 } {
16826    5 105 205 305   -  -   -  - 305  5
16827   10 110 210 310 110 10   -  - 310 10
16828   15 115 215 315   -  - 215 15 315 15
16829   20 120 220 320 120 20   -  - 320 20
16830   25 125 225 325   -  -   -  - 325 25
16831   30 130 230 330 130 30 230 30 330 30
16832   35 135 235 335   -  -   -  - 335 35
16833   40 140 240 340 140 40   -  - 340 40
16834   45 145 245 345   -  - 245 45 345 45
16835   50 150 250 350 150 50   -  - 350 50
16836   55 155 255 355   -  -   -  - 355 55
16837   60 160 260 360 160 60 260 60 360 60
16838   65 165 265 365   -  -   -  - 365 65
16839   70 170 270 370 170 70   -  - 370 70
16840   75 175 275 375   -  - 275 75 375 75
16841   80 180 280 380 180 80   -  - 380 80
16842   85 185 285 385   -  -   -  - 385 85
16843   90 190 290 390 190 90 290 90 390 90
16844   95 195 295 395   -  -   -  - 395 95
16845    -   -   -   -   -  -   -  - 300  0
16847 do_execsql_test joinD-569 {
16848   SELECT t1.*, t2.*, t3.*, t4.*
16849   FROM t1 LEFT JOIN t2 ON true
16850   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
16851   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
16852   WHERE t1.b=t2.b AND t2.x>0
16853   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16854 } {
16855   10 110 210 310 110 10   -  - 310 10
16856   20 120 220 320 120 20   -  - 320 20
16857   30 130 230 330 130 30 230 30 330 30
16858   40 140 240 340 140 40   -  - 340 40
16859   50 150 250 350 150 50   -  - 350 50
16860   60 160 260 360 160 60 260 60 360 60
16861   70 170 270 370 170 70   -  - 370 70
16862   80 180 280 380 180 80   -  - 380 80
16863   90 190 290 390 190 90 290 90 390 90
16865 do_execsql_test joinD-570 {
16866   SELECT t1.*, t2.*, t3.*, t4.*
16867   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
16868   FULL JOIN t3 ON t1.c=t3.c
16869   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
16870   WHERE t3.y>0
16871   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16872 } {
16873   15 115 215 315   -  - 215 15 315 15
16874   30 130 230 330 130 30 230 30 330 30
16875   45 145 245 345   -  - 245 45 345 45
16876   60 160 260 360 160 60 260 60 360 60
16877   75 175 275 375   -  - 275 75 375 75
16878   90 190 290 390 190 90 290 90 390 90
16880 do_execsql_test joinD-571 {
16881   SELECT t1.*, t2.*, t3.*, t4.*
16882   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
16883   FULL JOIN t3 ON t1.c=t3.c
16884   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
16885   WHERE t3.y>0 OR t3.y IS NULL
16886   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16887 } {
16888    5 105 205 305   -  -   -  - 305  5
16889   10 110 210 310 110 10   -  - 310 10
16890   15 115 215 315   -  - 215 15 315 15
16891   20 120 220 320 120 20   -  - 320 20
16892   25 125 225 325   -  -   -  - 325 25
16893   30 130 230 330 130 30 230 30 330 30
16894   35 135 235 335   -  -   -  - 335 35
16895   40 140 240 340 140 40   -  - 340 40
16896   45 145 245 345   -  - 245 45 345 45
16897   50 150 250 350 150 50   -  - 350 50
16898   55 155 255 355   -  -   -  - 355 55
16899   60 160 260 360 160 60 260 60 360 60
16900   65 165 265 365   -  -   -  - 365 65
16901   70 170 270 370 170 70   -  - 370 70
16902   75 175 275 375   -  - 275 75 375 75
16903   80 180 280 380 180 80   -  - 380 80
16904   85 185 285 385   -  -   -  - 385 85
16905   90 190 290 390 190 90 290 90 390 90
16906   95 195 295 395   -  -   -  - 395 95
16907    -   -   -   -   -  -   -  - 300  0
16909 do_execsql_test joinD-572 {
16910   SELECT t1.*, t2.*, t3.*, t4.*
16911   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
16912   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
16913   RIGHT JOIN t4 ON t1.d=t4.d
16914   WHERE t4.z>0
16915   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16916 } {
16917    5 105 205 305   -  -   -  - 305  5
16918   10 110 210 310 110 10   -  - 310 10
16919   15 115 215 315   -  - 215 15 315 15
16920   20 120 220 320 120 20   -  - 320 20
16921   25 125 225 325   -  -   -  - 325 25
16922   30 130 230 330 130 30 230 30 330 30
16923   35 135 235 335   -  -   -  - 335 35
16924   40 140 240 340 140 40   -  - 340 40
16925   45 145 245 345   -  - 245 45 345 45
16926   50 150 250 350 150 50   -  - 350 50
16927   55 155 255 355   -  -   -  - 355 55
16928   60 160 260 360 160 60 260 60 360 60
16929   65 165 265 365   -  -   -  - 365 65
16930   70 170 270 370 170 70   -  - 370 70
16931   75 175 275 375   -  - 275 75 375 75
16932   80 180 280 380 180 80   -  - 380 80
16933   85 185 285 385   -  -   -  - 385 85
16934   90 190 290 390 190 90 290 90 390 90
16935   95 195 295 395   -  -   -  - 395 95
16937 do_execsql_test joinD-573 {
16938   SELECT t1.*, t2.*, t3.*, t4.*
16939   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
16940   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
16941   RIGHT JOIN t4 ON t1.d=t4.d
16942   WHERE t4.z IS NULL OR t4.z>0
16943   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16944 } {
16945    5 105 205 305   -  -   -  - 305  5
16946   10 110 210 310 110 10   -  - 310 10
16947   15 115 215 315   -  - 215 15 315 15
16948   20 120 220 320 120 20   -  - 320 20
16949   25 125 225 325   -  -   -  - 325 25
16950   30 130 230 330 130 30 230 30 330 30
16951   35 135 235 335   -  -   -  - 335 35
16952   40 140 240 340 140 40   -  - 340 40
16953   45 145 245 345   -  - 245 45 345 45
16954   50 150 250 350 150 50   -  - 350 50
16955   55 155 255 355   -  -   -  - 355 55
16956   60 160 260 360 160 60 260 60 360 60
16957   65 165 265 365   -  -   -  - 365 65
16958   70 170 270 370 170 70   -  - 370 70
16959   75 175 275 375   -  - 275 75 375 75
16960   80 180 280 380 180 80   -  - 380 80
16961   85 185 285 385   -  -   -  - 385 85
16962   90 190 290 390 190 90 290 90 390 90
16963   95 195 295 395   -  -   -  - 395 95
16965 do_execsql_test joinD-574 {
16966   SELECT t1.*, t2.*, t3.*, t4.*
16967   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
16968   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
16969   RIGHT JOIN t4 ON t1.d=t4.d
16970   WHERE t2.x>0 AND t4.z>0
16971   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16972 } {
16973   10 110 210 310 110 10   -  - 310 10
16974   20 120 220 320 120 20   -  - 320 20
16975   30 130 230 330 130 30 230 30 330 30
16976   40 140 240 340 140 40   -  - 340 40
16977   50 150 250 350 150 50   -  - 350 50
16978   60 160 260 360 160 60 260 60 360 60
16979   70 170 270 370 170 70   -  - 370 70
16980   80 180 280 380 180 80   -  - 380 80
16981   90 190 290 390 190 90 290 90 390 90
16983 do_execsql_test joinD-575 {
16984   SELECT t1.*, t2.*, t3.*, t4.*
16985   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
16986   FULL JOIN t3 ON t1.c=t3.c
16987   RIGHT JOIN t4 ON t1.d=t4.d
16988   WHERE t4.z>0 AND t3.y>0
16989   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
16990 } {
16991   15 115 215 315   -  - 215 15 315 15
16992   30 130 230 330 130 30 230 30 330 30
16993   45 145 245 345   -  - 245 45 345 45
16994   60 160 260 360 160 60 260 60 360 60
16995   75 175 275 375   -  - 275 75 375 75
16996   90 190 290 390 190 90 290 90 390 90
16998 do_execsql_test joinD-576 {
16999   SELECT t1.*, t2.*, t3.*, t4.*
17000   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
17001   FULL JOIN t3 ON t1.c=t3.c
17002   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
17003   WHERE t2.x>0 AND t3.y>0
17004   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17005 } {
17006   30 130 230 330 130 30 230 30 330 30
17007   60 160 260 360 160 60 260 60 360 60
17008   90 190 290 390 190 90 290 90 390 90
17010 do_execsql_test joinD-577 {
17011   SELECT t1.*, t2.*, t3.*, t4.*
17012   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
17013   FULL JOIN t3 ON t1.c=t3.c
17014   RIGHT JOIN t4 ON t1.d=t4.d
17015   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
17016   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17017 } {
17018   30 130 230 330 130 30 230 30 330 30
17019   60 160 260 360 160 60 260 60 360 60
17020   90 190 290 390 190 90 290 90 390 90
17022 do_execsql_test joinD-578 {
17023   SELECT t1.*, t2.*, t3.*, t4.*
17024   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
17025   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
17026   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
17027   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17028 } {
17029    5 105 205 305   -  -   -  - 305  5
17030   10 110 210 310 110 10   -  - 310 10
17031   15 115 215 315   -  - 215 15 315 15
17032   20 120 220 320 120 20   -  - 320 20
17033   25 125 225 325   -  -   -  - 325 25
17034   30 130 230 330 130 30 230 30 330 30
17035   35 135 235 335   -  -   -  - 335 35
17036   40 140 240 340 140 40   -  - 340 40
17037   45 145 245 345   -  - 245 45 345 45
17038   50 150 250 350 150 50   -  - 350 50
17039   55 155 255 355   -  -   -  - 355 55
17040   60 160 260 360 160 60 260 60 360 60
17041   65 165 265 365   -  -   -  - 365 65
17042   70 170 270 370 170 70   -  - 370 70
17043   75 175 275 375   -  - 275 75 375 75
17044   80 180 280 380 180 80   -  - 380 80
17045   85 185 285 385   -  -   -  - 385 85
17046   90 190 290 390 190 90 290 90 390 90
17047   95 195 295 395   -  -   -  - 395 95
17048    -   -   -   -   -  -   -  - 300  0
17050 do_execsql_test joinD-579 {
17051   SELECT t1.*, t2.*, t3.*, t4.*
17052   FROM t1 LEFT JOIN t2 ON t2.x>0
17053   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
17054   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
17055   WHERE t1.b IS NOT DISTINCT FROM t2.b
17056   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17057 } {
17058   10 110 210 310 110 10   -  - 310 10
17059   20 120 220 320 120 20   -  - 320 20
17060   30 130 230 330 130 30 230 30 330 30
17061   40 140 240 340 140 40   -  - 340 40
17062   50 150 250 350 150 50   -  - 350 50
17063   60 160 260 360 160 60 260 60 360 60
17064   70 170 270 370 170 70   -  - 370 70
17065   80 180 280 380 180 80   -  - 380 80
17066   90 190 290 390 190 90 290 90 390 90
17067    -   -   -   -   -  -   -  - 300  0
17069 do_execsql_test joinD-580 {
17070   SELECT t1.*, t2.*, t3.*, t4.*
17071   FROM t1 LEFT JOIN t2 ON t2.x>0
17072   FULL JOIN t3 ON t3.y>0
17073   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
17074   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
17075   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17076 } {
17077   30 130 230 330 130 30 230 30 330 30
17078   60 160 260 360 160 60 260 60 360 60
17079   90 190 290 390 190 90 290 90 390 90
17081 do_execsql_test joinD-581 {
17082   SELECT t1.*, t2.*, t3.*, t4.*
17083   FROM t1 LEFT JOIN t2 ON t2.x>0
17084   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
17085   RIGHT JOIN t4 ON t4.z>0
17086   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
17087   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17088 } {
17089   10 110 210 310 110 10   -  - 310 10
17090   20 120 220 320 120 20   -  - 320 20
17091   30 130 230 330 130 30 230 30 330 30
17092   40 140 240 340 140 40   -  - 340 40
17093   50 150 250 350 150 50   -  - 350 50
17094   60 160 260 360 160 60 260 60 360 60
17095   70 170 270 370 170 70   -  - 370 70
17096   80 180 280 380 180 80   -  - 380 80
17097   90 190 290 390 190 90 290 90 390 90
17099 do_execsql_test joinD-582 {
17100   SELECT t1.*, t2.*, t3.*, t4.*
17101   FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
17102   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
17103   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
17104   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17105 } {
17106    5 105 205 305   -  -   -  - 305  5
17107   10 110 210 310 110 10   -  - 310 10
17108   15 115 215 315   -  - 215 15 315 15
17109   20 120 220 320 120 20   -  - 320 20
17110   25 125 225 325   -  -   -  - 325 25
17111   30 130 230 330 130 30 230 30 330 30
17112   35 135 235 335   -  -   -  - 335 35
17113   40 140 240 340 140 40   -  - 340 40
17114   45 145 245 345   -  - 245 45 345 45
17115   50 150 250 350 150 50   -  - 350 50
17116   55 155 255 355   -  -   -  - 355 55
17117   60 160 260 360 160 60 260 60 360 60
17118   65 165 265 365   -  -   -  - 365 65
17119   70 170 270 370 170 70   -  - 370 70
17120   75 175 275 375   -  - 275 75 375 75
17121   80 180 280 380 180 80   -  - 380 80
17122   85 185 285 385   -  -   -  - 385 85
17123   90 190 290 390 190 90 290 90 390 90
17124   95 195 295 395   -  -   -  - 395 95
17125    -   -   -   -   -  -   -  - 300  0
17127 do_execsql_test joinD-583 {
17128   SELECT t1.*, t2.*, t3.*, t4.*
17129   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
17130   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
17131   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
17132   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17133 } {
17134    0 100 200 300   -  -   -  -   -  -
17135    1 101 201 301   -  -   -  -   -  -
17136    2 102 202 302 102  2   -  -   -  -
17137    3 103 203 303   -  - 203  3   -  -
17138    4 104 204 304 104  4   -  -   -  -
17139    5 105 205 305   -  -   -  - 305  5
17140    6 106 206 306 106  6 206  6   -  -
17141    7 107 207 307   -  -   -  -   -  -
17142    8 108 208 308 108  8   -  -   -  -
17143    9 109 209 309   -  - 209  9   -  -
17144   10 110 210 310 110 10   -  - 310 10
17145   11 111 211 311   -  -   -  -   -  -
17146   12 112 212 312 112 12 212 12   -  -
17147   13 113 213 313   -  -   -  -   -  -
17148   14 114 214 314 114 14   -  -   -  -
17149   15 115 215 315   -  - 215 15 315 15
17150   16 116 216 316 116 16   -  -   -  -
17151   17 117 217 317   -  -   -  -   -  -
17152   18 118 218 318 118 18 218 18   -  -
17153   19 119 219 319   -  -   -  -   -  -
17154   20 120 220 320 120 20   -  - 320 20
17155   21 121 221 321   -  - 221 21   -  -
17156   22 122 222 322 122 22   -  -   -  -
17157   23 123 223 323   -  -   -  -   -  -
17158   24 124 224 324 124 24 224 24   -  -
17159   25 125 225 325   -  -   -  - 325 25
17160   26 126 226 326 126 26   -  -   -  -
17161   27 127 227 327   -  - 227 27   -  -
17162   28 128 228 328 128 28   -  -   -  -
17163   29 129 229 329   -  -   -  -   -  -
17164   30 130 230 330 130 30 230 30 330 30
17165   31 131 231 331   -  -   -  -   -  -
17166   32 132 232 332 132 32   -  -   -  -
17167   33 133 233 333   -  - 233 33   -  -
17168   34 134 234 334 134 34   -  -   -  -
17169   35 135 235 335   -  -   -  - 335 35
17170   36 136 236 336 136 36 236 36   -  -
17171   37 137 237 337   -  -   -  -   -  -
17172   38 138 238 338 138 38   -  -   -  -
17173   39 139 239 339   -  - 239 39   -  -
17174   40 140 240 340 140 40   -  - 340 40
17175   41 141 241 341   -  -   -  -   -  -
17176   42 142 242 342 142 42 242 42   -  -
17177   43 143 243 343   -  -   -  -   -  -
17178   44 144 244 344 144 44   -  -   -  -
17179   45 145 245 345   -  - 245 45 345 45
17180   46 146 246 346 146 46   -  -   -  -
17181   47 147 247 347   -  -   -  -   -  -
17182   48 148 248 348 148 48 248 48   -  -
17183   49 149 249 349   -  -   -  -   -  -
17184   50 150 250 350 150 50   -  - 350 50
17185   51 151 251 351   -  - 251 51   -  -
17186   52 152 252 352 152 52   -  -   -  -
17187   53 153 253 353   -  -   -  -   -  -
17188   54 154 254 354 154 54 254 54   -  -
17189   55 155 255 355   -  -   -  - 355 55
17190   56 156 256 356 156 56   -  -   -  -
17191   57 157 257 357   -  - 257 57   -  -
17192   58 158 258 358 158 58   -  -   -  -
17193   59 159 259 359   -  -   -  -   -  -
17194   60 160 260 360 160 60 260 60 360 60
17195   61 161 261 361   -  -   -  -   -  -
17196   62 162 262 362 162 62   -  -   -  -
17197   63 163 263 363   -  - 263 63   -  -
17198   64 164 264 364 164 64   -  -   -  -
17199   65 165 265 365   -  -   -  - 365 65
17200   66 166 266 366 166 66 266 66   -  -
17201   67 167 267 367   -  -   -  -   -  -
17202   68 168 268 368 168 68   -  -   -  -
17203   69 169 269 369   -  - 269 69   -  -
17204   70 170 270 370 170 70   -  - 370 70
17205   71 171 271 371   -  -   -  -   -  -
17206   72 172 272 372 172 72 272 72   -  -
17207   73 173 273 373   -  -   -  -   -  -
17208   74 174 274 374 174 74   -  -   -  -
17209   75 175 275 375   -  - 275 75 375 75
17210   76 176 276 376 176 76   -  -   -  -
17211   77 177 277 377   -  -   -  -   -  -
17212   78 178 278 378 178 78 278 78   -  -
17213   79 179 279 379   -  -   -  -   -  -
17214   80 180 280 380 180 80   -  - 380 80
17215   81 181 281 381   -  - 281 81   -  -
17216   82 182 282 382 182 82   -  -   -  -
17217   83 183 283 383   -  -   -  -   -  -
17218   84 184 284 384 184 84 284 84   -  -
17219   85 185 285 385   -  -   -  - 385 85
17220   86 186 286 386 186 86   -  -   -  -
17221   87 187 287 387   -  - 287 87   -  -
17222   88 188 288 388 188 88   -  -   -  -
17223   89 189 289 389   -  -   -  -   -  -
17224   90 190 290 390 190 90 290 90 390 90
17225   91 191 291 391   -  -   -  -   -  -
17226   92 192 292 392 192 92   -  -   -  -
17227   93 193 293 393   -  - 293 93   -  -
17228   94 194 294 394 194 94   -  -   -  -
17229   95 195 295 395   -  -   -  - 395 95
17230   96   - 296 396   -  -   -  -   -  -
17231   97 197   - 397   -  -   -  -   -  -
17232   98 198 298   -   -  -   -  -   -  -
17233   99   -   -   -   -  -   -  -   -  -
17234    -   -   -   -   -  - 200  0   -  -
17235    -   -   -   -   -  -   -  - 300  0
17237 do_execsql_test joinD-584 {
17238   SELECT t1.*, t2.*, t3.*, t4.*
17239   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
17240   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
17241   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
17242   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17243 } {
17244    0 100 200 300   -  -   -  -   -  -
17245    1 101 201 301   -  -   -  -   -  -
17246    2 102 202 302 102  2   -  -   -  -
17247    3 103 203 303   -  - 203  3   -  -
17248    4 104 204 304 104  4   -  -   -  -
17249    5 105 205 305   -  -   -  - 305  5
17250    6 106 206 306 106  6 206  6   -  -
17251    7 107 207 307   -  -   -  -   -  -
17252    8 108 208 308 108  8   -  -   -  -
17253    9 109 209 309   -  - 209  9   -  -
17254   10 110 210 310 110 10   -  - 310 10
17255   11 111 211 311   -  -   -  -   -  -
17256   12 112 212 312 112 12 212 12   -  -
17257   13 113 213 313   -  -   -  -   -  -
17258   14 114 214 314 114 14   -  -   -  -
17259   15 115 215 315   -  - 215 15 315 15
17260   16 116 216 316 116 16   -  -   -  -
17261   17 117 217 317   -  -   -  -   -  -
17262   18 118 218 318 118 18 218 18   -  -
17263   19 119 219 319   -  -   -  -   -  -
17264   20 120 220 320 120 20   -  - 320 20
17265   21 121 221 321   -  - 221 21   -  -
17266   22 122 222 322 122 22   -  -   -  -
17267   23 123 223 323   -  -   -  -   -  -
17268   24 124 224 324 124 24 224 24   -  -
17269   25 125 225 325   -  -   -  - 325 25
17270   26 126 226 326 126 26   -  -   -  -
17271   27 127 227 327   -  - 227 27   -  -
17272   28 128 228 328 128 28   -  -   -  -
17273   29 129 229 329   -  -   -  -   -  -
17274   30 130 230 330 130 30 230 30 330 30
17275   31 131 231 331   -  -   -  -   -  -
17276   32 132 232 332 132 32   -  -   -  -
17277   33 133 233 333   -  - 233 33   -  -
17278   34 134 234 334 134 34   -  -   -  -
17279   35 135 235 335   -  -   -  - 335 35
17280   36 136 236 336 136 36 236 36   -  -
17281   37 137 237 337   -  -   -  -   -  -
17282   38 138 238 338 138 38   -  -   -  -
17283   39 139 239 339   -  - 239 39   -  -
17284   40 140 240 340 140 40   -  - 340 40
17285   41 141 241 341   -  -   -  -   -  -
17286   42 142 242 342 142 42 242 42   -  -
17287   43 143 243 343   -  -   -  -   -  -
17288   44 144 244 344 144 44   -  -   -  -
17289   45 145 245 345   -  - 245 45 345 45
17290   46 146 246 346 146 46   -  -   -  -
17291   47 147 247 347   -  -   -  -   -  -
17292   48 148 248 348 148 48 248 48   -  -
17293   49 149 249 349   -  -   -  -   -  -
17294   50 150 250 350 150 50   -  - 350 50
17295   51 151 251 351   -  - 251 51   -  -
17296   52 152 252 352 152 52   -  -   -  -
17297   53 153 253 353   -  -   -  -   -  -
17298   54 154 254 354 154 54 254 54   -  -
17299   55 155 255 355   -  -   -  - 355 55
17300   56 156 256 356 156 56   -  -   -  -
17301   57 157 257 357   -  - 257 57   -  -
17302   58 158 258 358 158 58   -  -   -  -
17303   59 159 259 359   -  -   -  -   -  -
17304   60 160 260 360 160 60 260 60 360 60
17305   61 161 261 361   -  -   -  -   -  -
17306   62 162 262 362 162 62   -  -   -  -
17307   63 163 263 363   -  - 263 63   -  -
17308   64 164 264 364 164 64   -  -   -  -
17309   65 165 265 365   -  -   -  - 365 65
17310   66 166 266 366 166 66 266 66   -  -
17311   67 167 267 367   -  -   -  -   -  -
17312   68 168 268 368 168 68   -  -   -  -
17313   69 169 269 369   -  - 269 69   -  -
17314   70 170 270 370 170 70   -  - 370 70
17315   71 171 271 371   -  -   -  -   -  -
17316   72 172 272 372 172 72 272 72   -  -
17317   73 173 273 373   -  -   -  -   -  -
17318   74 174 274 374 174 74   -  -   -  -
17319   75 175 275 375   -  - 275 75 375 75
17320   76 176 276 376 176 76   -  -   -  -
17321   77 177 277 377   -  -   -  -   -  -
17322   78 178 278 378 178 78 278 78   -  -
17323   79 179 279 379   -  -   -  -   -  -
17324   80 180 280 380 180 80   -  - 380 80
17325   81 181 281 381   -  - 281 81   -  -
17326   82 182 282 382 182 82   -  -   -  -
17327   83 183 283 383   -  -   -  -   -  -
17328   84 184 284 384 184 84 284 84   -  -
17329   85 185 285 385   -  -   -  - 385 85
17330   86 186 286 386 186 86   -  -   -  -
17331   87 187 287 387   -  - 287 87   -  -
17332   88 188 288 388 188 88   -  -   -  -
17333   89 189 289 389   -  -   -  -   -  -
17334   90 190 290 390 190 90 290 90 390 90
17335   91 191 291 391   -  -   -  -   -  -
17336   92 192 292 392 192 92   -  -   -  -
17337   93 193 293 393   -  - 293 93   -  -
17338   94 194 294 394 194 94   -  -   -  -
17339   95 195 295 395   -  -   -  - 395 95
17340   96   - 296 396   -  -   -  -   -  -
17341   97 197   - 397   -  -   -  -   -  -
17342   98 198 298   -   -  -   -  -   -  -
17343   99   -   -   -   -  -   -  -   -  -
17344    -   -   -   -   -  - 200  0   -  -
17345    -   -   -   -   -  -   -  - 300  0
17347 do_execsql_test joinD-585 {
17348   SELECT t1.*, t2.*, t3.*, t4.*
17349   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
17350   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
17351   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
17352   WHERE t2.x>0
17353   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17354 } {
17355    2 102 202 302 102  2   -  -   -  -
17356    4 104 204 304 104  4   -  -   -  -
17357    6 106 206 306 106  6 206  6   -  -
17358    8 108 208 308 108  8   -  -   -  -
17359   10 110 210 310 110 10   -  - 310 10
17360   12 112 212 312 112 12 212 12   -  -
17361   14 114 214 314 114 14   -  -   -  -
17362   16 116 216 316 116 16   -  -   -  -
17363   18 118 218 318 118 18 218 18   -  -
17364   20 120 220 320 120 20   -  - 320 20
17365   22 122 222 322 122 22   -  -   -  -
17366   24 124 224 324 124 24 224 24   -  -
17367   26 126 226 326 126 26   -  -   -  -
17368   28 128 228 328 128 28   -  -   -  -
17369   30 130 230 330 130 30 230 30 330 30
17370   32 132 232 332 132 32   -  -   -  -
17371   34 134 234 334 134 34   -  -   -  -
17372   36 136 236 336 136 36 236 36   -  -
17373   38 138 238 338 138 38   -  -   -  -
17374   40 140 240 340 140 40   -  - 340 40
17375   42 142 242 342 142 42 242 42   -  -
17376   44 144 244 344 144 44   -  -   -  -
17377   46 146 246 346 146 46   -  -   -  -
17378   48 148 248 348 148 48 248 48   -  -
17379   50 150 250 350 150 50   -  - 350 50
17380   52 152 252 352 152 52   -  -   -  -
17381   54 154 254 354 154 54 254 54   -  -
17382   56 156 256 356 156 56   -  -   -  -
17383   58 158 258 358 158 58   -  -   -  -
17384   60 160 260 360 160 60 260 60 360 60
17385   62 162 262 362 162 62   -  -   -  -
17386   64 164 264 364 164 64   -  -   -  -
17387   66 166 266 366 166 66 266 66   -  -
17388   68 168 268 368 168 68   -  -   -  -
17389   70 170 270 370 170 70   -  - 370 70
17390   72 172 272 372 172 72 272 72   -  -
17391   74 174 274 374 174 74   -  -   -  -
17392   76 176 276 376 176 76   -  -   -  -
17393   78 178 278 378 178 78 278 78   -  -
17394   80 180 280 380 180 80   -  - 380 80
17395   82 182 282 382 182 82   -  -   -  -
17396   84 184 284 384 184 84 284 84   -  -
17397   86 186 286 386 186 86   -  -   -  -
17398   88 188 288 388 188 88   -  -   -  -
17399   90 190 290 390 190 90 290 90 390 90
17400   92 192 292 392 192 92   -  -   -  -
17401   94 194 294 394 194 94   -  -   -  -
17403 do_execsql_test joinD-586 {
17404   SELECT t1.*, t2.*, t3.*, t4.*
17405   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
17406   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
17407   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
17408   WHERE (t2.x>0 OR t2.x IS NULL)
17409   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17410 } {
17411    1 101 201 301   -  -   -  -   -  -
17412    2 102 202 302 102  2   -  -   -  -
17413    3 103 203 303   -  - 203  3   -  -
17414    4 104 204 304 104  4   -  -   -  -
17415    5 105 205 305   -  -   -  - 305  5
17416    6 106 206 306 106  6 206  6   -  -
17417    7 107 207 307   -  -   -  -   -  -
17418    8 108 208 308 108  8   -  -   -  -
17419    9 109 209 309   -  - 209  9   -  -
17420   10 110 210 310 110 10   -  - 310 10
17421   11 111 211 311   -  -   -  -   -  -
17422   12 112 212 312 112 12 212 12   -  -
17423   13 113 213 313   -  -   -  -   -  -
17424   14 114 214 314 114 14   -  -   -  -
17425   15 115 215 315   -  - 215 15 315 15
17426   16 116 216 316 116 16   -  -   -  -
17427   17 117 217 317   -  -   -  -   -  -
17428   18 118 218 318 118 18 218 18   -  -
17429   19 119 219 319   -  -   -  -   -  -
17430   20 120 220 320 120 20   -  - 320 20
17431   21 121 221 321   -  - 221 21   -  -
17432   22 122 222 322 122 22   -  -   -  -
17433   23 123 223 323   -  -   -  -   -  -
17434   24 124 224 324 124 24 224 24   -  -
17435   25 125 225 325   -  -   -  - 325 25
17436   26 126 226 326 126 26   -  -   -  -
17437   27 127 227 327   -  - 227 27   -  -
17438   28 128 228 328 128 28   -  -   -  -
17439   29 129 229 329   -  -   -  -   -  -
17440   30 130 230 330 130 30 230 30 330 30
17441   31 131 231 331   -  -   -  -   -  -
17442   32 132 232 332 132 32   -  -   -  -
17443   33 133 233 333   -  - 233 33   -  -
17444   34 134 234 334 134 34   -  -   -  -
17445   35 135 235 335   -  -   -  - 335 35
17446   36 136 236 336 136 36 236 36   -  -
17447   37 137 237 337   -  -   -  -   -  -
17448   38 138 238 338 138 38   -  -   -  -
17449   39 139 239 339   -  - 239 39   -  -
17450   40 140 240 340 140 40   -  - 340 40
17451   41 141 241 341   -  -   -  -   -  -
17452   42 142 242 342 142 42 242 42   -  -
17453   43 143 243 343   -  -   -  -   -  -
17454   44 144 244 344 144 44   -  -   -  -
17455   45 145 245 345   -  - 245 45 345 45
17456   46 146 246 346 146 46   -  -   -  -
17457   47 147 247 347   -  -   -  -   -  -
17458   48 148 248 348 148 48 248 48   -  -
17459   49 149 249 349   -  -   -  -   -  -
17460   50 150 250 350 150 50   -  - 350 50
17461   51 151 251 351   -  - 251 51   -  -
17462   52 152 252 352 152 52   -  -   -  -
17463   53 153 253 353   -  -   -  -   -  -
17464   54 154 254 354 154 54 254 54   -  -
17465   55 155 255 355   -  -   -  - 355 55
17466   56 156 256 356 156 56   -  -   -  -
17467   57 157 257 357   -  - 257 57   -  -
17468   58 158 258 358 158 58   -  -   -  -
17469   59 159 259 359   -  -   -  -   -  -
17470   60 160 260 360 160 60 260 60 360 60
17471   61 161 261 361   -  -   -  -   -  -
17472   62 162 262 362 162 62   -  -   -  -
17473   63 163 263 363   -  - 263 63   -  -
17474   64 164 264 364 164 64   -  -   -  -
17475   65 165 265 365   -  -   -  - 365 65
17476   66 166 266 366 166 66 266 66   -  -
17477   67 167 267 367   -  -   -  -   -  -
17478   68 168 268 368 168 68   -  -   -  -
17479   69 169 269 369   -  - 269 69   -  -
17480   70 170 270 370 170 70   -  - 370 70
17481   71 171 271 371   -  -   -  -   -  -
17482   72 172 272 372 172 72 272 72   -  -
17483   73 173 273 373   -  -   -  -   -  -
17484   74 174 274 374 174 74   -  -   -  -
17485   75 175 275 375   -  - 275 75 375 75
17486   76 176 276 376 176 76   -  -   -  -
17487   77 177 277 377   -  -   -  -   -  -
17488   78 178 278 378 178 78 278 78   -  -
17489   79 179 279 379   -  -   -  -   -  -
17490   80 180 280 380 180 80   -  - 380 80
17491   81 181 281 381   -  - 281 81   -  -
17492   82 182 282 382 182 82   -  -   -  -
17493   83 183 283 383   -  -   -  -   -  -
17494   84 184 284 384 184 84 284 84   -  -
17495   85 185 285 385   -  -   -  - 385 85
17496   86 186 286 386 186 86   -  -   -  -
17497   87 187 287 387   -  - 287 87   -  -
17498   88 188 288 388 188 88   -  -   -  -
17499   89 189 289 389   -  -   -  -   -  -
17500   90 190 290 390 190 90 290 90 390 90
17501   91 191 291 391   -  -   -  -   -  -
17502   92 192 292 392 192 92   -  -   -  -
17503   93 193 293 393   -  - 293 93   -  -
17504   94 194 294 394 194 94   -  -   -  -
17505   95 195 295 395   -  -   -  - 395 95
17506   96   - 296 396   -  -   -  -   -  -
17507   97 197   - 397   -  -   -  -   -  -
17508   98 198 298   -   -  -   -  -   -  -
17509   99   -   -   -   -  -   -  -   -  -
17510    -   -   -   -   -  - 200  0   -  -
17511    -   -   -   -   -  -   -  - 300  0
17513 do_execsql_test joinD-587 {
17514   SELECT t1.*, t2.*, t3.*, t4.*
17515   FROM t1 LEFT JOIN t2 ON true
17516   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
17517   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
17518   WHERE t1.b=t2.b AND t2.x>0
17519   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17520 } {
17521    2 102 202 302 102  2   -  -   -  -
17522    4 104 204 304 104  4   -  -   -  -
17523    6 106 206 306 106  6 206  6   -  -
17524    8 108 208 308 108  8   -  -   -  -
17525   10 110 210 310 110 10   -  - 310 10
17526   12 112 212 312 112 12 212 12   -  -
17527   14 114 214 314 114 14   -  -   -  -
17528   16 116 216 316 116 16   -  -   -  -
17529   18 118 218 318 118 18 218 18   -  -
17530   20 120 220 320 120 20   -  - 320 20
17531   22 122 222 322 122 22   -  -   -  -
17532   24 124 224 324 124 24 224 24   -  -
17533   26 126 226 326 126 26   -  -   -  -
17534   28 128 228 328 128 28   -  -   -  -
17535   30 130 230 330 130 30 230 30 330 30
17536   32 132 232 332 132 32   -  -   -  -
17537   34 134 234 334 134 34   -  -   -  -
17538   36 136 236 336 136 36 236 36   -  -
17539   38 138 238 338 138 38   -  -   -  -
17540   40 140 240 340 140 40   -  - 340 40
17541   42 142 242 342 142 42 242 42   -  -
17542   44 144 244 344 144 44   -  -   -  -
17543   46 146 246 346 146 46   -  -   -  -
17544   48 148 248 348 148 48 248 48   -  -
17545   50 150 250 350 150 50   -  - 350 50
17546   52 152 252 352 152 52   -  -   -  -
17547   54 154 254 354 154 54 254 54   -  -
17548   56 156 256 356 156 56   -  -   -  -
17549   58 158 258 358 158 58   -  -   -  -
17550   60 160 260 360 160 60 260 60 360 60
17551   62 162 262 362 162 62   -  -   -  -
17552   64 164 264 364 164 64   -  -   -  -
17553   66 166 266 366 166 66 266 66   -  -
17554   68 168 268 368 168 68   -  -   -  -
17555   70 170 270 370 170 70   -  - 370 70
17556   72 172 272 372 172 72 272 72   -  -
17557   74 174 274 374 174 74   -  -   -  -
17558   76 176 276 376 176 76   -  -   -  -
17559   78 178 278 378 178 78 278 78   -  -
17560   80 180 280 380 180 80   -  - 380 80
17561   82 182 282 382 182 82   -  -   -  -
17562   84 184 284 384 184 84 284 84   -  -
17563   86 186 286 386 186 86   -  -   -  -
17564   88 188 288 388 188 88   -  -   -  -
17565   90 190 290 390 190 90 290 90 390 90
17566   92 192 292 392 192 92   -  -   -  -
17567   94 194 294 394 194 94   -  -   -  -
17569 do_execsql_test joinD-588 {
17570   SELECT t1.*, t2.*, t3.*, t4.*
17571   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
17572   FULL JOIN t3 ON t1.c=t3.c
17573   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
17574   WHERE t3.y>0
17575   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17576 } {
17577    3 103 203 303   -  - 203  3   -  -
17578    6 106 206 306 106  6 206  6   -  -
17579    9 109 209 309   -  - 209  9   -  -
17580   12 112 212 312 112 12 212 12   -  -
17581   15 115 215 315   -  - 215 15 315 15
17582   18 118 218 318 118 18 218 18   -  -
17583   21 121 221 321   -  - 221 21   -  -
17584   24 124 224 324 124 24 224 24   -  -
17585   27 127 227 327   -  - 227 27   -  -
17586   30 130 230 330 130 30 230 30 330 30
17587   33 133 233 333   -  - 233 33   -  -
17588   36 136 236 336 136 36 236 36   -  -
17589   39 139 239 339   -  - 239 39   -  -
17590   42 142 242 342 142 42 242 42   -  -
17591   45 145 245 345   -  - 245 45 345 45
17592   48 148 248 348 148 48 248 48   -  -
17593   51 151 251 351   -  - 251 51   -  -
17594   54 154 254 354 154 54 254 54   -  -
17595   57 157 257 357   -  - 257 57   -  -
17596   60 160 260 360 160 60 260 60 360 60
17597   63 163 263 363   -  - 263 63   -  -
17598   66 166 266 366 166 66 266 66   -  -
17599   69 169 269 369   -  - 269 69   -  -
17600   72 172 272 372 172 72 272 72   -  -
17601   75 175 275 375   -  - 275 75 375 75
17602   78 178 278 378 178 78 278 78   -  -
17603   81 181 281 381   -  - 281 81   -  -
17604   84 184 284 384 184 84 284 84   -  -
17605   87 187 287 387   -  - 287 87   -  -
17606   90 190 290 390 190 90 290 90 390 90
17607   93 193 293 393   -  - 293 93   -  -
17609 do_execsql_test joinD-589 {
17610   SELECT t1.*, t2.*, t3.*, t4.*
17611   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
17612   FULL JOIN t3 ON t1.c=t3.c
17613   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
17614   WHERE t3.y>0 OR t3.y IS NULL
17615   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17616 } {
17617    1 101 201 301   -  -   -  -   -  -
17618    2 102 202 302 102  2   -  -   -  -
17619    3 103 203 303   -  - 203  3   -  -
17620    4 104 204 304 104  4   -  -   -  -
17621    5 105 205 305   -  -   -  - 305  5
17622    6 106 206 306 106  6 206  6   -  -
17623    7 107 207 307   -  -   -  -   -  -
17624    8 108 208 308 108  8   -  -   -  -
17625    9 109 209 309   -  - 209  9   -  -
17626   10 110 210 310 110 10   -  - 310 10
17627   11 111 211 311   -  -   -  -   -  -
17628   12 112 212 312 112 12 212 12   -  -
17629   13 113 213 313   -  -   -  -   -  -
17630   14 114 214 314 114 14   -  -   -  -
17631   15 115 215 315   -  - 215 15 315 15
17632   16 116 216 316 116 16   -  -   -  -
17633   17 117 217 317   -  -   -  -   -  -
17634   18 118 218 318 118 18 218 18   -  -
17635   19 119 219 319   -  -   -  -   -  -
17636   20 120 220 320 120 20   -  - 320 20
17637   21 121 221 321   -  - 221 21   -  -
17638   22 122 222 322 122 22   -  -   -  -
17639   23 123 223 323   -  -   -  -   -  -
17640   24 124 224 324 124 24 224 24   -  -
17641   25 125 225 325   -  -   -  - 325 25
17642   26 126 226 326 126 26   -  -   -  -
17643   27 127 227 327   -  - 227 27   -  -
17644   28 128 228 328 128 28   -  -   -  -
17645   29 129 229 329   -  -   -  -   -  -
17646   30 130 230 330 130 30 230 30 330 30
17647   31 131 231 331   -  -   -  -   -  -
17648   32 132 232 332 132 32   -  -   -  -
17649   33 133 233 333   -  - 233 33   -  -
17650   34 134 234 334 134 34   -  -   -  -
17651   35 135 235 335   -  -   -  - 335 35
17652   36 136 236 336 136 36 236 36   -  -
17653   37 137 237 337   -  -   -  -   -  -
17654   38 138 238 338 138 38   -  -   -  -
17655   39 139 239 339   -  - 239 39   -  -
17656   40 140 240 340 140 40   -  - 340 40
17657   41 141 241 341   -  -   -  -   -  -
17658   42 142 242 342 142 42 242 42   -  -
17659   43 143 243 343   -  -   -  -   -  -
17660   44 144 244 344 144 44   -  -   -  -
17661   45 145 245 345   -  - 245 45 345 45
17662   46 146 246 346 146 46   -  -   -  -
17663   47 147 247 347   -  -   -  -   -  -
17664   48 148 248 348 148 48 248 48   -  -
17665   49 149 249 349   -  -   -  -   -  -
17666   50 150 250 350 150 50   -  - 350 50
17667   51 151 251 351   -  - 251 51   -  -
17668   52 152 252 352 152 52   -  -   -  -
17669   53 153 253 353   -  -   -  -   -  -
17670   54 154 254 354 154 54 254 54   -  -
17671   55 155 255 355   -  -   -  - 355 55
17672   56 156 256 356 156 56   -  -   -  -
17673   57 157 257 357   -  - 257 57   -  -
17674   58 158 258 358 158 58   -  -   -  -
17675   59 159 259 359   -  -   -  -   -  -
17676   60 160 260 360 160 60 260 60 360 60
17677   61 161 261 361   -  -   -  -   -  -
17678   62 162 262 362 162 62   -  -   -  -
17679   63 163 263 363   -  - 263 63   -  -
17680   64 164 264 364 164 64   -  -   -  -
17681   65 165 265 365   -  -   -  - 365 65
17682   66 166 266 366 166 66 266 66   -  -
17683   67 167 267 367   -  -   -  -   -  -
17684   68 168 268 368 168 68   -  -   -  -
17685   69 169 269 369   -  - 269 69   -  -
17686   70 170 270 370 170 70   -  - 370 70
17687   71 171 271 371   -  -   -  -   -  -
17688   72 172 272 372 172 72 272 72   -  -
17689   73 173 273 373   -  -   -  -   -  -
17690   74 174 274 374 174 74   -  -   -  -
17691   75 175 275 375   -  - 275 75 375 75
17692   76 176 276 376 176 76   -  -   -  -
17693   77 177 277 377   -  -   -  -   -  -
17694   78 178 278 378 178 78 278 78   -  -
17695   79 179 279 379   -  -   -  -   -  -
17696   80 180 280 380 180 80   -  - 380 80
17697   81 181 281 381   -  - 281 81   -  -
17698   82 182 282 382 182 82   -  -   -  -
17699   83 183 283 383   -  -   -  -   -  -
17700   84 184 284 384 184 84 284 84   -  -
17701   85 185 285 385   -  -   -  - 385 85
17702   86 186 286 386 186 86   -  -   -  -
17703   87 187 287 387   -  - 287 87   -  -
17704   88 188 288 388 188 88   -  -   -  -
17705   89 189 289 389   -  -   -  -   -  -
17706   90 190 290 390 190 90 290 90 390 90
17707   91 191 291 391   -  -   -  -   -  -
17708   92 192 292 392 192 92   -  -   -  -
17709   93 193 293 393   -  - 293 93   -  -
17710   94 194 294 394 194 94   -  -   -  -
17711   95 195 295 395   -  -   -  - 395 95
17712   96   - 296 396   -  -   -  -   -  -
17713   97 197   - 397   -  -   -  -   -  -
17714   98 198 298   -   -  -   -  -   -  -
17715   99   -   -   -   -  -   -  -   -  -
17716    -   -   -   -   -  -   -  - 300  0
17718 do_execsql_test joinD-590 {
17719   SELECT t1.*, t2.*, t3.*, t4.*
17720   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
17721   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
17722   FULL JOIN t4 ON t1.d=t4.d
17723   WHERE t4.z>0
17724   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17725 } {
17726    5 105 205 305   -  -   -  - 305  5
17727   10 110 210 310 110 10   -  - 310 10
17728   15 115 215 315   -  - 215 15 315 15
17729   20 120 220 320 120 20   -  - 320 20
17730   25 125 225 325   -  -   -  - 325 25
17731   30 130 230 330 130 30 230 30 330 30
17732   35 135 235 335   -  -   -  - 335 35
17733   40 140 240 340 140 40   -  - 340 40
17734   45 145 245 345   -  - 245 45 345 45
17735   50 150 250 350 150 50   -  - 350 50
17736   55 155 255 355   -  -   -  - 355 55
17737   60 160 260 360 160 60 260 60 360 60
17738   65 165 265 365   -  -   -  - 365 65
17739   70 170 270 370 170 70   -  - 370 70
17740   75 175 275 375   -  - 275 75 375 75
17741   80 180 280 380 180 80   -  - 380 80
17742   85 185 285 385   -  -   -  - 385 85
17743   90 190 290 390 190 90 290 90 390 90
17744   95 195 295 395   -  -   -  - 395 95
17746 do_execsql_test joinD-591 {
17747   SELECT t1.*, t2.*, t3.*, t4.*
17748   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
17749   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
17750   FULL JOIN t4 ON t1.d=t4.d
17751   WHERE t4.z IS NULL OR t4.z>0
17752   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17753 } {
17754    1 101 201 301   -  -   -  -   -  -
17755    2 102 202 302 102  2   -  -   -  -
17756    3 103 203 303   -  - 203  3   -  -
17757    4 104 204 304 104  4   -  -   -  -
17758    5 105 205 305   -  -   -  - 305  5
17759    6 106 206 306 106  6 206  6   -  -
17760    7 107 207 307   -  -   -  -   -  -
17761    8 108 208 308 108  8   -  -   -  -
17762    9 109 209 309   -  - 209  9   -  -
17763   10 110 210 310 110 10   -  - 310 10
17764   11 111 211 311   -  -   -  -   -  -
17765   12 112 212 312 112 12 212 12   -  -
17766   13 113 213 313   -  -   -  -   -  -
17767   14 114 214 314 114 14   -  -   -  -
17768   15 115 215 315   -  - 215 15 315 15
17769   16 116 216 316 116 16   -  -   -  -
17770   17 117 217 317   -  -   -  -   -  -
17771   18 118 218 318 118 18 218 18   -  -
17772   19 119 219 319   -  -   -  -   -  -
17773   20 120 220 320 120 20   -  - 320 20
17774   21 121 221 321   -  - 221 21   -  -
17775   22 122 222 322 122 22   -  -   -  -
17776   23 123 223 323   -  -   -  -   -  -
17777   24 124 224 324 124 24 224 24   -  -
17778   25 125 225 325   -  -   -  - 325 25
17779   26 126 226 326 126 26   -  -   -  -
17780   27 127 227 327   -  - 227 27   -  -
17781   28 128 228 328 128 28   -  -   -  -
17782   29 129 229 329   -  -   -  -   -  -
17783   30 130 230 330 130 30 230 30 330 30
17784   31 131 231 331   -  -   -  -   -  -
17785   32 132 232 332 132 32   -  -   -  -
17786   33 133 233 333   -  - 233 33   -  -
17787   34 134 234 334 134 34   -  -   -  -
17788   35 135 235 335   -  -   -  - 335 35
17789   36 136 236 336 136 36 236 36   -  -
17790   37 137 237 337   -  -   -  -   -  -
17791   38 138 238 338 138 38   -  -   -  -
17792   39 139 239 339   -  - 239 39   -  -
17793   40 140 240 340 140 40   -  - 340 40
17794   41 141 241 341   -  -   -  -   -  -
17795   42 142 242 342 142 42 242 42   -  -
17796   43 143 243 343   -  -   -  -   -  -
17797   44 144 244 344 144 44   -  -   -  -
17798   45 145 245 345   -  - 245 45 345 45
17799   46 146 246 346 146 46   -  -   -  -
17800   47 147 247 347   -  -   -  -   -  -
17801   48 148 248 348 148 48 248 48   -  -
17802   49 149 249 349   -  -   -  -   -  -
17803   50 150 250 350 150 50   -  - 350 50
17804   51 151 251 351   -  - 251 51   -  -
17805   52 152 252 352 152 52   -  -   -  -
17806   53 153 253 353   -  -   -  -   -  -
17807   54 154 254 354 154 54 254 54   -  -
17808   55 155 255 355   -  -   -  - 355 55
17809   56 156 256 356 156 56   -  -   -  -
17810   57 157 257 357   -  - 257 57   -  -
17811   58 158 258 358 158 58   -  -   -  -
17812   59 159 259 359   -  -   -  -   -  -
17813   60 160 260 360 160 60 260 60 360 60
17814   61 161 261 361   -  -   -  -   -  -
17815   62 162 262 362 162 62   -  -   -  -
17816   63 163 263 363   -  - 263 63   -  -
17817   64 164 264 364 164 64   -  -   -  -
17818   65 165 265 365   -  -   -  - 365 65
17819   66 166 266 366 166 66 266 66   -  -
17820   67 167 267 367   -  -   -  -   -  -
17821   68 168 268 368 168 68   -  -   -  -
17822   69 169 269 369   -  - 269 69   -  -
17823   70 170 270 370 170 70   -  - 370 70
17824   71 171 271 371   -  -   -  -   -  -
17825   72 172 272 372 172 72 272 72   -  -
17826   73 173 273 373   -  -   -  -   -  -
17827   74 174 274 374 174 74   -  -   -  -
17828   75 175 275 375   -  - 275 75 375 75
17829   76 176 276 376 176 76   -  -   -  -
17830   77 177 277 377   -  -   -  -   -  -
17831   78 178 278 378 178 78 278 78   -  -
17832   79 179 279 379   -  -   -  -   -  -
17833   80 180 280 380 180 80   -  - 380 80
17834   81 181 281 381   -  - 281 81   -  -
17835   82 182 282 382 182 82   -  -   -  -
17836   83 183 283 383   -  -   -  -   -  -
17837   84 184 284 384 184 84 284 84   -  -
17838   85 185 285 385   -  -   -  - 385 85
17839   86 186 286 386 186 86   -  -   -  -
17840   87 187 287 387   -  - 287 87   -  -
17841   88 188 288 388 188 88   -  -   -  -
17842   89 189 289 389   -  -   -  -   -  -
17843   90 190 290 390 190 90 290 90 390 90
17844   91 191 291 391   -  -   -  -   -  -
17845   92 192 292 392 192 92   -  -   -  -
17846   93 193 293 393   -  - 293 93   -  -
17847   94 194 294 394 194 94   -  -   -  -
17848   95 195 295 395   -  -   -  - 395 95
17849   96   - 296 396   -  -   -  -   -  -
17850   97 197   - 397   -  -   -  -   -  -
17851   98 198 298   -   -  -   -  -   -  -
17852   99   -   -   -   -  -   -  -   -  -
17853    -   -   -   -   -  - 200  0   -  -
17855 do_execsql_test joinD-592 {
17856   SELECT t1.*, t2.*, t3.*, t4.*
17857   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
17858   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
17859   FULL JOIN t4 ON t1.d=t4.d
17860   WHERE t2.x>0 AND t4.z>0
17861   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17862 } {
17863   10 110 210 310 110 10   -  - 310 10
17864   20 120 220 320 120 20   -  - 320 20
17865   30 130 230 330 130 30 230 30 330 30
17866   40 140 240 340 140 40   -  - 340 40
17867   50 150 250 350 150 50   -  - 350 50
17868   60 160 260 360 160 60 260 60 360 60
17869   70 170 270 370 170 70   -  - 370 70
17870   80 180 280 380 180 80   -  - 380 80
17871   90 190 290 390 190 90 290 90 390 90
17873 do_execsql_test joinD-593 {
17874   SELECT t1.*, t2.*, t3.*, t4.*
17875   FROM t1 LEFT JOIN t2 ON t1.b=t2.b AND t2.x>0
17876   FULL JOIN t3 ON t1.c=t3.c
17877   FULL JOIN t4 ON t1.d=t4.d
17878   WHERE t4.z>0 AND t3.y>0
17879   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17880 } {
17881   15 115 215 315   -  - 215 15 315 15
17882   30 130 230 330 130 30 230 30 330 30
17883   45 145 245 345   -  - 245 45 345 45
17884   60 160 260 360 160 60 260 60 360 60
17885   75 175 275 375   -  - 275 75 375 75
17886   90 190 290 390 190 90 290 90 390 90
17888 do_execsql_test joinD-594 {
17889   SELECT t1.*, t2.*, t3.*, t4.*
17890   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
17891   FULL JOIN t3 ON t1.c=t3.c
17892   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
17893   WHERE t2.x>0 AND t3.y>0
17894   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17895 } {
17896    6 106 206 306 106  6 206  6   -  -
17897   12 112 212 312 112 12 212 12   -  -
17898   18 118 218 318 118 18 218 18   -  -
17899   24 124 224 324 124 24 224 24   -  -
17900   30 130 230 330 130 30 230 30 330 30
17901   36 136 236 336 136 36 236 36   -  -
17902   42 142 242 342 142 42 242 42   -  -
17903   48 148 248 348 148 48 248 48   -  -
17904   54 154 254 354 154 54 254 54   -  -
17905   60 160 260 360 160 60 260 60 360 60
17906   66 166 266 366 166 66 266 66   -  -
17907   72 172 272 372 172 72 272 72   -  -
17908   78 178 278 378 178 78 278 78   -  -
17909   84 184 284 384 184 84 284 84   -  -
17910   90 190 290 390 190 90 290 90 390 90
17912 do_execsql_test joinD-595 {
17913   SELECT t1.*, t2.*, t3.*, t4.*
17914   FROM t1 LEFT JOIN t2 ON t1.b=t2.b
17915   FULL JOIN t3 ON t1.c=t3.c
17916   FULL JOIN t4 ON t1.d=t4.d
17917   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
17918   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17919 } {
17920   30 130 230 330 130 30 230 30 330 30
17921   60 160 260 360 160 60 260 60 360 60
17922   90 190 290 390 190 90 290 90 390 90
17924 do_execsql_test joinD-596 {
17925   SELECT t1.*, t2.*, t3.*, t4.*
17926   FROM t1 LEFT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
17927   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
17928   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
17929   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
17930 } {
17931    0 100 200 300   -  -   -  -   -  -
17932    1 101 201 301   -  -   -  -   -  -
17933    2 102 202 302 102  2   -  -   -  -
17934    3 103 203 303   -  - 203  3   -  -
17935    4 104 204 304 104  4   -  -   -  -
17936    5 105 205 305   -  -   -  - 305  5
17937    6 106 206 306 106  6 206  6   -  -
17938    7 107 207 307   -  -   -  -   -  -
17939    8 108 208 308 108  8   -  -   -  -
17940    9 109 209 309   -  - 209  9   -  -
17941   10 110 210 310 110 10   -  - 310 10
17942   11 111 211 311   -  -   -  -   -  -
17943   12 112 212 312 112 12 212 12   -  -
17944   13 113 213 313   -  -   -  -   -  -
17945   14 114 214 314 114 14   -  -   -  -
17946   15 115 215 315   -  - 215 15 315 15
17947   16 116 216 316 116 16   -  -   -  -
17948   17 117 217 317   -  -   -  -   -  -
17949   18 118 218 318 118 18 218 18   -  -
17950   19 119 219 319   -  -   -  -   -  -
17951   20 120 220 320 120 20   -  - 320 20
17952   21 121 221 321   -  - 221 21   -  -
17953   22 122 222 322 122 22   -  -   -  -
17954   23 123 223 323   -  -   -  -   -  -
17955   24 124 224 324 124 24 224 24   -  -
17956   25 125 225 325   -  -   -  - 325 25
17957   26 126 226 326 126 26   -  -   -  -
17958   27 127 227 327   -  - 227 27   -  -
17959   28 128 228 328 128 28   -  -   -  -
17960   29 129 229 329   -  -   -  -   -  -
17961   30 130 230 330 130 30 230 30 330 30
17962   31 131 231 331   -  -   -  -   -  -
17963   32 132 232 332 132 32   -  -   -  -
17964   33 133 233 333   -  - 233 33   -  -
17965   34 134 234 334 134 34   -  -   -  -
17966   35 135 235 335   -  -   -  - 335 35
17967   36 136 236 336 136 36 236 36   -  -
17968   37 137 237 337   -  -   -  -   -  -
17969   38 138 238 338 138 38   -  -   -  -
17970   39 139 239 339   -  - 239 39   -  -
17971   40 140 240 340 140 40   -  - 340 40
17972   41 141 241 341   -  -   -  -   -  -
17973   42 142 242 342 142 42 242 42   -  -
17974   43 143 243 343   -  -   -  -   -  -
17975   44 144 244 344 144 44   -  -   -  -
17976   45 145 245 345   -  - 245 45 345 45
17977   46 146 246 346 146 46   -  -   -  -
17978   47 147 247 347   -  -   -  -   -  -
17979   48 148 248 348 148 48 248 48   -  -
17980   49 149 249 349   -  -   -  -   -  -
17981   50 150 250 350 150 50   -  - 350 50
17982   51 151 251 351   -  - 251 51   -  -
17983   52 152 252 352 152 52   -  -   -  -
17984   53 153 253 353   -  -   -  -   -  -
17985   54 154 254 354 154 54 254 54   -  -
17986   55 155 255 355   -  -   -  - 355 55
17987   56 156 256 356 156 56   -  -   -  -
17988   57 157 257 357   -  - 257 57   -  -
17989   58 158 258 358 158 58   -  -   -  -
17990   59 159 259 359   -  -   -  -   -  -
17991   60 160 260 360 160 60 260 60 360 60
17992   61 161 261 361   -  -   -  -   -  -
17993   62 162 262 362 162 62   -  -   -  -
17994   63 163 263 363   -  - 263 63   -  -
17995   64 164 264 364 164 64   -  -   -  -
17996   65 165 265 365   -  -   -  - 365 65
17997   66 166 266 366 166 66 266 66   -  -
17998   67 167 267 367   -  -   -  -   -  -
17999   68 168 268 368 168 68   -  -   -  -
18000   69 169 269 369   -  - 269 69   -  -
18001   70 170 270 370 170 70   -  - 370 70
18002   71 171 271 371   -  -   -  -   -  -
18003   72 172 272 372 172 72 272 72   -  -
18004   73 173 273 373   -  -   -  -   -  -
18005   74 174 274 374 174 74   -  -   -  -
18006   75 175 275 375   -  - 275 75 375 75
18007   76 176 276 376 176 76   -  -   -  -
18008   77 177 277 377   -  -   -  -   -  -
18009   78 178 278 378 178 78 278 78   -  -
18010   79 179 279 379   -  -   -  -   -  -
18011   80 180 280 380 180 80   -  - 380 80
18012   81 181 281 381   -  - 281 81   -  -
18013   82 182 282 382 182 82   -  -   -  -
18014   83 183 283 383   -  -   -  -   -  -
18015   84 184 284 384 184 84 284 84   -  -
18016   85 185 285 385   -  -   -  - 385 85
18017   86 186 286 386 186 86   -  -   -  -
18018   87 187 287 387   -  - 287 87   -  -
18019   88 188 288 388 188 88   -  -   -  -
18020   89 189 289 389   -  -   -  -   -  -
18021   90 190 290 390 190 90 290 90 390 90
18022   91 191 291 391   -  -   -  -   -  -
18023   92 192 292 392 192 92   -  -   -  -
18024   93 193 293 393   -  - 293 93   -  -
18025   94 194 294 394 194 94   -  -   -  -
18026   95 195 295 395   -  -   -  - 395 95
18027   96   - 296 396   -  -   -  -   -  -
18028   97 197   - 397   -  -   -  -   -  -
18029   98 198 298   -   -  -   -  -   -  -
18030   99   -   -   -   -  -   -  -   -  -
18031    -   -   -   -   -  - 200  0   -  -
18032    -   -   -   -   -  -   -  - 300  0
18034 do_execsql_test joinD-597 {
18035   SELECT t1.*, t2.*, t3.*, t4.*
18036   FROM t1 LEFT JOIN t2 ON t2.x>0
18037   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
18038   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
18039   WHERE t1.b IS NOT DISTINCT FROM t2.b
18040   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18041 } {
18042    2 102 202 302 102  2   -  -   -  -
18043    4 104 204 304 104  4   -  -   -  -
18044    6 106 206 306 106  6 206  6   -  -
18045    8 108 208 308 108  8   -  -   -  -
18046   10 110 210 310 110 10   -  - 310 10
18047   12 112 212 312 112 12 212 12   -  -
18048   14 114 214 314 114 14   -  -   -  -
18049   16 116 216 316 116 16   -  -   -  -
18050   18 118 218 318 118 18 218 18   -  -
18051   20 120 220 320 120 20   -  - 320 20
18052   22 122 222 322 122 22   -  -   -  -
18053   24 124 224 324 124 24 224 24   -  -
18054   26 126 226 326 126 26   -  -   -  -
18055   28 128 228 328 128 28   -  -   -  -
18056   30 130 230 330 130 30 230 30 330 30
18057   32 132 232 332 132 32   -  -   -  -
18058   34 134 234 334 134 34   -  -   -  -
18059   36 136 236 336 136 36 236 36   -  -
18060   38 138 238 338 138 38   -  -   -  -
18061   40 140 240 340 140 40   -  - 340 40
18062   42 142 242 342 142 42 242 42   -  -
18063   44 144 244 344 144 44   -  -   -  -
18064   46 146 246 346 146 46   -  -   -  -
18065   48 148 248 348 148 48 248 48   -  -
18066   50 150 250 350 150 50   -  - 350 50
18067   52 152 252 352 152 52   -  -   -  -
18068   54 154 254 354 154 54 254 54   -  -
18069   56 156 256 356 156 56   -  -   -  -
18070   58 158 258 358 158 58   -  -   -  -
18071   60 160 260 360 160 60 260 60 360 60
18072   62 162 262 362 162 62   -  -   -  -
18073   64 164 264 364 164 64   -  -   -  -
18074   66 166 266 366 166 66 266 66   -  -
18075   68 168 268 368 168 68   -  -   -  -
18076   70 170 270 370 170 70   -  - 370 70
18077   72 172 272 372 172 72 272 72   -  -
18078   74 174 274 374 174 74   -  -   -  -
18079   76 176 276 376 176 76   -  -   -  -
18080   78 178 278 378 178 78 278 78   -  -
18081   80 180 280 380 180 80   -  - 380 80
18082   82 182 282 382 182 82   -  -   -  -
18083   84 184 284 384 184 84 284 84   -  -
18084   86 186 286 386 186 86   -  -   -  -
18085   88 188 288 388 188 88   -  -   -  -
18086   90 190 290 390 190 90 290 90 390 90
18087   92 192 292 392 192 92   -  -   -  -
18088   94 194 294 394 194 94   -  -   -  -
18089    -   -   -   -   -  - 200  0   -  -
18090    -   -   -   -   -  -   -  - 300  0
18092 do_execsql_test joinD-598 {
18093   SELECT t1.*, t2.*, t3.*, t4.*
18094   FROM t1 LEFT JOIN t2 ON t2.x>0
18095   FULL JOIN t3 ON t3.y>0
18096   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
18097   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
18098   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18099 } {
18100    6 106 206 306 106  6 206  6   -  -
18101   12 112 212 312 112 12 212 12   -  -
18102   18 118 218 318 118 18 218 18   -  -
18103   24 124 224 324 124 24 224 24   -  -
18104   30 130 230 330 130 30 230 30 330 30
18105   36 136 236 336 136 36 236 36   -  -
18106   42 142 242 342 142 42 242 42   -  -
18107   48 148 248 348 148 48 248 48   -  -
18108   54 154 254 354 154 54 254 54   -  -
18109   60 160 260 360 160 60 260 60 360 60
18110   66 166 266 366 166 66 266 66   -  -
18111   72 172 272 372 172 72 272 72   -  -
18112   78 178 278 378 178 78 278 78   -  -
18113   84 184 284 384 184 84 284 84   -  -
18114   90 190 290 390 190 90 290 90 390 90
18116 do_execsql_test joinD-599 {
18117   SELECT t1.*, t2.*, t3.*, t4.*
18118   FROM t1 LEFT JOIN t2 ON t2.x>0
18119   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
18120   FULL JOIN t4 ON t4.z>0
18121   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
18122   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18123 } {
18124   10 110 210 310 110 10   -  - 310 10
18125   20 120 220 320 120 20   -  - 320 20
18126   30 130 230 330 130 30 230 30 330 30
18127   40 140 240 340 140 40   -  - 340 40
18128   50 150 250 350 150 50   -  - 350 50
18129   60 160 260 360 160 60 260 60 360 60
18130   70 170 270 370 170 70   -  - 370 70
18131   80 180 280 380 180 80   -  - 380 80
18132   90 190 290 390 190 90 290 90 390 90
18134 do_execsql_test joinD-600 {
18135   SELECT t1.*, t2.*, t3.*, t4.*
18136   FROM t1 LEFT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
18137   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
18138   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
18139   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18140 } {
18141    0 100 200 300   -  -   -  -   -  -
18142    1 101 201 301   -  -   -  -   -  -
18143    2 102 202 302 102  2   -  -   -  -
18144    3 103 203 303   -  - 203  3   -  -
18145    4 104 204 304 104  4   -  -   -  -
18146    5 105 205 305   -  -   -  - 305  5
18147    6 106 206 306 106  6 206  6   -  -
18148    7 107 207 307   -  -   -  -   -  -
18149    8 108 208 308 108  8   -  -   -  -
18150    9 109 209 309   -  - 209  9   -  -
18151   10 110 210 310 110 10   -  - 310 10
18152   11 111 211 311   -  -   -  -   -  -
18153   12 112 212 312 112 12 212 12   -  -
18154   13 113 213 313   -  -   -  -   -  -
18155   14 114 214 314 114 14   -  -   -  -
18156   15 115 215 315   -  - 215 15 315 15
18157   16 116 216 316 116 16   -  -   -  -
18158   17 117 217 317   -  -   -  -   -  -
18159   18 118 218 318 118 18 218 18   -  -
18160   19 119 219 319   -  -   -  -   -  -
18161   20 120 220 320 120 20   -  - 320 20
18162   21 121 221 321   -  - 221 21   -  -
18163   22 122 222 322 122 22   -  -   -  -
18164   23 123 223 323   -  -   -  -   -  -
18165   24 124 224 324 124 24 224 24   -  -
18166   25 125 225 325   -  -   -  - 325 25
18167   26 126 226 326 126 26   -  -   -  -
18168   27 127 227 327   -  - 227 27   -  -
18169   28 128 228 328 128 28   -  -   -  -
18170   29 129 229 329   -  -   -  -   -  -
18171   30 130 230 330 130 30 230 30 330 30
18172   31 131 231 331   -  -   -  -   -  -
18173   32 132 232 332 132 32   -  -   -  -
18174   33 133 233 333   -  - 233 33   -  -
18175   34 134 234 334 134 34   -  -   -  -
18176   35 135 235 335   -  -   -  - 335 35
18177   36 136 236 336 136 36 236 36   -  -
18178   37 137 237 337   -  -   -  -   -  -
18179   38 138 238 338 138 38   -  -   -  -
18180   39 139 239 339   -  - 239 39   -  -
18181   40 140 240 340 140 40   -  - 340 40
18182   41 141 241 341   -  -   -  -   -  -
18183   42 142 242 342 142 42 242 42   -  -
18184   43 143 243 343   -  -   -  -   -  -
18185   44 144 244 344 144 44   -  -   -  -
18186   45 145 245 345   -  - 245 45 345 45
18187   46 146 246 346 146 46   -  -   -  -
18188   47 147 247 347   -  -   -  -   -  -
18189   48 148 248 348 148 48 248 48   -  -
18190   49 149 249 349   -  -   -  -   -  -
18191   50 150 250 350 150 50   -  - 350 50
18192   51 151 251 351   -  - 251 51   -  -
18193   52 152 252 352 152 52   -  -   -  -
18194   53 153 253 353   -  -   -  -   -  -
18195   54 154 254 354 154 54 254 54   -  -
18196   55 155 255 355   -  -   -  - 355 55
18197   56 156 256 356 156 56   -  -   -  -
18198   57 157 257 357   -  - 257 57   -  -
18199   58 158 258 358 158 58   -  -   -  -
18200   59 159 259 359   -  -   -  -   -  -
18201   60 160 260 360 160 60 260 60 360 60
18202   61 161 261 361   -  -   -  -   -  -
18203   62 162 262 362 162 62   -  -   -  -
18204   63 163 263 363   -  - 263 63   -  -
18205   64 164 264 364 164 64   -  -   -  -
18206   65 165 265 365   -  -   -  - 365 65
18207   66 166 266 366 166 66 266 66   -  -
18208   67 167 267 367   -  -   -  -   -  -
18209   68 168 268 368 168 68   -  -   -  -
18210   69 169 269 369   -  - 269 69   -  -
18211   70 170 270 370 170 70   -  - 370 70
18212   71 171 271 371   -  -   -  -   -  -
18213   72 172 272 372 172 72 272 72   -  -
18214   73 173 273 373   -  -   -  -   -  -
18215   74 174 274 374 174 74   -  -   -  -
18216   75 175 275 375   -  - 275 75 375 75
18217   76 176 276 376 176 76   -  -   -  -
18218   77 177 277 377   -  -   -  -   -  -
18219   78 178 278 378 178 78 278 78   -  -
18220   79 179 279 379   -  -   -  -   -  -
18221   80 180 280 380 180 80   -  - 380 80
18222   81 181 281 381   -  - 281 81   -  -
18223   82 182 282 382 182 82   -  -   -  -
18224   83 183 283 383   -  -   -  -   -  -
18225   84 184 284 384 184 84 284 84   -  -
18226   85 185 285 385   -  -   -  - 385 85
18227   86 186 286 386 186 86   -  -   -  -
18228   87 187 287 387   -  - 287 87   -  -
18229   88 188 288 388 188 88   -  -   -  -
18230   89 189 289 389   -  -   -  -   -  -
18231   90 190 290 390 190 90 290 90 390 90
18232   91 191 291 391   -  -   -  -   -  -
18233   92 192 292 392 192 92   -  -   -  -
18234   93 193 293 393   -  - 293 93   -  -
18235   94 194 294 394 194 94   -  -   -  -
18236   95 195 295 395   -  -   -  - 395 95
18237   96   - 296 396   -  -   -  -   -  -
18238   97 197   - 397   -  -   -  -   -  -
18239   98 198 298   -   -  -   -  -   -  -
18240   99   -   -   -   -  -   -  -   -  -
18241    -   -   -   -   -  - 200  0   -  -
18242    -   -   -   -   -  -   -  - 300  0
18244 do_execsql_test joinD-601 {
18245   SELECT t1.*, t2.*, t3.*, t4.*
18246   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
18247   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18248   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
18249   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18250 } {
18251   30 130 230 330 130 30 230 30 330 30
18252   60 160 260 360 160 60 260 60 360 60
18253   90 190 290 390 190 90 290 90 390 90
18255 do_execsql_test joinD-602 {
18256   SELECT t1.*, t2.*, t3.*, t4.*
18257   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
18258   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18259   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
18260   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18261 } {
18262   30 130 230 330 130 30 230 30 330 30
18263   60 160 260 360 160 60 260 60 360 60
18264   90 190 290 390 190 90 290 90 390 90
18266 do_execsql_test joinD-603 {
18267   SELECT t1.*, t2.*, t3.*, t4.*
18268   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
18269   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18270   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
18271   WHERE t2.x>0
18272   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18273 } {
18274   30 130 230 330 130 30 230 30 330 30
18275   60 160 260 360 160 60 260 60 360 60
18276   90 190 290 390 190 90 290 90 390 90
18278 do_execsql_test joinD-604 {
18279   SELECT t1.*, t2.*, t3.*, t4.*
18280   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
18281   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18282   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
18283   WHERE (t2.x>0 OR t2.x IS NULL)
18284   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18285 } {
18286   30 130 230 330 130 30 230 30 330 30
18287   60 160 260 360 160 60 260 60 360 60
18288   90 190 290 390 190 90 290 90 390 90
18290 do_execsql_test joinD-605 {
18291   SELECT t1.*, t2.*, t3.*, t4.*
18292   FROM t1 RIGHT JOIN t2 ON true
18293   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18294   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
18295   WHERE t1.b=t2.b AND t2.x>0
18296   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18297 } {
18298   30 130 230 330 130 30 230 30 330 30
18299   60 160 260 360 160 60 260 60 360 60
18300   90 190 290 390 190 90 290 90 390 90
18302 do_execsql_test joinD-606 {
18303   SELECT t1.*, t2.*, t3.*, t4.*
18304   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
18305   INNER JOIN t3 ON t1.c=t3.c
18306   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
18307   WHERE t3.y>0
18308   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18309 } {
18310   30 130 230 330 130 30 230 30 330 30
18311   60 160 260 360 160 60 260 60 360 60
18312   90 190 290 390 190 90 290 90 390 90
18314 do_execsql_test joinD-607 {
18315   SELECT t1.*, t2.*, t3.*, t4.*
18316   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
18317   INNER JOIN t3 ON t1.c=t3.c
18318   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
18319   WHERE t3.y>0 OR t3.y IS NULL
18320   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18321 } {
18322   30 130 230 330 130 30 230 30 330 30
18323   60 160 260 360 160 60 260 60 360 60
18324   90 190 290 390 190 90 290 90 390 90
18326 do_execsql_test joinD-608 {
18327   SELECT t1.*, t2.*, t3.*, t4.*
18328   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
18329   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18330   INNER JOIN t4 ON t1.d=t4.d
18331   WHERE t4.z>0
18332   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18333 } {
18334   30 130 230 330 130 30 230 30 330 30
18335   60 160 260 360 160 60 260 60 360 60
18336   90 190 290 390 190 90 290 90 390 90
18338 do_execsql_test joinD-609 {
18339   SELECT t1.*, t2.*, t3.*, t4.*
18340   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
18341   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18342   INNER JOIN t4 ON t1.d=t4.d
18343   WHERE t4.z IS NULL OR t4.z>0
18344   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18345 } {
18346   30 130 230 330 130 30 230 30 330 30
18347   60 160 260 360 160 60 260 60 360 60
18348   90 190 290 390 190 90 290 90 390 90
18350 do_execsql_test joinD-610 {
18351   SELECT t1.*, t2.*, t3.*, t4.*
18352   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
18353   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18354   INNER JOIN t4 ON t1.d=t4.d
18355   WHERE t2.x>0 AND t4.z>0
18356   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18357 } {
18358   30 130 230 330 130 30 230 30 330 30
18359   60 160 260 360 160 60 260 60 360 60
18360   90 190 290 390 190 90 290 90 390 90
18362 do_execsql_test joinD-611 {
18363   SELECT t1.*, t2.*, t3.*, t4.*
18364   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
18365   INNER JOIN t3 ON t1.c=t3.c
18366   INNER JOIN t4 ON t1.d=t4.d
18367   WHERE t4.z>0 AND t3.y>0
18368   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18369 } {
18370   30 130 230 330 130 30 230 30 330 30
18371   60 160 260 360 160 60 260 60 360 60
18372   90 190 290 390 190 90 290 90 390 90
18374 do_execsql_test joinD-612 {
18375   SELECT t1.*, t2.*, t3.*, t4.*
18376   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
18377   INNER JOIN t3 ON t1.c=t3.c
18378   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
18379   WHERE t2.x>0 AND t3.y>0
18380   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18381 } {
18382   30 130 230 330 130 30 230 30 330 30
18383   60 160 260 360 160 60 260 60 360 60
18384   90 190 290 390 190 90 290 90 390 90
18386 do_execsql_test joinD-613 {
18387   SELECT t1.*, t2.*, t3.*, t4.*
18388   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
18389   INNER JOIN t3 ON t1.c=t3.c
18390   INNER JOIN t4 ON t1.d=t4.d
18391   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
18392   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18393 } {
18394   30 130 230 330 130 30 230 30 330 30
18395   60 160 260 360 160 60 260 60 360 60
18396   90 190 290 390 190 90 290 90 390 90
18398 do_execsql_test joinD-614 {
18399   SELECT t1.*, t2.*, t3.*, t4.*
18400   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
18401   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
18402   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
18403   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18404 } {
18405   30 130 230 330 130 30 230 30 330 30
18406   60 160 260 360 160 60 260 60 360 60
18407   90 190 290 390 190 90 290 90 390 90
18409 do_execsql_test joinD-615 {
18410   SELECT t1.*, t2.*, t3.*, t4.*
18411   FROM t1 RIGHT JOIN t2 ON t2.x>0
18412   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
18413   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
18414   WHERE t1.b IS NOT DISTINCT FROM t2.b
18415   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18416 } {
18417   30 130 230 330 130 30 230 30 330 30
18418   60 160 260 360 160 60 260 60 360 60
18419   90 190 290 390 190 90 290 90 390 90
18421 do_execsql_test joinD-616 {
18422   SELECT t1.*, t2.*, t3.*, t4.*
18423   FROM t1 RIGHT JOIN t2 ON t2.x>0
18424   INNER JOIN t3 ON t3.y>0
18425   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
18426   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
18427   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18428 } {
18429   30 130 230 330 130 30 230 30 330 30
18430   60 160 260 360 160 60 260 60 360 60
18431   90 190 290 390 190 90 290 90 390 90
18433 do_execsql_test joinD-617 {
18434   SELECT t1.*, t2.*, t3.*, t4.*
18435   FROM t1 RIGHT JOIN t2 ON t2.x>0
18436   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
18437   INNER JOIN t4 ON t4.z>0
18438   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
18439   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18440 } {
18441   30 130 230 330 130 30 230 30 330 30
18442   60 160 260 360 160 60 260 60 360 60
18443   90 190 290 390 190 90 290 90 390 90
18445 do_execsql_test joinD-618 {
18446   SELECT t1.*, t2.*, t3.*, t4.*
18447   FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
18448   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18449   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
18450   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18451 } {
18452   30 130 230 330 130 30 230 30 330 30
18453   60 160 260 360 160 60 260 60 360 60
18454   90 190 290 390 190 90 290 90 390 90
18456 do_execsql_test joinD-619 {
18457   SELECT t1.*, t2.*, t3.*, t4.*
18458   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
18459   INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
18460   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
18461   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18462 } {
18463   30 130 230 330 130 30 230 30 330 30
18464   60 160 260 360 160 60 260 60 360 60
18465   90 190 290 390 190 90 290 90 390 90
18467 do_execsql_test joinD-620 {
18468   SELECT t1.*, t2.*, t3.*, t4.*
18469   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
18470   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18471   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
18472   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18473 } {
18474    6 106 206 306 106  6 206  6   -  -
18475   12 112 212 312 112 12 212 12   -  -
18476   18 118 218 318 118 18 218 18   -  -
18477   24 124 224 324 124 24 224 24   -  -
18478   30 130 230 330 130 30 230 30 330 30
18479   36 136 236 336 136 36 236 36   -  -
18480   42 142 242 342 142 42 242 42   -  -
18481   48 148 248 348 148 48 248 48   -  -
18482   54 154 254 354 154 54 254 54   -  -
18483   60 160 260 360 160 60 260 60 360 60
18484   66 166 266 366 166 66 266 66   -  -
18485   72 172 272 372 172 72 272 72   -  -
18486   78 178 278 378 178 78 278 78   -  -
18487   84 184 284 384 184 84 284 84   -  -
18488   90 190 290 390 190 90 290 90 390 90
18490 do_execsql_test joinD-621 {
18491   SELECT t1.*, t2.*, t3.*, t4.*
18492   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
18493   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18494   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
18495   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18496 } {
18497    6 106 206 306 106  6 206  6   -  -
18498   12 112 212 312 112 12 212 12   -  -
18499   18 118 218 318 118 18 218 18   -  -
18500   24 124 224 324 124 24 224 24   -  -
18501   30 130 230 330 130 30 230 30 330 30
18502   36 136 236 336 136 36 236 36   -  -
18503   42 142 242 342 142 42 242 42   -  -
18504   48 148 248 348 148 48 248 48   -  -
18505   54 154 254 354 154 54 254 54   -  -
18506   60 160 260 360 160 60 260 60 360 60
18507   66 166 266 366 166 66 266 66   -  -
18508   72 172 272 372 172 72 272 72   -  -
18509   78 178 278 378 178 78 278 78   -  -
18510   84 184 284 384 184 84 284 84   -  -
18511   90 190 290 390 190 90 290 90 390 90
18513 do_execsql_test joinD-622 {
18514   SELECT t1.*, t2.*, t3.*, t4.*
18515   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
18516   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18517   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
18518   WHERE t2.x>0
18519   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18520 } {
18521    6 106 206 306 106  6 206  6   -  -
18522   12 112 212 312 112 12 212 12   -  -
18523   18 118 218 318 118 18 218 18   -  -
18524   24 124 224 324 124 24 224 24   -  -
18525   30 130 230 330 130 30 230 30 330 30
18526   36 136 236 336 136 36 236 36   -  -
18527   42 142 242 342 142 42 242 42   -  -
18528   48 148 248 348 148 48 248 48   -  -
18529   54 154 254 354 154 54 254 54   -  -
18530   60 160 260 360 160 60 260 60 360 60
18531   66 166 266 366 166 66 266 66   -  -
18532   72 172 272 372 172 72 272 72   -  -
18533   78 178 278 378 178 78 278 78   -  -
18534   84 184 284 384 184 84 284 84   -  -
18535   90 190 290 390 190 90 290 90 390 90
18537 do_execsql_test joinD-623 {
18538   SELECT t1.*, t2.*, t3.*, t4.*
18539   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
18540   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18541   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
18542   WHERE (t2.x>0 OR t2.x IS NULL)
18543   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18544 } {
18545    6 106 206 306 106  6 206  6   -  -
18546   12 112 212 312 112 12 212 12   -  -
18547   18 118 218 318 118 18 218 18   -  -
18548   24 124 224 324 124 24 224 24   -  -
18549   30 130 230 330 130 30 230 30 330 30
18550   36 136 236 336 136 36 236 36   -  -
18551   42 142 242 342 142 42 242 42   -  -
18552   48 148 248 348 148 48 248 48   -  -
18553   54 154 254 354 154 54 254 54   -  -
18554   60 160 260 360 160 60 260 60 360 60
18555   66 166 266 366 166 66 266 66   -  -
18556   72 172 272 372 172 72 272 72   -  -
18557   78 178 278 378 178 78 278 78   -  -
18558   84 184 284 384 184 84 284 84   -  -
18559   90 190 290 390 190 90 290 90 390 90
18561 do_execsql_test joinD-624 {
18562   SELECT t1.*, t2.*, t3.*, t4.*
18563   FROM t1 RIGHT JOIN t2 ON true
18564   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18565   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
18566   WHERE t1.b=t2.b AND t2.x>0
18567   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18568 } {
18569    6 106 206 306 106  6 206  6   -  -
18570   12 112 212 312 112 12 212 12   -  -
18571   18 118 218 318 118 18 218 18   -  -
18572   24 124 224 324 124 24 224 24   -  -
18573   30 130 230 330 130 30 230 30 330 30
18574   36 136 236 336 136 36 236 36   -  -
18575   42 142 242 342 142 42 242 42   -  -
18576   48 148 248 348 148 48 248 48   -  -
18577   54 154 254 354 154 54 254 54   -  -
18578   60 160 260 360 160 60 260 60 360 60
18579   66 166 266 366 166 66 266 66   -  -
18580   72 172 272 372 172 72 272 72   -  -
18581   78 178 278 378 178 78 278 78   -  -
18582   84 184 284 384 184 84 284 84   -  -
18583   90 190 290 390 190 90 290 90 390 90
18585 do_execsql_test joinD-625 {
18586   SELECT t1.*, t2.*, t3.*, t4.*
18587   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
18588   INNER JOIN t3 ON t1.c=t3.c
18589   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
18590   WHERE t3.y>0
18591   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18592 } {
18593    6 106 206 306 106  6 206  6   -  -
18594   12 112 212 312 112 12 212 12   -  -
18595   18 118 218 318 118 18 218 18   -  -
18596   24 124 224 324 124 24 224 24   -  -
18597   30 130 230 330 130 30 230 30 330 30
18598   36 136 236 336 136 36 236 36   -  -
18599   42 142 242 342 142 42 242 42   -  -
18600   48 148 248 348 148 48 248 48   -  -
18601   54 154 254 354 154 54 254 54   -  -
18602   60 160 260 360 160 60 260 60 360 60
18603   66 166 266 366 166 66 266 66   -  -
18604   72 172 272 372 172 72 272 72   -  -
18605   78 178 278 378 178 78 278 78   -  -
18606   84 184 284 384 184 84 284 84   -  -
18607   90 190 290 390 190 90 290 90 390 90
18609 do_execsql_test joinD-626 {
18610   SELECT t1.*, t2.*, t3.*, t4.*
18611   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
18612   INNER JOIN t3 ON t1.c=t3.c
18613   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
18614   WHERE t3.y>0 OR t3.y IS NULL
18615   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18616 } {
18617    6 106 206 306 106  6 206  6   -  -
18618   12 112 212 312 112 12 212 12   -  -
18619   18 118 218 318 118 18 218 18   -  -
18620   24 124 224 324 124 24 224 24   -  -
18621   30 130 230 330 130 30 230 30 330 30
18622   36 136 236 336 136 36 236 36   -  -
18623   42 142 242 342 142 42 242 42   -  -
18624   48 148 248 348 148 48 248 48   -  -
18625   54 154 254 354 154 54 254 54   -  -
18626   60 160 260 360 160 60 260 60 360 60
18627   66 166 266 366 166 66 266 66   -  -
18628   72 172 272 372 172 72 272 72   -  -
18629   78 178 278 378 178 78 278 78   -  -
18630   84 184 284 384 184 84 284 84   -  -
18631   90 190 290 390 190 90 290 90 390 90
18633 do_execsql_test joinD-627 {
18634   SELECT t1.*, t2.*, t3.*, t4.*
18635   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
18636   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18637   LEFT JOIN t4 ON t1.d=t4.d
18638   WHERE t4.z>0
18639   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18640 } {
18641   30 130 230 330 130 30 230 30 330 30
18642   60 160 260 360 160 60 260 60 360 60
18643   90 190 290 390 190 90 290 90 390 90
18645 do_execsql_test joinD-628 {
18646   SELECT t1.*, t2.*, t3.*, t4.*
18647   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
18648   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18649   LEFT JOIN t4 ON t1.d=t4.d
18650   WHERE t4.z IS NULL OR t4.z>0
18651   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18652 } {
18653    6 106 206 306 106  6 206  6   -  -
18654   12 112 212 312 112 12 212 12   -  -
18655   18 118 218 318 118 18 218 18   -  -
18656   24 124 224 324 124 24 224 24   -  -
18657   30 130 230 330 130 30 230 30 330 30
18658   36 136 236 336 136 36 236 36   -  -
18659   42 142 242 342 142 42 242 42   -  -
18660   48 148 248 348 148 48 248 48   -  -
18661   54 154 254 354 154 54 254 54   -  -
18662   60 160 260 360 160 60 260 60 360 60
18663   66 166 266 366 166 66 266 66   -  -
18664   72 172 272 372 172 72 272 72   -  -
18665   78 178 278 378 178 78 278 78   -  -
18666   84 184 284 384 184 84 284 84   -  -
18667   90 190 290 390 190 90 290 90 390 90
18669 do_execsql_test joinD-629 {
18670   SELECT t1.*, t2.*, t3.*, t4.*
18671   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
18672   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18673   LEFT JOIN t4 ON t1.d=t4.d
18674   WHERE t2.x>0 AND t4.z>0
18675   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18676 } {
18677   30 130 230 330 130 30 230 30 330 30
18678   60 160 260 360 160 60 260 60 360 60
18679   90 190 290 390 190 90 290 90 390 90
18681 do_execsql_test joinD-630 {
18682   SELECT t1.*, t2.*, t3.*, t4.*
18683   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
18684   INNER JOIN t3 ON t1.c=t3.c
18685   LEFT JOIN t4 ON t1.d=t4.d
18686   WHERE t4.z>0 AND t3.y>0
18687   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18688 } {
18689   30 130 230 330 130 30 230 30 330 30
18690   60 160 260 360 160 60 260 60 360 60
18691   90 190 290 390 190 90 290 90 390 90
18693 do_execsql_test joinD-631 {
18694   SELECT t1.*, t2.*, t3.*, t4.*
18695   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
18696   INNER JOIN t3 ON t1.c=t3.c
18697   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
18698   WHERE t2.x>0 AND t3.y>0
18699   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18700 } {
18701    6 106 206 306 106  6 206  6   -  -
18702   12 112 212 312 112 12 212 12   -  -
18703   18 118 218 318 118 18 218 18   -  -
18704   24 124 224 324 124 24 224 24   -  -
18705   30 130 230 330 130 30 230 30 330 30
18706   36 136 236 336 136 36 236 36   -  -
18707   42 142 242 342 142 42 242 42   -  -
18708   48 148 248 348 148 48 248 48   -  -
18709   54 154 254 354 154 54 254 54   -  -
18710   60 160 260 360 160 60 260 60 360 60
18711   66 166 266 366 166 66 266 66   -  -
18712   72 172 272 372 172 72 272 72   -  -
18713   78 178 278 378 178 78 278 78   -  -
18714   84 184 284 384 184 84 284 84   -  -
18715   90 190 290 390 190 90 290 90 390 90
18717 do_execsql_test joinD-632 {
18718   SELECT t1.*, t2.*, t3.*, t4.*
18719   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
18720   INNER JOIN t3 ON t1.c=t3.c
18721   LEFT JOIN t4 ON t1.d=t4.d
18722   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
18723   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18724 } {
18725   30 130 230 330 130 30 230 30 330 30
18726   60 160 260 360 160 60 260 60 360 60
18727   90 190 290 390 190 90 290 90 390 90
18729 do_execsql_test joinD-633 {
18730   SELECT t1.*, t2.*, t3.*, t4.*
18731   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
18732   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
18733   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
18734   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18735 } {
18736    6 106 206 306 106  6 206  6   -  -
18737   12 112 212 312 112 12 212 12   -  -
18738   18 118 218 318 118 18 218 18   -  -
18739   24 124 224 324 124 24 224 24   -  -
18740   30 130 230 330 130 30 230 30 330 30
18741   36 136 236 336 136 36 236 36   -  -
18742   42 142 242 342 142 42 242 42   -  -
18743   48 148 248 348 148 48 248 48   -  -
18744   54 154 254 354 154 54 254 54   -  -
18745   60 160 260 360 160 60 260 60 360 60
18746   66 166 266 366 166 66 266 66   -  -
18747   72 172 272 372 172 72 272 72   -  -
18748   78 178 278 378 178 78 278 78   -  -
18749   84 184 284 384 184 84 284 84   -  -
18750   90 190 290 390 190 90 290 90 390 90
18752 do_execsql_test joinD-634 {
18753   SELECT t1.*, t2.*, t3.*, t4.*
18754   FROM t1 RIGHT JOIN t2 ON t2.x>0
18755   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
18756   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
18757   WHERE t1.b IS NOT DISTINCT FROM t2.b
18758   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18759 } {
18760    6 106 206 306 106  6 206  6   -  -
18761   12 112 212 312 112 12 212 12   -  -
18762   18 118 218 318 118 18 218 18   -  -
18763   24 124 224 324 124 24 224 24   -  -
18764   30 130 230 330 130 30 230 30 330 30
18765   36 136 236 336 136 36 236 36   -  -
18766   42 142 242 342 142 42 242 42   -  -
18767   48 148 248 348 148 48 248 48   -  -
18768   54 154 254 354 154 54 254 54   -  -
18769   60 160 260 360 160 60 260 60 360 60
18770   66 166 266 366 166 66 266 66   -  -
18771   72 172 272 372 172 72 272 72   -  -
18772   78 178 278 378 178 78 278 78   -  -
18773   84 184 284 384 184 84 284 84   -  -
18774   90 190 290 390 190 90 290 90 390 90
18776 do_execsql_test joinD-635 {
18777   SELECT t1.*, t2.*, t3.*, t4.*
18778   FROM t1 RIGHT JOIN t2 ON t2.x>0
18779   INNER JOIN t3 ON t3.y>0
18780   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
18781   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
18782   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18783 } {
18784    6 106 206 306 106  6 206  6   -  -
18785   12 112 212 312 112 12 212 12   -  -
18786   18 118 218 318 118 18 218 18   -  -
18787   24 124 224 324 124 24 224 24   -  -
18788   30 130 230 330 130 30 230 30 330 30
18789   36 136 236 336 136 36 236 36   -  -
18790   42 142 242 342 142 42 242 42   -  -
18791   48 148 248 348 148 48 248 48   -  -
18792   54 154 254 354 154 54 254 54   -  -
18793   60 160 260 360 160 60 260 60 360 60
18794   66 166 266 366 166 66 266 66   -  -
18795   72 172 272 372 172 72 272 72   -  -
18796   78 178 278 378 178 78 278 78   -  -
18797   84 184 284 384 184 84 284 84   -  -
18798   90 190 290 390 190 90 290 90 390 90
18800 do_execsql_test joinD-636 {
18801   SELECT t1.*, t2.*, t3.*, t4.*
18802   FROM t1 RIGHT JOIN t2 ON t2.x>0
18803   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
18804   LEFT JOIN t4 ON t4.z>0
18805   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
18806   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18807 } {
18808   30 130 230 330 130 30 230 30 330 30
18809   60 160 260 360 160 60 260 60 360 60
18810   90 190 290 390 190 90 290 90 390 90
18812 do_execsql_test joinD-637 {
18813   SELECT t1.*, t2.*, t3.*, t4.*
18814   FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
18815   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18816   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
18817   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18818 } {
18819    6 106 206 306 106  6 206  6   -  -
18820   12 112 212 312 112 12 212 12   -  -
18821   18 118 218 318 118 18 218 18   -  -
18822   24 124 224 324 124 24 224 24   -  -
18823   30 130 230 330 130 30 230 30 330 30
18824   36 136 236 336 136 36 236 36   -  -
18825   42 142 242 342 142 42 242 42   -  -
18826   48 148 248 348 148 48 248 48   -  -
18827   54 154 254 354 154 54 254 54   -  -
18828   60 160 260 360 160 60 260 60 360 60
18829   66 166 266 366 166 66 266 66   -  -
18830   72 172 272 372 172 72 272 72   -  -
18831   78 178 278 378 178 78 278 78   -  -
18832   84 184 284 384 184 84 284 84   -  -
18833   90 190 290 390 190 90 290 90 390 90
18835 do_execsql_test joinD-638 {
18836   SELECT t1.*, t2.*, t3.*, t4.*
18837   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
18838   INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
18839   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
18840   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18841 } {
18842    6 106 206 306 106  6 206  6   -  -
18843   12 112 212 312 112 12 212 12   -  -
18844   18 118 218 318 118 18 218 18   -  -
18845   24 124 224 324 124 24 224 24   -  -
18846   30 130 230 330 130 30 230 30 330 30
18847   36 136 236 336 136 36 236 36   -  -
18848   42 142 242 342 142 42 242 42   -  -
18849   48 148 248 348 148 48 248 48   -  -
18850   54 154 254 354 154 54 254 54   -  -
18851   60 160 260 360 160 60 260 60 360 60
18852   66 166 266 366 166 66 266 66   -  -
18853   72 172 272 372 172 72 272 72   -  -
18854   78 178 278 378 178 78 278 78   -  -
18855   84 184 284 384 184 84 284 84   -  -
18856   90 190 290 390 190 90 290 90 390 90
18858 do_execsql_test joinD-639 {
18859   SELECT t1.*, t2.*, t3.*, t4.*
18860   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
18861   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18862   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
18863   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18864 } {
18865   30 130 230 330 130 30 230 30 330 30
18866   60 160 260 360 160 60 260 60 360 60
18867   90 190 290 390 190 90 290 90 390 90
18868    -   -   -   -   -  -   -  - 300  0
18869    -   -   -   -   -  -   -  - 305  5
18870    -   -   -   -   -  -   -  - 310 10
18871    -   -   -   -   -  -   -  - 315 15
18872    -   -   -   -   -  -   -  - 320 20
18873    -   -   -   -   -  -   -  - 325 25
18874    -   -   -   -   -  -   -  - 335 35
18875    -   -   -   -   -  -   -  - 340 40
18876    -   -   -   -   -  -   -  - 345 45
18877    -   -   -   -   -  -   -  - 350 50
18878    -   -   -   -   -  -   -  - 355 55
18879    -   -   -   -   -  -   -  - 365 65
18880    -   -   -   -   -  -   -  - 370 70
18881    -   -   -   -   -  -   -  - 375 75
18882    -   -   -   -   -  -   -  - 380 80
18883    -   -   -   -   -  -   -  - 385 85
18884    -   -   -   -   -  -   -  - 395 95
18886 do_execsql_test joinD-640 {
18887   SELECT t1.*, t2.*, t3.*, t4.*
18888   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
18889   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18890   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
18891   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18892 } {
18893   30 130 230 330 130 30 230 30 330 30
18894   60 160 260 360 160 60 260 60 360 60
18895   90 190 290 390 190 90 290 90 390 90
18896    -   -   -   -   -  -   -  - 300  0
18897    -   -   -   -   -  -   -  - 305  5
18898    -   -   -   -   -  -   -  - 310 10
18899    -   -   -   -   -  -   -  - 315 15
18900    -   -   -   -   -  -   -  - 320 20
18901    -   -   -   -   -  -   -  - 325 25
18902    -   -   -   -   -  -   -  - 335 35
18903    -   -   -   -   -  -   -  - 340 40
18904    -   -   -   -   -  -   -  - 345 45
18905    -   -   -   -   -  -   -  - 350 50
18906    -   -   -   -   -  -   -  - 355 55
18907    -   -   -   -   -  -   -  - 365 65
18908    -   -   -   -   -  -   -  - 370 70
18909    -   -   -   -   -  -   -  - 375 75
18910    -   -   -   -   -  -   -  - 380 80
18911    -   -   -   -   -  -   -  - 385 85
18912    -   -   -   -   -  -   -  - 395 95
18914 do_execsql_test joinD-641 {
18915   SELECT t1.*, t2.*, t3.*, t4.*
18916   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
18917   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18918   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
18919   WHERE t2.x>0
18920   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18921 } {
18922   30 130 230 330 130 30 230 30 330 30
18923   60 160 260 360 160 60 260 60 360 60
18924   90 190 290 390 190 90 290 90 390 90
18926 do_execsql_test joinD-642 {
18927   SELECT t1.*, t2.*, t3.*, t4.*
18928   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
18929   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18930   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
18931   WHERE (t2.x>0 OR t2.x IS NULL)
18932   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18933 } {
18934   30 130 230 330 130 30 230 30 330 30
18935   60 160 260 360 160 60 260 60 360 60
18936   90 190 290 390 190 90 290 90 390 90
18937    -   -   -   -   -  -   -  - 300  0
18938    -   -   -   -   -  -   -  - 305  5
18939    -   -   -   -   -  -   -  - 310 10
18940    -   -   -   -   -  -   -  - 315 15
18941    -   -   -   -   -  -   -  - 320 20
18942    -   -   -   -   -  -   -  - 325 25
18943    -   -   -   -   -  -   -  - 335 35
18944    -   -   -   -   -  -   -  - 340 40
18945    -   -   -   -   -  -   -  - 345 45
18946    -   -   -   -   -  -   -  - 350 50
18947    -   -   -   -   -  -   -  - 355 55
18948    -   -   -   -   -  -   -  - 365 65
18949    -   -   -   -   -  -   -  - 370 70
18950    -   -   -   -   -  -   -  - 375 75
18951    -   -   -   -   -  -   -  - 380 80
18952    -   -   -   -   -  -   -  - 385 85
18953    -   -   -   -   -  -   -  - 395 95
18955 do_execsql_test joinD-643 {
18956   SELECT t1.*, t2.*, t3.*, t4.*
18957   FROM t1 RIGHT JOIN t2 ON true
18958   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
18959   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
18960   WHERE t1.b=t2.b AND t2.x>0
18961   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18962 } {
18963   30 130 230 330 130 30 230 30 330 30
18964   60 160 260 360 160 60 260 60 360 60
18965   90 190 290 390 190 90 290 90 390 90
18967 do_execsql_test joinD-644 {
18968   SELECT t1.*, t2.*, t3.*, t4.*
18969   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
18970   INNER JOIN t3 ON t1.c=t3.c
18971   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
18972   WHERE t3.y>0
18973   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18974 } {
18975   30 130 230 330 130 30 230 30 330 30
18976   60 160 260 360 160 60 260 60 360 60
18977   90 190 290 390 190 90 290 90 390 90
18979 do_execsql_test joinD-645 {
18980   SELECT t1.*, t2.*, t3.*, t4.*
18981   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
18982   INNER JOIN t3 ON t1.c=t3.c
18983   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
18984   WHERE t3.y>0 OR t3.y IS NULL
18985   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
18986 } {
18987   30 130 230 330 130 30 230 30 330 30
18988   60 160 260 360 160 60 260 60 360 60
18989   90 190 290 390 190 90 290 90 390 90
18990    -   -   -   -   -  -   -  - 300  0
18991    -   -   -   -   -  -   -  - 305  5
18992    -   -   -   -   -  -   -  - 310 10
18993    -   -   -   -   -  -   -  - 315 15
18994    -   -   -   -   -  -   -  - 320 20
18995    -   -   -   -   -  -   -  - 325 25
18996    -   -   -   -   -  -   -  - 335 35
18997    -   -   -   -   -  -   -  - 340 40
18998    -   -   -   -   -  -   -  - 345 45
18999    -   -   -   -   -  -   -  - 350 50
19000    -   -   -   -   -  -   -  - 355 55
19001    -   -   -   -   -  -   -  - 365 65
19002    -   -   -   -   -  -   -  - 370 70
19003    -   -   -   -   -  -   -  - 375 75
19004    -   -   -   -   -  -   -  - 380 80
19005    -   -   -   -   -  -   -  - 385 85
19006    -   -   -   -   -  -   -  - 395 95
19008 do_execsql_test joinD-646 {
19009   SELECT t1.*, t2.*, t3.*, t4.*
19010   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
19011   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
19012   RIGHT JOIN t4 ON t1.d=t4.d
19013   WHERE t4.z>0
19014   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19015 } {
19016   30 130 230 330 130 30 230 30 330 30
19017   60 160 260 360 160 60 260 60 360 60
19018   90 190 290 390 190 90 290 90 390 90
19019    -   -   -   -   -  -   -  - 305  5
19020    -   -   -   -   -  -   -  - 310 10
19021    -   -   -   -   -  -   -  - 315 15
19022    -   -   -   -   -  -   -  - 320 20
19023    -   -   -   -   -  -   -  - 325 25
19024    -   -   -   -   -  -   -  - 335 35
19025    -   -   -   -   -  -   -  - 340 40
19026    -   -   -   -   -  -   -  - 345 45
19027    -   -   -   -   -  -   -  - 350 50
19028    -   -   -   -   -  -   -  - 355 55
19029    -   -   -   -   -  -   -  - 365 65
19030    -   -   -   -   -  -   -  - 370 70
19031    -   -   -   -   -  -   -  - 375 75
19032    -   -   -   -   -  -   -  - 380 80
19033    -   -   -   -   -  -   -  - 385 85
19034    -   -   -   -   -  -   -  - 395 95
19036 do_execsql_test joinD-647 {
19037   SELECT t1.*, t2.*, t3.*, t4.*
19038   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
19039   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
19040   RIGHT JOIN t4 ON t1.d=t4.d
19041   WHERE t4.z IS NULL OR t4.z>0
19042   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19043 } {
19044   30 130 230 330 130 30 230 30 330 30
19045   60 160 260 360 160 60 260 60 360 60
19046   90 190 290 390 190 90 290 90 390 90
19047    -   -   -   -   -  -   -  - 305  5
19048    -   -   -   -   -  -   -  - 310 10
19049    -   -   -   -   -  -   -  - 315 15
19050    -   -   -   -   -  -   -  - 320 20
19051    -   -   -   -   -  -   -  - 325 25
19052    -   -   -   -   -  -   -  - 335 35
19053    -   -   -   -   -  -   -  - 340 40
19054    -   -   -   -   -  -   -  - 345 45
19055    -   -   -   -   -  -   -  - 350 50
19056    -   -   -   -   -  -   -  - 355 55
19057    -   -   -   -   -  -   -  - 365 65
19058    -   -   -   -   -  -   -  - 370 70
19059    -   -   -   -   -  -   -  - 375 75
19060    -   -   -   -   -  -   -  - 380 80
19061    -   -   -   -   -  -   -  - 385 85
19062    -   -   -   -   -  -   -  - 395 95
19064 do_execsql_test joinD-648 {
19065   SELECT t1.*, t2.*, t3.*, t4.*
19066   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
19067   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
19068   RIGHT JOIN t4 ON t1.d=t4.d
19069   WHERE t2.x>0 AND t4.z>0
19070   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19071 } {
19072   30 130 230 330 130 30 230 30 330 30
19073   60 160 260 360 160 60 260 60 360 60
19074   90 190 290 390 190 90 290 90 390 90
19076 do_execsql_test joinD-649 {
19077   SELECT t1.*, t2.*, t3.*, t4.*
19078   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
19079   INNER JOIN t3 ON t1.c=t3.c
19080   RIGHT JOIN t4 ON t1.d=t4.d
19081   WHERE t4.z>0 AND t3.y>0
19082   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19083 } {
19084   30 130 230 330 130 30 230 30 330 30
19085   60 160 260 360 160 60 260 60 360 60
19086   90 190 290 390 190 90 290 90 390 90
19088 do_execsql_test joinD-650 {
19089   SELECT t1.*, t2.*, t3.*, t4.*
19090   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
19091   INNER JOIN t3 ON t1.c=t3.c
19092   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
19093   WHERE t2.x>0 AND t3.y>0
19094   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19095 } {
19096   30 130 230 330 130 30 230 30 330 30
19097   60 160 260 360 160 60 260 60 360 60
19098   90 190 290 390 190 90 290 90 390 90
19100 do_execsql_test joinD-651 {
19101   SELECT t1.*, t2.*, t3.*, t4.*
19102   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
19103   INNER JOIN t3 ON t1.c=t3.c
19104   RIGHT JOIN t4 ON t1.d=t4.d
19105   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
19106   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19107 } {
19108   30 130 230 330 130 30 230 30 330 30
19109   60 160 260 360 160 60 260 60 360 60
19110   90 190 290 390 190 90 290 90 390 90
19112 do_execsql_test joinD-652 {
19113   SELECT t1.*, t2.*, t3.*, t4.*
19114   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
19115   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
19116   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
19117   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19118 } {
19119   30 130 230 330 130 30 230 30 330 30
19120   60 160 260 360 160 60 260 60 360 60
19121   90 190 290 390 190 90 290 90 390 90
19122    -   -   -   -   -  -   -  - 300  0
19123    -   -   -   -   -  -   -  - 305  5
19124    -   -   -   -   -  -   -  - 310 10
19125    -   -   -   -   -  -   -  - 315 15
19126    -   -   -   -   -  -   -  - 320 20
19127    -   -   -   -   -  -   -  - 325 25
19128    -   -   -   -   -  -   -  - 335 35
19129    -   -   -   -   -  -   -  - 340 40
19130    -   -   -   -   -  -   -  - 345 45
19131    -   -   -   -   -  -   -  - 350 50
19132    -   -   -   -   -  -   -  - 355 55
19133    -   -   -   -   -  -   -  - 365 65
19134    -   -   -   -   -  -   -  - 370 70
19135    -   -   -   -   -  -   -  - 375 75
19136    -   -   -   -   -  -   -  - 380 80
19137    -   -   -   -   -  -   -  - 385 85
19138    -   -   -   -   -  -   -  - 395 95
19140 do_execsql_test joinD-653 {
19141   SELECT t1.*, t2.*, t3.*, t4.*
19142   FROM t1 RIGHT JOIN t2 ON t2.x>0
19143   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
19144   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
19145   WHERE t1.b IS NOT DISTINCT FROM t2.b
19146   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19147 } {
19148   30 130 230 330 130 30 230 30 330 30
19149   60 160 260 360 160 60 260 60 360 60
19150   90 190 290 390 190 90 290 90 390 90
19151    -   -   -   -   -  -   -  - 300  0
19152    -   -   -   -   -  -   -  - 305  5
19153    -   -   -   -   -  -   -  - 310 10
19154    -   -   -   -   -  -   -  - 320 20
19155    -   -   -   -   -  -   -  - 325 25
19156    -   -   -   -   -  -   -  - 335 35
19157    -   -   -   -   -  -   -  - 340 40
19158    -   -   -   -   -  -   -  - 350 50
19159    -   -   -   -   -  -   -  - 355 55
19160    -   -   -   -   -  -   -  - 365 65
19161    -   -   -   -   -  -   -  - 370 70
19162    -   -   -   -   -  -   -  - 380 80
19163    -   -   -   -   -  -   -  - 385 85
19164    -   -   -   -   -  -   -  - 395 95
19166 do_execsql_test joinD-654 {
19167   SELECT t1.*, t2.*, t3.*, t4.*
19168   FROM t1 RIGHT JOIN t2 ON t2.x>0
19169   INNER JOIN t3 ON t3.y>0
19170   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
19171   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
19172   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19173 } {
19174   30 130 230 330 130 30 230 30 330 30
19175   60 160 260 360 160 60 260 60 360 60
19176   90 190 290 390 190 90 290 90 390 90
19177    -   -   -   -   -  -   -  - 300  0
19179 do_execsql_test joinD-655 {
19180   SELECT t1.*, t2.*, t3.*, t4.*
19181   FROM t1 RIGHT JOIN t2 ON t2.x>0
19182   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
19183   RIGHT JOIN t4 ON t4.z>0
19184   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
19185   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19186 } {
19187   30 130 230 330 130 30 230 30 330 30
19188   60 160 260 360 160 60 260 60 360 60
19189   90 190 290 390 190 90 290 90 390 90
19191 do_execsql_test joinD-656 {
19192   SELECT t1.*, t2.*, t3.*, t4.*
19193   FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
19194   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
19195   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
19196   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19197 } {
19198   30 130 230 330 130 30 230 30 330 30
19199   60 160 260 360 160 60 260 60 360 60
19200   90 190 290 390 190 90 290 90 390 90
19201    -   -   -   -   -  -   -  - 300  0
19202    -   -   -   -   -  -   -  - 305  5
19203    -   -   -   -   -  -   -  - 310 10
19204    -   -   -   -   -  -   -  - 315 15
19205    -   -   -   -   -  -   -  - 320 20
19206    -   -   -   -   -  -   -  - 325 25
19207    -   -   -   -   -  -   -  - 335 35
19208    -   -   -   -   -  -   -  - 340 40
19209    -   -   -   -   -  -   -  - 345 45
19210    -   -   -   -   -  -   -  - 350 50
19211    -   -   -   -   -  -   -  - 355 55
19212    -   -   -   -   -  -   -  - 365 65
19213    -   -   -   -   -  -   -  - 370 70
19214    -   -   -   -   -  -   -  - 375 75
19215    -   -   -   -   -  -   -  - 380 80
19216    -   -   -   -   -  -   -  - 385 85
19217    -   -   -   -   -  -   -  - 395 95
19219 do_execsql_test joinD-657 {
19220   SELECT t1.*, t2.*, t3.*, t4.*
19221   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
19222   INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
19223   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
19224   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19225 } {
19226   30 130 230 330 130 30 230 30 330 30
19227   60 160 260 360 160 60 260 60 360 60
19228   90 190 290 390 190 90 290 90 390 90
19229    -   -   -   -   -  -   -  - 300  0
19230    -   -   -   -   -  -   -  - 305  5
19231    -   -   -   -   -  -   -  - 310 10
19232    -   -   -   -   -  -   -  - 315 15
19233    -   -   -   -   -  -   -  - 320 20
19234    -   -   -   -   -  -   -  - 325 25
19235    -   -   -   -   -  -   -  - 335 35
19236    -   -   -   -   -  -   -  - 340 40
19237    -   -   -   -   -  -   -  - 345 45
19238    -   -   -   -   -  -   -  - 350 50
19239    -   -   -   -   -  -   -  - 355 55
19240    -   -   -   -   -  -   -  - 365 65
19241    -   -   -   -   -  -   -  - 370 70
19242    -   -   -   -   -  -   -  - 375 75
19243    -   -   -   -   -  -   -  - 380 80
19244    -   -   -   -   -  -   -  - 385 85
19245    -   -   -   -   -  -   -  - 395 95
19247 do_execsql_test joinD-658 {
19248   SELECT t1.*, t2.*, t3.*, t4.*
19249   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
19250   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
19251   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
19252   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19253 } {
19254    6 106 206 306 106  6 206  6   -  -
19255   12 112 212 312 112 12 212 12   -  -
19256   18 118 218 318 118 18 218 18   -  -
19257   24 124 224 324 124 24 224 24   -  -
19258   30 130 230 330 130 30 230 30 330 30
19259   36 136 236 336 136 36 236 36   -  -
19260   42 142 242 342 142 42 242 42   -  -
19261   48 148 248 348 148 48 248 48   -  -
19262   54 154 254 354 154 54 254 54   -  -
19263   60 160 260 360 160 60 260 60 360 60
19264   66 166 266 366 166 66 266 66   -  -
19265   72 172 272 372 172 72 272 72   -  -
19266   78 178 278 378 178 78 278 78   -  -
19267   84 184 284 384 184 84 284 84   -  -
19268   90 190 290 390 190 90 290 90 390 90
19269    -   -   -   -   -  -   -  - 300  0
19270    -   -   -   -   -  -   -  - 305  5
19271    -   -   -   -   -  -   -  - 310 10
19272    -   -   -   -   -  -   -  - 315 15
19273    -   -   -   -   -  -   -  - 320 20
19274    -   -   -   -   -  -   -  - 325 25
19275    -   -   -   -   -  -   -  - 335 35
19276    -   -   -   -   -  -   -  - 340 40
19277    -   -   -   -   -  -   -  - 345 45
19278    -   -   -   -   -  -   -  - 350 50
19279    -   -   -   -   -  -   -  - 355 55
19280    -   -   -   -   -  -   -  - 365 65
19281    -   -   -   -   -  -   -  - 370 70
19282    -   -   -   -   -  -   -  - 375 75
19283    -   -   -   -   -  -   -  - 380 80
19284    -   -   -   -   -  -   -  - 385 85
19285    -   -   -   -   -  -   -  - 395 95
19287 do_execsql_test joinD-659 {
19288   SELECT t1.*, t2.*, t3.*, t4.*
19289   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
19290   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
19291   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
19292   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19293 } {
19294    6 106 206 306 106  6 206  6   -  -
19295   12 112 212 312 112 12 212 12   -  -
19296   18 118 218 318 118 18 218 18   -  -
19297   24 124 224 324 124 24 224 24   -  -
19298   30 130 230 330 130 30 230 30 330 30
19299   36 136 236 336 136 36 236 36   -  -
19300   42 142 242 342 142 42 242 42   -  -
19301   48 148 248 348 148 48 248 48   -  -
19302   54 154 254 354 154 54 254 54   -  -
19303   60 160 260 360 160 60 260 60 360 60
19304   66 166 266 366 166 66 266 66   -  -
19305   72 172 272 372 172 72 272 72   -  -
19306   78 178 278 378 178 78 278 78   -  -
19307   84 184 284 384 184 84 284 84   -  -
19308   90 190 290 390 190 90 290 90 390 90
19309    -   -   -   -   -  -   -  - 300  0
19310    -   -   -   -   -  -   -  - 305  5
19311    -   -   -   -   -  -   -  - 310 10
19312    -   -   -   -   -  -   -  - 315 15
19313    -   -   -   -   -  -   -  - 320 20
19314    -   -   -   -   -  -   -  - 325 25
19315    -   -   -   -   -  -   -  - 335 35
19316    -   -   -   -   -  -   -  - 340 40
19317    -   -   -   -   -  -   -  - 345 45
19318    -   -   -   -   -  -   -  - 350 50
19319    -   -   -   -   -  -   -  - 355 55
19320    -   -   -   -   -  -   -  - 365 65
19321    -   -   -   -   -  -   -  - 370 70
19322    -   -   -   -   -  -   -  - 375 75
19323    -   -   -   -   -  -   -  - 380 80
19324    -   -   -   -   -  -   -  - 385 85
19325    -   -   -   -   -  -   -  - 395 95
19327 do_execsql_test joinD-660 {
19328   SELECT t1.*, t2.*, t3.*, t4.*
19329   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
19330   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
19331   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
19332   WHERE t2.x>0
19333   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19334 } {
19335    6 106 206 306 106  6 206  6   -  -
19336   12 112 212 312 112 12 212 12   -  -
19337   18 118 218 318 118 18 218 18   -  -
19338   24 124 224 324 124 24 224 24   -  -
19339   30 130 230 330 130 30 230 30 330 30
19340   36 136 236 336 136 36 236 36   -  -
19341   42 142 242 342 142 42 242 42   -  -
19342   48 148 248 348 148 48 248 48   -  -
19343   54 154 254 354 154 54 254 54   -  -
19344   60 160 260 360 160 60 260 60 360 60
19345   66 166 266 366 166 66 266 66   -  -
19346   72 172 272 372 172 72 272 72   -  -
19347   78 178 278 378 178 78 278 78   -  -
19348   84 184 284 384 184 84 284 84   -  -
19349   90 190 290 390 190 90 290 90 390 90
19351 do_execsql_test joinD-661 {
19352   SELECT t1.*, t2.*, t3.*, t4.*
19353   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
19354   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
19355   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
19356   WHERE (t2.x>0 OR t2.x IS NULL)
19357   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19358 } {
19359    6 106 206 306 106  6 206  6   -  -
19360   12 112 212 312 112 12 212 12   -  -
19361   18 118 218 318 118 18 218 18   -  -
19362   24 124 224 324 124 24 224 24   -  -
19363   30 130 230 330 130 30 230 30 330 30
19364   36 136 236 336 136 36 236 36   -  -
19365   42 142 242 342 142 42 242 42   -  -
19366   48 148 248 348 148 48 248 48   -  -
19367   54 154 254 354 154 54 254 54   -  -
19368   60 160 260 360 160 60 260 60 360 60
19369   66 166 266 366 166 66 266 66   -  -
19370   72 172 272 372 172 72 272 72   -  -
19371   78 178 278 378 178 78 278 78   -  -
19372   84 184 284 384 184 84 284 84   -  -
19373   90 190 290 390 190 90 290 90 390 90
19374    -   -   -   -   -  -   -  - 300  0
19375    -   -   -   -   -  -   -  - 305  5
19376    -   -   -   -   -  -   -  - 310 10
19377    -   -   -   -   -  -   -  - 315 15
19378    -   -   -   -   -  -   -  - 320 20
19379    -   -   -   -   -  -   -  - 325 25
19380    -   -   -   -   -  -   -  - 335 35
19381    -   -   -   -   -  -   -  - 340 40
19382    -   -   -   -   -  -   -  - 345 45
19383    -   -   -   -   -  -   -  - 350 50
19384    -   -   -   -   -  -   -  - 355 55
19385    -   -   -   -   -  -   -  - 365 65
19386    -   -   -   -   -  -   -  - 370 70
19387    -   -   -   -   -  -   -  - 375 75
19388    -   -   -   -   -  -   -  - 380 80
19389    -   -   -   -   -  -   -  - 385 85
19390    -   -   -   -   -  -   -  - 395 95
19392 do_execsql_test joinD-662 {
19393   SELECT t1.*, t2.*, t3.*, t4.*
19394   FROM t1 RIGHT JOIN t2 ON true
19395   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
19396   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
19397   WHERE t1.b=t2.b AND t2.x>0
19398   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19399 } {
19400    6 106 206 306 106  6 206  6   -  -
19401   12 112 212 312 112 12 212 12   -  -
19402   18 118 218 318 118 18 218 18   -  -
19403   24 124 224 324 124 24 224 24   -  -
19404   30 130 230 330 130 30 230 30 330 30
19405   36 136 236 336 136 36 236 36   -  -
19406   42 142 242 342 142 42 242 42   -  -
19407   48 148 248 348 148 48 248 48   -  -
19408   54 154 254 354 154 54 254 54   -  -
19409   60 160 260 360 160 60 260 60 360 60
19410   66 166 266 366 166 66 266 66   -  -
19411   72 172 272 372 172 72 272 72   -  -
19412   78 178 278 378 178 78 278 78   -  -
19413   84 184 284 384 184 84 284 84   -  -
19414   90 190 290 390 190 90 290 90 390 90
19416 do_execsql_test joinD-663 {
19417   SELECT t1.*, t2.*, t3.*, t4.*
19418   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
19419   INNER JOIN t3 ON t1.c=t3.c
19420   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
19421   WHERE t3.y>0
19422   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19423 } {
19424    6 106 206 306 106  6 206  6   -  -
19425   12 112 212 312 112 12 212 12   -  -
19426   18 118 218 318 118 18 218 18   -  -
19427   24 124 224 324 124 24 224 24   -  -
19428   30 130 230 330 130 30 230 30 330 30
19429   36 136 236 336 136 36 236 36   -  -
19430   42 142 242 342 142 42 242 42   -  -
19431   48 148 248 348 148 48 248 48   -  -
19432   54 154 254 354 154 54 254 54   -  -
19433   60 160 260 360 160 60 260 60 360 60
19434   66 166 266 366 166 66 266 66   -  -
19435   72 172 272 372 172 72 272 72   -  -
19436   78 178 278 378 178 78 278 78   -  -
19437   84 184 284 384 184 84 284 84   -  -
19438   90 190 290 390 190 90 290 90 390 90
19440 do_execsql_test joinD-664 {
19441   SELECT t1.*, t2.*, t3.*, t4.*
19442   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
19443   INNER JOIN t3 ON t1.c=t3.c
19444   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
19445   WHERE t3.y>0 OR t3.y IS NULL
19446   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19447 } {
19448    6 106 206 306 106  6 206  6   -  -
19449   12 112 212 312 112 12 212 12   -  -
19450   18 118 218 318 118 18 218 18   -  -
19451   24 124 224 324 124 24 224 24   -  -
19452   30 130 230 330 130 30 230 30 330 30
19453   36 136 236 336 136 36 236 36   -  -
19454   42 142 242 342 142 42 242 42   -  -
19455   48 148 248 348 148 48 248 48   -  -
19456   54 154 254 354 154 54 254 54   -  -
19457   60 160 260 360 160 60 260 60 360 60
19458   66 166 266 366 166 66 266 66   -  -
19459   72 172 272 372 172 72 272 72   -  -
19460   78 178 278 378 178 78 278 78   -  -
19461   84 184 284 384 184 84 284 84   -  -
19462   90 190 290 390 190 90 290 90 390 90
19463    -   -   -   -   -  -   -  - 300  0
19464    -   -   -   -   -  -   -  - 305  5
19465    -   -   -   -   -  -   -  - 310 10
19466    -   -   -   -   -  -   -  - 315 15
19467    -   -   -   -   -  -   -  - 320 20
19468    -   -   -   -   -  -   -  - 325 25
19469    -   -   -   -   -  -   -  - 335 35
19470    -   -   -   -   -  -   -  - 340 40
19471    -   -   -   -   -  -   -  - 345 45
19472    -   -   -   -   -  -   -  - 350 50
19473    -   -   -   -   -  -   -  - 355 55
19474    -   -   -   -   -  -   -  - 365 65
19475    -   -   -   -   -  -   -  - 370 70
19476    -   -   -   -   -  -   -  - 375 75
19477    -   -   -   -   -  -   -  - 380 80
19478    -   -   -   -   -  -   -  - 385 85
19479    -   -   -   -   -  -   -  - 395 95
19481 do_execsql_test joinD-665 {
19482   SELECT t1.*, t2.*, t3.*, t4.*
19483   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
19484   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
19485   FULL JOIN t4 ON t1.d=t4.d
19486   WHERE t4.z>0
19487   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19488 } {
19489   30 130 230 330 130 30 230 30 330 30
19490   60 160 260 360 160 60 260 60 360 60
19491   90 190 290 390 190 90 290 90 390 90
19492    -   -   -   -   -  -   -  - 305  5
19493    -   -   -   -   -  -   -  - 310 10
19494    -   -   -   -   -  -   -  - 315 15
19495    -   -   -   -   -  -   -  - 320 20
19496    -   -   -   -   -  -   -  - 325 25
19497    -   -   -   -   -  -   -  - 335 35
19498    -   -   -   -   -  -   -  - 340 40
19499    -   -   -   -   -  -   -  - 345 45
19500    -   -   -   -   -  -   -  - 350 50
19501    -   -   -   -   -  -   -  - 355 55
19502    -   -   -   -   -  -   -  - 365 65
19503    -   -   -   -   -  -   -  - 370 70
19504    -   -   -   -   -  -   -  - 375 75
19505    -   -   -   -   -  -   -  - 380 80
19506    -   -   -   -   -  -   -  - 385 85
19507    -   -   -   -   -  -   -  - 395 95
19509 do_execsql_test joinD-666 {
19510   SELECT t1.*, t2.*, t3.*, t4.*
19511   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
19512   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
19513   FULL JOIN t4 ON t1.d=t4.d
19514   WHERE t4.z IS NULL OR t4.z>0
19515   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19516 } {
19517    6 106 206 306 106  6 206  6   -  -
19518   12 112 212 312 112 12 212 12   -  -
19519   18 118 218 318 118 18 218 18   -  -
19520   24 124 224 324 124 24 224 24   -  -
19521   30 130 230 330 130 30 230 30 330 30
19522   36 136 236 336 136 36 236 36   -  -
19523   42 142 242 342 142 42 242 42   -  -
19524   48 148 248 348 148 48 248 48   -  -
19525   54 154 254 354 154 54 254 54   -  -
19526   60 160 260 360 160 60 260 60 360 60
19527   66 166 266 366 166 66 266 66   -  -
19528   72 172 272 372 172 72 272 72   -  -
19529   78 178 278 378 178 78 278 78   -  -
19530   84 184 284 384 184 84 284 84   -  -
19531   90 190 290 390 190 90 290 90 390 90
19532    -   -   -   -   -  -   -  - 305  5
19533    -   -   -   -   -  -   -  - 310 10
19534    -   -   -   -   -  -   -  - 315 15
19535    -   -   -   -   -  -   -  - 320 20
19536    -   -   -   -   -  -   -  - 325 25
19537    -   -   -   -   -  -   -  - 335 35
19538    -   -   -   -   -  -   -  - 340 40
19539    -   -   -   -   -  -   -  - 345 45
19540    -   -   -   -   -  -   -  - 350 50
19541    -   -   -   -   -  -   -  - 355 55
19542    -   -   -   -   -  -   -  - 365 65
19543    -   -   -   -   -  -   -  - 370 70
19544    -   -   -   -   -  -   -  - 375 75
19545    -   -   -   -   -  -   -  - 380 80
19546    -   -   -   -   -  -   -  - 385 85
19547    -   -   -   -   -  -   -  - 395 95
19549 do_execsql_test joinD-667 {
19550   SELECT t1.*, t2.*, t3.*, t4.*
19551   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
19552   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
19553   FULL JOIN t4 ON t1.d=t4.d
19554   WHERE t2.x>0 AND t4.z>0
19555   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19556 } {
19557   30 130 230 330 130 30 230 30 330 30
19558   60 160 260 360 160 60 260 60 360 60
19559   90 190 290 390 190 90 290 90 390 90
19561 do_execsql_test joinD-668 {
19562   SELECT t1.*, t2.*, t3.*, t4.*
19563   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
19564   INNER JOIN t3 ON t1.c=t3.c
19565   FULL JOIN t4 ON t1.d=t4.d
19566   WHERE t4.z>0 AND t3.y>0
19567   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19568 } {
19569   30 130 230 330 130 30 230 30 330 30
19570   60 160 260 360 160 60 260 60 360 60
19571   90 190 290 390 190 90 290 90 390 90
19573 do_execsql_test joinD-669 {
19574   SELECT t1.*, t2.*, t3.*, t4.*
19575   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
19576   INNER JOIN t3 ON t1.c=t3.c
19577   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
19578   WHERE t2.x>0 AND t3.y>0
19579   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19580 } {
19581    6 106 206 306 106  6 206  6   -  -
19582   12 112 212 312 112 12 212 12   -  -
19583   18 118 218 318 118 18 218 18   -  -
19584   24 124 224 324 124 24 224 24   -  -
19585   30 130 230 330 130 30 230 30 330 30
19586   36 136 236 336 136 36 236 36   -  -
19587   42 142 242 342 142 42 242 42   -  -
19588   48 148 248 348 148 48 248 48   -  -
19589   54 154 254 354 154 54 254 54   -  -
19590   60 160 260 360 160 60 260 60 360 60
19591   66 166 266 366 166 66 266 66   -  -
19592   72 172 272 372 172 72 272 72   -  -
19593   78 178 278 378 178 78 278 78   -  -
19594   84 184 284 384 184 84 284 84   -  -
19595   90 190 290 390 190 90 290 90 390 90
19597 do_execsql_test joinD-670 {
19598   SELECT t1.*, t2.*, t3.*, t4.*
19599   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
19600   INNER JOIN t3 ON t1.c=t3.c
19601   FULL JOIN t4 ON t1.d=t4.d
19602   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
19603   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19604 } {
19605   30 130 230 330 130 30 230 30 330 30
19606   60 160 260 360 160 60 260 60 360 60
19607   90 190 290 390 190 90 290 90 390 90
19609 do_execsql_test joinD-671 {
19610   SELECT t1.*, t2.*, t3.*, t4.*
19611   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
19612   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
19613   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
19614   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19615 } {
19616    6 106 206 306 106  6 206  6   -  -
19617   12 112 212 312 112 12 212 12   -  -
19618   18 118 218 318 118 18 218 18   -  -
19619   24 124 224 324 124 24 224 24   -  -
19620   30 130 230 330 130 30 230 30 330 30
19621   36 136 236 336 136 36 236 36   -  -
19622   42 142 242 342 142 42 242 42   -  -
19623   48 148 248 348 148 48 248 48   -  -
19624   54 154 254 354 154 54 254 54   -  -
19625   60 160 260 360 160 60 260 60 360 60
19626   66 166 266 366 166 66 266 66   -  -
19627   72 172 272 372 172 72 272 72   -  -
19628   78 178 278 378 178 78 278 78   -  -
19629   84 184 284 384 184 84 284 84   -  -
19630   90 190 290 390 190 90 290 90 390 90
19631    -   -   -   -   -  -   -  - 300  0
19632    -   -   -   -   -  -   -  - 305  5
19633    -   -   -   -   -  -   -  - 310 10
19634    -   -   -   -   -  -   -  - 315 15
19635    -   -   -   -   -  -   -  - 320 20
19636    -   -   -   -   -  -   -  - 325 25
19637    -   -   -   -   -  -   -  - 335 35
19638    -   -   -   -   -  -   -  - 340 40
19639    -   -   -   -   -  -   -  - 345 45
19640    -   -   -   -   -  -   -  - 350 50
19641    -   -   -   -   -  -   -  - 355 55
19642    -   -   -   -   -  -   -  - 365 65
19643    -   -   -   -   -  -   -  - 370 70
19644    -   -   -   -   -  -   -  - 375 75
19645    -   -   -   -   -  -   -  - 380 80
19646    -   -   -   -   -  -   -  - 385 85
19647    -   -   -   -   -  -   -  - 395 95
19649 do_execsql_test joinD-672 {
19650   SELECT t1.*, t2.*, t3.*, t4.*
19651   FROM t1 RIGHT JOIN t2 ON t2.x>0
19652   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
19653   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
19654   WHERE t1.b IS NOT DISTINCT FROM t2.b
19655   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19656 } {
19657    6 106 206 306 106  6 206  6   -  -
19658   12 112 212 312 112 12 212 12   -  -
19659   18 118 218 318 118 18 218 18   -  -
19660   24 124 224 324 124 24 224 24   -  -
19661   30 130 230 330 130 30 230 30 330 30
19662   36 136 236 336 136 36 236 36   -  -
19663   42 142 242 342 142 42 242 42   -  -
19664   48 148 248 348 148 48 248 48   -  -
19665   54 154 254 354 154 54 254 54   -  -
19666   60 160 260 360 160 60 260 60 360 60
19667   66 166 266 366 166 66 266 66   -  -
19668   72 172 272 372 172 72 272 72   -  -
19669   78 178 278 378 178 78 278 78   -  -
19670   84 184 284 384 184 84 284 84   -  -
19671   90 190 290 390 190 90 290 90 390 90
19672    -   -   -   -   -  -   -  - 300  0
19673    -   -   -   -   -  -   -  - 305  5
19674    -   -   -   -   -  -   -  - 310 10
19675    -   -   -   -   -  -   -  - 320 20
19676    -   -   -   -   -  -   -  - 325 25
19677    -   -   -   -   -  -   -  - 335 35
19678    -   -   -   -   -  -   -  - 340 40
19679    -   -   -   -   -  -   -  - 350 50
19680    -   -   -   -   -  -   -  - 355 55
19681    -   -   -   -   -  -   -  - 365 65
19682    -   -   -   -   -  -   -  - 370 70
19683    -   -   -   -   -  -   -  - 380 80
19684    -   -   -   -   -  -   -  - 385 85
19685    -   -   -   -   -  -   -  - 395 95
19687 do_execsql_test joinD-673 {
19688   SELECT t1.*, t2.*, t3.*, t4.*
19689   FROM t1 RIGHT JOIN t2 ON t2.x>0
19690   INNER JOIN t3 ON t3.y>0
19691   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
19692   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
19693   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19694 } {
19695    6 106 206 306 106  6 206  6   -  -
19696   12 112 212 312 112 12 212 12   -  -
19697   18 118 218 318 118 18 218 18   -  -
19698   24 124 224 324 124 24 224 24   -  -
19699   30 130 230 330 130 30 230 30 330 30
19700   36 136 236 336 136 36 236 36   -  -
19701   42 142 242 342 142 42 242 42   -  -
19702   48 148 248 348 148 48 248 48   -  -
19703   54 154 254 354 154 54 254 54   -  -
19704   60 160 260 360 160 60 260 60 360 60
19705   66 166 266 366 166 66 266 66   -  -
19706   72 172 272 372 172 72 272 72   -  -
19707   78 178 278 378 178 78 278 78   -  -
19708   84 184 284 384 184 84 284 84   -  -
19709   90 190 290 390 190 90 290 90 390 90
19710    -   -   -   -   -  -   -  - 300  0
19712 do_execsql_test joinD-674 {
19713   SELECT t1.*, t2.*, t3.*, t4.*
19714   FROM t1 RIGHT JOIN t2 ON t2.x>0
19715   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
19716   FULL JOIN t4 ON t4.z>0
19717   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
19718   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19719 } {
19720   30 130 230 330 130 30 230 30 330 30
19721   60 160 260 360 160 60 260 60 360 60
19722   90 190 290 390 190 90 290 90 390 90
19724 do_execsql_test joinD-675 {
19725   SELECT t1.*, t2.*, t3.*, t4.*
19726   FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
19727   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
19728   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
19729   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19730 } {
19731    6 106 206 306 106  6 206  6   -  -
19732   12 112 212 312 112 12 212 12   -  -
19733   18 118 218 318 118 18 218 18   -  -
19734   24 124 224 324 124 24 224 24   -  -
19735   30 130 230 330 130 30 230 30 330 30
19736   36 136 236 336 136 36 236 36   -  -
19737   42 142 242 342 142 42 242 42   -  -
19738   48 148 248 348 148 48 248 48   -  -
19739   54 154 254 354 154 54 254 54   -  -
19740   60 160 260 360 160 60 260 60 360 60
19741   66 166 266 366 166 66 266 66   -  -
19742   72 172 272 372 172 72 272 72   -  -
19743   78 178 278 378 178 78 278 78   -  -
19744   84 184 284 384 184 84 284 84   -  -
19745   90 190 290 390 190 90 290 90 390 90
19746    -   -   -   -   -  -   -  - 300  0
19747    -   -   -   -   -  -   -  - 305  5
19748    -   -   -   -   -  -   -  - 310 10
19749    -   -   -   -   -  -   -  - 315 15
19750    -   -   -   -   -  -   -  - 320 20
19751    -   -   -   -   -  -   -  - 325 25
19752    -   -   -   -   -  -   -  - 335 35
19753    -   -   -   -   -  -   -  - 340 40
19754    -   -   -   -   -  -   -  - 345 45
19755    -   -   -   -   -  -   -  - 350 50
19756    -   -   -   -   -  -   -  - 355 55
19757    -   -   -   -   -  -   -  - 365 65
19758    -   -   -   -   -  -   -  - 370 70
19759    -   -   -   -   -  -   -  - 375 75
19760    -   -   -   -   -  -   -  - 380 80
19761    -   -   -   -   -  -   -  - 385 85
19762    -   -   -   -   -  -   -  - 395 95
19764 do_execsql_test joinD-676 {
19765   SELECT t1.*, t2.*, t3.*, t4.*
19766   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
19767   INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
19768   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
19769   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19770 } {
19771    6 106 206 306 106  6 206  6   -  -
19772   12 112 212 312 112 12 212 12   -  -
19773   18 118 218 318 118 18 218 18   -  -
19774   24 124 224 324 124 24 224 24   -  -
19775   30 130 230 330 130 30 230 30 330 30
19776   36 136 236 336 136 36 236 36   -  -
19777   42 142 242 342 142 42 242 42   -  -
19778   48 148 248 348 148 48 248 48   -  -
19779   54 154 254 354 154 54 254 54   -  -
19780   60 160 260 360 160 60 260 60 360 60
19781   66 166 266 366 166 66 266 66   -  -
19782   72 172 272 372 172 72 272 72   -  -
19783   78 178 278 378 178 78 278 78   -  -
19784   84 184 284 384 184 84 284 84   -  -
19785   90 190 290 390 190 90 290 90 390 90
19786    -   -   -   -   -  -   -  - 300  0
19787    -   -   -   -   -  -   -  - 305  5
19788    -   -   -   -   -  -   -  - 310 10
19789    -   -   -   -   -  -   -  - 315 15
19790    -   -   -   -   -  -   -  - 320 20
19791    -   -   -   -   -  -   -  - 325 25
19792    -   -   -   -   -  -   -  - 335 35
19793    -   -   -   -   -  -   -  - 340 40
19794    -   -   -   -   -  -   -  - 345 45
19795    -   -   -   -   -  -   -  - 350 50
19796    -   -   -   -   -  -   -  - 355 55
19797    -   -   -   -   -  -   -  - 365 65
19798    -   -   -   -   -  -   -  - 370 70
19799    -   -   -   -   -  -   -  - 375 75
19800    -   -   -   -   -  -   -  - 380 80
19801    -   -   -   -   -  -   -  - 385 85
19802    -   -   -   -   -  -   -  - 395 95
19804 do_execsql_test joinD-677 {
19805   SELECT t1.*, t2.*, t3.*, t4.*
19806   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
19807   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
19808   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
19809   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19810 } {
19811   10 110 210 310 110 10   -  - 310 10
19812   20 120 220 320 120 20   -  - 320 20
19813   30 130 230 330 130 30 230 30 330 30
19814   40 140 240 340 140 40   -  - 340 40
19815   50 150 250 350 150 50   -  - 350 50
19816   60 160 260 360 160 60 260 60 360 60
19817   70 170 270 370 170 70   -  - 370 70
19818   80 180 280 380 180 80   -  - 380 80
19819   90 190 290 390 190 90 290 90 390 90
19821 do_execsql_test joinD-678 {
19822   SELECT t1.*, t2.*, t3.*, t4.*
19823   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
19824   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
19825   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
19826   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19827 } {
19828   10 110 210 310 110 10   -  - 310 10
19829   20 120 220 320 120 20   -  - 320 20
19830   30 130 230 330 130 30 230 30 330 30
19831   40 140 240 340 140 40   -  - 340 40
19832   50 150 250 350 150 50   -  - 350 50
19833   60 160 260 360 160 60 260 60 360 60
19834   70 170 270 370 170 70   -  - 370 70
19835   80 180 280 380 180 80   -  - 380 80
19836   90 190 290 390 190 90 290 90 390 90
19838 do_execsql_test joinD-679 {
19839   SELECT t1.*, t2.*, t3.*, t4.*
19840   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
19841   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
19842   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
19843   WHERE t2.x>0
19844   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19845 } {
19846   10 110 210 310 110 10   -  - 310 10
19847   20 120 220 320 120 20   -  - 320 20
19848   30 130 230 330 130 30 230 30 330 30
19849   40 140 240 340 140 40   -  - 340 40
19850   50 150 250 350 150 50   -  - 350 50
19851   60 160 260 360 160 60 260 60 360 60
19852   70 170 270 370 170 70   -  - 370 70
19853   80 180 280 380 180 80   -  - 380 80
19854   90 190 290 390 190 90 290 90 390 90
19856 do_execsql_test joinD-680 {
19857   SELECT t1.*, t2.*, t3.*, t4.*
19858   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
19859   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
19860   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
19861   WHERE (t2.x>0 OR t2.x IS NULL)
19862   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19863 } {
19864   10 110 210 310 110 10   -  - 310 10
19865   20 120 220 320 120 20   -  - 320 20
19866   30 130 230 330 130 30 230 30 330 30
19867   40 140 240 340 140 40   -  - 340 40
19868   50 150 250 350 150 50   -  - 350 50
19869   60 160 260 360 160 60 260 60 360 60
19870   70 170 270 370 170 70   -  - 370 70
19871   80 180 280 380 180 80   -  - 380 80
19872   90 190 290 390 190 90 290 90 390 90
19874 do_execsql_test joinD-681 {
19875   SELECT t1.*, t2.*, t3.*, t4.*
19876   FROM t1 RIGHT JOIN t2 ON true
19877   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
19878   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
19879   WHERE t1.b=t2.b AND t2.x>0
19880   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19881 } {
19882   10 110 210 310 110 10   -  - 310 10
19883   20 120 220 320 120 20   -  - 320 20
19884   30 130 230 330 130 30 230 30 330 30
19885   40 140 240 340 140 40   -  - 340 40
19886   50 150 250 350 150 50   -  - 350 50
19887   60 160 260 360 160 60 260 60 360 60
19888   70 170 270 370 170 70   -  - 370 70
19889   80 180 280 380 180 80   -  - 380 80
19890   90 190 290 390 190 90 290 90 390 90
19892 do_execsql_test joinD-682 {
19893   SELECT t1.*, t2.*, t3.*, t4.*
19894   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
19895   LEFT JOIN t3 ON t1.c=t3.c
19896   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
19897   WHERE t3.y>0
19898   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19899 } {
19900   30 130 230 330 130 30 230 30 330 30
19901   60 160 260 360 160 60 260 60 360 60
19902   90 190 290 390 190 90 290 90 390 90
19904 do_execsql_test joinD-683 {
19905   SELECT t1.*, t2.*, t3.*, t4.*
19906   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
19907   LEFT JOIN t3 ON t1.c=t3.c
19908   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
19909   WHERE t3.y>0 OR t3.y IS NULL
19910   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19911 } {
19912   10 110 210 310 110 10   -  - 310 10
19913   20 120 220 320 120 20   -  - 320 20
19914   30 130 230 330 130 30 230 30 330 30
19915   40 140 240 340 140 40   -  - 340 40
19916   50 150 250 350 150 50   -  - 350 50
19917   60 160 260 360 160 60 260 60 360 60
19918   70 170 270 370 170 70   -  - 370 70
19919   80 180 280 380 180 80   -  - 380 80
19920   90 190 290 390 190 90 290 90 390 90
19922 do_execsql_test joinD-684 {
19923   SELECT t1.*, t2.*, t3.*, t4.*
19924   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
19925   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
19926   INNER JOIN t4 ON t1.d=t4.d
19927   WHERE t4.z>0
19928   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19929 } {
19930   10 110 210 310 110 10   -  - 310 10
19931   20 120 220 320 120 20   -  - 320 20
19932   30 130 230 330 130 30 230 30 330 30
19933   40 140 240 340 140 40   -  - 340 40
19934   50 150 250 350 150 50   -  - 350 50
19935   60 160 260 360 160 60 260 60 360 60
19936   70 170 270 370 170 70   -  - 370 70
19937   80 180 280 380 180 80   -  - 380 80
19938   90 190 290 390 190 90 290 90 390 90
19940 do_execsql_test joinD-685 {
19941   SELECT t1.*, t2.*, t3.*, t4.*
19942   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
19943   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
19944   INNER JOIN t4 ON t1.d=t4.d
19945   WHERE t4.z IS NULL OR t4.z>0
19946   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19947 } {
19948   10 110 210 310 110 10   -  - 310 10
19949   20 120 220 320 120 20   -  - 320 20
19950   30 130 230 330 130 30 230 30 330 30
19951   40 140 240 340 140 40   -  - 340 40
19952   50 150 250 350 150 50   -  - 350 50
19953   60 160 260 360 160 60 260 60 360 60
19954   70 170 270 370 170 70   -  - 370 70
19955   80 180 280 380 180 80   -  - 380 80
19956   90 190 290 390 190 90 290 90 390 90
19958 do_execsql_test joinD-686 {
19959   SELECT t1.*, t2.*, t3.*, t4.*
19960   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
19961   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
19962   INNER JOIN t4 ON t1.d=t4.d
19963   WHERE t2.x>0 AND t4.z>0
19964   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19965 } {
19966   10 110 210 310 110 10   -  - 310 10
19967   20 120 220 320 120 20   -  - 320 20
19968   30 130 230 330 130 30 230 30 330 30
19969   40 140 240 340 140 40   -  - 340 40
19970   50 150 250 350 150 50   -  - 350 50
19971   60 160 260 360 160 60 260 60 360 60
19972   70 170 270 370 170 70   -  - 370 70
19973   80 180 280 380 180 80   -  - 380 80
19974   90 190 290 390 190 90 290 90 390 90
19976 do_execsql_test joinD-687 {
19977   SELECT t1.*, t2.*, t3.*, t4.*
19978   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
19979   LEFT JOIN t3 ON t1.c=t3.c
19980   INNER JOIN t4 ON t1.d=t4.d
19981   WHERE t4.z>0 AND t3.y>0
19982   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19983 } {
19984   30 130 230 330 130 30 230 30 330 30
19985   60 160 260 360 160 60 260 60 360 60
19986   90 190 290 390 190 90 290 90 390 90
19988 do_execsql_test joinD-688 {
19989   SELECT t1.*, t2.*, t3.*, t4.*
19990   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
19991   LEFT JOIN t3 ON t1.c=t3.c
19992   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
19993   WHERE t2.x>0 AND t3.y>0
19994   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
19995 } {
19996   30 130 230 330 130 30 230 30 330 30
19997   60 160 260 360 160 60 260 60 360 60
19998   90 190 290 390 190 90 290 90 390 90
20000 do_execsql_test joinD-689 {
20001   SELECT t1.*, t2.*, t3.*, t4.*
20002   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
20003   LEFT JOIN t3 ON t1.c=t3.c
20004   INNER JOIN t4 ON t1.d=t4.d
20005   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
20006   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20007 } {
20008   30 130 230 330 130 30 230 30 330 30
20009   60 160 260 360 160 60 260 60 360 60
20010   90 190 290 390 190 90 290 90 390 90
20012 do_execsql_test joinD-690 {
20013   SELECT t1.*, t2.*, t3.*, t4.*
20014   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
20015   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
20016   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
20017   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20018 } {
20019   10 110 210 310 110 10   -  - 310 10
20020   20 120 220 320 120 20   -  - 320 20
20021   30 130 230 330 130 30 230 30 330 30
20022   40 140 240 340 140 40   -  - 340 40
20023   50 150 250 350 150 50   -  - 350 50
20024   60 160 260 360 160 60 260 60 360 60
20025   70 170 270 370 170 70   -  - 370 70
20026   80 180 280 380 180 80   -  - 380 80
20027   90 190 290 390 190 90 290 90 390 90
20029 do_execsql_test joinD-691 {
20030   SELECT t1.*, t2.*, t3.*, t4.*
20031   FROM t1 RIGHT JOIN t2 ON t2.x>0
20032   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
20033   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
20034   WHERE t1.b IS NOT DISTINCT FROM t2.b
20035   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20036 } {
20037   10 110 210 310 110 10   -  - 310 10
20038   20 120 220 320 120 20   -  - 320 20
20039   30 130 230 330 130 30 230 30 330 30
20040   40 140 240 340 140 40   -  - 340 40
20041   50 150 250 350 150 50   -  - 350 50
20042   60 160 260 360 160 60 260 60 360 60
20043   70 170 270 370 170 70   -  - 370 70
20044   80 180 280 380 180 80   -  - 380 80
20045   90 190 290 390 190 90 290 90 390 90
20047 do_execsql_test joinD-692 {
20048   SELECT t1.*, t2.*, t3.*, t4.*
20049   FROM t1 RIGHT JOIN t2 ON t2.x>0
20050   LEFT JOIN t3 ON t3.y>0
20051   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
20052   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
20053   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20054 } {
20055   30 130 230 330 130 30 230 30 330 30
20056   60 160 260 360 160 60 260 60 360 60
20057   90 190 290 390 190 90 290 90 390 90
20059 do_execsql_test joinD-693 {
20060   SELECT t1.*, t2.*, t3.*, t4.*
20061   FROM t1 RIGHT JOIN t2 ON t2.x>0
20062   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
20063   INNER JOIN t4 ON t4.z>0
20064   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
20065   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20066 } {
20067   10 110 210 310 110 10   -  - 310 10
20068   20 120 220 320 120 20   -  - 320 20
20069   30 130 230 330 130 30 230 30 330 30
20070   40 140 240 340 140 40   -  - 340 40
20071   50 150 250 350 150 50   -  - 350 50
20072   60 160 260 360 160 60 260 60 360 60
20073   70 170 270 370 170 70   -  - 370 70
20074   80 180 280 380 180 80   -  - 380 80
20075   90 190 290 390 190 90 290 90 390 90
20077 do_execsql_test joinD-694 {
20078   SELECT t1.*, t2.*, t3.*, t4.*
20079   FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
20080   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
20081   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
20082   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20083 } {
20084   10 110 210 310 110 10   -  - 310 10
20085   20 120 220 320 120 20   -  - 320 20
20086   30 130 230 330 130 30 230 30 330 30
20087   40 140 240 340 140 40   -  - 340 40
20088   50 150 250 350 150 50   -  - 350 50
20089   60 160 260 360 160 60 260 60 360 60
20090   70 170 270 370 170 70   -  - 370 70
20091   80 180 280 380 180 80   -  - 380 80
20092   90 190 290 390 190 90 290 90 390 90
20094 do_execsql_test joinD-695 {
20095   SELECT t1.*, t2.*, t3.*, t4.*
20096   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
20097   LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
20098   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
20099   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20100 } {
20101   10 110 210 310 110 10   -  - 310 10
20102   20 120 220 320 120 20   -  - 320 20
20103   30 130 230 330 130 30 230 30 330 30
20104   40 140 240 340 140 40   -  - 340 40
20105   50 150 250 350 150 50   -  - 350 50
20106   60 160 260 360 160 60 260 60 360 60
20107   70 170 270 370 170 70   -  - 370 70
20108   80 180 280 380 180 80   -  - 380 80
20109   90 190 290 390 190 90 290 90 390 90
20111 do_execsql_test joinD-696 {
20112   SELECT t1.*, t2.*, t3.*, t4.*
20113   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
20114   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
20115   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
20116   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20117 } {
20118    2 102 202 302 102  2   -  -   -  -
20119    4 104 204 304 104  4   -  -   -  -
20120    6 106 206 306 106  6 206  6   -  -
20121    8 108 208 308 108  8   -  -   -  -
20122   10 110 210 310 110 10   -  - 310 10
20123   12 112 212 312 112 12 212 12   -  -
20124   14 114 214 314 114 14   -  -   -  -
20125   16 116 216 316 116 16   -  -   -  -
20126   18 118 218 318 118 18 218 18   -  -
20127   20 120 220 320 120 20   -  - 320 20
20128   22 122 222 322 122 22   -  -   -  -
20129   24 124 224 324 124 24 224 24   -  -
20130   26 126 226 326 126 26   -  -   -  -
20131   28 128 228 328 128 28   -  -   -  -
20132   30 130 230 330 130 30 230 30 330 30
20133   32 132 232 332 132 32   -  -   -  -
20134   34 134 234 334 134 34   -  -   -  -
20135   36 136 236 336 136 36 236 36   -  -
20136   38 138 238 338 138 38   -  -   -  -
20137   40 140 240 340 140 40   -  - 340 40
20138   42 142 242 342 142 42 242 42   -  -
20139   44 144 244 344 144 44   -  -   -  -
20140   46 146 246 346 146 46   -  -   -  -
20141   48 148 248 348 148 48 248 48   -  -
20142   50 150 250 350 150 50   -  - 350 50
20143   52 152 252 352 152 52   -  -   -  -
20144   54 154 254 354 154 54 254 54   -  -
20145   56 156 256 356 156 56   -  -   -  -
20146   58 158 258 358 158 58   -  -   -  -
20147   60 160 260 360 160 60 260 60 360 60
20148   62 162 262 362 162 62   -  -   -  -
20149   64 164 264 364 164 64   -  -   -  -
20150   66 166 266 366 166 66 266 66   -  -
20151   68 168 268 368 168 68   -  -   -  -
20152   70 170 270 370 170 70   -  - 370 70
20153   72 172 272 372 172 72 272 72   -  -
20154   74 174 274 374 174 74   -  -   -  -
20155   76 176 276 376 176 76   -  -   -  -
20156   78 178 278 378 178 78 278 78   -  -
20157   80 180 280 380 180 80   -  - 380 80
20158   82 182 282 382 182 82   -  -   -  -
20159   84 184 284 384 184 84 284 84   -  -
20160   86 186 286 386 186 86   -  -   -  -
20161   88 188 288 388 188 88   -  -   -  -
20162   90 190 290 390 190 90 290 90 390 90
20163   92 192 292 392 192 92   -  -   -  -
20164   94 194 294 394 194 94   -  -   -  -
20165    -   -   -   - 100  0   -  -   -  -
20167 do_execsql_test joinD-697 {
20168   SELECT t1.*, t2.*, t3.*, t4.*
20169   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
20170   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
20171   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
20172   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20173 } {
20174    2 102 202 302 102  2   -  -   -  -
20175    4 104 204 304 104  4   -  -   -  -
20176    6 106 206 306 106  6 206  6   -  -
20177    8 108 208 308 108  8   -  -   -  -
20178   10 110 210 310 110 10   -  - 310 10
20179   12 112 212 312 112 12 212 12   -  -
20180   14 114 214 314 114 14   -  -   -  -
20181   16 116 216 316 116 16   -  -   -  -
20182   18 118 218 318 118 18 218 18   -  -
20183   20 120 220 320 120 20   -  - 320 20
20184   22 122 222 322 122 22   -  -   -  -
20185   24 124 224 324 124 24 224 24   -  -
20186   26 126 226 326 126 26   -  -   -  -
20187   28 128 228 328 128 28   -  -   -  -
20188   30 130 230 330 130 30 230 30 330 30
20189   32 132 232 332 132 32   -  -   -  -
20190   34 134 234 334 134 34   -  -   -  -
20191   36 136 236 336 136 36 236 36   -  -
20192   38 138 238 338 138 38   -  -   -  -
20193   40 140 240 340 140 40   -  - 340 40
20194   42 142 242 342 142 42 242 42   -  -
20195   44 144 244 344 144 44   -  -   -  -
20196   46 146 246 346 146 46   -  -   -  -
20197   48 148 248 348 148 48 248 48   -  -
20198   50 150 250 350 150 50   -  - 350 50
20199   52 152 252 352 152 52   -  -   -  -
20200   54 154 254 354 154 54 254 54   -  -
20201   56 156 256 356 156 56   -  -   -  -
20202   58 158 258 358 158 58   -  -   -  -
20203   60 160 260 360 160 60 260 60 360 60
20204   62 162 262 362 162 62   -  -   -  -
20205   64 164 264 364 164 64   -  -   -  -
20206   66 166 266 366 166 66 266 66   -  -
20207   68 168 268 368 168 68   -  -   -  -
20208   70 170 270 370 170 70   -  - 370 70
20209   72 172 272 372 172 72 272 72   -  -
20210   74 174 274 374 174 74   -  -   -  -
20211   76 176 276 376 176 76   -  -   -  -
20212   78 178 278 378 178 78 278 78   -  -
20213   80 180 280 380 180 80   -  - 380 80
20214   82 182 282 382 182 82   -  -   -  -
20215   84 184 284 384 184 84 284 84   -  -
20216   86 186 286 386 186 86   -  -   -  -
20217   88 188 288 388 188 88   -  -   -  -
20218   90 190 290 390 190 90 290 90 390 90
20219   92 192 292 392 192 92   -  -   -  -
20220   94 194 294 394 194 94   -  -   -  -
20221    -   -   -   - 100  0   -  -   -  -
20223 do_execsql_test joinD-698 {
20224   SELECT t1.*, t2.*, t3.*, t4.*
20225   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
20226   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
20227   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
20228   WHERE t2.x>0
20229   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20230 } {
20231    2 102 202 302 102  2   -  -   -  -
20232    4 104 204 304 104  4   -  -   -  -
20233    6 106 206 306 106  6 206  6   -  -
20234    8 108 208 308 108  8   -  -   -  -
20235   10 110 210 310 110 10   -  - 310 10
20236   12 112 212 312 112 12 212 12   -  -
20237   14 114 214 314 114 14   -  -   -  -
20238   16 116 216 316 116 16   -  -   -  -
20239   18 118 218 318 118 18 218 18   -  -
20240   20 120 220 320 120 20   -  - 320 20
20241   22 122 222 322 122 22   -  -   -  -
20242   24 124 224 324 124 24 224 24   -  -
20243   26 126 226 326 126 26   -  -   -  -
20244   28 128 228 328 128 28   -  -   -  -
20245   30 130 230 330 130 30 230 30 330 30
20246   32 132 232 332 132 32   -  -   -  -
20247   34 134 234 334 134 34   -  -   -  -
20248   36 136 236 336 136 36 236 36   -  -
20249   38 138 238 338 138 38   -  -   -  -
20250   40 140 240 340 140 40   -  - 340 40
20251   42 142 242 342 142 42 242 42   -  -
20252   44 144 244 344 144 44   -  -   -  -
20253   46 146 246 346 146 46   -  -   -  -
20254   48 148 248 348 148 48 248 48   -  -
20255   50 150 250 350 150 50   -  - 350 50
20256   52 152 252 352 152 52   -  -   -  -
20257   54 154 254 354 154 54 254 54   -  -
20258   56 156 256 356 156 56   -  -   -  -
20259   58 158 258 358 158 58   -  -   -  -
20260   60 160 260 360 160 60 260 60 360 60
20261   62 162 262 362 162 62   -  -   -  -
20262   64 164 264 364 164 64   -  -   -  -
20263   66 166 266 366 166 66 266 66   -  -
20264   68 168 268 368 168 68   -  -   -  -
20265   70 170 270 370 170 70   -  - 370 70
20266   72 172 272 372 172 72 272 72   -  -
20267   74 174 274 374 174 74   -  -   -  -
20268   76 176 276 376 176 76   -  -   -  -
20269   78 178 278 378 178 78 278 78   -  -
20270   80 180 280 380 180 80   -  - 380 80
20271   82 182 282 382 182 82   -  -   -  -
20272   84 184 284 384 184 84 284 84   -  -
20273   86 186 286 386 186 86   -  -   -  -
20274   88 188 288 388 188 88   -  -   -  -
20275   90 190 290 390 190 90 290 90 390 90
20276   92 192 292 392 192 92   -  -   -  -
20277   94 194 294 394 194 94   -  -   -  -
20279 do_execsql_test joinD-699 {
20280   SELECT t1.*, t2.*, t3.*, t4.*
20281   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
20282   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
20283   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
20284   WHERE (t2.x>0 OR t2.x IS NULL)
20285   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20286 } {
20287    2 102 202 302 102  2   -  -   -  -
20288    4 104 204 304 104  4   -  -   -  -
20289    6 106 206 306 106  6 206  6   -  -
20290    8 108 208 308 108  8   -  -   -  -
20291   10 110 210 310 110 10   -  - 310 10
20292   12 112 212 312 112 12 212 12   -  -
20293   14 114 214 314 114 14   -  -   -  -
20294   16 116 216 316 116 16   -  -   -  -
20295   18 118 218 318 118 18 218 18   -  -
20296   20 120 220 320 120 20   -  - 320 20
20297   22 122 222 322 122 22   -  -   -  -
20298   24 124 224 324 124 24 224 24   -  -
20299   26 126 226 326 126 26   -  -   -  -
20300   28 128 228 328 128 28   -  -   -  -
20301   30 130 230 330 130 30 230 30 330 30
20302   32 132 232 332 132 32   -  -   -  -
20303   34 134 234 334 134 34   -  -   -  -
20304   36 136 236 336 136 36 236 36   -  -
20305   38 138 238 338 138 38   -  -   -  -
20306   40 140 240 340 140 40   -  - 340 40
20307   42 142 242 342 142 42 242 42   -  -
20308   44 144 244 344 144 44   -  -   -  -
20309   46 146 246 346 146 46   -  -   -  -
20310   48 148 248 348 148 48 248 48   -  -
20311   50 150 250 350 150 50   -  - 350 50
20312   52 152 252 352 152 52   -  -   -  -
20313   54 154 254 354 154 54 254 54   -  -
20314   56 156 256 356 156 56   -  -   -  -
20315   58 158 258 358 158 58   -  -   -  -
20316   60 160 260 360 160 60 260 60 360 60
20317   62 162 262 362 162 62   -  -   -  -
20318   64 164 264 364 164 64   -  -   -  -
20319   66 166 266 366 166 66 266 66   -  -
20320   68 168 268 368 168 68   -  -   -  -
20321   70 170 270 370 170 70   -  - 370 70
20322   72 172 272 372 172 72 272 72   -  -
20323   74 174 274 374 174 74   -  -   -  -
20324   76 176 276 376 176 76   -  -   -  -
20325   78 178 278 378 178 78 278 78   -  -
20326   80 180 280 380 180 80   -  - 380 80
20327   82 182 282 382 182 82   -  -   -  -
20328   84 184 284 384 184 84 284 84   -  -
20329   86 186 286 386 186 86   -  -   -  -
20330   88 188 288 388 188 88   -  -   -  -
20331   90 190 290 390 190 90 290 90 390 90
20332   92 192 292 392 192 92   -  -   -  -
20333   94 194 294 394 194 94   -  -   -  -
20335 do_execsql_test joinD-700 {
20336   SELECT t1.*, t2.*, t3.*, t4.*
20337   FROM t1 RIGHT JOIN t2 ON true
20338   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
20339   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
20340   WHERE t1.b=t2.b AND t2.x>0
20341   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20342 } {
20343    2 102 202 302 102  2   -  -   -  -
20344    4 104 204 304 104  4   -  -   -  -
20345    6 106 206 306 106  6 206  6   -  -
20346    8 108 208 308 108  8   -  -   -  -
20347   10 110 210 310 110 10   -  - 310 10
20348   12 112 212 312 112 12 212 12   -  -
20349   14 114 214 314 114 14   -  -   -  -
20350   16 116 216 316 116 16   -  -   -  -
20351   18 118 218 318 118 18 218 18   -  -
20352   20 120 220 320 120 20   -  - 320 20
20353   22 122 222 322 122 22   -  -   -  -
20354   24 124 224 324 124 24 224 24   -  -
20355   26 126 226 326 126 26   -  -   -  -
20356   28 128 228 328 128 28   -  -   -  -
20357   30 130 230 330 130 30 230 30 330 30
20358   32 132 232 332 132 32   -  -   -  -
20359   34 134 234 334 134 34   -  -   -  -
20360   36 136 236 336 136 36 236 36   -  -
20361   38 138 238 338 138 38   -  -   -  -
20362   40 140 240 340 140 40   -  - 340 40
20363   42 142 242 342 142 42 242 42   -  -
20364   44 144 244 344 144 44   -  -   -  -
20365   46 146 246 346 146 46   -  -   -  -
20366   48 148 248 348 148 48 248 48   -  -
20367   50 150 250 350 150 50   -  - 350 50
20368   52 152 252 352 152 52   -  -   -  -
20369   54 154 254 354 154 54 254 54   -  -
20370   56 156 256 356 156 56   -  -   -  -
20371   58 158 258 358 158 58   -  -   -  -
20372   60 160 260 360 160 60 260 60 360 60
20373   62 162 262 362 162 62   -  -   -  -
20374   64 164 264 364 164 64   -  -   -  -
20375   66 166 266 366 166 66 266 66   -  -
20376   68 168 268 368 168 68   -  -   -  -
20377   70 170 270 370 170 70   -  - 370 70
20378   72 172 272 372 172 72 272 72   -  -
20379   74 174 274 374 174 74   -  -   -  -
20380   76 176 276 376 176 76   -  -   -  -
20381   78 178 278 378 178 78 278 78   -  -
20382   80 180 280 380 180 80   -  - 380 80
20383   82 182 282 382 182 82   -  -   -  -
20384   84 184 284 384 184 84 284 84   -  -
20385   86 186 286 386 186 86   -  -   -  -
20386   88 188 288 388 188 88   -  -   -  -
20387   90 190 290 390 190 90 290 90 390 90
20388   92 192 292 392 192 92   -  -   -  -
20389   94 194 294 394 194 94   -  -   -  -
20391 do_execsql_test joinD-701 {
20392   SELECT t1.*, t2.*, t3.*, t4.*
20393   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
20394   LEFT JOIN t3 ON t1.c=t3.c
20395   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
20396   WHERE t3.y>0
20397   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20398 } {
20399    6 106 206 306 106  6 206  6   -  -
20400   12 112 212 312 112 12 212 12   -  -
20401   18 118 218 318 118 18 218 18   -  -
20402   24 124 224 324 124 24 224 24   -  -
20403   30 130 230 330 130 30 230 30 330 30
20404   36 136 236 336 136 36 236 36   -  -
20405   42 142 242 342 142 42 242 42   -  -
20406   48 148 248 348 148 48 248 48   -  -
20407   54 154 254 354 154 54 254 54   -  -
20408   60 160 260 360 160 60 260 60 360 60
20409   66 166 266 366 166 66 266 66   -  -
20410   72 172 272 372 172 72 272 72   -  -
20411   78 178 278 378 178 78 278 78   -  -
20412   84 184 284 384 184 84 284 84   -  -
20413   90 190 290 390 190 90 290 90 390 90
20415 do_execsql_test joinD-702 {
20416   SELECT t1.*, t2.*, t3.*, t4.*
20417   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
20418   LEFT JOIN t3 ON t1.c=t3.c
20419   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
20420   WHERE t3.y>0 OR t3.y IS NULL
20421   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20422 } {
20423    2 102 202 302 102  2   -  -   -  -
20424    4 104 204 304 104  4   -  -   -  -
20425    6 106 206 306 106  6 206  6   -  -
20426    8 108 208 308 108  8   -  -   -  -
20427   10 110 210 310 110 10   -  - 310 10
20428   12 112 212 312 112 12 212 12   -  -
20429   14 114 214 314 114 14   -  -   -  -
20430   16 116 216 316 116 16   -  -   -  -
20431   18 118 218 318 118 18 218 18   -  -
20432   20 120 220 320 120 20   -  - 320 20
20433   22 122 222 322 122 22   -  -   -  -
20434   24 124 224 324 124 24 224 24   -  -
20435   26 126 226 326 126 26   -  -   -  -
20436   28 128 228 328 128 28   -  -   -  -
20437   30 130 230 330 130 30 230 30 330 30
20438   32 132 232 332 132 32   -  -   -  -
20439   34 134 234 334 134 34   -  -   -  -
20440   36 136 236 336 136 36 236 36   -  -
20441   38 138 238 338 138 38   -  -   -  -
20442   40 140 240 340 140 40   -  - 340 40
20443   42 142 242 342 142 42 242 42   -  -
20444   44 144 244 344 144 44   -  -   -  -
20445   46 146 246 346 146 46   -  -   -  -
20446   48 148 248 348 148 48 248 48   -  -
20447   50 150 250 350 150 50   -  - 350 50
20448   52 152 252 352 152 52   -  -   -  -
20449   54 154 254 354 154 54 254 54   -  -
20450   56 156 256 356 156 56   -  -   -  -
20451   58 158 258 358 158 58   -  -   -  -
20452   60 160 260 360 160 60 260 60 360 60
20453   62 162 262 362 162 62   -  -   -  -
20454   64 164 264 364 164 64   -  -   -  -
20455   66 166 266 366 166 66 266 66   -  -
20456   68 168 268 368 168 68   -  -   -  -
20457   70 170 270 370 170 70   -  - 370 70
20458   72 172 272 372 172 72 272 72   -  -
20459   74 174 274 374 174 74   -  -   -  -
20460   76 176 276 376 176 76   -  -   -  -
20461   78 178 278 378 178 78 278 78   -  -
20462   80 180 280 380 180 80   -  - 380 80
20463   82 182 282 382 182 82   -  -   -  -
20464   84 184 284 384 184 84 284 84   -  -
20465   86 186 286 386 186 86   -  -   -  -
20466   88 188 288 388 188 88   -  -   -  -
20467   90 190 290 390 190 90 290 90 390 90
20468   92 192 292 392 192 92   -  -   -  -
20469   94 194 294 394 194 94   -  -   -  -
20470    -   -   -   - 100  0   -  -   -  -
20472 do_execsql_test joinD-703 {
20473   SELECT t1.*, t2.*, t3.*, t4.*
20474   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
20475   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
20476   LEFT JOIN t4 ON t1.d=t4.d
20477   WHERE t4.z>0
20478   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20479 } {
20480   10 110 210 310 110 10   -  - 310 10
20481   20 120 220 320 120 20   -  - 320 20
20482   30 130 230 330 130 30 230 30 330 30
20483   40 140 240 340 140 40   -  - 340 40
20484   50 150 250 350 150 50   -  - 350 50
20485   60 160 260 360 160 60 260 60 360 60
20486   70 170 270 370 170 70   -  - 370 70
20487   80 180 280 380 180 80   -  - 380 80
20488   90 190 290 390 190 90 290 90 390 90
20490 do_execsql_test joinD-704 {
20491   SELECT t1.*, t2.*, t3.*, t4.*
20492   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
20493   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
20494   LEFT JOIN t4 ON t1.d=t4.d
20495   WHERE t4.z IS NULL OR t4.z>0
20496   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20497 } {
20498    2 102 202 302 102  2   -  -   -  -
20499    4 104 204 304 104  4   -  -   -  -
20500    6 106 206 306 106  6 206  6   -  -
20501    8 108 208 308 108  8   -  -   -  -
20502   10 110 210 310 110 10   -  - 310 10
20503   12 112 212 312 112 12 212 12   -  -
20504   14 114 214 314 114 14   -  -   -  -
20505   16 116 216 316 116 16   -  -   -  -
20506   18 118 218 318 118 18 218 18   -  -
20507   20 120 220 320 120 20   -  - 320 20
20508   22 122 222 322 122 22   -  -   -  -
20509   24 124 224 324 124 24 224 24   -  -
20510   26 126 226 326 126 26   -  -   -  -
20511   28 128 228 328 128 28   -  -   -  -
20512   30 130 230 330 130 30 230 30 330 30
20513   32 132 232 332 132 32   -  -   -  -
20514   34 134 234 334 134 34   -  -   -  -
20515   36 136 236 336 136 36 236 36   -  -
20516   38 138 238 338 138 38   -  -   -  -
20517   40 140 240 340 140 40   -  - 340 40
20518   42 142 242 342 142 42 242 42   -  -
20519   44 144 244 344 144 44   -  -   -  -
20520   46 146 246 346 146 46   -  -   -  -
20521   48 148 248 348 148 48 248 48   -  -
20522   50 150 250 350 150 50   -  - 350 50
20523   52 152 252 352 152 52   -  -   -  -
20524   54 154 254 354 154 54 254 54   -  -
20525   56 156 256 356 156 56   -  -   -  -
20526   58 158 258 358 158 58   -  -   -  -
20527   60 160 260 360 160 60 260 60 360 60
20528   62 162 262 362 162 62   -  -   -  -
20529   64 164 264 364 164 64   -  -   -  -
20530   66 166 266 366 166 66 266 66   -  -
20531   68 168 268 368 168 68   -  -   -  -
20532   70 170 270 370 170 70   -  - 370 70
20533   72 172 272 372 172 72 272 72   -  -
20534   74 174 274 374 174 74   -  -   -  -
20535   76 176 276 376 176 76   -  -   -  -
20536   78 178 278 378 178 78 278 78   -  -
20537   80 180 280 380 180 80   -  - 380 80
20538   82 182 282 382 182 82   -  -   -  -
20539   84 184 284 384 184 84 284 84   -  -
20540   86 186 286 386 186 86   -  -   -  -
20541   88 188 288 388 188 88   -  -   -  -
20542   90 190 290 390 190 90 290 90 390 90
20543   92 192 292 392 192 92   -  -   -  -
20544   94 194 294 394 194 94   -  -   -  -
20545    -   -   -   - 100  0   -  -   -  -
20547 do_execsql_test joinD-705 {
20548   SELECT t1.*, t2.*, t3.*, t4.*
20549   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
20550   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
20551   LEFT JOIN t4 ON t1.d=t4.d
20552   WHERE t2.x>0 AND t4.z>0
20553   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20554 } {
20555   10 110 210 310 110 10   -  - 310 10
20556   20 120 220 320 120 20   -  - 320 20
20557   30 130 230 330 130 30 230 30 330 30
20558   40 140 240 340 140 40   -  - 340 40
20559   50 150 250 350 150 50   -  - 350 50
20560   60 160 260 360 160 60 260 60 360 60
20561   70 170 270 370 170 70   -  - 370 70
20562   80 180 280 380 180 80   -  - 380 80
20563   90 190 290 390 190 90 290 90 390 90
20565 do_execsql_test joinD-706 {
20566   SELECT t1.*, t2.*, t3.*, t4.*
20567   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
20568   LEFT JOIN t3 ON t1.c=t3.c
20569   LEFT JOIN t4 ON t1.d=t4.d
20570   WHERE t4.z>0 AND t3.y>0
20571   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20572 } {
20573   30 130 230 330 130 30 230 30 330 30
20574   60 160 260 360 160 60 260 60 360 60
20575   90 190 290 390 190 90 290 90 390 90
20577 do_execsql_test joinD-707 {
20578   SELECT t1.*, t2.*, t3.*, t4.*
20579   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
20580   LEFT JOIN t3 ON t1.c=t3.c
20581   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
20582   WHERE t2.x>0 AND t3.y>0
20583   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20584 } {
20585    6 106 206 306 106  6 206  6   -  -
20586   12 112 212 312 112 12 212 12   -  -
20587   18 118 218 318 118 18 218 18   -  -
20588   24 124 224 324 124 24 224 24   -  -
20589   30 130 230 330 130 30 230 30 330 30
20590   36 136 236 336 136 36 236 36   -  -
20591   42 142 242 342 142 42 242 42   -  -
20592   48 148 248 348 148 48 248 48   -  -
20593   54 154 254 354 154 54 254 54   -  -
20594   60 160 260 360 160 60 260 60 360 60
20595   66 166 266 366 166 66 266 66   -  -
20596   72 172 272 372 172 72 272 72   -  -
20597   78 178 278 378 178 78 278 78   -  -
20598   84 184 284 384 184 84 284 84   -  -
20599   90 190 290 390 190 90 290 90 390 90
20601 do_execsql_test joinD-708 {
20602   SELECT t1.*, t2.*, t3.*, t4.*
20603   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
20604   LEFT JOIN t3 ON t1.c=t3.c
20605   LEFT JOIN t4 ON t1.d=t4.d
20606   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
20607   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20608 } {
20609   30 130 230 330 130 30 230 30 330 30
20610   60 160 260 360 160 60 260 60 360 60
20611   90 190 290 390 190 90 290 90 390 90
20613 do_execsql_test joinD-709 {
20614   SELECT t1.*, t2.*, t3.*, t4.*
20615   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
20616   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
20617   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
20618   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20619 } {
20620    2 102 202 302 102  2   -  -   -  -
20621    4 104 204 304 104  4   -  -   -  -
20622    6 106 206 306 106  6 206  6   -  -
20623    8 108 208 308 108  8   -  -   -  -
20624   10 110 210 310 110 10   -  - 310 10
20625   12 112 212 312 112 12 212 12   -  -
20626   14 114 214 314 114 14   -  -   -  -
20627   16 116 216 316 116 16   -  -   -  -
20628   18 118 218 318 118 18 218 18   -  -
20629   20 120 220 320 120 20   -  - 320 20
20630   22 122 222 322 122 22   -  -   -  -
20631   24 124 224 324 124 24 224 24   -  -
20632   26 126 226 326 126 26   -  -   -  -
20633   28 128 228 328 128 28   -  -   -  -
20634   30 130 230 330 130 30 230 30 330 30
20635   32 132 232 332 132 32   -  -   -  -
20636   34 134 234 334 134 34   -  -   -  -
20637   36 136 236 336 136 36 236 36   -  -
20638   38 138 238 338 138 38   -  -   -  -
20639   40 140 240 340 140 40   -  - 340 40
20640   42 142 242 342 142 42 242 42   -  -
20641   44 144 244 344 144 44   -  -   -  -
20642   46 146 246 346 146 46   -  -   -  -
20643   48 148 248 348 148 48 248 48   -  -
20644   50 150 250 350 150 50   -  - 350 50
20645   52 152 252 352 152 52   -  -   -  -
20646   54 154 254 354 154 54 254 54   -  -
20647   56 156 256 356 156 56   -  -   -  -
20648   58 158 258 358 158 58   -  -   -  -
20649   60 160 260 360 160 60 260 60 360 60
20650   62 162 262 362 162 62   -  -   -  -
20651   64 164 264 364 164 64   -  -   -  -
20652   66 166 266 366 166 66 266 66   -  -
20653   68 168 268 368 168 68   -  -   -  -
20654   70 170 270 370 170 70   -  - 370 70
20655   72 172 272 372 172 72 272 72   -  -
20656   74 174 274 374 174 74   -  -   -  -
20657   76 176 276 376 176 76   -  -   -  -
20658   78 178 278 378 178 78 278 78   -  -
20659   80 180 280 380 180 80   -  - 380 80
20660   82 182 282 382 182 82   -  -   -  -
20661   84 184 284 384 184 84 284 84   -  -
20662   86 186 286 386 186 86   -  -   -  -
20663   88 188 288 388 188 88   -  -   -  -
20664   90 190 290 390 190 90 290 90 390 90
20665   92 192 292 392 192 92   -  -   -  -
20666   94 194 294 394 194 94   -  -   -  -
20667    -   -   -   - 100  0   -  -   -  -
20669 do_execsql_test joinD-710 {
20670   SELECT t1.*, t2.*, t3.*, t4.*
20671   FROM t1 RIGHT JOIN t2 ON t2.x>0
20672   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
20673   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
20674   WHERE t1.b IS NOT DISTINCT FROM t2.b
20675   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20676 } {
20677    2 102 202 302 102  2   -  -   -  -
20678    4 104 204 304 104  4   -  -   -  -
20679    6 106 206 306 106  6 206  6   -  -
20680    8 108 208 308 108  8   -  -   -  -
20681   10 110 210 310 110 10   -  - 310 10
20682   12 112 212 312 112 12 212 12   -  -
20683   14 114 214 314 114 14   -  -   -  -
20684   16 116 216 316 116 16   -  -   -  -
20685   18 118 218 318 118 18 218 18   -  -
20686   20 120 220 320 120 20   -  - 320 20
20687   22 122 222 322 122 22   -  -   -  -
20688   24 124 224 324 124 24 224 24   -  -
20689   26 126 226 326 126 26   -  -   -  -
20690   28 128 228 328 128 28   -  -   -  -
20691   30 130 230 330 130 30 230 30 330 30
20692   32 132 232 332 132 32   -  -   -  -
20693   34 134 234 334 134 34   -  -   -  -
20694   36 136 236 336 136 36 236 36   -  -
20695   38 138 238 338 138 38   -  -   -  -
20696   40 140 240 340 140 40   -  - 340 40
20697   42 142 242 342 142 42 242 42   -  -
20698   44 144 244 344 144 44   -  -   -  -
20699   46 146 246 346 146 46   -  -   -  -
20700   48 148 248 348 148 48 248 48   -  -
20701   50 150 250 350 150 50   -  - 350 50
20702   52 152 252 352 152 52   -  -   -  -
20703   54 154 254 354 154 54 254 54   -  -
20704   56 156 256 356 156 56   -  -   -  -
20705   58 158 258 358 158 58   -  -   -  -
20706   60 160 260 360 160 60 260 60 360 60
20707   62 162 262 362 162 62   -  -   -  -
20708   64 164 264 364 164 64   -  -   -  -
20709   66 166 266 366 166 66 266 66   -  -
20710   68 168 268 368 168 68   -  -   -  -
20711   70 170 270 370 170 70   -  - 370 70
20712   72 172 272 372 172 72 272 72   -  -
20713   74 174 274 374 174 74   -  -   -  -
20714   76 176 276 376 176 76   -  -   -  -
20715   78 178 278 378 178 78 278 78   -  -
20716   80 180 280 380 180 80   -  - 380 80
20717   82 182 282 382 182 82   -  -   -  -
20718   84 184 284 384 184 84 284 84   -  -
20719   86 186 286 386 186 86   -  -   -  -
20720   88 188 288 388 188 88   -  -   -  -
20721   90 190 290 390 190 90 290 90 390 90
20722   92 192 292 392 192 92   -  -   -  -
20723   94 194 294 394 194 94   -  -   -  -
20725 do_execsql_test joinD-711 {
20726   SELECT t1.*, t2.*, t3.*, t4.*
20727   FROM t1 RIGHT JOIN t2 ON t2.x>0
20728   LEFT JOIN t3 ON t3.y>0
20729   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
20730   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
20731   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20732 } {
20733    6 106 206 306 106  6 206  6   -  -
20734   12 112 212 312 112 12 212 12   -  -
20735   18 118 218 318 118 18 218 18   -  -
20736   24 124 224 324 124 24 224 24   -  -
20737   30 130 230 330 130 30 230 30 330 30
20738   36 136 236 336 136 36 236 36   -  -
20739   42 142 242 342 142 42 242 42   -  -
20740   48 148 248 348 148 48 248 48   -  -
20741   54 154 254 354 154 54 254 54   -  -
20742   60 160 260 360 160 60 260 60 360 60
20743   66 166 266 366 166 66 266 66   -  -
20744   72 172 272 372 172 72 272 72   -  -
20745   78 178 278 378 178 78 278 78   -  -
20746   84 184 284 384 184 84 284 84   -  -
20747   90 190 290 390 190 90 290 90 390 90
20749 do_execsql_test joinD-712 {
20750   SELECT t1.*, t2.*, t3.*, t4.*
20751   FROM t1 RIGHT JOIN t2 ON t2.x>0
20752   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
20753   LEFT JOIN t4 ON t4.z>0
20754   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
20755   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20756 } {
20757   10 110 210 310 110 10   -  - 310 10
20758   20 120 220 320 120 20   -  - 320 20
20759   30 130 230 330 130 30 230 30 330 30
20760   40 140 240 340 140 40   -  - 340 40
20761   50 150 250 350 150 50   -  - 350 50
20762   60 160 260 360 160 60 260 60 360 60
20763   70 170 270 370 170 70   -  - 370 70
20764   80 180 280 380 180 80   -  - 380 80
20765   90 190 290 390 190 90 290 90 390 90
20767 do_execsql_test joinD-713 {
20768   SELECT t1.*, t2.*, t3.*, t4.*
20769   FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
20770   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
20771   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
20772   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20773 } {
20774    2 102 202 302 102  2   -  -   -  -
20775    4 104 204 304 104  4   -  -   -  -
20776    6 106 206 306 106  6 206  6   -  -
20777    8 108 208 308 108  8   -  -   -  -
20778   10 110 210 310 110 10   -  - 310 10
20779   12 112 212 312 112 12 212 12   -  -
20780   14 114 214 314 114 14   -  -   -  -
20781   16 116 216 316 116 16   -  -   -  -
20782   18 118 218 318 118 18 218 18   -  -
20783   20 120 220 320 120 20   -  - 320 20
20784   22 122 222 322 122 22   -  -   -  -
20785   24 124 224 324 124 24 224 24   -  -
20786   26 126 226 326 126 26   -  -   -  -
20787   28 128 228 328 128 28   -  -   -  -
20788   30 130 230 330 130 30 230 30 330 30
20789   32 132 232 332 132 32   -  -   -  -
20790   34 134 234 334 134 34   -  -   -  -
20791   36 136 236 336 136 36 236 36   -  -
20792   38 138 238 338 138 38   -  -   -  -
20793   40 140 240 340 140 40   -  - 340 40
20794   42 142 242 342 142 42 242 42   -  -
20795   44 144 244 344 144 44   -  -   -  -
20796   46 146 246 346 146 46   -  -   -  -
20797   48 148 248 348 148 48 248 48   -  -
20798   50 150 250 350 150 50   -  - 350 50
20799   52 152 252 352 152 52   -  -   -  -
20800   54 154 254 354 154 54 254 54   -  -
20801   56 156 256 356 156 56   -  -   -  -
20802   58 158 258 358 158 58   -  -   -  -
20803   60 160 260 360 160 60 260 60 360 60
20804   62 162 262 362 162 62   -  -   -  -
20805   64 164 264 364 164 64   -  -   -  -
20806   66 166 266 366 166 66 266 66   -  -
20807   68 168 268 368 168 68   -  -   -  -
20808   70 170 270 370 170 70   -  - 370 70
20809   72 172 272 372 172 72 272 72   -  -
20810   74 174 274 374 174 74   -  -   -  -
20811   76 176 276 376 176 76   -  -   -  -
20812   78 178 278 378 178 78 278 78   -  -
20813   80 180 280 380 180 80   -  - 380 80
20814   82 182 282 382 182 82   -  -   -  -
20815   84 184 284 384 184 84 284 84   -  -
20816   86 186 286 386 186 86   -  -   -  -
20817   88 188 288 388 188 88   -  -   -  -
20818   90 190 290 390 190 90 290 90 390 90
20819   92 192 292 392 192 92   -  -   -  -
20820   94 194 294 394 194 94   -  -   -  -
20821    -   -   -   - 100  0   -  -   -  -
20823 do_execsql_test joinD-714 {
20824   SELECT t1.*, t2.*, t3.*, t4.*
20825   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
20826   LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
20827   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
20828   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20829 } {
20830    2 102 202 302 102  2   -  -   -  -
20831    4 104 204 304 104  4   -  -   -  -
20832    6 106 206 306 106  6 206  6   -  -
20833    8 108 208 308 108  8   -  -   -  -
20834   10 110 210 310 110 10   -  - 310 10
20835   12 112 212 312 112 12 212 12   -  -
20836   14 114 214 314 114 14   -  -   -  -
20837   16 116 216 316 116 16   -  -   -  -
20838   18 118 218 318 118 18 218 18   -  -
20839   20 120 220 320 120 20   -  - 320 20
20840   22 122 222 322 122 22   -  -   -  -
20841   24 124 224 324 124 24 224 24   -  -
20842   26 126 226 326 126 26   -  -   -  -
20843   28 128 228 328 128 28   -  -   -  -
20844   30 130 230 330 130 30 230 30 330 30
20845   32 132 232 332 132 32   -  -   -  -
20846   34 134 234 334 134 34   -  -   -  -
20847   36 136 236 336 136 36 236 36   -  -
20848   38 138 238 338 138 38   -  -   -  -
20849   40 140 240 340 140 40   -  - 340 40
20850   42 142 242 342 142 42 242 42   -  -
20851   44 144 244 344 144 44   -  -   -  -
20852   46 146 246 346 146 46   -  -   -  -
20853   48 148 248 348 148 48 248 48   -  -
20854   50 150 250 350 150 50   -  - 350 50
20855   52 152 252 352 152 52   -  -   -  -
20856   54 154 254 354 154 54 254 54   -  -
20857   56 156 256 356 156 56   -  -   -  -
20858   58 158 258 358 158 58   -  -   -  -
20859   60 160 260 360 160 60 260 60 360 60
20860   62 162 262 362 162 62   -  -   -  -
20861   64 164 264 364 164 64   -  -   -  -
20862   66 166 266 366 166 66 266 66   -  -
20863   68 168 268 368 168 68   -  -   -  -
20864   70 170 270 370 170 70   -  - 370 70
20865   72 172 272 372 172 72 272 72   -  -
20866   74 174 274 374 174 74   -  -   -  -
20867   76 176 276 376 176 76   -  -   -  -
20868   78 178 278 378 178 78 278 78   -  -
20869   80 180 280 380 180 80   -  - 380 80
20870   82 182 282 382 182 82   -  -   -  -
20871   84 184 284 384 184 84 284 84   -  -
20872   86 186 286 386 186 86   -  -   -  -
20873   88 188 288 388 188 88   -  -   -  -
20874   90 190 290 390 190 90 290 90 390 90
20875   92 192 292 392 192 92   -  -   -  -
20876   94 194 294 394 194 94   -  -   -  -
20877    -   -   -   - 100  0   -  -   -  -
20879 do_execsql_test joinD-715 {
20880   SELECT t1.*, t2.*, t3.*, t4.*
20881   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
20882   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
20883   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
20884   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20885 } {
20886   10 110 210 310 110 10   -  - 310 10
20887   20 120 220 320 120 20   -  - 320 20
20888   30 130 230 330 130 30 230 30 330 30
20889   40 140 240 340 140 40   -  - 340 40
20890   50 150 250 350 150 50   -  - 350 50
20891   60 160 260 360 160 60 260 60 360 60
20892   70 170 270 370 170 70   -  - 370 70
20893   80 180 280 380 180 80   -  - 380 80
20894   90 190 290 390 190 90 290 90 390 90
20895    -   -   -   -   -  -   -  - 300  0
20896    -   -   -   -   -  -   -  - 305  5
20897    -   -   -   -   -  -   -  - 315 15
20898    -   -   -   -   -  -   -  - 325 25
20899    -   -   -   -   -  -   -  - 335 35
20900    -   -   -   -   -  -   -  - 345 45
20901    -   -   -   -   -  -   -  - 355 55
20902    -   -   -   -   -  -   -  - 365 65
20903    -   -   -   -   -  -   -  - 375 75
20904    -   -   -   -   -  -   -  - 385 85
20905    -   -   -   -   -  -   -  - 395 95
20907 do_execsql_test joinD-716 {
20908   SELECT t1.*, t2.*, t3.*, t4.*
20909   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
20910   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
20911   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
20912   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20913 } {
20914   10 110 210 310 110 10   -  - 310 10
20915   20 120 220 320 120 20   -  - 320 20
20916   30 130 230 330 130 30 230 30 330 30
20917   40 140 240 340 140 40   -  - 340 40
20918   50 150 250 350 150 50   -  - 350 50
20919   60 160 260 360 160 60 260 60 360 60
20920   70 170 270 370 170 70   -  - 370 70
20921   80 180 280 380 180 80   -  - 380 80
20922   90 190 290 390 190 90 290 90 390 90
20923    -   -   -   -   -  -   -  - 300  0
20924    -   -   -   -   -  -   -  - 305  5
20925    -   -   -   -   -  -   -  - 315 15
20926    -   -   -   -   -  -   -  - 325 25
20927    -   -   -   -   -  -   -  - 335 35
20928    -   -   -   -   -  -   -  - 345 45
20929    -   -   -   -   -  -   -  - 355 55
20930    -   -   -   -   -  -   -  - 365 65
20931    -   -   -   -   -  -   -  - 375 75
20932    -   -   -   -   -  -   -  - 385 85
20933    -   -   -   -   -  -   -  - 395 95
20935 do_execsql_test joinD-717 {
20936   SELECT t1.*, t2.*, t3.*, t4.*
20937   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
20938   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
20939   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
20940   WHERE t2.x>0
20941   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20942 } {
20943   10 110 210 310 110 10   -  - 310 10
20944   20 120 220 320 120 20   -  - 320 20
20945   30 130 230 330 130 30 230 30 330 30
20946   40 140 240 340 140 40   -  - 340 40
20947   50 150 250 350 150 50   -  - 350 50
20948   60 160 260 360 160 60 260 60 360 60
20949   70 170 270 370 170 70   -  - 370 70
20950   80 180 280 380 180 80   -  - 380 80
20951   90 190 290 390 190 90 290 90 390 90
20953 do_execsql_test joinD-718 {
20954   SELECT t1.*, t2.*, t3.*, t4.*
20955   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
20956   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
20957   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
20958   WHERE (t2.x>0 OR t2.x IS NULL)
20959   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20960 } {
20961   10 110 210 310 110 10   -  - 310 10
20962   20 120 220 320 120 20   -  - 320 20
20963   30 130 230 330 130 30 230 30 330 30
20964   40 140 240 340 140 40   -  - 340 40
20965   50 150 250 350 150 50   -  - 350 50
20966   60 160 260 360 160 60 260 60 360 60
20967   70 170 270 370 170 70   -  - 370 70
20968   80 180 280 380 180 80   -  - 380 80
20969   90 190 290 390 190 90 290 90 390 90
20970    -   -   -   -   -  -   -  - 300  0
20971    -   -   -   -   -  -   -  - 305  5
20972    -   -   -   -   -  -   -  - 315 15
20973    -   -   -   -   -  -   -  - 325 25
20974    -   -   -   -   -  -   -  - 335 35
20975    -   -   -   -   -  -   -  - 345 45
20976    -   -   -   -   -  -   -  - 355 55
20977    -   -   -   -   -  -   -  - 365 65
20978    -   -   -   -   -  -   -  - 375 75
20979    -   -   -   -   -  -   -  - 385 85
20980    -   -   -   -   -  -   -  - 395 95
20982 do_execsql_test joinD-719 {
20983   SELECT t1.*, t2.*, t3.*, t4.*
20984   FROM t1 RIGHT JOIN t2 ON true
20985   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
20986   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
20987   WHERE t1.b=t2.b AND t2.x>0
20988   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
20989 } {
20990   10 110 210 310 110 10   -  - 310 10
20991   20 120 220 320 120 20   -  - 320 20
20992   30 130 230 330 130 30 230 30 330 30
20993   40 140 240 340 140 40   -  - 340 40
20994   50 150 250 350 150 50   -  - 350 50
20995   60 160 260 360 160 60 260 60 360 60
20996   70 170 270 370 170 70   -  - 370 70
20997   80 180 280 380 180 80   -  - 380 80
20998   90 190 290 390 190 90 290 90 390 90
21000 do_execsql_test joinD-720 {
21001   SELECT t1.*, t2.*, t3.*, t4.*
21002   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
21003   LEFT JOIN t3 ON t1.c=t3.c
21004   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
21005   WHERE t3.y>0
21006   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21007 } {
21008   30 130 230 330 130 30 230 30 330 30
21009   60 160 260 360 160 60 260 60 360 60
21010   90 190 290 390 190 90 290 90 390 90
21012 do_execsql_test joinD-721 {
21013   SELECT t1.*, t2.*, t3.*, t4.*
21014   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
21015   LEFT JOIN t3 ON t1.c=t3.c
21016   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
21017   WHERE t3.y>0 OR t3.y IS NULL
21018   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21019 } {
21020   10 110 210 310 110 10   -  - 310 10
21021   20 120 220 320 120 20   -  - 320 20
21022   30 130 230 330 130 30 230 30 330 30
21023   40 140 240 340 140 40   -  - 340 40
21024   50 150 250 350 150 50   -  - 350 50
21025   60 160 260 360 160 60 260 60 360 60
21026   70 170 270 370 170 70   -  - 370 70
21027   80 180 280 380 180 80   -  - 380 80
21028   90 190 290 390 190 90 290 90 390 90
21029    -   -   -   -   -  -   -  - 300  0
21030    -   -   -   -   -  -   -  - 305  5
21031    -   -   -   -   -  -   -  - 315 15
21032    -   -   -   -   -  -   -  - 325 25
21033    -   -   -   -   -  -   -  - 335 35
21034    -   -   -   -   -  -   -  - 345 45
21035    -   -   -   -   -  -   -  - 355 55
21036    -   -   -   -   -  -   -  - 365 65
21037    -   -   -   -   -  -   -  - 375 75
21038    -   -   -   -   -  -   -  - 385 85
21039    -   -   -   -   -  -   -  - 395 95
21041 do_execsql_test joinD-722 {
21042   SELECT t1.*, t2.*, t3.*, t4.*
21043   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
21044   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
21045   RIGHT JOIN t4 ON t1.d=t4.d
21046   WHERE t4.z>0
21047   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21048 } {
21049   10 110 210 310 110 10   -  - 310 10
21050   20 120 220 320 120 20   -  - 320 20
21051   30 130 230 330 130 30 230 30 330 30
21052   40 140 240 340 140 40   -  - 340 40
21053   50 150 250 350 150 50   -  - 350 50
21054   60 160 260 360 160 60 260 60 360 60
21055   70 170 270 370 170 70   -  - 370 70
21056   80 180 280 380 180 80   -  - 380 80
21057   90 190 290 390 190 90 290 90 390 90
21058    -   -   -   -   -  -   -  - 305  5
21059    -   -   -   -   -  -   -  - 315 15
21060    -   -   -   -   -  -   -  - 325 25
21061    -   -   -   -   -  -   -  - 335 35
21062    -   -   -   -   -  -   -  - 345 45
21063    -   -   -   -   -  -   -  - 355 55
21064    -   -   -   -   -  -   -  - 365 65
21065    -   -   -   -   -  -   -  - 375 75
21066    -   -   -   -   -  -   -  - 385 85
21067    -   -   -   -   -  -   -  - 395 95
21069 do_execsql_test joinD-723 {
21070   SELECT t1.*, t2.*, t3.*, t4.*
21071   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
21072   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
21073   RIGHT JOIN t4 ON t1.d=t4.d
21074   WHERE t4.z IS NULL OR t4.z>0
21075   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21076 } {
21077   10 110 210 310 110 10   -  - 310 10
21078   20 120 220 320 120 20   -  - 320 20
21079   30 130 230 330 130 30 230 30 330 30
21080   40 140 240 340 140 40   -  - 340 40
21081   50 150 250 350 150 50   -  - 350 50
21082   60 160 260 360 160 60 260 60 360 60
21083   70 170 270 370 170 70   -  - 370 70
21084   80 180 280 380 180 80   -  - 380 80
21085   90 190 290 390 190 90 290 90 390 90
21086    -   -   -   -   -  -   -  - 305  5
21087    -   -   -   -   -  -   -  - 315 15
21088    -   -   -   -   -  -   -  - 325 25
21089    -   -   -   -   -  -   -  - 335 35
21090    -   -   -   -   -  -   -  - 345 45
21091    -   -   -   -   -  -   -  - 355 55
21092    -   -   -   -   -  -   -  - 365 65
21093    -   -   -   -   -  -   -  - 375 75
21094    -   -   -   -   -  -   -  - 385 85
21095    -   -   -   -   -  -   -  - 395 95
21097 do_execsql_test joinD-724 {
21098   SELECT t1.*, t2.*, t3.*, t4.*
21099   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
21100   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
21101   RIGHT JOIN t4 ON t1.d=t4.d
21102   WHERE t2.x>0 AND t4.z>0
21103   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21104 } {
21105   10 110 210 310 110 10   -  - 310 10
21106   20 120 220 320 120 20   -  - 320 20
21107   30 130 230 330 130 30 230 30 330 30
21108   40 140 240 340 140 40   -  - 340 40
21109   50 150 250 350 150 50   -  - 350 50
21110   60 160 260 360 160 60 260 60 360 60
21111   70 170 270 370 170 70   -  - 370 70
21112   80 180 280 380 180 80   -  - 380 80
21113   90 190 290 390 190 90 290 90 390 90
21115 do_execsql_test joinD-725 {
21116   SELECT t1.*, t2.*, t3.*, t4.*
21117   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
21118   LEFT JOIN t3 ON t1.c=t3.c
21119   RIGHT JOIN t4 ON t1.d=t4.d
21120   WHERE t4.z>0 AND t3.y>0
21121   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21122 } {
21123   30 130 230 330 130 30 230 30 330 30
21124   60 160 260 360 160 60 260 60 360 60
21125   90 190 290 390 190 90 290 90 390 90
21127 do_execsql_test joinD-726 {
21128   SELECT t1.*, t2.*, t3.*, t4.*
21129   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
21130   LEFT JOIN t3 ON t1.c=t3.c
21131   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
21132   WHERE t2.x>0 AND t3.y>0
21133   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21134 } {
21135   30 130 230 330 130 30 230 30 330 30
21136   60 160 260 360 160 60 260 60 360 60
21137   90 190 290 390 190 90 290 90 390 90
21139 do_execsql_test joinD-727 {
21140   SELECT t1.*, t2.*, t3.*, t4.*
21141   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
21142   LEFT JOIN t3 ON t1.c=t3.c
21143   RIGHT JOIN t4 ON t1.d=t4.d
21144   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
21145   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21146 } {
21147   30 130 230 330 130 30 230 30 330 30
21148   60 160 260 360 160 60 260 60 360 60
21149   90 190 290 390 190 90 290 90 390 90
21151 do_execsql_test joinD-728 {
21152   SELECT t1.*, t2.*, t3.*, t4.*
21153   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
21154   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
21155   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
21156   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21157 } {
21158   10 110 210 310 110 10   -  - 310 10
21159   20 120 220 320 120 20   -  - 320 20
21160   30 130 230 330 130 30 230 30 330 30
21161   40 140 240 340 140 40   -  - 340 40
21162   50 150 250 350 150 50   -  - 350 50
21163   60 160 260 360 160 60 260 60 360 60
21164   70 170 270 370 170 70   -  - 370 70
21165   80 180 280 380 180 80   -  - 380 80
21166   90 190 290 390 190 90 290 90 390 90
21167    -   -   -   -   -  -   -  - 300  0
21168    -   -   -   -   -  -   -  - 305  5
21169    -   -   -   -   -  -   -  - 315 15
21170    -   -   -   -   -  -   -  - 325 25
21171    -   -   -   -   -  -   -  - 335 35
21172    -   -   -   -   -  -   -  - 345 45
21173    -   -   -   -   -  -   -  - 355 55
21174    -   -   -   -   -  -   -  - 365 65
21175    -   -   -   -   -  -   -  - 375 75
21176    -   -   -   -   -  -   -  - 385 85
21177    -   -   -   -   -  -   -  - 395 95
21179 do_execsql_test joinD-729 {
21180   SELECT t1.*, t2.*, t3.*, t4.*
21181   FROM t1 RIGHT JOIN t2 ON t2.x>0
21182   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
21183   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
21184   WHERE t1.b IS NOT DISTINCT FROM t2.b
21185   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21186 } {
21187   10 110 210 310 110 10   -  - 310 10
21188   20 120 220 320 120 20   -  - 320 20
21189   30 130 230 330 130 30 230 30 330 30
21190   40 140 240 340 140 40   -  - 340 40
21191   50 150 250 350 150 50   -  - 350 50
21192   60 160 260 360 160 60 260 60 360 60
21193   70 170 270 370 170 70   -  - 370 70
21194   80 180 280 380 180 80   -  - 380 80
21195   90 190 290 390 190 90 290 90 390 90
21196    -   -   -   -   -  -   -  - 300  0
21198 do_execsql_test joinD-730 {
21199   SELECT t1.*, t2.*, t3.*, t4.*
21200   FROM t1 RIGHT JOIN t2 ON t2.x>0
21201   LEFT JOIN t3 ON t3.y>0
21202   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
21203   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
21204   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21205 } {
21206   30 130 230 330 130 30 230 30 330 30
21207   60 160 260 360 160 60 260 60 360 60
21208   90 190 290 390 190 90 290 90 390 90
21209    -   -   -   -   -  -   -  - 300  0
21211 do_execsql_test joinD-731 {
21212   SELECT t1.*, t2.*, t3.*, t4.*
21213   FROM t1 RIGHT JOIN t2 ON t2.x>0
21214   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
21215   RIGHT JOIN t4 ON t4.z>0
21216   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
21217   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21218 } {
21219   10 110 210 310 110 10   -  - 310 10
21220   20 120 220 320 120 20   -  - 320 20
21221   30 130 230 330 130 30 230 30 330 30
21222   40 140 240 340 140 40   -  - 340 40
21223   50 150 250 350 150 50   -  - 350 50
21224   60 160 260 360 160 60 260 60 360 60
21225   70 170 270 370 170 70   -  - 370 70
21226   80 180 280 380 180 80   -  - 380 80
21227   90 190 290 390 190 90 290 90 390 90
21229 do_execsql_test joinD-732 {
21230   SELECT t1.*, t2.*, t3.*, t4.*
21231   FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
21232   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
21233   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
21234   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21235 } {
21236   10 110 210 310 110 10   -  - 310 10
21237   20 120 220 320 120 20   -  - 320 20
21238   30 130 230 330 130 30 230 30 330 30
21239   40 140 240 340 140 40   -  - 340 40
21240   50 150 250 350 150 50   -  - 350 50
21241   60 160 260 360 160 60 260 60 360 60
21242   70 170 270 370 170 70   -  - 370 70
21243   80 180 280 380 180 80   -  - 380 80
21244   90 190 290 390 190 90 290 90 390 90
21245    -   -   -   -   -  -   -  - 300  0
21246    -   -   -   -   -  -   -  - 305  5
21247    -   -   -   -   -  -   -  - 315 15
21248    -   -   -   -   -  -   -  - 325 25
21249    -   -   -   -   -  -   -  - 335 35
21250    -   -   -   -   -  -   -  - 345 45
21251    -   -   -   -   -  -   -  - 355 55
21252    -   -   -   -   -  -   -  - 365 65
21253    -   -   -   -   -  -   -  - 375 75
21254    -   -   -   -   -  -   -  - 385 85
21255    -   -   -   -   -  -   -  - 395 95
21257 do_execsql_test joinD-733 {
21258   SELECT t1.*, t2.*, t3.*, t4.*
21259   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
21260   LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
21261   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
21262   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21263 } {
21264   10 110 210 310 110 10   -  - 310 10
21265   20 120 220 320 120 20   -  - 320 20
21266   30 130 230 330 130 30 230 30 330 30
21267   40 140 240 340 140 40   -  - 340 40
21268   50 150 250 350 150 50   -  - 350 50
21269   60 160 260 360 160 60 260 60 360 60
21270   70 170 270 370 170 70   -  - 370 70
21271   80 180 280 380 180 80   -  - 380 80
21272   90 190 290 390 190 90 290 90 390 90
21273    -   -   -   -   -  -   -  - 300  0
21274    -   -   -   -   -  -   -  - 305  5
21275    -   -   -   -   -  -   -  - 315 15
21276    -   -   -   -   -  -   -  - 325 25
21277    -   -   -   -   -  -   -  - 335 35
21278    -   -   -   -   -  -   -  - 345 45
21279    -   -   -   -   -  -   -  - 355 55
21280    -   -   -   -   -  -   -  - 365 65
21281    -   -   -   -   -  -   -  - 375 75
21282    -   -   -   -   -  -   -  - 385 85
21283    -   -   -   -   -  -   -  - 395 95
21285 do_execsql_test joinD-734 {
21286   SELECT t1.*, t2.*, t3.*, t4.*
21287   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
21288   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
21289   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
21290   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21291 } {
21292    2 102 202 302 102  2   -  -   -  -
21293    4 104 204 304 104  4   -  -   -  -
21294    6 106 206 306 106  6 206  6   -  -
21295    8 108 208 308 108  8   -  -   -  -
21296   10 110 210 310 110 10   -  - 310 10
21297   12 112 212 312 112 12 212 12   -  -
21298   14 114 214 314 114 14   -  -   -  -
21299   16 116 216 316 116 16   -  -   -  -
21300   18 118 218 318 118 18 218 18   -  -
21301   20 120 220 320 120 20   -  - 320 20
21302   22 122 222 322 122 22   -  -   -  -
21303   24 124 224 324 124 24 224 24   -  -
21304   26 126 226 326 126 26   -  -   -  -
21305   28 128 228 328 128 28   -  -   -  -
21306   30 130 230 330 130 30 230 30 330 30
21307   32 132 232 332 132 32   -  -   -  -
21308   34 134 234 334 134 34   -  -   -  -
21309   36 136 236 336 136 36 236 36   -  -
21310   38 138 238 338 138 38   -  -   -  -
21311   40 140 240 340 140 40   -  - 340 40
21312   42 142 242 342 142 42 242 42   -  -
21313   44 144 244 344 144 44   -  -   -  -
21314   46 146 246 346 146 46   -  -   -  -
21315   48 148 248 348 148 48 248 48   -  -
21316   50 150 250 350 150 50   -  - 350 50
21317   52 152 252 352 152 52   -  -   -  -
21318   54 154 254 354 154 54 254 54   -  -
21319   56 156 256 356 156 56   -  -   -  -
21320   58 158 258 358 158 58   -  -   -  -
21321   60 160 260 360 160 60 260 60 360 60
21322   62 162 262 362 162 62   -  -   -  -
21323   64 164 264 364 164 64   -  -   -  -
21324   66 166 266 366 166 66 266 66   -  -
21325   68 168 268 368 168 68   -  -   -  -
21326   70 170 270 370 170 70   -  - 370 70
21327   72 172 272 372 172 72 272 72   -  -
21328   74 174 274 374 174 74   -  -   -  -
21329   76 176 276 376 176 76   -  -   -  -
21330   78 178 278 378 178 78 278 78   -  -
21331   80 180 280 380 180 80   -  - 380 80
21332   82 182 282 382 182 82   -  -   -  -
21333   84 184 284 384 184 84 284 84   -  -
21334   86 186 286 386 186 86   -  -   -  -
21335   88 188 288 388 188 88   -  -   -  -
21336   90 190 290 390 190 90 290 90 390 90
21337   92 192 292 392 192 92   -  -   -  -
21338   94 194 294 394 194 94   -  -   -  -
21339    -   -   -   - 100  0   -  -   -  -
21340    -   -   -   -   -  -   -  - 300  0
21341    -   -   -   -   -  -   -  - 305  5
21342    -   -   -   -   -  -   -  - 315 15
21343    -   -   -   -   -  -   -  - 325 25
21344    -   -   -   -   -  -   -  - 335 35
21345    -   -   -   -   -  -   -  - 345 45
21346    -   -   -   -   -  -   -  - 355 55
21347    -   -   -   -   -  -   -  - 365 65
21348    -   -   -   -   -  -   -  - 375 75
21349    -   -   -   -   -  -   -  - 385 85
21350    -   -   -   -   -  -   -  - 395 95
21352 do_execsql_test joinD-735 {
21353   SELECT t1.*, t2.*, t3.*, t4.*
21354   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
21355   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
21356   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
21357   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21358 } {
21359    2 102 202 302 102  2   -  -   -  -
21360    4 104 204 304 104  4   -  -   -  -
21361    6 106 206 306 106  6 206  6   -  -
21362    8 108 208 308 108  8   -  -   -  -
21363   10 110 210 310 110 10   -  - 310 10
21364   12 112 212 312 112 12 212 12   -  -
21365   14 114 214 314 114 14   -  -   -  -
21366   16 116 216 316 116 16   -  -   -  -
21367   18 118 218 318 118 18 218 18   -  -
21368   20 120 220 320 120 20   -  - 320 20
21369   22 122 222 322 122 22   -  -   -  -
21370   24 124 224 324 124 24 224 24   -  -
21371   26 126 226 326 126 26   -  -   -  -
21372   28 128 228 328 128 28   -  -   -  -
21373   30 130 230 330 130 30 230 30 330 30
21374   32 132 232 332 132 32   -  -   -  -
21375   34 134 234 334 134 34   -  -   -  -
21376   36 136 236 336 136 36 236 36   -  -
21377   38 138 238 338 138 38   -  -   -  -
21378   40 140 240 340 140 40   -  - 340 40
21379   42 142 242 342 142 42 242 42   -  -
21380   44 144 244 344 144 44   -  -   -  -
21381   46 146 246 346 146 46   -  -   -  -
21382   48 148 248 348 148 48 248 48   -  -
21383   50 150 250 350 150 50   -  - 350 50
21384   52 152 252 352 152 52   -  -   -  -
21385   54 154 254 354 154 54 254 54   -  -
21386   56 156 256 356 156 56   -  -   -  -
21387   58 158 258 358 158 58   -  -   -  -
21388   60 160 260 360 160 60 260 60 360 60
21389   62 162 262 362 162 62   -  -   -  -
21390   64 164 264 364 164 64   -  -   -  -
21391   66 166 266 366 166 66 266 66   -  -
21392   68 168 268 368 168 68   -  -   -  -
21393   70 170 270 370 170 70   -  - 370 70
21394   72 172 272 372 172 72 272 72   -  -
21395   74 174 274 374 174 74   -  -   -  -
21396   76 176 276 376 176 76   -  -   -  -
21397   78 178 278 378 178 78 278 78   -  -
21398   80 180 280 380 180 80   -  - 380 80
21399   82 182 282 382 182 82   -  -   -  -
21400   84 184 284 384 184 84 284 84   -  -
21401   86 186 286 386 186 86   -  -   -  -
21402   88 188 288 388 188 88   -  -   -  -
21403   90 190 290 390 190 90 290 90 390 90
21404   92 192 292 392 192 92   -  -   -  -
21405   94 194 294 394 194 94   -  -   -  -
21406    -   -   -   - 100  0   -  -   -  -
21407    -   -   -   -   -  -   -  - 300  0
21408    -   -   -   -   -  -   -  - 305  5
21409    -   -   -   -   -  -   -  - 315 15
21410    -   -   -   -   -  -   -  - 325 25
21411    -   -   -   -   -  -   -  - 335 35
21412    -   -   -   -   -  -   -  - 345 45
21413    -   -   -   -   -  -   -  - 355 55
21414    -   -   -   -   -  -   -  - 365 65
21415    -   -   -   -   -  -   -  - 375 75
21416    -   -   -   -   -  -   -  - 385 85
21417    -   -   -   -   -  -   -  - 395 95
21419 do_execsql_test joinD-736 {
21420   SELECT t1.*, t2.*, t3.*, t4.*
21421   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
21422   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
21423   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
21424   WHERE t2.x>0
21425   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21426 } {
21427    2 102 202 302 102  2   -  -   -  -
21428    4 104 204 304 104  4   -  -   -  -
21429    6 106 206 306 106  6 206  6   -  -
21430    8 108 208 308 108  8   -  -   -  -
21431   10 110 210 310 110 10   -  - 310 10
21432   12 112 212 312 112 12 212 12   -  -
21433   14 114 214 314 114 14   -  -   -  -
21434   16 116 216 316 116 16   -  -   -  -
21435   18 118 218 318 118 18 218 18   -  -
21436   20 120 220 320 120 20   -  - 320 20
21437   22 122 222 322 122 22   -  -   -  -
21438   24 124 224 324 124 24 224 24   -  -
21439   26 126 226 326 126 26   -  -   -  -
21440   28 128 228 328 128 28   -  -   -  -
21441   30 130 230 330 130 30 230 30 330 30
21442   32 132 232 332 132 32   -  -   -  -
21443   34 134 234 334 134 34   -  -   -  -
21444   36 136 236 336 136 36 236 36   -  -
21445   38 138 238 338 138 38   -  -   -  -
21446   40 140 240 340 140 40   -  - 340 40
21447   42 142 242 342 142 42 242 42   -  -
21448   44 144 244 344 144 44   -  -   -  -
21449   46 146 246 346 146 46   -  -   -  -
21450   48 148 248 348 148 48 248 48   -  -
21451   50 150 250 350 150 50   -  - 350 50
21452   52 152 252 352 152 52   -  -   -  -
21453   54 154 254 354 154 54 254 54   -  -
21454   56 156 256 356 156 56   -  -   -  -
21455   58 158 258 358 158 58   -  -   -  -
21456   60 160 260 360 160 60 260 60 360 60
21457   62 162 262 362 162 62   -  -   -  -
21458   64 164 264 364 164 64   -  -   -  -
21459   66 166 266 366 166 66 266 66   -  -
21460   68 168 268 368 168 68   -  -   -  -
21461   70 170 270 370 170 70   -  - 370 70
21462   72 172 272 372 172 72 272 72   -  -
21463   74 174 274 374 174 74   -  -   -  -
21464   76 176 276 376 176 76   -  -   -  -
21465   78 178 278 378 178 78 278 78   -  -
21466   80 180 280 380 180 80   -  - 380 80
21467   82 182 282 382 182 82   -  -   -  -
21468   84 184 284 384 184 84 284 84   -  -
21469   86 186 286 386 186 86   -  -   -  -
21470   88 188 288 388 188 88   -  -   -  -
21471   90 190 290 390 190 90 290 90 390 90
21472   92 192 292 392 192 92   -  -   -  -
21473   94 194 294 394 194 94   -  -   -  -
21475 do_execsql_test joinD-737 {
21476   SELECT t1.*, t2.*, t3.*, t4.*
21477   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
21478   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
21479   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
21480   WHERE (t2.x>0 OR t2.x IS NULL)
21481   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21482 } {
21483    2 102 202 302 102  2   -  -   -  -
21484    4 104 204 304 104  4   -  -   -  -
21485    6 106 206 306 106  6 206  6   -  -
21486    8 108 208 308 108  8   -  -   -  -
21487   10 110 210 310 110 10   -  - 310 10
21488   12 112 212 312 112 12 212 12   -  -
21489   14 114 214 314 114 14   -  -   -  -
21490   16 116 216 316 116 16   -  -   -  -
21491   18 118 218 318 118 18 218 18   -  -
21492   20 120 220 320 120 20   -  - 320 20
21493   22 122 222 322 122 22   -  -   -  -
21494   24 124 224 324 124 24 224 24   -  -
21495   26 126 226 326 126 26   -  -   -  -
21496   28 128 228 328 128 28   -  -   -  -
21497   30 130 230 330 130 30 230 30 330 30
21498   32 132 232 332 132 32   -  -   -  -
21499   34 134 234 334 134 34   -  -   -  -
21500   36 136 236 336 136 36 236 36   -  -
21501   38 138 238 338 138 38   -  -   -  -
21502   40 140 240 340 140 40   -  - 340 40
21503   42 142 242 342 142 42 242 42   -  -
21504   44 144 244 344 144 44   -  -   -  -
21505   46 146 246 346 146 46   -  -   -  -
21506   48 148 248 348 148 48 248 48   -  -
21507   50 150 250 350 150 50   -  - 350 50
21508   52 152 252 352 152 52   -  -   -  -
21509   54 154 254 354 154 54 254 54   -  -
21510   56 156 256 356 156 56   -  -   -  -
21511   58 158 258 358 158 58   -  -   -  -
21512   60 160 260 360 160 60 260 60 360 60
21513   62 162 262 362 162 62   -  -   -  -
21514   64 164 264 364 164 64   -  -   -  -
21515   66 166 266 366 166 66 266 66   -  -
21516   68 168 268 368 168 68   -  -   -  -
21517   70 170 270 370 170 70   -  - 370 70
21518   72 172 272 372 172 72 272 72   -  -
21519   74 174 274 374 174 74   -  -   -  -
21520   76 176 276 376 176 76   -  -   -  -
21521   78 178 278 378 178 78 278 78   -  -
21522   80 180 280 380 180 80   -  - 380 80
21523   82 182 282 382 182 82   -  -   -  -
21524   84 184 284 384 184 84 284 84   -  -
21525   86 186 286 386 186 86   -  -   -  -
21526   88 188 288 388 188 88   -  -   -  -
21527   90 190 290 390 190 90 290 90 390 90
21528   92 192 292 392 192 92   -  -   -  -
21529   94 194 294 394 194 94   -  -   -  -
21530    -   -   -   -   -  -   -  - 300  0
21531    -   -   -   -   -  -   -  - 305  5
21532    -   -   -   -   -  -   -  - 315 15
21533    -   -   -   -   -  -   -  - 325 25
21534    -   -   -   -   -  -   -  - 335 35
21535    -   -   -   -   -  -   -  - 345 45
21536    -   -   -   -   -  -   -  - 355 55
21537    -   -   -   -   -  -   -  - 365 65
21538    -   -   -   -   -  -   -  - 375 75
21539    -   -   -   -   -  -   -  - 385 85
21540    -   -   -   -   -  -   -  - 395 95
21542 do_execsql_test joinD-738 {
21543   SELECT t1.*, t2.*, t3.*, t4.*
21544   FROM t1 RIGHT JOIN t2 ON true
21545   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
21546   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
21547   WHERE t1.b=t2.b AND t2.x>0
21548   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21549 } {
21550    2 102 202 302 102  2   -  -   -  -
21551    4 104 204 304 104  4   -  -   -  -
21552    6 106 206 306 106  6 206  6   -  -
21553    8 108 208 308 108  8   -  -   -  -
21554   10 110 210 310 110 10   -  - 310 10
21555   12 112 212 312 112 12 212 12   -  -
21556   14 114 214 314 114 14   -  -   -  -
21557   16 116 216 316 116 16   -  -   -  -
21558   18 118 218 318 118 18 218 18   -  -
21559   20 120 220 320 120 20   -  - 320 20
21560   22 122 222 322 122 22   -  -   -  -
21561   24 124 224 324 124 24 224 24   -  -
21562   26 126 226 326 126 26   -  -   -  -
21563   28 128 228 328 128 28   -  -   -  -
21564   30 130 230 330 130 30 230 30 330 30
21565   32 132 232 332 132 32   -  -   -  -
21566   34 134 234 334 134 34   -  -   -  -
21567   36 136 236 336 136 36 236 36   -  -
21568   38 138 238 338 138 38   -  -   -  -
21569   40 140 240 340 140 40   -  - 340 40
21570   42 142 242 342 142 42 242 42   -  -
21571   44 144 244 344 144 44   -  -   -  -
21572   46 146 246 346 146 46   -  -   -  -
21573   48 148 248 348 148 48 248 48   -  -
21574   50 150 250 350 150 50   -  - 350 50
21575   52 152 252 352 152 52   -  -   -  -
21576   54 154 254 354 154 54 254 54   -  -
21577   56 156 256 356 156 56   -  -   -  -
21578   58 158 258 358 158 58   -  -   -  -
21579   60 160 260 360 160 60 260 60 360 60
21580   62 162 262 362 162 62   -  -   -  -
21581   64 164 264 364 164 64   -  -   -  -
21582   66 166 266 366 166 66 266 66   -  -
21583   68 168 268 368 168 68   -  -   -  -
21584   70 170 270 370 170 70   -  - 370 70
21585   72 172 272 372 172 72 272 72   -  -
21586   74 174 274 374 174 74   -  -   -  -
21587   76 176 276 376 176 76   -  -   -  -
21588   78 178 278 378 178 78 278 78   -  -
21589   80 180 280 380 180 80   -  - 380 80
21590   82 182 282 382 182 82   -  -   -  -
21591   84 184 284 384 184 84 284 84   -  -
21592   86 186 286 386 186 86   -  -   -  -
21593   88 188 288 388 188 88   -  -   -  -
21594   90 190 290 390 190 90 290 90 390 90
21595   92 192 292 392 192 92   -  -   -  -
21596   94 194 294 394 194 94   -  -   -  -
21598 do_execsql_test joinD-739 {
21599   SELECT t1.*, t2.*, t3.*, t4.*
21600   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
21601   LEFT JOIN t3 ON t1.c=t3.c
21602   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
21603   WHERE t3.y>0
21604   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21605 } {
21606    6 106 206 306 106  6 206  6   -  -
21607   12 112 212 312 112 12 212 12   -  -
21608   18 118 218 318 118 18 218 18   -  -
21609   24 124 224 324 124 24 224 24   -  -
21610   30 130 230 330 130 30 230 30 330 30
21611   36 136 236 336 136 36 236 36   -  -
21612   42 142 242 342 142 42 242 42   -  -
21613   48 148 248 348 148 48 248 48   -  -
21614   54 154 254 354 154 54 254 54   -  -
21615   60 160 260 360 160 60 260 60 360 60
21616   66 166 266 366 166 66 266 66   -  -
21617   72 172 272 372 172 72 272 72   -  -
21618   78 178 278 378 178 78 278 78   -  -
21619   84 184 284 384 184 84 284 84   -  -
21620   90 190 290 390 190 90 290 90 390 90
21622 do_execsql_test joinD-740 {
21623   SELECT t1.*, t2.*, t3.*, t4.*
21624   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
21625   LEFT JOIN t3 ON t1.c=t3.c
21626   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
21627   WHERE t3.y>0 OR t3.y IS NULL
21628   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21629 } {
21630    2 102 202 302 102  2   -  -   -  -
21631    4 104 204 304 104  4   -  -   -  -
21632    6 106 206 306 106  6 206  6   -  -
21633    8 108 208 308 108  8   -  -   -  -
21634   10 110 210 310 110 10   -  - 310 10
21635   12 112 212 312 112 12 212 12   -  -
21636   14 114 214 314 114 14   -  -   -  -
21637   16 116 216 316 116 16   -  -   -  -
21638   18 118 218 318 118 18 218 18   -  -
21639   20 120 220 320 120 20   -  - 320 20
21640   22 122 222 322 122 22   -  -   -  -
21641   24 124 224 324 124 24 224 24   -  -
21642   26 126 226 326 126 26   -  -   -  -
21643   28 128 228 328 128 28   -  -   -  -
21644   30 130 230 330 130 30 230 30 330 30
21645   32 132 232 332 132 32   -  -   -  -
21646   34 134 234 334 134 34   -  -   -  -
21647   36 136 236 336 136 36 236 36   -  -
21648   38 138 238 338 138 38   -  -   -  -
21649   40 140 240 340 140 40   -  - 340 40
21650   42 142 242 342 142 42 242 42   -  -
21651   44 144 244 344 144 44   -  -   -  -
21652   46 146 246 346 146 46   -  -   -  -
21653   48 148 248 348 148 48 248 48   -  -
21654   50 150 250 350 150 50   -  - 350 50
21655   52 152 252 352 152 52   -  -   -  -
21656   54 154 254 354 154 54 254 54   -  -
21657   56 156 256 356 156 56   -  -   -  -
21658   58 158 258 358 158 58   -  -   -  -
21659   60 160 260 360 160 60 260 60 360 60
21660   62 162 262 362 162 62   -  -   -  -
21661   64 164 264 364 164 64   -  -   -  -
21662   66 166 266 366 166 66 266 66   -  -
21663   68 168 268 368 168 68   -  -   -  -
21664   70 170 270 370 170 70   -  - 370 70
21665   72 172 272 372 172 72 272 72   -  -
21666   74 174 274 374 174 74   -  -   -  -
21667   76 176 276 376 176 76   -  -   -  -
21668   78 178 278 378 178 78 278 78   -  -
21669   80 180 280 380 180 80   -  - 380 80
21670   82 182 282 382 182 82   -  -   -  -
21671   84 184 284 384 184 84 284 84   -  -
21672   86 186 286 386 186 86   -  -   -  -
21673   88 188 288 388 188 88   -  -   -  -
21674   90 190 290 390 190 90 290 90 390 90
21675   92 192 292 392 192 92   -  -   -  -
21676   94 194 294 394 194 94   -  -   -  -
21677    -   -   -   - 100  0   -  -   -  -
21678    -   -   -   -   -  -   -  - 300  0
21679    -   -   -   -   -  -   -  - 305  5
21680    -   -   -   -   -  -   -  - 315 15
21681    -   -   -   -   -  -   -  - 325 25
21682    -   -   -   -   -  -   -  - 335 35
21683    -   -   -   -   -  -   -  - 345 45
21684    -   -   -   -   -  -   -  - 355 55
21685    -   -   -   -   -  -   -  - 365 65
21686    -   -   -   -   -  -   -  - 375 75
21687    -   -   -   -   -  -   -  - 385 85
21688    -   -   -   -   -  -   -  - 395 95
21690 do_execsql_test joinD-741 {
21691   SELECT t1.*, t2.*, t3.*, t4.*
21692   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
21693   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
21694   FULL JOIN t4 ON t1.d=t4.d
21695   WHERE t4.z>0
21696   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21697 } {
21698   10 110 210 310 110 10   -  - 310 10
21699   20 120 220 320 120 20   -  - 320 20
21700   30 130 230 330 130 30 230 30 330 30
21701   40 140 240 340 140 40   -  - 340 40
21702   50 150 250 350 150 50   -  - 350 50
21703   60 160 260 360 160 60 260 60 360 60
21704   70 170 270 370 170 70   -  - 370 70
21705   80 180 280 380 180 80   -  - 380 80
21706   90 190 290 390 190 90 290 90 390 90
21707    -   -   -   -   -  -   -  - 305  5
21708    -   -   -   -   -  -   -  - 315 15
21709    -   -   -   -   -  -   -  - 325 25
21710    -   -   -   -   -  -   -  - 335 35
21711    -   -   -   -   -  -   -  - 345 45
21712    -   -   -   -   -  -   -  - 355 55
21713    -   -   -   -   -  -   -  - 365 65
21714    -   -   -   -   -  -   -  - 375 75
21715    -   -   -   -   -  -   -  - 385 85
21716    -   -   -   -   -  -   -  - 395 95
21718 do_execsql_test joinD-742 {
21719   SELECT t1.*, t2.*, t3.*, t4.*
21720   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
21721   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
21722   FULL JOIN t4 ON t1.d=t4.d
21723   WHERE t4.z IS NULL OR t4.z>0
21724   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21725 } {
21726    2 102 202 302 102  2   -  -   -  -
21727    4 104 204 304 104  4   -  -   -  -
21728    6 106 206 306 106  6 206  6   -  -
21729    8 108 208 308 108  8   -  -   -  -
21730   10 110 210 310 110 10   -  - 310 10
21731   12 112 212 312 112 12 212 12   -  -
21732   14 114 214 314 114 14   -  -   -  -
21733   16 116 216 316 116 16   -  -   -  -
21734   18 118 218 318 118 18 218 18   -  -
21735   20 120 220 320 120 20   -  - 320 20
21736   22 122 222 322 122 22   -  -   -  -
21737   24 124 224 324 124 24 224 24   -  -
21738   26 126 226 326 126 26   -  -   -  -
21739   28 128 228 328 128 28   -  -   -  -
21740   30 130 230 330 130 30 230 30 330 30
21741   32 132 232 332 132 32   -  -   -  -
21742   34 134 234 334 134 34   -  -   -  -
21743   36 136 236 336 136 36 236 36   -  -
21744   38 138 238 338 138 38   -  -   -  -
21745   40 140 240 340 140 40   -  - 340 40
21746   42 142 242 342 142 42 242 42   -  -
21747   44 144 244 344 144 44   -  -   -  -
21748   46 146 246 346 146 46   -  -   -  -
21749   48 148 248 348 148 48 248 48   -  -
21750   50 150 250 350 150 50   -  - 350 50
21751   52 152 252 352 152 52   -  -   -  -
21752   54 154 254 354 154 54 254 54   -  -
21753   56 156 256 356 156 56   -  -   -  -
21754   58 158 258 358 158 58   -  -   -  -
21755   60 160 260 360 160 60 260 60 360 60
21756   62 162 262 362 162 62   -  -   -  -
21757   64 164 264 364 164 64   -  -   -  -
21758   66 166 266 366 166 66 266 66   -  -
21759   68 168 268 368 168 68   -  -   -  -
21760   70 170 270 370 170 70   -  - 370 70
21761   72 172 272 372 172 72 272 72   -  -
21762   74 174 274 374 174 74   -  -   -  -
21763   76 176 276 376 176 76   -  -   -  -
21764   78 178 278 378 178 78 278 78   -  -
21765   80 180 280 380 180 80   -  - 380 80
21766   82 182 282 382 182 82   -  -   -  -
21767   84 184 284 384 184 84 284 84   -  -
21768   86 186 286 386 186 86   -  -   -  -
21769   88 188 288 388 188 88   -  -   -  -
21770   90 190 290 390 190 90 290 90 390 90
21771   92 192 292 392 192 92   -  -   -  -
21772   94 194 294 394 194 94   -  -   -  -
21773    -   -   -   - 100  0   -  -   -  -
21774    -   -   -   -   -  -   -  - 305  5
21775    -   -   -   -   -  -   -  - 315 15
21776    -   -   -   -   -  -   -  - 325 25
21777    -   -   -   -   -  -   -  - 335 35
21778    -   -   -   -   -  -   -  - 345 45
21779    -   -   -   -   -  -   -  - 355 55
21780    -   -   -   -   -  -   -  - 365 65
21781    -   -   -   -   -  -   -  - 375 75
21782    -   -   -   -   -  -   -  - 385 85
21783    -   -   -   -   -  -   -  - 395 95
21785 do_execsql_test joinD-743 {
21786   SELECT t1.*, t2.*, t3.*, t4.*
21787   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
21788   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
21789   FULL JOIN t4 ON t1.d=t4.d
21790   WHERE t2.x>0 AND t4.z>0
21791   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21792 } {
21793   10 110 210 310 110 10   -  - 310 10
21794   20 120 220 320 120 20   -  - 320 20
21795   30 130 230 330 130 30 230 30 330 30
21796   40 140 240 340 140 40   -  - 340 40
21797   50 150 250 350 150 50   -  - 350 50
21798   60 160 260 360 160 60 260 60 360 60
21799   70 170 270 370 170 70   -  - 370 70
21800   80 180 280 380 180 80   -  - 380 80
21801   90 190 290 390 190 90 290 90 390 90
21803 do_execsql_test joinD-744 {
21804   SELECT t1.*, t2.*, t3.*, t4.*
21805   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
21806   LEFT JOIN t3 ON t1.c=t3.c
21807   FULL JOIN t4 ON t1.d=t4.d
21808   WHERE t4.z>0 AND t3.y>0
21809   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21810 } {
21811   30 130 230 330 130 30 230 30 330 30
21812   60 160 260 360 160 60 260 60 360 60
21813   90 190 290 390 190 90 290 90 390 90
21815 do_execsql_test joinD-745 {
21816   SELECT t1.*, t2.*, t3.*, t4.*
21817   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
21818   LEFT JOIN t3 ON t1.c=t3.c
21819   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
21820   WHERE t2.x>0 AND t3.y>0
21821   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21822 } {
21823    6 106 206 306 106  6 206  6   -  -
21824   12 112 212 312 112 12 212 12   -  -
21825   18 118 218 318 118 18 218 18   -  -
21826   24 124 224 324 124 24 224 24   -  -
21827   30 130 230 330 130 30 230 30 330 30
21828   36 136 236 336 136 36 236 36   -  -
21829   42 142 242 342 142 42 242 42   -  -
21830   48 148 248 348 148 48 248 48   -  -
21831   54 154 254 354 154 54 254 54   -  -
21832   60 160 260 360 160 60 260 60 360 60
21833   66 166 266 366 166 66 266 66   -  -
21834   72 172 272 372 172 72 272 72   -  -
21835   78 178 278 378 178 78 278 78   -  -
21836   84 184 284 384 184 84 284 84   -  -
21837   90 190 290 390 190 90 290 90 390 90
21839 do_execsql_test joinD-746 {
21840   SELECT t1.*, t2.*, t3.*, t4.*
21841   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
21842   LEFT JOIN t3 ON t1.c=t3.c
21843   FULL JOIN t4 ON t1.d=t4.d
21844   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
21845   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21846 } {
21847   30 130 230 330 130 30 230 30 330 30
21848   60 160 260 360 160 60 260 60 360 60
21849   90 190 290 390 190 90 290 90 390 90
21851 do_execsql_test joinD-747 {
21852   SELECT t1.*, t2.*, t3.*, t4.*
21853   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
21854   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
21855   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
21856   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21857 } {
21858    2 102 202 302 102  2   -  -   -  -
21859    4 104 204 304 104  4   -  -   -  -
21860    6 106 206 306 106  6 206  6   -  -
21861    8 108 208 308 108  8   -  -   -  -
21862   10 110 210 310 110 10   -  - 310 10
21863   12 112 212 312 112 12 212 12   -  -
21864   14 114 214 314 114 14   -  -   -  -
21865   16 116 216 316 116 16   -  -   -  -
21866   18 118 218 318 118 18 218 18   -  -
21867   20 120 220 320 120 20   -  - 320 20
21868   22 122 222 322 122 22   -  -   -  -
21869   24 124 224 324 124 24 224 24   -  -
21870   26 126 226 326 126 26   -  -   -  -
21871   28 128 228 328 128 28   -  -   -  -
21872   30 130 230 330 130 30 230 30 330 30
21873   32 132 232 332 132 32   -  -   -  -
21874   34 134 234 334 134 34   -  -   -  -
21875   36 136 236 336 136 36 236 36   -  -
21876   38 138 238 338 138 38   -  -   -  -
21877   40 140 240 340 140 40   -  - 340 40
21878   42 142 242 342 142 42 242 42   -  -
21879   44 144 244 344 144 44   -  -   -  -
21880   46 146 246 346 146 46   -  -   -  -
21881   48 148 248 348 148 48 248 48   -  -
21882   50 150 250 350 150 50   -  - 350 50
21883   52 152 252 352 152 52   -  -   -  -
21884   54 154 254 354 154 54 254 54   -  -
21885   56 156 256 356 156 56   -  -   -  -
21886   58 158 258 358 158 58   -  -   -  -
21887   60 160 260 360 160 60 260 60 360 60
21888   62 162 262 362 162 62   -  -   -  -
21889   64 164 264 364 164 64   -  -   -  -
21890   66 166 266 366 166 66 266 66   -  -
21891   68 168 268 368 168 68   -  -   -  -
21892   70 170 270 370 170 70   -  - 370 70
21893   72 172 272 372 172 72 272 72   -  -
21894   74 174 274 374 174 74   -  -   -  -
21895   76 176 276 376 176 76   -  -   -  -
21896   78 178 278 378 178 78 278 78   -  -
21897   80 180 280 380 180 80   -  - 380 80
21898   82 182 282 382 182 82   -  -   -  -
21899   84 184 284 384 184 84 284 84   -  -
21900   86 186 286 386 186 86   -  -   -  -
21901   88 188 288 388 188 88   -  -   -  -
21902   90 190 290 390 190 90 290 90 390 90
21903   92 192 292 392 192 92   -  -   -  -
21904   94 194 294 394 194 94   -  -   -  -
21905    -   -   -   - 100  0   -  -   -  -
21906    -   -   -   -   -  -   -  - 300  0
21907    -   -   -   -   -  -   -  - 305  5
21908    -   -   -   -   -  -   -  - 315 15
21909    -   -   -   -   -  -   -  - 325 25
21910    -   -   -   -   -  -   -  - 335 35
21911    -   -   -   -   -  -   -  - 345 45
21912    -   -   -   -   -  -   -  - 355 55
21913    -   -   -   -   -  -   -  - 365 65
21914    -   -   -   -   -  -   -  - 375 75
21915    -   -   -   -   -  -   -  - 385 85
21916    -   -   -   -   -  -   -  - 395 95
21918 do_execsql_test joinD-748 {
21919   SELECT t1.*, t2.*, t3.*, t4.*
21920   FROM t1 RIGHT JOIN t2 ON t2.x>0
21921   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
21922   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
21923   WHERE t1.b IS NOT DISTINCT FROM t2.b
21924   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21925 } {
21926    2 102 202 302 102  2   -  -   -  -
21927    4 104 204 304 104  4   -  -   -  -
21928    6 106 206 306 106  6 206  6   -  -
21929    8 108 208 308 108  8   -  -   -  -
21930   10 110 210 310 110 10   -  - 310 10
21931   12 112 212 312 112 12 212 12   -  -
21932   14 114 214 314 114 14   -  -   -  -
21933   16 116 216 316 116 16   -  -   -  -
21934   18 118 218 318 118 18 218 18   -  -
21935   20 120 220 320 120 20   -  - 320 20
21936   22 122 222 322 122 22   -  -   -  -
21937   24 124 224 324 124 24 224 24   -  -
21938   26 126 226 326 126 26   -  -   -  -
21939   28 128 228 328 128 28   -  -   -  -
21940   30 130 230 330 130 30 230 30 330 30
21941   32 132 232 332 132 32   -  -   -  -
21942   34 134 234 334 134 34   -  -   -  -
21943   36 136 236 336 136 36 236 36   -  -
21944   38 138 238 338 138 38   -  -   -  -
21945   40 140 240 340 140 40   -  - 340 40
21946   42 142 242 342 142 42 242 42   -  -
21947   44 144 244 344 144 44   -  -   -  -
21948   46 146 246 346 146 46   -  -   -  -
21949   48 148 248 348 148 48 248 48   -  -
21950   50 150 250 350 150 50   -  - 350 50
21951   52 152 252 352 152 52   -  -   -  -
21952   54 154 254 354 154 54 254 54   -  -
21953   56 156 256 356 156 56   -  -   -  -
21954   58 158 258 358 158 58   -  -   -  -
21955   60 160 260 360 160 60 260 60 360 60
21956   62 162 262 362 162 62   -  -   -  -
21957   64 164 264 364 164 64   -  -   -  -
21958   66 166 266 366 166 66 266 66   -  -
21959   68 168 268 368 168 68   -  -   -  -
21960   70 170 270 370 170 70   -  - 370 70
21961   72 172 272 372 172 72 272 72   -  -
21962   74 174 274 374 174 74   -  -   -  -
21963   76 176 276 376 176 76   -  -   -  -
21964   78 178 278 378 178 78 278 78   -  -
21965   80 180 280 380 180 80   -  - 380 80
21966   82 182 282 382 182 82   -  -   -  -
21967   84 184 284 384 184 84 284 84   -  -
21968   86 186 286 386 186 86   -  -   -  -
21969   88 188 288 388 188 88   -  -   -  -
21970   90 190 290 390 190 90 290 90 390 90
21971   92 192 292 392 192 92   -  -   -  -
21972   94 194 294 394 194 94   -  -   -  -
21973    -   -   -   -   -  -   -  - 300  0
21975 do_execsql_test joinD-749 {
21976   SELECT t1.*, t2.*, t3.*, t4.*
21977   FROM t1 RIGHT JOIN t2 ON t2.x>0
21978   LEFT JOIN t3 ON t3.y>0
21979   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
21980   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
21981   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
21982 } {
21983    6 106 206 306 106  6 206  6   -  -
21984   12 112 212 312 112 12 212 12   -  -
21985   18 118 218 318 118 18 218 18   -  -
21986   24 124 224 324 124 24 224 24   -  -
21987   30 130 230 330 130 30 230 30 330 30
21988   36 136 236 336 136 36 236 36   -  -
21989   42 142 242 342 142 42 242 42   -  -
21990   48 148 248 348 148 48 248 48   -  -
21991   54 154 254 354 154 54 254 54   -  -
21992   60 160 260 360 160 60 260 60 360 60
21993   66 166 266 366 166 66 266 66   -  -
21994   72 172 272 372 172 72 272 72   -  -
21995   78 178 278 378 178 78 278 78   -  -
21996   84 184 284 384 184 84 284 84   -  -
21997   90 190 290 390 190 90 290 90 390 90
21998    -   -   -   -   -  -   -  - 300  0
22000 do_execsql_test joinD-750 {
22001   SELECT t1.*, t2.*, t3.*, t4.*
22002   FROM t1 RIGHT JOIN t2 ON t2.x>0
22003   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
22004   FULL JOIN t4 ON t4.z>0
22005   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
22006   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22007 } {
22008   10 110 210 310 110 10   -  - 310 10
22009   20 120 220 320 120 20   -  - 320 20
22010   30 130 230 330 130 30 230 30 330 30
22011   40 140 240 340 140 40   -  - 340 40
22012   50 150 250 350 150 50   -  - 350 50
22013   60 160 260 360 160 60 260 60 360 60
22014   70 170 270 370 170 70   -  - 370 70
22015   80 180 280 380 180 80   -  - 380 80
22016   90 190 290 390 190 90 290 90 390 90
22018 do_execsql_test joinD-751 {
22019   SELECT t1.*, t2.*, t3.*, t4.*
22020   FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
22021   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
22022   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
22023   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22024 } {
22025    2 102 202 302 102  2   -  -   -  -
22026    4 104 204 304 104  4   -  -   -  -
22027    6 106 206 306 106  6 206  6   -  -
22028    8 108 208 308 108  8   -  -   -  -
22029   10 110 210 310 110 10   -  - 310 10
22030   12 112 212 312 112 12 212 12   -  -
22031   14 114 214 314 114 14   -  -   -  -
22032   16 116 216 316 116 16   -  -   -  -
22033   18 118 218 318 118 18 218 18   -  -
22034   20 120 220 320 120 20   -  - 320 20
22035   22 122 222 322 122 22   -  -   -  -
22036   24 124 224 324 124 24 224 24   -  -
22037   26 126 226 326 126 26   -  -   -  -
22038   28 128 228 328 128 28   -  -   -  -
22039   30 130 230 330 130 30 230 30 330 30
22040   32 132 232 332 132 32   -  -   -  -
22041   34 134 234 334 134 34   -  -   -  -
22042   36 136 236 336 136 36 236 36   -  -
22043   38 138 238 338 138 38   -  -   -  -
22044   40 140 240 340 140 40   -  - 340 40
22045   42 142 242 342 142 42 242 42   -  -
22046   44 144 244 344 144 44   -  -   -  -
22047   46 146 246 346 146 46   -  -   -  -
22048   48 148 248 348 148 48 248 48   -  -
22049   50 150 250 350 150 50   -  - 350 50
22050   52 152 252 352 152 52   -  -   -  -
22051   54 154 254 354 154 54 254 54   -  -
22052   56 156 256 356 156 56   -  -   -  -
22053   58 158 258 358 158 58   -  -   -  -
22054   60 160 260 360 160 60 260 60 360 60
22055   62 162 262 362 162 62   -  -   -  -
22056   64 164 264 364 164 64   -  -   -  -
22057   66 166 266 366 166 66 266 66   -  -
22058   68 168 268 368 168 68   -  -   -  -
22059   70 170 270 370 170 70   -  - 370 70
22060   72 172 272 372 172 72 272 72   -  -
22061   74 174 274 374 174 74   -  -   -  -
22062   76 176 276 376 176 76   -  -   -  -
22063   78 178 278 378 178 78 278 78   -  -
22064   80 180 280 380 180 80   -  - 380 80
22065   82 182 282 382 182 82   -  -   -  -
22066   84 184 284 384 184 84 284 84   -  -
22067   86 186 286 386 186 86   -  -   -  -
22068   88 188 288 388 188 88   -  -   -  -
22069   90 190 290 390 190 90 290 90 390 90
22070   92 192 292 392 192 92   -  -   -  -
22071   94 194 294 394 194 94   -  -   -  -
22072    -   -   -   - 100  0   -  -   -  -
22073    -   -   -   -   -  -   -  - 300  0
22074    -   -   -   -   -  -   -  - 305  5
22075    -   -   -   -   -  -   -  - 315 15
22076    -   -   -   -   -  -   -  - 325 25
22077    -   -   -   -   -  -   -  - 335 35
22078    -   -   -   -   -  -   -  - 345 45
22079    -   -   -   -   -  -   -  - 355 55
22080    -   -   -   -   -  -   -  - 365 65
22081    -   -   -   -   -  -   -  - 375 75
22082    -   -   -   -   -  -   -  - 385 85
22083    -   -   -   -   -  -   -  - 395 95
22085 do_execsql_test joinD-752 {
22086   SELECT t1.*, t2.*, t3.*, t4.*
22087   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
22088   LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
22089   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
22090   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22091 } {
22092    2 102 202 302 102  2   -  -   -  -
22093    4 104 204 304 104  4   -  -   -  -
22094    6 106 206 306 106  6 206  6   -  -
22095    8 108 208 308 108  8   -  -   -  -
22096   10 110 210 310 110 10   -  - 310 10
22097   12 112 212 312 112 12 212 12   -  -
22098   14 114 214 314 114 14   -  -   -  -
22099   16 116 216 316 116 16   -  -   -  -
22100   18 118 218 318 118 18 218 18   -  -
22101   20 120 220 320 120 20   -  - 320 20
22102   22 122 222 322 122 22   -  -   -  -
22103   24 124 224 324 124 24 224 24   -  -
22104   26 126 226 326 126 26   -  -   -  -
22105   28 128 228 328 128 28   -  -   -  -
22106   30 130 230 330 130 30 230 30 330 30
22107   32 132 232 332 132 32   -  -   -  -
22108   34 134 234 334 134 34   -  -   -  -
22109   36 136 236 336 136 36 236 36   -  -
22110   38 138 238 338 138 38   -  -   -  -
22111   40 140 240 340 140 40   -  - 340 40
22112   42 142 242 342 142 42 242 42   -  -
22113   44 144 244 344 144 44   -  -   -  -
22114   46 146 246 346 146 46   -  -   -  -
22115   48 148 248 348 148 48 248 48   -  -
22116   50 150 250 350 150 50   -  - 350 50
22117   52 152 252 352 152 52   -  -   -  -
22118   54 154 254 354 154 54 254 54   -  -
22119   56 156 256 356 156 56   -  -   -  -
22120   58 158 258 358 158 58   -  -   -  -
22121   60 160 260 360 160 60 260 60 360 60
22122   62 162 262 362 162 62   -  -   -  -
22123   64 164 264 364 164 64   -  -   -  -
22124   66 166 266 366 166 66 266 66   -  -
22125   68 168 268 368 168 68   -  -   -  -
22126   70 170 270 370 170 70   -  - 370 70
22127   72 172 272 372 172 72 272 72   -  -
22128   74 174 274 374 174 74   -  -   -  -
22129   76 176 276 376 176 76   -  -   -  -
22130   78 178 278 378 178 78 278 78   -  -
22131   80 180 280 380 180 80   -  - 380 80
22132   82 182 282 382 182 82   -  -   -  -
22133   84 184 284 384 184 84 284 84   -  -
22134   86 186 286 386 186 86   -  -   -  -
22135   88 188 288 388 188 88   -  -   -  -
22136   90 190 290 390 190 90 290 90 390 90
22137   92 192 292 392 192 92   -  -   -  -
22138   94 194 294 394 194 94   -  -   -  -
22139    -   -   -   - 100  0   -  -   -  -
22140    -   -   -   -   -  -   -  - 300  0
22141    -   -   -   -   -  -   -  - 305  5
22142    -   -   -   -   -  -   -  - 315 15
22143    -   -   -   -   -  -   -  - 325 25
22144    -   -   -   -   -  -   -  - 335 35
22145    -   -   -   -   -  -   -  - 345 45
22146    -   -   -   -   -  -   -  - 355 55
22147    -   -   -   -   -  -   -  - 365 65
22148    -   -   -   -   -  -   -  - 375 75
22149    -   -   -   -   -  -   -  - 385 85
22150    -   -   -   -   -  -   -  - 395 95
22152 do_execsql_test joinD-753 {
22153   SELECT t1.*, t2.*, t3.*, t4.*
22154   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
22155   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22156   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
22157   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22158 } {
22159   30 130 230 330 130 30 230 30 330 30
22160   60 160 260 360 160 60 260 60 360 60
22161   90 190 290 390 190 90 290 90 390 90
22163 do_execsql_test joinD-754 {
22164   SELECT t1.*, t2.*, t3.*, t4.*
22165   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
22166   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22167   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
22168   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22169 } {
22170   30 130 230 330 130 30 230 30 330 30
22171   60 160 260 360 160 60 260 60 360 60
22172   90 190 290 390 190 90 290 90 390 90
22174 do_execsql_test joinD-755 {
22175   SELECT t1.*, t2.*, t3.*, t4.*
22176   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
22177   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22178   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
22179   WHERE t2.x>0
22180   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22181 } {
22182   30 130 230 330 130 30 230 30 330 30
22183   60 160 260 360 160 60 260 60 360 60
22184   90 190 290 390 190 90 290 90 390 90
22186 do_execsql_test joinD-756 {
22187   SELECT t1.*, t2.*, t3.*, t4.*
22188   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
22189   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22190   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
22191   WHERE (t2.x>0 OR t2.x IS NULL)
22192   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22193 } {
22194   30 130 230 330 130 30 230 30 330 30
22195   60 160 260 360 160 60 260 60 360 60
22196   90 190 290 390 190 90 290 90 390 90
22198 do_execsql_test joinD-757 {
22199   SELECT t1.*, t2.*, t3.*, t4.*
22200   FROM t1 RIGHT JOIN t2 ON true
22201   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22202   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
22203   WHERE t1.b=t2.b AND t2.x>0
22204   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22205 } {
22206   30 130 230 330 130 30 230 30 330 30
22207   60 160 260 360 160 60 260 60 360 60
22208   90 190 290 390 190 90 290 90 390 90
22210 do_execsql_test joinD-758 {
22211   SELECT t1.*, t2.*, t3.*, t4.*
22212   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
22213   RIGHT JOIN t3 ON t1.c=t3.c
22214   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
22215   WHERE t3.y>0
22216   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22217 } {
22218   30 130 230 330 130 30 230 30 330 30
22219   60 160 260 360 160 60 260 60 360 60
22220   90 190 290 390 190 90 290 90 390 90
22222 do_execsql_test joinD-759 {
22223   SELECT t1.*, t2.*, t3.*, t4.*
22224   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
22225   RIGHT JOIN t3 ON t1.c=t3.c
22226   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
22227   WHERE t3.y>0 OR t3.y IS NULL
22228   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22229 } {
22230   30 130 230 330 130 30 230 30 330 30
22231   60 160 260 360 160 60 260 60 360 60
22232   90 190 290 390 190 90 290 90 390 90
22234 do_execsql_test joinD-760 {
22235   SELECT t1.*, t2.*, t3.*, t4.*
22236   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
22237   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22238   INNER JOIN t4 ON t1.d=t4.d
22239   WHERE t4.z>0
22240   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22241 } {
22242   30 130 230 330 130 30 230 30 330 30
22243   60 160 260 360 160 60 260 60 360 60
22244   90 190 290 390 190 90 290 90 390 90
22246 do_execsql_test joinD-761 {
22247   SELECT t1.*, t2.*, t3.*, t4.*
22248   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
22249   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22250   INNER JOIN t4 ON t1.d=t4.d
22251   WHERE t4.z IS NULL OR t4.z>0
22252   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22253 } {
22254   30 130 230 330 130 30 230 30 330 30
22255   60 160 260 360 160 60 260 60 360 60
22256   90 190 290 390 190 90 290 90 390 90
22258 do_execsql_test joinD-762 {
22259   SELECT t1.*, t2.*, t3.*, t4.*
22260   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
22261   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22262   INNER JOIN t4 ON t1.d=t4.d
22263   WHERE t2.x>0 AND t4.z>0
22264   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22265 } {
22266   30 130 230 330 130 30 230 30 330 30
22267   60 160 260 360 160 60 260 60 360 60
22268   90 190 290 390 190 90 290 90 390 90
22270 do_execsql_test joinD-763 {
22271   SELECT t1.*, t2.*, t3.*, t4.*
22272   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
22273   RIGHT JOIN t3 ON t1.c=t3.c
22274   INNER JOIN t4 ON t1.d=t4.d
22275   WHERE t4.z>0 AND t3.y>0
22276   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22277 } {
22278   30 130 230 330 130 30 230 30 330 30
22279   60 160 260 360 160 60 260 60 360 60
22280   90 190 290 390 190 90 290 90 390 90
22282 do_execsql_test joinD-764 {
22283   SELECT t1.*, t2.*, t3.*, t4.*
22284   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
22285   RIGHT JOIN t3 ON t1.c=t3.c
22286   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
22287   WHERE t2.x>0 AND t3.y>0
22288   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22289 } {
22290   30 130 230 330 130 30 230 30 330 30
22291   60 160 260 360 160 60 260 60 360 60
22292   90 190 290 390 190 90 290 90 390 90
22294 do_execsql_test joinD-765 {
22295   SELECT t1.*, t2.*, t3.*, t4.*
22296   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
22297   RIGHT JOIN t3 ON t1.c=t3.c
22298   INNER JOIN t4 ON t1.d=t4.d
22299   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
22300   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22301 } {
22302   30 130 230 330 130 30 230 30 330 30
22303   60 160 260 360 160 60 260 60 360 60
22304   90 190 290 390 190 90 290 90 390 90
22306 do_execsql_test joinD-766 {
22307   SELECT t1.*, t2.*, t3.*, t4.*
22308   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
22309   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
22310   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
22311   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22312 } {
22313   30 130 230 330 130 30 230 30 330 30
22314   60 160 260 360 160 60 260 60 360 60
22315   90 190 290 390 190 90 290 90 390 90
22317 do_execsql_test joinD-767 {
22318   SELECT t1.*, t2.*, t3.*, t4.*
22319   FROM t1 RIGHT JOIN t2 ON t2.x>0
22320   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
22321   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
22322   WHERE t1.b IS NOT DISTINCT FROM t2.b
22323   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22324 } {
22325   30 130 230 330 130 30 230 30 330 30
22326   60 160 260 360 160 60 260 60 360 60
22327   90 190 290 390 190 90 290 90 390 90
22329 do_execsql_test joinD-768 {
22330   SELECT t1.*, t2.*, t3.*, t4.*
22331   FROM t1 RIGHT JOIN t2 ON t2.x>0
22332   RIGHT JOIN t3 ON t3.y>0
22333   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
22334   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
22335   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22336 } {
22337   30 130 230 330 130 30 230 30 330 30
22338   60 160 260 360 160 60 260 60 360 60
22339   90 190 290 390 190 90 290 90 390 90
22341 do_execsql_test joinD-769 {
22342   SELECT t1.*, t2.*, t3.*, t4.*
22343   FROM t1 RIGHT JOIN t2 ON t2.x>0
22344   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
22345   INNER JOIN t4 ON t4.z>0
22346   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
22347   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22348 } {
22349   30 130 230 330 130 30 230 30 330 30
22350   60 160 260 360 160 60 260 60 360 60
22351   90 190 290 390 190 90 290 90 390 90
22353 do_execsql_test joinD-770 {
22354   SELECT t1.*, t2.*, t3.*, t4.*
22355   FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
22356   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22357   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
22358   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22359 } {
22360   30 130 230 330 130 30 230 30 330 30
22361   60 160 260 360 160 60 260 60 360 60
22362   90 190 290 390 190 90 290 90 390 90
22364 do_execsql_test joinD-771 {
22365   SELECT t1.*, t2.*, t3.*, t4.*
22366   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
22367   RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
22368   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
22369   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22370 } {
22371   30 130 230 330 130 30 230 30 330 30
22372   60 160 260 360 160 60 260 60 360 60
22373   90 190 290 390 190 90 290 90 390 90
22375 do_execsql_test joinD-772 {
22376   SELECT t1.*, t2.*, t3.*, t4.*
22377   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
22378   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22379   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
22380   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22381 } {
22382    6 106 206 306 106  6 206  6   -  -
22383   12 112 212 312 112 12 212 12   -  -
22384   18 118 218 318 118 18 218 18   -  -
22385   24 124 224 324 124 24 224 24   -  -
22386   30 130 230 330 130 30 230 30 330 30
22387   36 136 236 336 136 36 236 36   -  -
22388   42 142 242 342 142 42 242 42   -  -
22389   48 148 248 348 148 48 248 48   -  -
22390   54 154 254 354 154 54 254 54   -  -
22391   60 160 260 360 160 60 260 60 360 60
22392   66 166 266 366 166 66 266 66   -  -
22393   72 172 272 372 172 72 272 72   -  -
22394   78 178 278 378 178 78 278 78   -  -
22395   84 184 284 384 184 84 284 84   -  -
22396   90 190 290 390 190 90 290 90 390 90
22397    -   -   -   -   -  - 200  0   -  -
22398    -   -   -   -   -  - 203  3   -  -
22399    -   -   -   -   -  - 209  9   -  -
22400    -   -   -   -   -  - 215 15   -  -
22401    -   -   -   -   -  - 221 21   -  -
22402    -   -   -   -   -  - 227 27   -  -
22403    -   -   -   -   -  - 233 33   -  -
22404    -   -   -   -   -  - 239 39   -  -
22405    -   -   -   -   -  - 245 45   -  -
22406    -   -   -   -   -  - 251 51   -  -
22407    -   -   -   -   -  - 257 57   -  -
22408    -   -   -   -   -  - 263 63   -  -
22409    -   -   -   -   -  - 269 69   -  -
22410    -   -   -   -   -  - 275 75   -  -
22411    -   -   -   -   -  - 281 81   -  -
22412    -   -   -   -   -  - 287 87   -  -
22413    -   -   -   -   -  - 293 93   -  -
22415 do_execsql_test joinD-773 {
22416   SELECT t1.*, t2.*, t3.*, t4.*
22417   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
22418   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22419   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
22420   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22421 } {
22422    6 106 206 306 106  6 206  6   -  -
22423   12 112 212 312 112 12 212 12   -  -
22424   18 118 218 318 118 18 218 18   -  -
22425   24 124 224 324 124 24 224 24   -  -
22426   30 130 230 330 130 30 230 30 330 30
22427   36 136 236 336 136 36 236 36   -  -
22428   42 142 242 342 142 42 242 42   -  -
22429   48 148 248 348 148 48 248 48   -  -
22430   54 154 254 354 154 54 254 54   -  -
22431   60 160 260 360 160 60 260 60 360 60
22432   66 166 266 366 166 66 266 66   -  -
22433   72 172 272 372 172 72 272 72   -  -
22434   78 178 278 378 178 78 278 78   -  -
22435   84 184 284 384 184 84 284 84   -  -
22436   90 190 290 390 190 90 290 90 390 90
22437    -   -   -   -   -  - 200  0   -  -
22438    -   -   -   -   -  - 203  3   -  -
22439    -   -   -   -   -  - 209  9   -  -
22440    -   -   -   -   -  - 215 15   -  -
22441    -   -   -   -   -  - 221 21   -  -
22442    -   -   -   -   -  - 227 27   -  -
22443    -   -   -   -   -  - 233 33   -  -
22444    -   -   -   -   -  - 239 39   -  -
22445    -   -   -   -   -  - 245 45   -  -
22446    -   -   -   -   -  - 251 51   -  -
22447    -   -   -   -   -  - 257 57   -  -
22448    -   -   -   -   -  - 263 63   -  -
22449    -   -   -   -   -  - 269 69   -  -
22450    -   -   -   -   -  - 275 75   -  -
22451    -   -   -   -   -  - 281 81   -  -
22452    -   -   -   -   -  - 287 87   -  -
22453    -   -   -   -   -  - 293 93   -  -
22455 do_execsql_test joinD-774 {
22456   SELECT t1.*, t2.*, t3.*, t4.*
22457   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
22458   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22459   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
22460   WHERE t2.x>0
22461   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22462 } {
22463    6 106 206 306 106  6 206  6   -  -
22464   12 112 212 312 112 12 212 12   -  -
22465   18 118 218 318 118 18 218 18   -  -
22466   24 124 224 324 124 24 224 24   -  -
22467   30 130 230 330 130 30 230 30 330 30
22468   36 136 236 336 136 36 236 36   -  -
22469   42 142 242 342 142 42 242 42   -  -
22470   48 148 248 348 148 48 248 48   -  -
22471   54 154 254 354 154 54 254 54   -  -
22472   60 160 260 360 160 60 260 60 360 60
22473   66 166 266 366 166 66 266 66   -  -
22474   72 172 272 372 172 72 272 72   -  -
22475   78 178 278 378 178 78 278 78   -  -
22476   84 184 284 384 184 84 284 84   -  -
22477   90 190 290 390 190 90 290 90 390 90
22479 do_execsql_test joinD-775 {
22480   SELECT t1.*, t2.*, t3.*, t4.*
22481   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
22482   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22483   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
22484   WHERE (t2.x>0 OR t2.x IS NULL)
22485   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22486 } {
22487    6 106 206 306 106  6 206  6   -  -
22488   12 112 212 312 112 12 212 12   -  -
22489   18 118 218 318 118 18 218 18   -  -
22490   24 124 224 324 124 24 224 24   -  -
22491   30 130 230 330 130 30 230 30 330 30
22492   36 136 236 336 136 36 236 36   -  -
22493   42 142 242 342 142 42 242 42   -  -
22494   48 148 248 348 148 48 248 48   -  -
22495   54 154 254 354 154 54 254 54   -  -
22496   60 160 260 360 160 60 260 60 360 60
22497   66 166 266 366 166 66 266 66   -  -
22498   72 172 272 372 172 72 272 72   -  -
22499   78 178 278 378 178 78 278 78   -  -
22500   84 184 284 384 184 84 284 84   -  -
22501   90 190 290 390 190 90 290 90 390 90
22502    -   -   -   -   -  - 200  0   -  -
22503    -   -   -   -   -  - 203  3   -  -
22504    -   -   -   -   -  - 209  9   -  -
22505    -   -   -   -   -  - 215 15   -  -
22506    -   -   -   -   -  - 221 21   -  -
22507    -   -   -   -   -  - 227 27   -  -
22508    -   -   -   -   -  - 233 33   -  -
22509    -   -   -   -   -  - 239 39   -  -
22510    -   -   -   -   -  - 245 45   -  -
22511    -   -   -   -   -  - 251 51   -  -
22512    -   -   -   -   -  - 257 57   -  -
22513    -   -   -   -   -  - 263 63   -  -
22514    -   -   -   -   -  - 269 69   -  -
22515    -   -   -   -   -  - 275 75   -  -
22516    -   -   -   -   -  - 281 81   -  -
22517    -   -   -   -   -  - 287 87   -  -
22518    -   -   -   -   -  - 293 93   -  -
22520 do_execsql_test joinD-776 {
22521   SELECT t1.*, t2.*, t3.*, t4.*
22522   FROM t1 RIGHT JOIN t2 ON true
22523   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22524   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
22525   WHERE t1.b=t2.b AND t2.x>0
22526   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22527 } {
22528    6 106 206 306 106  6 206  6   -  -
22529   12 112 212 312 112 12 212 12   -  -
22530   18 118 218 318 118 18 218 18   -  -
22531   24 124 224 324 124 24 224 24   -  -
22532   30 130 230 330 130 30 230 30 330 30
22533   36 136 236 336 136 36 236 36   -  -
22534   42 142 242 342 142 42 242 42   -  -
22535   48 148 248 348 148 48 248 48   -  -
22536   54 154 254 354 154 54 254 54   -  -
22537   60 160 260 360 160 60 260 60 360 60
22538   66 166 266 366 166 66 266 66   -  -
22539   72 172 272 372 172 72 272 72   -  -
22540   78 178 278 378 178 78 278 78   -  -
22541   84 184 284 384 184 84 284 84   -  -
22542   90 190 290 390 190 90 290 90 390 90
22544 do_execsql_test joinD-777 {
22545   SELECT t1.*, t2.*, t3.*, t4.*
22546   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
22547   RIGHT JOIN t3 ON t1.c=t3.c
22548   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
22549   WHERE t3.y>0
22550   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22551 } {
22552    6 106 206 306 106  6 206  6   -  -
22553   12 112 212 312 112 12 212 12   -  -
22554   18 118 218 318 118 18 218 18   -  -
22555   24 124 224 324 124 24 224 24   -  -
22556   30 130 230 330 130 30 230 30 330 30
22557   36 136 236 336 136 36 236 36   -  -
22558   42 142 242 342 142 42 242 42   -  -
22559   48 148 248 348 148 48 248 48   -  -
22560   54 154 254 354 154 54 254 54   -  -
22561   60 160 260 360 160 60 260 60 360 60
22562   66 166 266 366 166 66 266 66   -  -
22563   72 172 272 372 172 72 272 72   -  -
22564   78 178 278 378 178 78 278 78   -  -
22565   84 184 284 384 184 84 284 84   -  -
22566   90 190 290 390 190 90 290 90 390 90
22567    -   -   -   -   -  - 203  3   -  -
22568    -   -   -   -   -  - 209  9   -  -
22569    -   -   -   -   -  - 215 15   -  -
22570    -   -   -   -   -  - 221 21   -  -
22571    -   -   -   -   -  - 227 27   -  -
22572    -   -   -   -   -  - 233 33   -  -
22573    -   -   -   -   -  - 239 39   -  -
22574    -   -   -   -   -  - 245 45   -  -
22575    -   -   -   -   -  - 251 51   -  -
22576    -   -   -   -   -  - 257 57   -  -
22577    -   -   -   -   -  - 263 63   -  -
22578    -   -   -   -   -  - 269 69   -  -
22579    -   -   -   -   -  - 275 75   -  -
22580    -   -   -   -   -  - 281 81   -  -
22581    -   -   -   -   -  - 287 87   -  -
22582    -   -   -   -   -  - 293 93   -  -
22584 do_execsql_test joinD-778 {
22585   SELECT t1.*, t2.*, t3.*, t4.*
22586   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
22587   RIGHT JOIN t3 ON t1.c=t3.c
22588   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
22589   WHERE t3.y>0 OR t3.y IS NULL
22590   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22591 } {
22592    6 106 206 306 106  6 206  6   -  -
22593   12 112 212 312 112 12 212 12   -  -
22594   18 118 218 318 118 18 218 18   -  -
22595   24 124 224 324 124 24 224 24   -  -
22596   30 130 230 330 130 30 230 30 330 30
22597   36 136 236 336 136 36 236 36   -  -
22598   42 142 242 342 142 42 242 42   -  -
22599   48 148 248 348 148 48 248 48   -  -
22600   54 154 254 354 154 54 254 54   -  -
22601   60 160 260 360 160 60 260 60 360 60
22602   66 166 266 366 166 66 266 66   -  -
22603   72 172 272 372 172 72 272 72   -  -
22604   78 178 278 378 178 78 278 78   -  -
22605   84 184 284 384 184 84 284 84   -  -
22606   90 190 290 390 190 90 290 90 390 90
22607    -   -   -   -   -  - 203  3   -  -
22608    -   -   -   -   -  - 209  9   -  -
22609    -   -   -   -   -  - 215 15   -  -
22610    -   -   -   -   -  - 221 21   -  -
22611    -   -   -   -   -  - 227 27   -  -
22612    -   -   -   -   -  - 233 33   -  -
22613    -   -   -   -   -  - 239 39   -  -
22614    -   -   -   -   -  - 245 45   -  -
22615    -   -   -   -   -  - 251 51   -  -
22616    -   -   -   -   -  - 257 57   -  -
22617    -   -   -   -   -  - 263 63   -  -
22618    -   -   -   -   -  - 269 69   -  -
22619    -   -   -   -   -  - 275 75   -  -
22620    -   -   -   -   -  - 281 81   -  -
22621    -   -   -   -   -  - 287 87   -  -
22622    -   -   -   -   -  - 293 93   -  -
22624 do_execsql_test joinD-779 {
22625   SELECT t1.*, t2.*, t3.*, t4.*
22626   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
22627   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22628   LEFT JOIN t4 ON t1.d=t4.d
22629   WHERE t4.z>0
22630   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22631 } {
22632   30 130 230 330 130 30 230 30 330 30
22633   60 160 260 360 160 60 260 60 360 60
22634   90 190 290 390 190 90 290 90 390 90
22636 do_execsql_test joinD-780 {
22637   SELECT t1.*, t2.*, t3.*, t4.*
22638   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
22639   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22640   LEFT JOIN t4 ON t1.d=t4.d
22641   WHERE t4.z IS NULL OR t4.z>0
22642   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22643 } {
22644    6 106 206 306 106  6 206  6   -  -
22645   12 112 212 312 112 12 212 12   -  -
22646   18 118 218 318 118 18 218 18   -  -
22647   24 124 224 324 124 24 224 24   -  -
22648   30 130 230 330 130 30 230 30 330 30
22649   36 136 236 336 136 36 236 36   -  -
22650   42 142 242 342 142 42 242 42   -  -
22651   48 148 248 348 148 48 248 48   -  -
22652   54 154 254 354 154 54 254 54   -  -
22653   60 160 260 360 160 60 260 60 360 60
22654   66 166 266 366 166 66 266 66   -  -
22655   72 172 272 372 172 72 272 72   -  -
22656   78 178 278 378 178 78 278 78   -  -
22657   84 184 284 384 184 84 284 84   -  -
22658   90 190 290 390 190 90 290 90 390 90
22659    -   -   -   -   -  - 200  0   -  -
22660    -   -   -   -   -  - 203  3   -  -
22661    -   -   -   -   -  - 209  9   -  -
22662    -   -   -   -   -  - 215 15   -  -
22663    -   -   -   -   -  - 221 21   -  -
22664    -   -   -   -   -  - 227 27   -  -
22665    -   -   -   -   -  - 233 33   -  -
22666    -   -   -   -   -  - 239 39   -  -
22667    -   -   -   -   -  - 245 45   -  -
22668    -   -   -   -   -  - 251 51   -  -
22669    -   -   -   -   -  - 257 57   -  -
22670    -   -   -   -   -  - 263 63   -  -
22671    -   -   -   -   -  - 269 69   -  -
22672    -   -   -   -   -  - 275 75   -  -
22673    -   -   -   -   -  - 281 81   -  -
22674    -   -   -   -   -  - 287 87   -  -
22675    -   -   -   -   -  - 293 93   -  -
22677 do_execsql_test joinD-781 {
22678   SELECT t1.*, t2.*, t3.*, t4.*
22679   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
22680   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22681   LEFT JOIN t4 ON t1.d=t4.d
22682   WHERE t2.x>0 AND t4.z>0
22683   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22684 } {
22685   30 130 230 330 130 30 230 30 330 30
22686   60 160 260 360 160 60 260 60 360 60
22687   90 190 290 390 190 90 290 90 390 90
22689 do_execsql_test joinD-782 {
22690   SELECT t1.*, t2.*, t3.*, t4.*
22691   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
22692   RIGHT JOIN t3 ON t1.c=t3.c
22693   LEFT JOIN t4 ON t1.d=t4.d
22694   WHERE t4.z>0 AND t3.y>0
22695   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22696 } {
22697   30 130 230 330 130 30 230 30 330 30
22698   60 160 260 360 160 60 260 60 360 60
22699   90 190 290 390 190 90 290 90 390 90
22701 do_execsql_test joinD-783 {
22702   SELECT t1.*, t2.*, t3.*, t4.*
22703   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
22704   RIGHT JOIN t3 ON t1.c=t3.c
22705   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
22706   WHERE t2.x>0 AND t3.y>0
22707   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22708 } {
22709    6 106 206 306 106  6 206  6   -  -
22710   12 112 212 312 112 12 212 12   -  -
22711   18 118 218 318 118 18 218 18   -  -
22712   24 124 224 324 124 24 224 24   -  -
22713   30 130 230 330 130 30 230 30 330 30
22714   36 136 236 336 136 36 236 36   -  -
22715   42 142 242 342 142 42 242 42   -  -
22716   48 148 248 348 148 48 248 48   -  -
22717   54 154 254 354 154 54 254 54   -  -
22718   60 160 260 360 160 60 260 60 360 60
22719   66 166 266 366 166 66 266 66   -  -
22720   72 172 272 372 172 72 272 72   -  -
22721   78 178 278 378 178 78 278 78   -  -
22722   84 184 284 384 184 84 284 84   -  -
22723   90 190 290 390 190 90 290 90 390 90
22725 do_execsql_test joinD-784 {
22726   SELECT t1.*, t2.*, t3.*, t4.*
22727   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
22728   RIGHT JOIN t3 ON t1.c=t3.c
22729   LEFT JOIN t4 ON t1.d=t4.d
22730   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
22731   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22732 } {
22733   30 130 230 330 130 30 230 30 330 30
22734   60 160 260 360 160 60 260 60 360 60
22735   90 190 290 390 190 90 290 90 390 90
22737 do_execsql_test joinD-785 {
22738   SELECT t1.*, t2.*, t3.*, t4.*
22739   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
22740   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
22741   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
22742   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22743 } {
22744    6 106 206 306 106  6 206  6   -  -
22745   12 112 212 312 112 12 212 12   -  -
22746   18 118 218 318 118 18 218 18   -  -
22747   24 124 224 324 124 24 224 24   -  -
22748   30 130 230 330 130 30 230 30 330 30
22749   36 136 236 336 136 36 236 36   -  -
22750   42 142 242 342 142 42 242 42   -  -
22751   48 148 248 348 148 48 248 48   -  -
22752   54 154 254 354 154 54 254 54   -  -
22753   60 160 260 360 160 60 260 60 360 60
22754   66 166 266 366 166 66 266 66   -  -
22755   72 172 272 372 172 72 272 72   -  -
22756   78 178 278 378 178 78 278 78   -  -
22757   84 184 284 384 184 84 284 84   -  -
22758   90 190 290 390 190 90 290 90 390 90
22759    -   -   -   -   -  - 200  0   -  -
22760    -   -   -   -   -  - 203  3   -  -
22761    -   -   -   -   -  - 209  9   -  -
22762    -   -   -   -   -  - 215 15   -  -
22763    -   -   -   -   -  - 221 21   -  -
22764    -   -   -   -   -  - 227 27   -  -
22765    -   -   -   -   -  - 233 33   -  -
22766    -   -   -   -   -  - 239 39   -  -
22767    -   -   -   -   -  - 245 45   -  -
22768    -   -   -   -   -  - 251 51   -  -
22769    -   -   -   -   -  - 257 57   -  -
22770    -   -   -   -   -  - 263 63   -  -
22771    -   -   -   -   -  - 269 69   -  -
22772    -   -   -   -   -  - 275 75   -  -
22773    -   -   -   -   -  - 281 81   -  -
22774    -   -   -   -   -  - 287 87   -  -
22775    -   -   -   -   -  - 293 93   -  -
22777 do_execsql_test joinD-786 {
22778   SELECT t1.*, t2.*, t3.*, t4.*
22779   FROM t1 RIGHT JOIN t2 ON t2.x>0
22780   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
22781   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
22782   WHERE t1.b IS NOT DISTINCT FROM t2.b
22783   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22784 } {
22785    6 106 206 306 106  6 206  6   -  -
22786   12 112 212 312 112 12 212 12   -  -
22787   18 118 218 318 118 18 218 18   -  -
22788   24 124 224 324 124 24 224 24   -  -
22789   30 130 230 330 130 30 230 30 330 30
22790   36 136 236 336 136 36 236 36   -  -
22791   42 142 242 342 142 42 242 42   -  -
22792   48 148 248 348 148 48 248 48   -  -
22793   54 154 254 354 154 54 254 54   -  -
22794   60 160 260 360 160 60 260 60 360 60
22795   66 166 266 366 166 66 266 66   -  -
22796   72 172 272 372 172 72 272 72   -  -
22797   78 178 278 378 178 78 278 78   -  -
22798   84 184 284 384 184 84 284 84   -  -
22799   90 190 290 390 190 90 290 90 390 90
22800    -   -   -   -   -  - 200  0   -  -
22802 do_execsql_test joinD-787 {
22803   SELECT t1.*, t2.*, t3.*, t4.*
22804   FROM t1 RIGHT JOIN t2 ON t2.x>0
22805   RIGHT JOIN t3 ON t3.y>0
22806   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
22807   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
22808   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22809 } {
22810    6 106 206 306 106  6 206  6   -  -
22811   12 112 212 312 112 12 212 12   -  -
22812   18 118 218 318 118 18 218 18   -  -
22813   24 124 224 324 124 24 224 24   -  -
22814   30 130 230 330 130 30 230 30 330 30
22815   36 136 236 336 136 36 236 36   -  -
22816   42 142 242 342 142 42 242 42   -  -
22817   48 148 248 348 148 48 248 48   -  -
22818   54 154 254 354 154 54 254 54   -  -
22819   60 160 260 360 160 60 260 60 360 60
22820   66 166 266 366 166 66 266 66   -  -
22821   72 172 272 372 172 72 272 72   -  -
22822   78 178 278 378 178 78 278 78   -  -
22823   84 184 284 384 184 84 284 84   -  -
22824   90 190 290 390 190 90 290 90 390 90
22826 do_execsql_test joinD-788 {
22827   SELECT t1.*, t2.*, t3.*, t4.*
22828   FROM t1 RIGHT JOIN t2 ON t2.x>0
22829   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
22830   LEFT JOIN t4 ON t4.z>0
22831   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
22832   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22833 } {
22834   30 130 230 330 130 30 230 30 330 30
22835   60 160 260 360 160 60 260 60 360 60
22836   90 190 290 390 190 90 290 90 390 90
22838 do_execsql_test joinD-789 {
22839   SELECT t1.*, t2.*, t3.*, t4.*
22840   FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
22841   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22842   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
22843   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22844 } {
22845    6 106 206 306 106  6 206  6   -  -
22846   12 112 212 312 112 12 212 12   -  -
22847   18 118 218 318 118 18 218 18   -  -
22848   24 124 224 324 124 24 224 24   -  -
22849   30 130 230 330 130 30 230 30 330 30
22850   36 136 236 336 136 36 236 36   -  -
22851   42 142 242 342 142 42 242 42   -  -
22852   48 148 248 348 148 48 248 48   -  -
22853   54 154 254 354 154 54 254 54   -  -
22854   60 160 260 360 160 60 260 60 360 60
22855   66 166 266 366 166 66 266 66   -  -
22856   72 172 272 372 172 72 272 72   -  -
22857   78 178 278 378 178 78 278 78   -  -
22858   84 184 284 384 184 84 284 84   -  -
22859   90 190 290 390 190 90 290 90 390 90
22860    -   -   -   -   -  - 200  0   -  -
22861    -   -   -   -   -  - 203  3   -  -
22862    -   -   -   -   -  - 209  9   -  -
22863    -   -   -   -   -  - 215 15   -  -
22864    -   -   -   -   -  - 221 21   -  -
22865    -   -   -   -   -  - 227 27   -  -
22866    -   -   -   -   -  - 233 33   -  -
22867    -   -   -   -   -  - 239 39   -  -
22868    -   -   -   -   -  - 245 45   -  -
22869    -   -   -   -   -  - 251 51   -  -
22870    -   -   -   -   -  - 257 57   -  -
22871    -   -   -   -   -  - 263 63   -  -
22872    -   -   -   -   -  - 269 69   -  -
22873    -   -   -   -   -  - 275 75   -  -
22874    -   -   -   -   -  - 281 81   -  -
22875    -   -   -   -   -  - 287 87   -  -
22876    -   -   -   -   -  - 293 93   -  -
22878 do_execsql_test joinD-790 {
22879   SELECT t1.*, t2.*, t3.*, t4.*
22880   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
22881   RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
22882   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
22883   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22884 } {
22885    6 106 206 306 106  6 206  6   -  -
22886   12 112 212 312 112 12 212 12   -  -
22887   18 118 218 318 118 18 218 18   -  -
22888   24 124 224 324 124 24 224 24   -  -
22889   30 130 230 330 130 30 230 30 330 30
22890   36 136 236 336 136 36 236 36   -  -
22891   42 142 242 342 142 42 242 42   -  -
22892   48 148 248 348 148 48 248 48   -  -
22893   54 154 254 354 154 54 254 54   -  -
22894   60 160 260 360 160 60 260 60 360 60
22895   66 166 266 366 166 66 266 66   -  -
22896   72 172 272 372 172 72 272 72   -  -
22897   78 178 278 378 178 78 278 78   -  -
22898   84 184 284 384 184 84 284 84   -  -
22899   90 190 290 390 190 90 290 90 390 90
22900    -   -   -   -   -  - 200  0   -  -
22901    -   -   -   -   -  - 203  3   -  -
22902    -   -   -   -   -  - 209  9   -  -
22903    -   -   -   -   -  - 215 15   -  -
22904    -   -   -   -   -  - 221 21   -  -
22905    -   -   -   -   -  - 227 27   -  -
22906    -   -   -   -   -  - 233 33   -  -
22907    -   -   -   -   -  - 239 39   -  -
22908    -   -   -   -   -  - 245 45   -  -
22909    -   -   -   -   -  - 251 51   -  -
22910    -   -   -   -   -  - 257 57   -  -
22911    -   -   -   -   -  - 263 63   -  -
22912    -   -   -   -   -  - 269 69   -  -
22913    -   -   -   -   -  - 275 75   -  -
22914    -   -   -   -   -  - 281 81   -  -
22915    -   -   -   -   -  - 287 87   -  -
22916    -   -   -   -   -  - 293 93   -  -
22918 do_execsql_test joinD-791 {
22919   SELECT t1.*, t2.*, t3.*, t4.*
22920   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
22921   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22922   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
22923   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22924 } {
22925   30 130 230 330 130 30 230 30 330 30
22926   60 160 260 360 160 60 260 60 360 60
22927   90 190 290 390 190 90 290 90 390 90
22928    -   -   -   -   -  -   -  - 300  0
22929    -   -   -   -   -  -   -  - 305  5
22930    -   -   -   -   -  -   -  - 310 10
22931    -   -   -   -   -  -   -  - 315 15
22932    -   -   -   -   -  -   -  - 320 20
22933    -   -   -   -   -  -   -  - 325 25
22934    -   -   -   -   -  -   -  - 335 35
22935    -   -   -   -   -  -   -  - 340 40
22936    -   -   -   -   -  -   -  - 345 45
22937    -   -   -   -   -  -   -  - 350 50
22938    -   -   -   -   -  -   -  - 355 55
22939    -   -   -   -   -  -   -  - 365 65
22940    -   -   -   -   -  -   -  - 370 70
22941    -   -   -   -   -  -   -  - 375 75
22942    -   -   -   -   -  -   -  - 380 80
22943    -   -   -   -   -  -   -  - 385 85
22944    -   -   -   -   -  -   -  - 395 95
22946 do_execsql_test joinD-792 {
22947   SELECT t1.*, t2.*, t3.*, t4.*
22948   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
22949   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22950   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
22951   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22952 } {
22953   30 130 230 330 130 30 230 30 330 30
22954   60 160 260 360 160 60 260 60 360 60
22955   90 190 290 390 190 90 290 90 390 90
22956    -   -   -   -   -  -   -  - 300  0
22957    -   -   -   -   -  -   -  - 305  5
22958    -   -   -   -   -  -   -  - 310 10
22959    -   -   -   -   -  -   -  - 315 15
22960    -   -   -   -   -  -   -  - 320 20
22961    -   -   -   -   -  -   -  - 325 25
22962    -   -   -   -   -  -   -  - 335 35
22963    -   -   -   -   -  -   -  - 340 40
22964    -   -   -   -   -  -   -  - 345 45
22965    -   -   -   -   -  -   -  - 350 50
22966    -   -   -   -   -  -   -  - 355 55
22967    -   -   -   -   -  -   -  - 365 65
22968    -   -   -   -   -  -   -  - 370 70
22969    -   -   -   -   -  -   -  - 375 75
22970    -   -   -   -   -  -   -  - 380 80
22971    -   -   -   -   -  -   -  - 385 85
22972    -   -   -   -   -  -   -  - 395 95
22974 do_execsql_test joinD-793 {
22975   SELECT t1.*, t2.*, t3.*, t4.*
22976   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
22977   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22978   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
22979   WHERE t2.x>0
22980   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22981 } {
22982   30 130 230 330 130 30 230 30 330 30
22983   60 160 260 360 160 60 260 60 360 60
22984   90 190 290 390 190 90 290 90 390 90
22986 do_execsql_test joinD-794 {
22987   SELECT t1.*, t2.*, t3.*, t4.*
22988   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
22989   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
22990   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
22991   WHERE (t2.x>0 OR t2.x IS NULL)
22992   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
22993 } {
22994   30 130 230 330 130 30 230 30 330 30
22995   60 160 260 360 160 60 260 60 360 60
22996   90 190 290 390 190 90 290 90 390 90
22997    -   -   -   -   -  -   -  - 300  0
22998    -   -   -   -   -  -   -  - 305  5
22999    -   -   -   -   -  -   -  - 310 10
23000    -   -   -   -   -  -   -  - 315 15
23001    -   -   -   -   -  -   -  - 320 20
23002    -   -   -   -   -  -   -  - 325 25
23003    -   -   -   -   -  -   -  - 335 35
23004    -   -   -   -   -  -   -  - 340 40
23005    -   -   -   -   -  -   -  - 345 45
23006    -   -   -   -   -  -   -  - 350 50
23007    -   -   -   -   -  -   -  - 355 55
23008    -   -   -   -   -  -   -  - 365 65
23009    -   -   -   -   -  -   -  - 370 70
23010    -   -   -   -   -  -   -  - 375 75
23011    -   -   -   -   -  -   -  - 380 80
23012    -   -   -   -   -  -   -  - 385 85
23013    -   -   -   -   -  -   -  - 395 95
23015 do_execsql_test joinD-795 {
23016   SELECT t1.*, t2.*, t3.*, t4.*
23017   FROM t1 RIGHT JOIN t2 ON true
23018   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
23019   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
23020   WHERE t1.b=t2.b AND t2.x>0
23021   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23022 } {
23023   30 130 230 330 130 30 230 30 330 30
23024   60 160 260 360 160 60 260 60 360 60
23025   90 190 290 390 190 90 290 90 390 90
23027 do_execsql_test joinD-796 {
23028   SELECT t1.*, t2.*, t3.*, t4.*
23029   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
23030   RIGHT JOIN t3 ON t1.c=t3.c
23031   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
23032   WHERE t3.y>0
23033   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23034 } {
23035   30 130 230 330 130 30 230 30 330 30
23036   60 160 260 360 160 60 260 60 360 60
23037   90 190 290 390 190 90 290 90 390 90
23039 do_execsql_test joinD-797 {
23040   SELECT t1.*, t2.*, t3.*, t4.*
23041   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
23042   RIGHT JOIN t3 ON t1.c=t3.c
23043   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
23044   WHERE t3.y>0 OR t3.y IS NULL
23045   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23046 } {
23047   30 130 230 330 130 30 230 30 330 30
23048   60 160 260 360 160 60 260 60 360 60
23049   90 190 290 390 190 90 290 90 390 90
23050    -   -   -   -   -  -   -  - 300  0
23051    -   -   -   -   -  -   -  - 305  5
23052    -   -   -   -   -  -   -  - 310 10
23053    -   -   -   -   -  -   -  - 315 15
23054    -   -   -   -   -  -   -  - 320 20
23055    -   -   -   -   -  -   -  - 325 25
23056    -   -   -   -   -  -   -  - 335 35
23057    -   -   -   -   -  -   -  - 340 40
23058    -   -   -   -   -  -   -  - 345 45
23059    -   -   -   -   -  -   -  - 350 50
23060    -   -   -   -   -  -   -  - 355 55
23061    -   -   -   -   -  -   -  - 365 65
23062    -   -   -   -   -  -   -  - 370 70
23063    -   -   -   -   -  -   -  - 375 75
23064    -   -   -   -   -  -   -  - 380 80
23065    -   -   -   -   -  -   -  - 385 85
23066    -   -   -   -   -  -   -  - 395 95
23068 do_execsql_test joinD-798 {
23069   SELECT t1.*, t2.*, t3.*, t4.*
23070   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
23071   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
23072   RIGHT JOIN t4 ON t1.d=t4.d
23073   WHERE t4.z>0
23074   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23075 } {
23076   30 130 230 330 130 30 230 30 330 30
23077   60 160 260 360 160 60 260 60 360 60
23078   90 190 290 390 190 90 290 90 390 90
23079    -   -   -   -   -  -   -  - 305  5
23080    -   -   -   -   -  -   -  - 310 10
23081    -   -   -   -   -  -   -  - 315 15
23082    -   -   -   -   -  -   -  - 320 20
23083    -   -   -   -   -  -   -  - 325 25
23084    -   -   -   -   -  -   -  - 335 35
23085    -   -   -   -   -  -   -  - 340 40
23086    -   -   -   -   -  -   -  - 345 45
23087    -   -   -   -   -  -   -  - 350 50
23088    -   -   -   -   -  -   -  - 355 55
23089    -   -   -   -   -  -   -  - 365 65
23090    -   -   -   -   -  -   -  - 370 70
23091    -   -   -   -   -  -   -  - 375 75
23092    -   -   -   -   -  -   -  - 380 80
23093    -   -   -   -   -  -   -  - 385 85
23094    -   -   -   -   -  -   -  - 395 95
23096 do_execsql_test joinD-799 {
23097   SELECT t1.*, t2.*, t3.*, t4.*
23098   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
23099   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
23100   RIGHT JOIN t4 ON t1.d=t4.d
23101   WHERE t4.z IS NULL OR t4.z>0
23102   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23103 } {
23104   30 130 230 330 130 30 230 30 330 30
23105   60 160 260 360 160 60 260 60 360 60
23106   90 190 290 390 190 90 290 90 390 90
23107    -   -   -   -   -  -   -  - 305  5
23108    -   -   -   -   -  -   -  - 310 10
23109    -   -   -   -   -  -   -  - 315 15
23110    -   -   -   -   -  -   -  - 320 20
23111    -   -   -   -   -  -   -  - 325 25
23112    -   -   -   -   -  -   -  - 335 35
23113    -   -   -   -   -  -   -  - 340 40
23114    -   -   -   -   -  -   -  - 345 45
23115    -   -   -   -   -  -   -  - 350 50
23116    -   -   -   -   -  -   -  - 355 55
23117    -   -   -   -   -  -   -  - 365 65
23118    -   -   -   -   -  -   -  - 370 70
23119    -   -   -   -   -  -   -  - 375 75
23120    -   -   -   -   -  -   -  - 380 80
23121    -   -   -   -   -  -   -  - 385 85
23122    -   -   -   -   -  -   -  - 395 95
23124 do_execsql_test joinD-800 {
23125   SELECT t1.*, t2.*, t3.*, t4.*
23126   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
23127   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
23128   RIGHT JOIN t4 ON t1.d=t4.d
23129   WHERE t2.x>0 AND t4.z>0
23130   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23131 } {
23132   30 130 230 330 130 30 230 30 330 30
23133   60 160 260 360 160 60 260 60 360 60
23134   90 190 290 390 190 90 290 90 390 90
23136 do_execsql_test joinD-801 {
23137   SELECT t1.*, t2.*, t3.*, t4.*
23138   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
23139   RIGHT JOIN t3 ON t1.c=t3.c
23140   RIGHT JOIN t4 ON t1.d=t4.d
23141   WHERE t4.z>0 AND t3.y>0
23142   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23143 } {
23144   30 130 230 330 130 30 230 30 330 30
23145   60 160 260 360 160 60 260 60 360 60
23146   90 190 290 390 190 90 290 90 390 90
23148 do_execsql_test joinD-802 {
23149   SELECT t1.*, t2.*, t3.*, t4.*
23150   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
23151   RIGHT JOIN t3 ON t1.c=t3.c
23152   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
23153   WHERE t2.x>0 AND t3.y>0
23154   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23155 } {
23156   30 130 230 330 130 30 230 30 330 30
23157   60 160 260 360 160 60 260 60 360 60
23158   90 190 290 390 190 90 290 90 390 90
23160 do_execsql_test joinD-803 {
23161   SELECT t1.*, t2.*, t3.*, t4.*
23162   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
23163   RIGHT JOIN t3 ON t1.c=t3.c
23164   RIGHT JOIN t4 ON t1.d=t4.d
23165   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
23166   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23167 } {
23168   30 130 230 330 130 30 230 30 330 30
23169   60 160 260 360 160 60 260 60 360 60
23170   90 190 290 390 190 90 290 90 390 90
23172 do_execsql_test joinD-804 {
23173   SELECT t1.*, t2.*, t3.*, t4.*
23174   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
23175   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
23176   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
23177   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23178 } {
23179   30 130 230 330 130 30 230 30 330 30
23180   60 160 260 360 160 60 260 60 360 60
23181   90 190 290 390 190 90 290 90 390 90
23182    -   -   -   -   -  -   -  - 300  0
23183    -   -   -   -   -  -   -  - 305  5
23184    -   -   -   -   -  -   -  - 310 10
23185    -   -   -   -   -  -   -  - 315 15
23186    -   -   -   -   -  -   -  - 320 20
23187    -   -   -   -   -  -   -  - 325 25
23188    -   -   -   -   -  -   -  - 335 35
23189    -   -   -   -   -  -   -  - 340 40
23190    -   -   -   -   -  -   -  - 345 45
23191    -   -   -   -   -  -   -  - 350 50
23192    -   -   -   -   -  -   -  - 355 55
23193    -   -   -   -   -  -   -  - 365 65
23194    -   -   -   -   -  -   -  - 370 70
23195    -   -   -   -   -  -   -  - 375 75
23196    -   -   -   -   -  -   -  - 380 80
23197    -   -   -   -   -  -   -  - 385 85
23198    -   -   -   -   -  -   -  - 395 95
23200 do_execsql_test joinD-805 {
23201   SELECT t1.*, t2.*, t3.*, t4.*
23202   FROM t1 RIGHT JOIN t2 ON t2.x>0
23203   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
23204   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
23205   WHERE t1.b IS NOT DISTINCT FROM t2.b
23206   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23207 } {
23208   30 130 230 330 130 30 230 30 330 30
23209   60 160 260 360 160 60 260 60 360 60
23210   90 190 290 390 190 90 290 90 390 90
23211    -   -   -   -   -  -   -  - 300  0
23212    -   -   -   -   -  -   -  - 305  5
23213    -   -   -   -   -  -   -  - 310 10
23214    -   -   -   -   -  -   -  - 320 20
23215    -   -   -   -   -  -   -  - 325 25
23216    -   -   -   -   -  -   -  - 335 35
23217    -   -   -   -   -  -   -  - 340 40
23218    -   -   -   -   -  -   -  - 350 50
23219    -   -   -   -   -  -   -  - 355 55
23220    -   -   -   -   -  -   -  - 365 65
23221    -   -   -   -   -  -   -  - 370 70
23222    -   -   -   -   -  -   -  - 380 80
23223    -   -   -   -   -  -   -  - 385 85
23224    -   -   -   -   -  -   -  - 395 95
23226 do_execsql_test joinD-806 {
23227   SELECT t1.*, t2.*, t3.*, t4.*
23228   FROM t1 RIGHT JOIN t2 ON t2.x>0
23229   RIGHT JOIN t3 ON t3.y>0
23230   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
23231   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
23232   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23233 } {
23234   30 130 230 330 130 30 230 30 330 30
23235   60 160 260 360 160 60 260 60 360 60
23236   90 190 290 390 190 90 290 90 390 90
23237    -   -   -   -   -  -   -  - 300  0
23239 do_execsql_test joinD-807 {
23240   SELECT t1.*, t2.*, t3.*, t4.*
23241   FROM t1 RIGHT JOIN t2 ON t2.x>0
23242   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
23243   RIGHT JOIN t4 ON t4.z>0
23244   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
23245   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23246 } {
23247   30 130 230 330 130 30 230 30 330 30
23248   60 160 260 360 160 60 260 60 360 60
23249   90 190 290 390 190 90 290 90 390 90
23251 do_execsql_test joinD-808 {
23252   SELECT t1.*, t2.*, t3.*, t4.*
23253   FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
23254   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
23255   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
23256   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23257 } {
23258   30 130 230 330 130 30 230 30 330 30
23259   60 160 260 360 160 60 260 60 360 60
23260   90 190 290 390 190 90 290 90 390 90
23261    -   -   -   -   -  -   -  - 300  0
23262    -   -   -   -   -  -   -  - 305  5
23263    -   -   -   -   -  -   -  - 310 10
23264    -   -   -   -   -  -   -  - 315 15
23265    -   -   -   -   -  -   -  - 320 20
23266    -   -   -   -   -  -   -  - 325 25
23267    -   -   -   -   -  -   -  - 335 35
23268    -   -   -   -   -  -   -  - 340 40
23269    -   -   -   -   -  -   -  - 345 45
23270    -   -   -   -   -  -   -  - 350 50
23271    -   -   -   -   -  -   -  - 355 55
23272    -   -   -   -   -  -   -  - 365 65
23273    -   -   -   -   -  -   -  - 370 70
23274    -   -   -   -   -  -   -  - 375 75
23275    -   -   -   -   -  -   -  - 380 80
23276    -   -   -   -   -  -   -  - 385 85
23277    -   -   -   -   -  -   -  - 395 95
23279 do_execsql_test joinD-809 {
23280   SELECT t1.*, t2.*, t3.*, t4.*
23281   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
23282   RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
23283   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
23284   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23285 } {
23286   30 130 230 330 130 30 230 30 330 30
23287   60 160 260 360 160 60 260 60 360 60
23288   90 190 290 390 190 90 290 90 390 90
23289    -   -   -   -   -  -   -  - 300  0
23290    -   -   -   -   -  -   -  - 305  5
23291    -   -   -   -   -  -   -  - 310 10
23292    -   -   -   -   -  -   -  - 315 15
23293    -   -   -   -   -  -   -  - 320 20
23294    -   -   -   -   -  -   -  - 325 25
23295    -   -   -   -   -  -   -  - 335 35
23296    -   -   -   -   -  -   -  - 340 40
23297    -   -   -   -   -  -   -  - 345 45
23298    -   -   -   -   -  -   -  - 350 50
23299    -   -   -   -   -  -   -  - 355 55
23300    -   -   -   -   -  -   -  - 365 65
23301    -   -   -   -   -  -   -  - 370 70
23302    -   -   -   -   -  -   -  - 375 75
23303    -   -   -   -   -  -   -  - 380 80
23304    -   -   -   -   -  -   -  - 385 85
23305    -   -   -   -   -  -   -  - 395 95
23307 do_execsql_test joinD-810 {
23308   SELECT t1.*, t2.*, t3.*, t4.*
23309   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
23310   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
23311   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
23312   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23313 } {
23314    6 106 206 306 106  6 206  6   -  -
23315   12 112 212 312 112 12 212 12   -  -
23316   18 118 218 318 118 18 218 18   -  -
23317   24 124 224 324 124 24 224 24   -  -
23318   30 130 230 330 130 30 230 30 330 30
23319   36 136 236 336 136 36 236 36   -  -
23320   42 142 242 342 142 42 242 42   -  -
23321   48 148 248 348 148 48 248 48   -  -
23322   54 154 254 354 154 54 254 54   -  -
23323   60 160 260 360 160 60 260 60 360 60
23324   66 166 266 366 166 66 266 66   -  -
23325   72 172 272 372 172 72 272 72   -  -
23326   78 178 278 378 178 78 278 78   -  -
23327   84 184 284 384 184 84 284 84   -  -
23328   90 190 290 390 190 90 290 90 390 90
23329    -   -   -   -   -  - 200  0   -  -
23330    -   -   -   -   -  - 203  3   -  -
23331    -   -   -   -   -  - 209  9   -  -
23332    -   -   -   -   -  - 215 15   -  -
23333    -   -   -   -   -  - 221 21   -  -
23334    -   -   -   -   -  - 227 27   -  -
23335    -   -   -   -   -  - 233 33   -  -
23336    -   -   -   -   -  - 239 39   -  -
23337    -   -   -   -   -  - 245 45   -  -
23338    -   -   -   -   -  - 251 51   -  -
23339    -   -   -   -   -  - 257 57   -  -
23340    -   -   -   -   -  - 263 63   -  -
23341    -   -   -   -   -  - 269 69   -  -
23342    -   -   -   -   -  - 275 75   -  -
23343    -   -   -   -   -  - 281 81   -  -
23344    -   -   -   -   -  - 287 87   -  -
23345    -   -   -   -   -  - 293 93   -  -
23346    -   -   -   -   -  -   -  - 300  0
23347    -   -   -   -   -  -   -  - 305  5
23348    -   -   -   -   -  -   -  - 310 10
23349    -   -   -   -   -  -   -  - 315 15
23350    -   -   -   -   -  -   -  - 320 20
23351    -   -   -   -   -  -   -  - 325 25
23352    -   -   -   -   -  -   -  - 335 35
23353    -   -   -   -   -  -   -  - 340 40
23354    -   -   -   -   -  -   -  - 345 45
23355    -   -   -   -   -  -   -  - 350 50
23356    -   -   -   -   -  -   -  - 355 55
23357    -   -   -   -   -  -   -  - 365 65
23358    -   -   -   -   -  -   -  - 370 70
23359    -   -   -   -   -  -   -  - 375 75
23360    -   -   -   -   -  -   -  - 380 80
23361    -   -   -   -   -  -   -  - 385 85
23362    -   -   -   -   -  -   -  - 395 95
23364 do_execsql_test joinD-811 {
23365   SELECT t1.*, t2.*, t3.*, t4.*
23366   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
23367   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
23368   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
23369   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23370 } {
23371    6 106 206 306 106  6 206  6   -  -
23372   12 112 212 312 112 12 212 12   -  -
23373   18 118 218 318 118 18 218 18   -  -
23374   24 124 224 324 124 24 224 24   -  -
23375   30 130 230 330 130 30 230 30 330 30
23376   36 136 236 336 136 36 236 36   -  -
23377   42 142 242 342 142 42 242 42   -  -
23378   48 148 248 348 148 48 248 48   -  -
23379   54 154 254 354 154 54 254 54   -  -
23380   60 160 260 360 160 60 260 60 360 60
23381   66 166 266 366 166 66 266 66   -  -
23382   72 172 272 372 172 72 272 72   -  -
23383   78 178 278 378 178 78 278 78   -  -
23384   84 184 284 384 184 84 284 84   -  -
23385   90 190 290 390 190 90 290 90 390 90
23386    -   -   -   -   -  - 200  0   -  -
23387    -   -   -   -   -  - 203  3   -  -
23388    -   -   -   -   -  - 209  9   -  -
23389    -   -   -   -   -  - 215 15   -  -
23390    -   -   -   -   -  - 221 21   -  -
23391    -   -   -   -   -  - 227 27   -  -
23392    -   -   -   -   -  - 233 33   -  -
23393    -   -   -   -   -  - 239 39   -  -
23394    -   -   -   -   -  - 245 45   -  -
23395    -   -   -   -   -  - 251 51   -  -
23396    -   -   -   -   -  - 257 57   -  -
23397    -   -   -   -   -  - 263 63   -  -
23398    -   -   -   -   -  - 269 69   -  -
23399    -   -   -   -   -  - 275 75   -  -
23400    -   -   -   -   -  - 281 81   -  -
23401    -   -   -   -   -  - 287 87   -  -
23402    -   -   -   -   -  - 293 93   -  -
23403    -   -   -   -   -  -   -  - 300  0
23404    -   -   -   -   -  -   -  - 305  5
23405    -   -   -   -   -  -   -  - 310 10
23406    -   -   -   -   -  -   -  - 315 15
23407    -   -   -   -   -  -   -  - 320 20
23408    -   -   -   -   -  -   -  - 325 25
23409    -   -   -   -   -  -   -  - 335 35
23410    -   -   -   -   -  -   -  - 340 40
23411    -   -   -   -   -  -   -  - 345 45
23412    -   -   -   -   -  -   -  - 350 50
23413    -   -   -   -   -  -   -  - 355 55
23414    -   -   -   -   -  -   -  - 365 65
23415    -   -   -   -   -  -   -  - 370 70
23416    -   -   -   -   -  -   -  - 375 75
23417    -   -   -   -   -  -   -  - 380 80
23418    -   -   -   -   -  -   -  - 385 85
23419    -   -   -   -   -  -   -  - 395 95
23421 do_execsql_test joinD-812 {
23422   SELECT t1.*, t2.*, t3.*, t4.*
23423   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
23424   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
23425   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
23426   WHERE t2.x>0
23427   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23428 } {
23429    6 106 206 306 106  6 206  6   -  -
23430   12 112 212 312 112 12 212 12   -  -
23431   18 118 218 318 118 18 218 18   -  -
23432   24 124 224 324 124 24 224 24   -  -
23433   30 130 230 330 130 30 230 30 330 30
23434   36 136 236 336 136 36 236 36   -  -
23435   42 142 242 342 142 42 242 42   -  -
23436   48 148 248 348 148 48 248 48   -  -
23437   54 154 254 354 154 54 254 54   -  -
23438   60 160 260 360 160 60 260 60 360 60
23439   66 166 266 366 166 66 266 66   -  -
23440   72 172 272 372 172 72 272 72   -  -
23441   78 178 278 378 178 78 278 78   -  -
23442   84 184 284 384 184 84 284 84   -  -
23443   90 190 290 390 190 90 290 90 390 90
23445 do_execsql_test joinD-813 {
23446   SELECT t1.*, t2.*, t3.*, t4.*
23447   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
23448   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
23449   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
23450   WHERE (t2.x>0 OR t2.x IS NULL)
23451   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23452 } {
23453    6 106 206 306 106  6 206  6   -  -
23454   12 112 212 312 112 12 212 12   -  -
23455   18 118 218 318 118 18 218 18   -  -
23456   24 124 224 324 124 24 224 24   -  -
23457   30 130 230 330 130 30 230 30 330 30
23458   36 136 236 336 136 36 236 36   -  -
23459   42 142 242 342 142 42 242 42   -  -
23460   48 148 248 348 148 48 248 48   -  -
23461   54 154 254 354 154 54 254 54   -  -
23462   60 160 260 360 160 60 260 60 360 60
23463   66 166 266 366 166 66 266 66   -  -
23464   72 172 272 372 172 72 272 72   -  -
23465   78 178 278 378 178 78 278 78   -  -
23466   84 184 284 384 184 84 284 84   -  -
23467   90 190 290 390 190 90 290 90 390 90
23468    -   -   -   -   -  - 200  0   -  -
23469    -   -   -   -   -  - 203  3   -  -
23470    -   -   -   -   -  - 209  9   -  -
23471    -   -   -   -   -  - 215 15   -  -
23472    -   -   -   -   -  - 221 21   -  -
23473    -   -   -   -   -  - 227 27   -  -
23474    -   -   -   -   -  - 233 33   -  -
23475    -   -   -   -   -  - 239 39   -  -
23476    -   -   -   -   -  - 245 45   -  -
23477    -   -   -   -   -  - 251 51   -  -
23478    -   -   -   -   -  - 257 57   -  -
23479    -   -   -   -   -  - 263 63   -  -
23480    -   -   -   -   -  - 269 69   -  -
23481    -   -   -   -   -  - 275 75   -  -
23482    -   -   -   -   -  - 281 81   -  -
23483    -   -   -   -   -  - 287 87   -  -
23484    -   -   -   -   -  - 293 93   -  -
23485    -   -   -   -   -  -   -  - 300  0
23486    -   -   -   -   -  -   -  - 305  5
23487    -   -   -   -   -  -   -  - 310 10
23488    -   -   -   -   -  -   -  - 315 15
23489    -   -   -   -   -  -   -  - 320 20
23490    -   -   -   -   -  -   -  - 325 25
23491    -   -   -   -   -  -   -  - 335 35
23492    -   -   -   -   -  -   -  - 340 40
23493    -   -   -   -   -  -   -  - 345 45
23494    -   -   -   -   -  -   -  - 350 50
23495    -   -   -   -   -  -   -  - 355 55
23496    -   -   -   -   -  -   -  - 365 65
23497    -   -   -   -   -  -   -  - 370 70
23498    -   -   -   -   -  -   -  - 375 75
23499    -   -   -   -   -  -   -  - 380 80
23500    -   -   -   -   -  -   -  - 385 85
23501    -   -   -   -   -  -   -  - 395 95
23503 do_execsql_test joinD-814 {
23504   SELECT t1.*, t2.*, t3.*, t4.*
23505   FROM t1 RIGHT JOIN t2 ON true
23506   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
23507   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
23508   WHERE t1.b=t2.b AND t2.x>0
23509   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23510 } {
23511    6 106 206 306 106  6 206  6   -  -
23512   12 112 212 312 112 12 212 12   -  -
23513   18 118 218 318 118 18 218 18   -  -
23514   24 124 224 324 124 24 224 24   -  -
23515   30 130 230 330 130 30 230 30 330 30
23516   36 136 236 336 136 36 236 36   -  -
23517   42 142 242 342 142 42 242 42   -  -
23518   48 148 248 348 148 48 248 48   -  -
23519   54 154 254 354 154 54 254 54   -  -
23520   60 160 260 360 160 60 260 60 360 60
23521   66 166 266 366 166 66 266 66   -  -
23522   72 172 272 372 172 72 272 72   -  -
23523   78 178 278 378 178 78 278 78   -  -
23524   84 184 284 384 184 84 284 84   -  -
23525   90 190 290 390 190 90 290 90 390 90
23527 do_execsql_test joinD-815 {
23528   SELECT t1.*, t2.*, t3.*, t4.*
23529   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
23530   RIGHT JOIN t3 ON t1.c=t3.c
23531   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
23532   WHERE t3.y>0
23533   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23534 } {
23535    6 106 206 306 106  6 206  6   -  -
23536   12 112 212 312 112 12 212 12   -  -
23537   18 118 218 318 118 18 218 18   -  -
23538   24 124 224 324 124 24 224 24   -  -
23539   30 130 230 330 130 30 230 30 330 30
23540   36 136 236 336 136 36 236 36   -  -
23541   42 142 242 342 142 42 242 42   -  -
23542   48 148 248 348 148 48 248 48   -  -
23543   54 154 254 354 154 54 254 54   -  -
23544   60 160 260 360 160 60 260 60 360 60
23545   66 166 266 366 166 66 266 66   -  -
23546   72 172 272 372 172 72 272 72   -  -
23547   78 178 278 378 178 78 278 78   -  -
23548   84 184 284 384 184 84 284 84   -  -
23549   90 190 290 390 190 90 290 90 390 90
23550    -   -   -   -   -  - 203  3   -  -
23551    -   -   -   -   -  - 209  9   -  -
23552    -   -   -   -   -  - 215 15   -  -
23553    -   -   -   -   -  - 221 21   -  -
23554    -   -   -   -   -  - 227 27   -  -
23555    -   -   -   -   -  - 233 33   -  -
23556    -   -   -   -   -  - 239 39   -  -
23557    -   -   -   -   -  - 245 45   -  -
23558    -   -   -   -   -  - 251 51   -  -
23559    -   -   -   -   -  - 257 57   -  -
23560    -   -   -   -   -  - 263 63   -  -
23561    -   -   -   -   -  - 269 69   -  -
23562    -   -   -   -   -  - 275 75   -  -
23563    -   -   -   -   -  - 281 81   -  -
23564    -   -   -   -   -  - 287 87   -  -
23565    -   -   -   -   -  - 293 93   -  -
23567 do_execsql_test joinD-816 {
23568   SELECT t1.*, t2.*, t3.*, t4.*
23569   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
23570   RIGHT JOIN t3 ON t1.c=t3.c
23571   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
23572   WHERE t3.y>0 OR t3.y IS NULL
23573   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23574 } {
23575    6 106 206 306 106  6 206  6   -  -
23576   12 112 212 312 112 12 212 12   -  -
23577   18 118 218 318 118 18 218 18   -  -
23578   24 124 224 324 124 24 224 24   -  -
23579   30 130 230 330 130 30 230 30 330 30
23580   36 136 236 336 136 36 236 36   -  -
23581   42 142 242 342 142 42 242 42   -  -
23582   48 148 248 348 148 48 248 48   -  -
23583   54 154 254 354 154 54 254 54   -  -
23584   60 160 260 360 160 60 260 60 360 60
23585   66 166 266 366 166 66 266 66   -  -
23586   72 172 272 372 172 72 272 72   -  -
23587   78 178 278 378 178 78 278 78   -  -
23588   84 184 284 384 184 84 284 84   -  -
23589   90 190 290 390 190 90 290 90 390 90
23590    -   -   -   -   -  - 203  3   -  -
23591    -   -   -   -   -  - 209  9   -  -
23592    -   -   -   -   -  - 215 15   -  -
23593    -   -   -   -   -  - 221 21   -  -
23594    -   -   -   -   -  - 227 27   -  -
23595    -   -   -   -   -  - 233 33   -  -
23596    -   -   -   -   -  - 239 39   -  -
23597    -   -   -   -   -  - 245 45   -  -
23598    -   -   -   -   -  - 251 51   -  -
23599    -   -   -   -   -  - 257 57   -  -
23600    -   -   -   -   -  - 263 63   -  -
23601    -   -   -   -   -  - 269 69   -  -
23602    -   -   -   -   -  - 275 75   -  -
23603    -   -   -   -   -  - 281 81   -  -
23604    -   -   -   -   -  - 287 87   -  -
23605    -   -   -   -   -  - 293 93   -  -
23606    -   -   -   -   -  -   -  - 300  0
23607    -   -   -   -   -  -   -  - 305  5
23608    -   -   -   -   -  -   -  - 310 10
23609    -   -   -   -   -  -   -  - 315 15
23610    -   -   -   -   -  -   -  - 320 20
23611    -   -   -   -   -  -   -  - 325 25
23612    -   -   -   -   -  -   -  - 335 35
23613    -   -   -   -   -  -   -  - 340 40
23614    -   -   -   -   -  -   -  - 345 45
23615    -   -   -   -   -  -   -  - 350 50
23616    -   -   -   -   -  -   -  - 355 55
23617    -   -   -   -   -  -   -  - 365 65
23618    -   -   -   -   -  -   -  - 370 70
23619    -   -   -   -   -  -   -  - 375 75
23620    -   -   -   -   -  -   -  - 380 80
23621    -   -   -   -   -  -   -  - 385 85
23622    -   -   -   -   -  -   -  - 395 95
23624 do_execsql_test joinD-817 {
23625   SELECT t1.*, t2.*, t3.*, t4.*
23626   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
23627   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
23628   FULL JOIN t4 ON t1.d=t4.d
23629   WHERE t4.z>0
23630   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23631 } {
23632   30 130 230 330 130 30 230 30 330 30
23633   60 160 260 360 160 60 260 60 360 60
23634   90 190 290 390 190 90 290 90 390 90
23635    -   -   -   -   -  -   -  - 305  5
23636    -   -   -   -   -  -   -  - 310 10
23637    -   -   -   -   -  -   -  - 315 15
23638    -   -   -   -   -  -   -  - 320 20
23639    -   -   -   -   -  -   -  - 325 25
23640    -   -   -   -   -  -   -  - 335 35
23641    -   -   -   -   -  -   -  - 340 40
23642    -   -   -   -   -  -   -  - 345 45
23643    -   -   -   -   -  -   -  - 350 50
23644    -   -   -   -   -  -   -  - 355 55
23645    -   -   -   -   -  -   -  - 365 65
23646    -   -   -   -   -  -   -  - 370 70
23647    -   -   -   -   -  -   -  - 375 75
23648    -   -   -   -   -  -   -  - 380 80
23649    -   -   -   -   -  -   -  - 385 85
23650    -   -   -   -   -  -   -  - 395 95
23652 do_execsql_test joinD-818 {
23653   SELECT t1.*, t2.*, t3.*, t4.*
23654   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
23655   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
23656   FULL JOIN t4 ON t1.d=t4.d
23657   WHERE t4.z IS NULL OR t4.z>0
23658   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23659 } {
23660    6 106 206 306 106  6 206  6   -  -
23661   12 112 212 312 112 12 212 12   -  -
23662   18 118 218 318 118 18 218 18   -  -
23663   24 124 224 324 124 24 224 24   -  -
23664   30 130 230 330 130 30 230 30 330 30
23665   36 136 236 336 136 36 236 36   -  -
23666   42 142 242 342 142 42 242 42   -  -
23667   48 148 248 348 148 48 248 48   -  -
23668   54 154 254 354 154 54 254 54   -  -
23669   60 160 260 360 160 60 260 60 360 60
23670   66 166 266 366 166 66 266 66   -  -
23671   72 172 272 372 172 72 272 72   -  -
23672   78 178 278 378 178 78 278 78   -  -
23673   84 184 284 384 184 84 284 84   -  -
23674   90 190 290 390 190 90 290 90 390 90
23675    -   -   -   -   -  - 200  0   -  -
23676    -   -   -   -   -  - 203  3   -  -
23677    -   -   -   -   -  - 209  9   -  -
23678    -   -   -   -   -  - 215 15   -  -
23679    -   -   -   -   -  - 221 21   -  -
23680    -   -   -   -   -  - 227 27   -  -
23681    -   -   -   -   -  - 233 33   -  -
23682    -   -   -   -   -  - 239 39   -  -
23683    -   -   -   -   -  - 245 45   -  -
23684    -   -   -   -   -  - 251 51   -  -
23685    -   -   -   -   -  - 257 57   -  -
23686    -   -   -   -   -  - 263 63   -  -
23687    -   -   -   -   -  - 269 69   -  -
23688    -   -   -   -   -  - 275 75   -  -
23689    -   -   -   -   -  - 281 81   -  -
23690    -   -   -   -   -  - 287 87   -  -
23691    -   -   -   -   -  - 293 93   -  -
23692    -   -   -   -   -  -   -  - 305  5
23693    -   -   -   -   -  -   -  - 310 10
23694    -   -   -   -   -  -   -  - 315 15
23695    -   -   -   -   -  -   -  - 320 20
23696    -   -   -   -   -  -   -  - 325 25
23697    -   -   -   -   -  -   -  - 335 35
23698    -   -   -   -   -  -   -  - 340 40
23699    -   -   -   -   -  -   -  - 345 45
23700    -   -   -   -   -  -   -  - 350 50
23701    -   -   -   -   -  -   -  - 355 55
23702    -   -   -   -   -  -   -  - 365 65
23703    -   -   -   -   -  -   -  - 370 70
23704    -   -   -   -   -  -   -  - 375 75
23705    -   -   -   -   -  -   -  - 380 80
23706    -   -   -   -   -  -   -  - 385 85
23707    -   -   -   -   -  -   -  - 395 95
23709 do_execsql_test joinD-819 {
23710   SELECT t1.*, t2.*, t3.*, t4.*
23711   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
23712   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
23713   FULL JOIN t4 ON t1.d=t4.d
23714   WHERE t2.x>0 AND t4.z>0
23715   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23716 } {
23717   30 130 230 330 130 30 230 30 330 30
23718   60 160 260 360 160 60 260 60 360 60
23719   90 190 290 390 190 90 290 90 390 90
23721 do_execsql_test joinD-820 {
23722   SELECT t1.*, t2.*, t3.*, t4.*
23723   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
23724   RIGHT JOIN t3 ON t1.c=t3.c
23725   FULL JOIN t4 ON t1.d=t4.d
23726   WHERE t4.z>0 AND t3.y>0
23727   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23728 } {
23729   30 130 230 330 130 30 230 30 330 30
23730   60 160 260 360 160 60 260 60 360 60
23731   90 190 290 390 190 90 290 90 390 90
23733 do_execsql_test joinD-821 {
23734   SELECT t1.*, t2.*, t3.*, t4.*
23735   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
23736   RIGHT JOIN t3 ON t1.c=t3.c
23737   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
23738   WHERE t2.x>0 AND t3.y>0
23739   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23740 } {
23741    6 106 206 306 106  6 206  6   -  -
23742   12 112 212 312 112 12 212 12   -  -
23743   18 118 218 318 118 18 218 18   -  -
23744   24 124 224 324 124 24 224 24   -  -
23745   30 130 230 330 130 30 230 30 330 30
23746   36 136 236 336 136 36 236 36   -  -
23747   42 142 242 342 142 42 242 42   -  -
23748   48 148 248 348 148 48 248 48   -  -
23749   54 154 254 354 154 54 254 54   -  -
23750   60 160 260 360 160 60 260 60 360 60
23751   66 166 266 366 166 66 266 66   -  -
23752   72 172 272 372 172 72 272 72   -  -
23753   78 178 278 378 178 78 278 78   -  -
23754   84 184 284 384 184 84 284 84   -  -
23755   90 190 290 390 190 90 290 90 390 90
23757 do_execsql_test joinD-822 {
23758   SELECT t1.*, t2.*, t3.*, t4.*
23759   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
23760   RIGHT JOIN t3 ON t1.c=t3.c
23761   FULL JOIN t4 ON t1.d=t4.d
23762   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
23763   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23764 } {
23765   30 130 230 330 130 30 230 30 330 30
23766   60 160 260 360 160 60 260 60 360 60
23767   90 190 290 390 190 90 290 90 390 90
23769 do_execsql_test joinD-823 {
23770   SELECT t1.*, t2.*, t3.*, t4.*
23771   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
23772   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
23773   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
23774   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23775 } {
23776    6 106 206 306 106  6 206  6   -  -
23777   12 112 212 312 112 12 212 12   -  -
23778   18 118 218 318 118 18 218 18   -  -
23779   24 124 224 324 124 24 224 24   -  -
23780   30 130 230 330 130 30 230 30 330 30
23781   36 136 236 336 136 36 236 36   -  -
23782   42 142 242 342 142 42 242 42   -  -
23783   48 148 248 348 148 48 248 48   -  -
23784   54 154 254 354 154 54 254 54   -  -
23785   60 160 260 360 160 60 260 60 360 60
23786   66 166 266 366 166 66 266 66   -  -
23787   72 172 272 372 172 72 272 72   -  -
23788   78 178 278 378 178 78 278 78   -  -
23789   84 184 284 384 184 84 284 84   -  -
23790   90 190 290 390 190 90 290 90 390 90
23791    -   -   -   -   -  - 200  0   -  -
23792    -   -   -   -   -  - 203  3   -  -
23793    -   -   -   -   -  - 209  9   -  -
23794    -   -   -   -   -  - 215 15   -  -
23795    -   -   -   -   -  - 221 21   -  -
23796    -   -   -   -   -  - 227 27   -  -
23797    -   -   -   -   -  - 233 33   -  -
23798    -   -   -   -   -  - 239 39   -  -
23799    -   -   -   -   -  - 245 45   -  -
23800    -   -   -   -   -  - 251 51   -  -
23801    -   -   -   -   -  - 257 57   -  -
23802    -   -   -   -   -  - 263 63   -  -
23803    -   -   -   -   -  - 269 69   -  -
23804    -   -   -   -   -  - 275 75   -  -
23805    -   -   -   -   -  - 281 81   -  -
23806    -   -   -   -   -  - 287 87   -  -
23807    -   -   -   -   -  - 293 93   -  -
23808    -   -   -   -   -  -   -  - 300  0
23809    -   -   -   -   -  -   -  - 305  5
23810    -   -   -   -   -  -   -  - 310 10
23811    -   -   -   -   -  -   -  - 315 15
23812    -   -   -   -   -  -   -  - 320 20
23813    -   -   -   -   -  -   -  - 325 25
23814    -   -   -   -   -  -   -  - 335 35
23815    -   -   -   -   -  -   -  - 340 40
23816    -   -   -   -   -  -   -  - 345 45
23817    -   -   -   -   -  -   -  - 350 50
23818    -   -   -   -   -  -   -  - 355 55
23819    -   -   -   -   -  -   -  - 365 65
23820    -   -   -   -   -  -   -  - 370 70
23821    -   -   -   -   -  -   -  - 375 75
23822    -   -   -   -   -  -   -  - 380 80
23823    -   -   -   -   -  -   -  - 385 85
23824    -   -   -   -   -  -   -  - 395 95
23826 do_execsql_test joinD-824 {
23827   SELECT t1.*, t2.*, t3.*, t4.*
23828   FROM t1 RIGHT JOIN t2 ON t2.x>0
23829   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
23830   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
23831   WHERE t1.b IS NOT DISTINCT FROM t2.b
23832   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23833 } {
23834    6 106 206 306 106  6 206  6   -  -
23835   12 112 212 312 112 12 212 12   -  -
23836   18 118 218 318 118 18 218 18   -  -
23837   24 124 224 324 124 24 224 24   -  -
23838   30 130 230 330 130 30 230 30 330 30
23839   36 136 236 336 136 36 236 36   -  -
23840   42 142 242 342 142 42 242 42   -  -
23841   48 148 248 348 148 48 248 48   -  -
23842   54 154 254 354 154 54 254 54   -  -
23843   60 160 260 360 160 60 260 60 360 60
23844   66 166 266 366 166 66 266 66   -  -
23845   72 172 272 372 172 72 272 72   -  -
23846   78 178 278 378 178 78 278 78   -  -
23847   84 184 284 384 184 84 284 84   -  -
23848   90 190 290 390 190 90 290 90 390 90
23849    -   -   -   -   -  - 200  0   -  -
23850    -   -   -   -   -  -   -  - 300  0
23851    -   -   -   -   -  -   -  - 305  5
23852    -   -   -   -   -  -   -  - 310 10
23853    -   -   -   -   -  -   -  - 320 20
23854    -   -   -   -   -  -   -  - 325 25
23855    -   -   -   -   -  -   -  - 335 35
23856    -   -   -   -   -  -   -  - 340 40
23857    -   -   -   -   -  -   -  - 350 50
23858    -   -   -   -   -  -   -  - 355 55
23859    -   -   -   -   -  -   -  - 365 65
23860    -   -   -   -   -  -   -  - 370 70
23861    -   -   -   -   -  -   -  - 380 80
23862    -   -   -   -   -  -   -  - 385 85
23863    -   -   -   -   -  -   -  - 395 95
23865 do_execsql_test joinD-825 {
23866   SELECT t1.*, t2.*, t3.*, t4.*
23867   FROM t1 RIGHT JOIN t2 ON t2.x>0
23868   RIGHT JOIN t3 ON t3.y>0
23869   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
23870   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c IS NOT DISTINCT FROM t3.c
23871   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23872 } {
23873    6 106 206 306 106  6 206  6   -  -
23874   12 112 212 312 112 12 212 12   -  -
23875   18 118 218 318 118 18 218 18   -  -
23876   24 124 224 324 124 24 224 24   -  -
23877   30 130 230 330 130 30 230 30 330 30
23878   36 136 236 336 136 36 236 36   -  -
23879   42 142 242 342 142 42 242 42   -  -
23880   48 148 248 348 148 48 248 48   -  -
23881   54 154 254 354 154 54 254 54   -  -
23882   60 160 260 360 160 60 260 60 360 60
23883   66 166 266 366 166 66 266 66   -  -
23884   72 172 272 372 172 72 272 72   -  -
23885   78 178 278 378 178 78 278 78   -  -
23886   84 184 284 384 184 84 284 84   -  -
23887   90 190 290 390 190 90 290 90 390 90
23888    -   -   -   -   -  -   -  - 300  0
23890 do_execsql_test joinD-826 {
23891   SELECT t1.*, t2.*, t3.*, t4.*
23892   FROM t1 RIGHT JOIN t2 ON t2.x>0
23893   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
23894   FULL JOIN t4 ON t4.z>0
23895   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
23896   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23897 } {
23898   30 130 230 330 130 30 230 30 330 30
23899   60 160 260 360 160 60 260 60 360 60
23900   90 190 290 390 190 90 290 90 390 90
23902 do_execsql_test joinD-827 {
23903   SELECT t1.*, t2.*, t3.*, t4.*
23904   FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
23905   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
23906   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
23907   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23908 } {
23909    6 106 206 306 106  6 206  6   -  -
23910   12 112 212 312 112 12 212 12   -  -
23911   18 118 218 318 118 18 218 18   -  -
23912   24 124 224 324 124 24 224 24   -  -
23913   30 130 230 330 130 30 230 30 330 30
23914   36 136 236 336 136 36 236 36   -  -
23915   42 142 242 342 142 42 242 42   -  -
23916   48 148 248 348 148 48 248 48   -  -
23917   54 154 254 354 154 54 254 54   -  -
23918   60 160 260 360 160 60 260 60 360 60
23919   66 166 266 366 166 66 266 66   -  -
23920   72 172 272 372 172 72 272 72   -  -
23921   78 178 278 378 178 78 278 78   -  -
23922   84 184 284 384 184 84 284 84   -  -
23923   90 190 290 390 190 90 290 90 390 90
23924    -   -   -   -   -  - 200  0   -  -
23925    -   -   -   -   -  - 203  3   -  -
23926    -   -   -   -   -  - 209  9   -  -
23927    -   -   -   -   -  - 215 15   -  -
23928    -   -   -   -   -  - 221 21   -  -
23929    -   -   -   -   -  - 227 27   -  -
23930    -   -   -   -   -  - 233 33   -  -
23931    -   -   -   -   -  - 239 39   -  -
23932    -   -   -   -   -  - 245 45   -  -
23933    -   -   -   -   -  - 251 51   -  -
23934    -   -   -   -   -  - 257 57   -  -
23935    -   -   -   -   -  - 263 63   -  -
23936    -   -   -   -   -  - 269 69   -  -
23937    -   -   -   -   -  - 275 75   -  -
23938    -   -   -   -   -  - 281 81   -  -
23939    -   -   -   -   -  - 287 87   -  -
23940    -   -   -   -   -  - 293 93   -  -
23941    -   -   -   -   -  -   -  - 300  0
23942    -   -   -   -   -  -   -  - 305  5
23943    -   -   -   -   -  -   -  - 310 10
23944    -   -   -   -   -  -   -  - 315 15
23945    -   -   -   -   -  -   -  - 320 20
23946    -   -   -   -   -  -   -  - 325 25
23947    -   -   -   -   -  -   -  - 335 35
23948    -   -   -   -   -  -   -  - 340 40
23949    -   -   -   -   -  -   -  - 345 45
23950    -   -   -   -   -  -   -  - 350 50
23951    -   -   -   -   -  -   -  - 355 55
23952    -   -   -   -   -  -   -  - 365 65
23953    -   -   -   -   -  -   -  - 370 70
23954    -   -   -   -   -  -   -  - 375 75
23955    -   -   -   -   -  -   -  - 380 80
23956    -   -   -   -   -  -   -  - 385 85
23957    -   -   -   -   -  -   -  - 395 95
23959 do_execsql_test joinD-828 {
23960   SELECT t1.*, t2.*, t3.*, t4.*
23961   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
23962   RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
23963   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
23964   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
23965 } {
23966    6 106 206 306 106  6 206  6   -  -
23967   12 112 212 312 112 12 212 12   -  -
23968   18 118 218 318 118 18 218 18   -  -
23969   24 124 224 324 124 24 224 24   -  -
23970   30 130 230 330 130 30 230 30 330 30
23971   36 136 236 336 136 36 236 36   -  -
23972   42 142 242 342 142 42 242 42   -  -
23973   48 148 248 348 148 48 248 48   -  -
23974   54 154 254 354 154 54 254 54   -  -
23975   60 160 260 360 160 60 260 60 360 60
23976   66 166 266 366 166 66 266 66   -  -
23977   72 172 272 372 172 72 272 72   -  -
23978   78 178 278 378 178 78 278 78   -  -
23979   84 184 284 384 184 84 284 84   -  -
23980   90 190 290 390 190 90 290 90 390 90
23981    -   -   -   -   -  - 200  0   -  -
23982    -   -   -   -   -  - 203  3   -  -
23983    -   -   -   -   -  - 209  9   -  -
23984    -   -   -   -   -  - 215 15   -  -
23985    -   -   -   -   -  - 221 21   -  -
23986    -   -   -   -   -  - 227 27   -  -
23987    -   -   -   -   -  - 233 33   -  -
23988    -   -   -   -   -  - 239 39   -  -
23989    -   -   -   -   -  - 245 45   -  -
23990    -   -   -   -   -  - 251 51   -  -
23991    -   -   -   -   -  - 257 57   -  -
23992    -   -   -   -   -  - 263 63   -  -
23993    -   -   -   -   -  - 269 69   -  -
23994    -   -   -   -   -  - 275 75   -  -
23995    -   -   -   -   -  - 281 81   -  -
23996    -   -   -   -   -  - 287 87   -  -
23997    -   -   -   -   -  - 293 93   -  -
23998    -   -   -   -   -  -   -  - 300  0
23999    -   -   -   -   -  -   -  - 305  5
24000    -   -   -   -   -  -   -  - 310 10
24001    -   -   -   -   -  -   -  - 315 15
24002    -   -   -   -   -  -   -  - 320 20
24003    -   -   -   -   -  -   -  - 325 25
24004    -   -   -   -   -  -   -  - 335 35
24005    -   -   -   -   -  -   -  - 340 40
24006    -   -   -   -   -  -   -  - 345 45
24007    -   -   -   -   -  -   -  - 350 50
24008    -   -   -   -   -  -   -  - 355 55
24009    -   -   -   -   -  -   -  - 365 65
24010    -   -   -   -   -  -   -  - 370 70
24011    -   -   -   -   -  -   -  - 375 75
24012    -   -   -   -   -  -   -  - 380 80
24013    -   -   -   -   -  -   -  - 385 85
24014    -   -   -   -   -  -   -  - 395 95
24016 do_execsql_test joinD-829 {
24017   SELECT t1.*, t2.*, t3.*, t4.*
24018   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
24019   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
24020   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
24021   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24022 } {
24023   10 110 210 310 110 10   -  - 310 10
24024   20 120 220 320 120 20   -  - 320 20
24025   30 130 230 330 130 30 230 30 330 30
24026   40 140 240 340 140 40   -  - 340 40
24027   50 150 250 350 150 50   -  - 350 50
24028   60 160 260 360 160 60 260 60 360 60
24029   70 170 270 370 170 70   -  - 370 70
24030   80 180 280 380 180 80   -  - 380 80
24031   90 190 290 390 190 90 290 90 390 90
24033 do_execsql_test joinD-830 {
24034   SELECT t1.*, t2.*, t3.*, t4.*
24035   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
24036   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
24037   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
24038   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24039 } {
24040   10 110 210 310 110 10   -  - 310 10
24041   20 120 220 320 120 20   -  - 320 20
24042   30 130 230 330 130 30 230 30 330 30
24043   40 140 240 340 140 40   -  - 340 40
24044   50 150 250 350 150 50   -  - 350 50
24045   60 160 260 360 160 60 260 60 360 60
24046   70 170 270 370 170 70   -  - 370 70
24047   80 180 280 380 180 80   -  - 380 80
24048   90 190 290 390 190 90 290 90 390 90
24050 do_execsql_test joinD-831 {
24051   SELECT t1.*, t2.*, t3.*, t4.*
24052   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
24053   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
24054   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
24055   WHERE t2.x>0
24056   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24057 } {
24058   10 110 210 310 110 10   -  - 310 10
24059   20 120 220 320 120 20   -  - 320 20
24060   30 130 230 330 130 30 230 30 330 30
24061   40 140 240 340 140 40   -  - 340 40
24062   50 150 250 350 150 50   -  - 350 50
24063   60 160 260 360 160 60 260 60 360 60
24064   70 170 270 370 170 70   -  - 370 70
24065   80 180 280 380 180 80   -  - 380 80
24066   90 190 290 390 190 90 290 90 390 90
24068 do_execsql_test joinD-832 {
24069   SELECT t1.*, t2.*, t3.*, t4.*
24070   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
24071   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
24072   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
24073   WHERE (t2.x>0 OR t2.x IS NULL)
24074   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24075 } {
24076   10 110 210 310 110 10   -  - 310 10
24077   20 120 220 320 120 20   -  - 320 20
24078   30 130 230 330 130 30 230 30 330 30
24079   40 140 240 340 140 40   -  - 340 40
24080   50 150 250 350 150 50   -  - 350 50
24081   60 160 260 360 160 60 260 60 360 60
24082   70 170 270 370 170 70   -  - 370 70
24083   80 180 280 380 180 80   -  - 380 80
24084   90 190 290 390 190 90 290 90 390 90
24086 do_execsql_test joinD-833 {
24087   SELECT t1.*, t2.*, t3.*, t4.*
24088   FROM t1 RIGHT JOIN t2 ON true
24089   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
24090   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
24091   WHERE t1.b=t2.b AND t2.x>0
24092   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24093 } {
24094   10 110 210 310 110 10   -  - 310 10
24095   20 120 220 320 120 20   -  - 320 20
24096   30 130 230 330 130 30 230 30 330 30
24097   40 140 240 340 140 40   -  - 340 40
24098   50 150 250 350 150 50   -  - 350 50
24099   60 160 260 360 160 60 260 60 360 60
24100   70 170 270 370 170 70   -  - 370 70
24101   80 180 280 380 180 80   -  - 380 80
24102   90 190 290 390 190 90 290 90 390 90
24104 do_execsql_test joinD-834 {
24105   SELECT t1.*, t2.*, t3.*, t4.*
24106   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
24107   FULL JOIN t3 ON t1.c=t3.c
24108   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
24109   WHERE t3.y>0
24110   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24111 } {
24112   30 130 230 330 130 30 230 30 330 30
24113   60 160 260 360 160 60 260 60 360 60
24114   90 190 290 390 190 90 290 90 390 90
24116 do_execsql_test joinD-835 {
24117   SELECT t1.*, t2.*, t3.*, t4.*
24118   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
24119   FULL JOIN t3 ON t1.c=t3.c
24120   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
24121   WHERE t3.y>0 OR t3.y IS NULL
24122   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24123 } {
24124   10 110 210 310 110 10   -  - 310 10
24125   20 120 220 320 120 20   -  - 320 20
24126   30 130 230 330 130 30 230 30 330 30
24127   40 140 240 340 140 40   -  - 340 40
24128   50 150 250 350 150 50   -  - 350 50
24129   60 160 260 360 160 60 260 60 360 60
24130   70 170 270 370 170 70   -  - 370 70
24131   80 180 280 380 180 80   -  - 380 80
24132   90 190 290 390 190 90 290 90 390 90
24134 do_execsql_test joinD-836 {
24135   SELECT t1.*, t2.*, t3.*, t4.*
24136   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
24137   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
24138   INNER JOIN t4 ON t1.d=t4.d
24139   WHERE t4.z>0
24140   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24141 } {
24142   10 110 210 310 110 10   -  - 310 10
24143   20 120 220 320 120 20   -  - 320 20
24144   30 130 230 330 130 30 230 30 330 30
24145   40 140 240 340 140 40   -  - 340 40
24146   50 150 250 350 150 50   -  - 350 50
24147   60 160 260 360 160 60 260 60 360 60
24148   70 170 270 370 170 70   -  - 370 70
24149   80 180 280 380 180 80   -  - 380 80
24150   90 190 290 390 190 90 290 90 390 90
24152 do_execsql_test joinD-837 {
24153   SELECT t1.*, t2.*, t3.*, t4.*
24154   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
24155   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
24156   INNER JOIN t4 ON t1.d=t4.d
24157   WHERE t4.z IS NULL OR t4.z>0
24158   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24159 } {
24160   10 110 210 310 110 10   -  - 310 10
24161   20 120 220 320 120 20   -  - 320 20
24162   30 130 230 330 130 30 230 30 330 30
24163   40 140 240 340 140 40   -  - 340 40
24164   50 150 250 350 150 50   -  - 350 50
24165   60 160 260 360 160 60 260 60 360 60
24166   70 170 270 370 170 70   -  - 370 70
24167   80 180 280 380 180 80   -  - 380 80
24168   90 190 290 390 190 90 290 90 390 90
24170 do_execsql_test joinD-838 {
24171   SELECT t1.*, t2.*, t3.*, t4.*
24172   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
24173   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
24174   INNER JOIN t4 ON t1.d=t4.d
24175   WHERE t2.x>0 AND t4.z>0
24176   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24177 } {
24178   10 110 210 310 110 10   -  - 310 10
24179   20 120 220 320 120 20   -  - 320 20
24180   30 130 230 330 130 30 230 30 330 30
24181   40 140 240 340 140 40   -  - 340 40
24182   50 150 250 350 150 50   -  - 350 50
24183   60 160 260 360 160 60 260 60 360 60
24184   70 170 270 370 170 70   -  - 370 70
24185   80 180 280 380 180 80   -  - 380 80
24186   90 190 290 390 190 90 290 90 390 90
24188 do_execsql_test joinD-839 {
24189   SELECT t1.*, t2.*, t3.*, t4.*
24190   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
24191   FULL JOIN t3 ON t1.c=t3.c
24192   INNER JOIN t4 ON t1.d=t4.d
24193   WHERE t4.z>0 AND t3.y>0
24194   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24195 } {
24196   30 130 230 330 130 30 230 30 330 30
24197   60 160 260 360 160 60 260 60 360 60
24198   90 190 290 390 190 90 290 90 390 90
24200 do_execsql_test joinD-840 {
24201   SELECT t1.*, t2.*, t3.*, t4.*
24202   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
24203   FULL JOIN t3 ON t1.c=t3.c
24204   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
24205   WHERE t2.x>0 AND t3.y>0
24206   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24207 } {
24208   30 130 230 330 130 30 230 30 330 30
24209   60 160 260 360 160 60 260 60 360 60
24210   90 190 290 390 190 90 290 90 390 90
24212 do_execsql_test joinD-841 {
24213   SELECT t1.*, t2.*, t3.*, t4.*
24214   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
24215   FULL JOIN t3 ON t1.c=t3.c
24216   INNER JOIN t4 ON t1.d=t4.d
24217   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
24218   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24219 } {
24220   30 130 230 330 130 30 230 30 330 30
24221   60 160 260 360 160 60 260 60 360 60
24222   90 190 290 390 190 90 290 90 390 90
24224 do_execsql_test joinD-842 {
24225   SELECT t1.*, t2.*, t3.*, t4.*
24226   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
24227   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
24228   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
24229   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24230 } {
24231   10 110 210 310 110 10   -  - 310 10
24232   20 120 220 320 120 20   -  - 320 20
24233   30 130 230 330 130 30 230 30 330 30
24234   40 140 240 340 140 40   -  - 340 40
24235   50 150 250 350 150 50   -  - 350 50
24236   60 160 260 360 160 60 260 60 360 60
24237   70 170 270 370 170 70   -  - 370 70
24238   80 180 280 380 180 80   -  - 380 80
24239   90 190 290 390 190 90 290 90 390 90
24241 do_execsql_test joinD-843 {
24242   SELECT t1.*, t2.*, t3.*, t4.*
24243   FROM t1 RIGHT JOIN t2 ON t2.x>0
24244   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
24245   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
24246   WHERE t1.b IS NOT DISTINCT FROM t2.b
24247   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24248 } {
24249   10 110 210 310 110 10   -  - 310 10
24250   20 120 220 320 120 20   -  - 320 20
24251   30 130 230 330 130 30 230 30 330 30
24252   40 140 240 340 140 40   -  - 340 40
24253   50 150 250 350 150 50   -  - 350 50
24254   60 160 260 360 160 60 260 60 360 60
24255   70 170 270 370 170 70   -  - 370 70
24256   80 180 280 380 180 80   -  - 380 80
24257   90 190 290 390 190 90 290 90 390 90
24259 do_execsql_test joinD-844 {
24260   SELECT t1.*, t2.*, t3.*, t4.*
24261   FROM t1 RIGHT JOIN t2 ON t2.x>0
24262   FULL JOIN t3 ON t3.y>0
24263   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
24264   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
24265   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24266 } {
24267   30 130 230 330 130 30 230 30 330 30
24268   60 160 260 360 160 60 260 60 360 60
24269   90 190 290 390 190 90 290 90 390 90
24271 do_execsql_test joinD-845 {
24272   SELECT t1.*, t2.*, t3.*, t4.*
24273   FROM t1 RIGHT JOIN t2 ON t2.x>0
24274   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
24275   INNER JOIN t4 ON t4.z>0
24276   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
24277   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24278 } {
24279   10 110 210 310 110 10   -  - 310 10
24280   20 120 220 320 120 20   -  - 320 20
24281   30 130 230 330 130 30 230 30 330 30
24282   40 140 240 340 140 40   -  - 340 40
24283   50 150 250 350 150 50   -  - 350 50
24284   60 160 260 360 160 60 260 60 360 60
24285   70 170 270 370 170 70   -  - 370 70
24286   80 180 280 380 180 80   -  - 380 80
24287   90 190 290 390 190 90 290 90 390 90
24289 do_execsql_test joinD-846 {
24290   SELECT t1.*, t2.*, t3.*, t4.*
24291   FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
24292   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
24293   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
24294   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24295 } {
24296   10 110 210 310 110 10   -  - 310 10
24297   20 120 220 320 120 20   -  - 320 20
24298   30 130 230 330 130 30 230 30 330 30
24299   40 140 240 340 140 40   -  - 340 40
24300   50 150 250 350 150 50   -  - 350 50
24301   60 160 260 360 160 60 260 60 360 60
24302   70 170 270 370 170 70   -  - 370 70
24303   80 180 280 380 180 80   -  - 380 80
24304   90 190 290 390 190 90 290 90 390 90
24306 do_execsql_test joinD-847 {
24307   SELECT t1.*, t2.*, t3.*, t4.*
24308   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
24309   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
24310   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
24311   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24312 } {
24313    2 102 202 302 102  2   -  -   -  -
24314    4 104 204 304 104  4   -  -   -  -
24315    6 106 206 306 106  6 206  6   -  -
24316    8 108 208 308 108  8   -  -   -  -
24317   10 110 210 310 110 10   -  - 310 10
24318   12 112 212 312 112 12 212 12   -  -
24319   14 114 214 314 114 14   -  -   -  -
24320   16 116 216 316 116 16   -  -   -  -
24321   18 118 218 318 118 18 218 18   -  -
24322   20 120 220 320 120 20   -  - 320 20
24323   22 122 222 322 122 22   -  -   -  -
24324   24 124 224 324 124 24 224 24   -  -
24325   26 126 226 326 126 26   -  -   -  -
24326   28 128 228 328 128 28   -  -   -  -
24327   30 130 230 330 130 30 230 30 330 30
24328   32 132 232 332 132 32   -  -   -  -
24329   34 134 234 334 134 34   -  -   -  -
24330   36 136 236 336 136 36 236 36   -  -
24331   38 138 238 338 138 38   -  -   -  -
24332   40 140 240 340 140 40   -  - 340 40
24333   42 142 242 342 142 42 242 42   -  -
24334   44 144 244 344 144 44   -  -   -  -
24335   46 146 246 346 146 46   -  -   -  -
24336   48 148 248 348 148 48 248 48   -  -
24337   50 150 250 350 150 50   -  - 350 50
24338   52 152 252 352 152 52   -  -   -  -
24339   54 154 254 354 154 54 254 54   -  -
24340   56 156 256 356 156 56   -  -   -  -
24341   58 158 258 358 158 58   -  -   -  -
24342   60 160 260 360 160 60 260 60 360 60
24343   62 162 262 362 162 62   -  -   -  -
24344   64 164 264 364 164 64   -  -   -  -
24345   66 166 266 366 166 66 266 66   -  -
24346   68 168 268 368 168 68   -  -   -  -
24347   70 170 270 370 170 70   -  - 370 70
24348   72 172 272 372 172 72 272 72   -  -
24349   74 174 274 374 174 74   -  -   -  -
24350   76 176 276 376 176 76   -  -   -  -
24351   78 178 278 378 178 78 278 78   -  -
24352   80 180 280 380 180 80   -  - 380 80
24353   82 182 282 382 182 82   -  -   -  -
24354   84 184 284 384 184 84 284 84   -  -
24355   86 186 286 386 186 86   -  -   -  -
24356   88 188 288 388 188 88   -  -   -  -
24357   90 190 290 390 190 90 290 90 390 90
24358   92 192 292 392 192 92   -  -   -  -
24359   94 194 294 394 194 94   -  -   -  -
24360    -   -   -   - 100  0   -  -   -  -
24361    -   -   -   -   -  - 200  0   -  -
24362    -   -   -   -   -  - 203  3   -  -
24363    -   -   -   -   -  - 209  9   -  -
24364    -   -   -   -   -  - 215 15   -  -
24365    -   -   -   -   -  - 221 21   -  -
24366    -   -   -   -   -  - 227 27   -  -
24367    -   -   -   -   -  - 233 33   -  -
24368    -   -   -   -   -  - 239 39   -  -
24369    -   -   -   -   -  - 245 45   -  -
24370    -   -   -   -   -  - 251 51   -  -
24371    -   -   -   -   -  - 257 57   -  -
24372    -   -   -   -   -  - 263 63   -  -
24373    -   -   -   -   -  - 269 69   -  -
24374    -   -   -   -   -  - 275 75   -  -
24375    -   -   -   -   -  - 281 81   -  -
24376    -   -   -   -   -  - 287 87   -  -
24377    -   -   -   -   -  - 293 93   -  -
24379 do_execsql_test joinD-848 {
24380   SELECT t1.*, t2.*, t3.*, t4.*
24381   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
24382   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
24383   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
24384   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24385 } {
24386    2 102 202 302 102  2   -  -   -  -
24387    4 104 204 304 104  4   -  -   -  -
24388    6 106 206 306 106  6 206  6   -  -
24389    8 108 208 308 108  8   -  -   -  -
24390   10 110 210 310 110 10   -  - 310 10
24391   12 112 212 312 112 12 212 12   -  -
24392   14 114 214 314 114 14   -  -   -  -
24393   16 116 216 316 116 16   -  -   -  -
24394   18 118 218 318 118 18 218 18   -  -
24395   20 120 220 320 120 20   -  - 320 20
24396   22 122 222 322 122 22   -  -   -  -
24397   24 124 224 324 124 24 224 24   -  -
24398   26 126 226 326 126 26   -  -   -  -
24399   28 128 228 328 128 28   -  -   -  -
24400   30 130 230 330 130 30 230 30 330 30
24401   32 132 232 332 132 32   -  -   -  -
24402   34 134 234 334 134 34   -  -   -  -
24403   36 136 236 336 136 36 236 36   -  -
24404   38 138 238 338 138 38   -  -   -  -
24405   40 140 240 340 140 40   -  - 340 40
24406   42 142 242 342 142 42 242 42   -  -
24407   44 144 244 344 144 44   -  -   -  -
24408   46 146 246 346 146 46   -  -   -  -
24409   48 148 248 348 148 48 248 48   -  -
24410   50 150 250 350 150 50   -  - 350 50
24411   52 152 252 352 152 52   -  -   -  -
24412   54 154 254 354 154 54 254 54   -  -
24413   56 156 256 356 156 56   -  -   -  -
24414   58 158 258 358 158 58   -  -   -  -
24415   60 160 260 360 160 60 260 60 360 60
24416   62 162 262 362 162 62   -  -   -  -
24417   64 164 264 364 164 64   -  -   -  -
24418   66 166 266 366 166 66 266 66   -  -
24419   68 168 268 368 168 68   -  -   -  -
24420   70 170 270 370 170 70   -  - 370 70
24421   72 172 272 372 172 72 272 72   -  -
24422   74 174 274 374 174 74   -  -   -  -
24423   76 176 276 376 176 76   -  -   -  -
24424   78 178 278 378 178 78 278 78   -  -
24425   80 180 280 380 180 80   -  - 380 80
24426   82 182 282 382 182 82   -  -   -  -
24427   84 184 284 384 184 84 284 84   -  -
24428   86 186 286 386 186 86   -  -   -  -
24429   88 188 288 388 188 88   -  -   -  -
24430   90 190 290 390 190 90 290 90 390 90
24431   92 192 292 392 192 92   -  -   -  -
24432   94 194 294 394 194 94   -  -   -  -
24433    -   -   -   - 100  0   -  -   -  -
24434    -   -   -   -   -  - 200  0   -  -
24435    -   -   -   -   -  - 203  3   -  -
24436    -   -   -   -   -  - 209  9   -  -
24437    -   -   -   -   -  - 215 15   -  -
24438    -   -   -   -   -  - 221 21   -  -
24439    -   -   -   -   -  - 227 27   -  -
24440    -   -   -   -   -  - 233 33   -  -
24441    -   -   -   -   -  - 239 39   -  -
24442    -   -   -   -   -  - 245 45   -  -
24443    -   -   -   -   -  - 251 51   -  -
24444    -   -   -   -   -  - 257 57   -  -
24445    -   -   -   -   -  - 263 63   -  -
24446    -   -   -   -   -  - 269 69   -  -
24447    -   -   -   -   -  - 275 75   -  -
24448    -   -   -   -   -  - 281 81   -  -
24449    -   -   -   -   -  - 287 87   -  -
24450    -   -   -   -   -  - 293 93   -  -
24452 do_execsql_test joinD-849 {
24453   SELECT t1.*, t2.*, t3.*, t4.*
24454   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
24455   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
24456   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
24457   WHERE t2.x>0
24458   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24459 } {
24460    2 102 202 302 102  2   -  -   -  -
24461    4 104 204 304 104  4   -  -   -  -
24462    6 106 206 306 106  6 206  6   -  -
24463    8 108 208 308 108  8   -  -   -  -
24464   10 110 210 310 110 10   -  - 310 10
24465   12 112 212 312 112 12 212 12   -  -
24466   14 114 214 314 114 14   -  -   -  -
24467   16 116 216 316 116 16   -  -   -  -
24468   18 118 218 318 118 18 218 18   -  -
24469   20 120 220 320 120 20   -  - 320 20
24470   22 122 222 322 122 22   -  -   -  -
24471   24 124 224 324 124 24 224 24   -  -
24472   26 126 226 326 126 26   -  -   -  -
24473   28 128 228 328 128 28   -  -   -  -
24474   30 130 230 330 130 30 230 30 330 30
24475   32 132 232 332 132 32   -  -   -  -
24476   34 134 234 334 134 34   -  -   -  -
24477   36 136 236 336 136 36 236 36   -  -
24478   38 138 238 338 138 38   -  -   -  -
24479   40 140 240 340 140 40   -  - 340 40
24480   42 142 242 342 142 42 242 42   -  -
24481   44 144 244 344 144 44   -  -   -  -
24482   46 146 246 346 146 46   -  -   -  -
24483   48 148 248 348 148 48 248 48   -  -
24484   50 150 250 350 150 50   -  - 350 50
24485   52 152 252 352 152 52   -  -   -  -
24486   54 154 254 354 154 54 254 54   -  -
24487   56 156 256 356 156 56   -  -   -  -
24488   58 158 258 358 158 58   -  -   -  -
24489   60 160 260 360 160 60 260 60 360 60
24490   62 162 262 362 162 62   -  -   -  -
24491   64 164 264 364 164 64   -  -   -  -
24492   66 166 266 366 166 66 266 66   -  -
24493   68 168 268 368 168 68   -  -   -  -
24494   70 170 270 370 170 70   -  - 370 70
24495   72 172 272 372 172 72 272 72   -  -
24496   74 174 274 374 174 74   -  -   -  -
24497   76 176 276 376 176 76   -  -   -  -
24498   78 178 278 378 178 78 278 78   -  -
24499   80 180 280 380 180 80   -  - 380 80
24500   82 182 282 382 182 82   -  -   -  -
24501   84 184 284 384 184 84 284 84   -  -
24502   86 186 286 386 186 86   -  -   -  -
24503   88 188 288 388 188 88   -  -   -  -
24504   90 190 290 390 190 90 290 90 390 90
24505   92 192 292 392 192 92   -  -   -  -
24506   94 194 294 394 194 94   -  -   -  -
24508 do_execsql_test joinD-850 {
24509   SELECT t1.*, t2.*, t3.*, t4.*
24510   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
24511   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
24512   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
24513   WHERE (t2.x>0 OR t2.x IS NULL)
24514   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24515 } {
24516    2 102 202 302 102  2   -  -   -  -
24517    4 104 204 304 104  4   -  -   -  -
24518    6 106 206 306 106  6 206  6   -  -
24519    8 108 208 308 108  8   -  -   -  -
24520   10 110 210 310 110 10   -  - 310 10
24521   12 112 212 312 112 12 212 12   -  -
24522   14 114 214 314 114 14   -  -   -  -
24523   16 116 216 316 116 16   -  -   -  -
24524   18 118 218 318 118 18 218 18   -  -
24525   20 120 220 320 120 20   -  - 320 20
24526   22 122 222 322 122 22   -  -   -  -
24527   24 124 224 324 124 24 224 24   -  -
24528   26 126 226 326 126 26   -  -   -  -
24529   28 128 228 328 128 28   -  -   -  -
24530   30 130 230 330 130 30 230 30 330 30
24531   32 132 232 332 132 32   -  -   -  -
24532   34 134 234 334 134 34   -  -   -  -
24533   36 136 236 336 136 36 236 36   -  -
24534   38 138 238 338 138 38   -  -   -  -
24535   40 140 240 340 140 40   -  - 340 40
24536   42 142 242 342 142 42 242 42   -  -
24537   44 144 244 344 144 44   -  -   -  -
24538   46 146 246 346 146 46   -  -   -  -
24539   48 148 248 348 148 48 248 48   -  -
24540   50 150 250 350 150 50   -  - 350 50
24541   52 152 252 352 152 52   -  -   -  -
24542   54 154 254 354 154 54 254 54   -  -
24543   56 156 256 356 156 56   -  -   -  -
24544   58 158 258 358 158 58   -  -   -  -
24545   60 160 260 360 160 60 260 60 360 60
24546   62 162 262 362 162 62   -  -   -  -
24547   64 164 264 364 164 64   -  -   -  -
24548   66 166 266 366 166 66 266 66   -  -
24549   68 168 268 368 168 68   -  -   -  -
24550   70 170 270 370 170 70   -  - 370 70
24551   72 172 272 372 172 72 272 72   -  -
24552   74 174 274 374 174 74   -  -   -  -
24553   76 176 276 376 176 76   -  -   -  -
24554   78 178 278 378 178 78 278 78   -  -
24555   80 180 280 380 180 80   -  - 380 80
24556   82 182 282 382 182 82   -  -   -  -
24557   84 184 284 384 184 84 284 84   -  -
24558   86 186 286 386 186 86   -  -   -  -
24559   88 188 288 388 188 88   -  -   -  -
24560   90 190 290 390 190 90 290 90 390 90
24561   92 192 292 392 192 92   -  -   -  -
24562   94 194 294 394 194 94   -  -   -  -
24563    -   -   -   -   -  - 200  0   -  -
24564    -   -   -   -   -  - 203  3   -  -
24565    -   -   -   -   -  - 209  9   -  -
24566    -   -   -   -   -  - 215 15   -  -
24567    -   -   -   -   -  - 221 21   -  -
24568    -   -   -   -   -  - 227 27   -  -
24569    -   -   -   -   -  - 233 33   -  -
24570    -   -   -   -   -  - 239 39   -  -
24571    -   -   -   -   -  - 245 45   -  -
24572    -   -   -   -   -  - 251 51   -  -
24573    -   -   -   -   -  - 257 57   -  -
24574    -   -   -   -   -  - 263 63   -  -
24575    -   -   -   -   -  - 269 69   -  -
24576    -   -   -   -   -  - 275 75   -  -
24577    -   -   -   -   -  - 281 81   -  -
24578    -   -   -   -   -  - 287 87   -  -
24579    -   -   -   -   -  - 293 93   -  -
24581 do_execsql_test joinD-851 {
24582   SELECT t1.*, t2.*, t3.*, t4.*
24583   FROM t1 RIGHT JOIN t2 ON true
24584   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
24585   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
24586   WHERE t1.b=t2.b AND t2.x>0
24587   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24588 } {
24589    2 102 202 302 102  2   -  -   -  -
24590    4 104 204 304 104  4   -  -   -  -
24591    6 106 206 306 106  6 206  6   -  -
24592    8 108 208 308 108  8   -  -   -  -
24593   10 110 210 310 110 10   -  - 310 10
24594   12 112 212 312 112 12 212 12   -  -
24595   14 114 214 314 114 14   -  -   -  -
24596   16 116 216 316 116 16   -  -   -  -
24597   18 118 218 318 118 18 218 18   -  -
24598   20 120 220 320 120 20   -  - 320 20
24599   22 122 222 322 122 22   -  -   -  -
24600   24 124 224 324 124 24 224 24   -  -
24601   26 126 226 326 126 26   -  -   -  -
24602   28 128 228 328 128 28   -  -   -  -
24603   30 130 230 330 130 30 230 30 330 30
24604   32 132 232 332 132 32   -  -   -  -
24605   34 134 234 334 134 34   -  -   -  -
24606   36 136 236 336 136 36 236 36   -  -
24607   38 138 238 338 138 38   -  -   -  -
24608   40 140 240 340 140 40   -  - 340 40
24609   42 142 242 342 142 42 242 42   -  -
24610   44 144 244 344 144 44   -  -   -  -
24611   46 146 246 346 146 46   -  -   -  -
24612   48 148 248 348 148 48 248 48   -  -
24613   50 150 250 350 150 50   -  - 350 50
24614   52 152 252 352 152 52   -  -   -  -
24615   54 154 254 354 154 54 254 54   -  -
24616   56 156 256 356 156 56   -  -   -  -
24617   58 158 258 358 158 58   -  -   -  -
24618   60 160 260 360 160 60 260 60 360 60
24619   62 162 262 362 162 62   -  -   -  -
24620   64 164 264 364 164 64   -  -   -  -
24621   66 166 266 366 166 66 266 66   -  -
24622   68 168 268 368 168 68   -  -   -  -
24623   70 170 270 370 170 70   -  - 370 70
24624   72 172 272 372 172 72 272 72   -  -
24625   74 174 274 374 174 74   -  -   -  -
24626   76 176 276 376 176 76   -  -   -  -
24627   78 178 278 378 178 78 278 78   -  -
24628   80 180 280 380 180 80   -  - 380 80
24629   82 182 282 382 182 82   -  -   -  -
24630   84 184 284 384 184 84 284 84   -  -
24631   86 186 286 386 186 86   -  -   -  -
24632   88 188 288 388 188 88   -  -   -  -
24633   90 190 290 390 190 90 290 90 390 90
24634   92 192 292 392 192 92   -  -   -  -
24635   94 194 294 394 194 94   -  -   -  -
24637 do_execsql_test joinD-852 {
24638   SELECT t1.*, t2.*, t3.*, t4.*
24639   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
24640   FULL JOIN t3 ON t1.c=t3.c
24641   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
24642   WHERE t3.y>0
24643   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24644 } {
24645    6 106 206 306 106  6 206  6   -  -
24646   12 112 212 312 112 12 212 12   -  -
24647   18 118 218 318 118 18 218 18   -  -
24648   24 124 224 324 124 24 224 24   -  -
24649   30 130 230 330 130 30 230 30 330 30
24650   36 136 236 336 136 36 236 36   -  -
24651   42 142 242 342 142 42 242 42   -  -
24652   48 148 248 348 148 48 248 48   -  -
24653   54 154 254 354 154 54 254 54   -  -
24654   60 160 260 360 160 60 260 60 360 60
24655   66 166 266 366 166 66 266 66   -  -
24656   72 172 272 372 172 72 272 72   -  -
24657   78 178 278 378 178 78 278 78   -  -
24658   84 184 284 384 184 84 284 84   -  -
24659   90 190 290 390 190 90 290 90 390 90
24660    -   -   -   -   -  - 203  3   -  -
24661    -   -   -   -   -  - 209  9   -  -
24662    -   -   -   -   -  - 215 15   -  -
24663    -   -   -   -   -  - 221 21   -  -
24664    -   -   -   -   -  - 227 27   -  -
24665    -   -   -   -   -  - 233 33   -  -
24666    -   -   -   -   -  - 239 39   -  -
24667    -   -   -   -   -  - 245 45   -  -
24668    -   -   -   -   -  - 251 51   -  -
24669    -   -   -   -   -  - 257 57   -  -
24670    -   -   -   -   -  - 263 63   -  -
24671    -   -   -   -   -  - 269 69   -  -
24672    -   -   -   -   -  - 275 75   -  -
24673    -   -   -   -   -  - 281 81   -  -
24674    -   -   -   -   -  - 287 87   -  -
24675    -   -   -   -   -  - 293 93   -  -
24677 do_execsql_test joinD-853 {
24678   SELECT t1.*, t2.*, t3.*, t4.*
24679   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
24680   FULL JOIN t3 ON t1.c=t3.c
24681   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
24682   WHERE t3.y>0 OR t3.y IS NULL
24683   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24684 } {
24685    2 102 202 302 102  2   -  -   -  -
24686    4 104 204 304 104  4   -  -   -  -
24687    6 106 206 306 106  6 206  6   -  -
24688    8 108 208 308 108  8   -  -   -  -
24689   10 110 210 310 110 10   -  - 310 10
24690   12 112 212 312 112 12 212 12   -  -
24691   14 114 214 314 114 14   -  -   -  -
24692   16 116 216 316 116 16   -  -   -  -
24693   18 118 218 318 118 18 218 18   -  -
24694   20 120 220 320 120 20   -  - 320 20
24695   22 122 222 322 122 22   -  -   -  -
24696   24 124 224 324 124 24 224 24   -  -
24697   26 126 226 326 126 26   -  -   -  -
24698   28 128 228 328 128 28   -  -   -  -
24699   30 130 230 330 130 30 230 30 330 30
24700   32 132 232 332 132 32   -  -   -  -
24701   34 134 234 334 134 34   -  -   -  -
24702   36 136 236 336 136 36 236 36   -  -
24703   38 138 238 338 138 38   -  -   -  -
24704   40 140 240 340 140 40   -  - 340 40
24705   42 142 242 342 142 42 242 42   -  -
24706   44 144 244 344 144 44   -  -   -  -
24707   46 146 246 346 146 46   -  -   -  -
24708   48 148 248 348 148 48 248 48   -  -
24709   50 150 250 350 150 50   -  - 350 50
24710   52 152 252 352 152 52   -  -   -  -
24711   54 154 254 354 154 54 254 54   -  -
24712   56 156 256 356 156 56   -  -   -  -
24713   58 158 258 358 158 58   -  -   -  -
24714   60 160 260 360 160 60 260 60 360 60
24715   62 162 262 362 162 62   -  -   -  -
24716   64 164 264 364 164 64   -  -   -  -
24717   66 166 266 366 166 66 266 66   -  -
24718   68 168 268 368 168 68   -  -   -  -
24719   70 170 270 370 170 70   -  - 370 70
24720   72 172 272 372 172 72 272 72   -  -
24721   74 174 274 374 174 74   -  -   -  -
24722   76 176 276 376 176 76   -  -   -  -
24723   78 178 278 378 178 78 278 78   -  -
24724   80 180 280 380 180 80   -  - 380 80
24725   82 182 282 382 182 82   -  -   -  -
24726   84 184 284 384 184 84 284 84   -  -
24727   86 186 286 386 186 86   -  -   -  -
24728   88 188 288 388 188 88   -  -   -  -
24729   90 190 290 390 190 90 290 90 390 90
24730   92 192 292 392 192 92   -  -   -  -
24731   94 194 294 394 194 94   -  -   -  -
24732    -   -   -   - 100  0   -  -   -  -
24733    -   -   -   -   -  - 203  3   -  -
24734    -   -   -   -   -  - 209  9   -  -
24735    -   -   -   -   -  - 215 15   -  -
24736    -   -   -   -   -  - 221 21   -  -
24737    -   -   -   -   -  - 227 27   -  -
24738    -   -   -   -   -  - 233 33   -  -
24739    -   -   -   -   -  - 239 39   -  -
24740    -   -   -   -   -  - 245 45   -  -
24741    -   -   -   -   -  - 251 51   -  -
24742    -   -   -   -   -  - 257 57   -  -
24743    -   -   -   -   -  - 263 63   -  -
24744    -   -   -   -   -  - 269 69   -  -
24745    -   -   -   -   -  - 275 75   -  -
24746    -   -   -   -   -  - 281 81   -  -
24747    -   -   -   -   -  - 287 87   -  -
24748    -   -   -   -   -  - 293 93   -  -
24750 do_execsql_test joinD-854 {
24751   SELECT t1.*, t2.*, t3.*, t4.*
24752   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
24753   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
24754   LEFT JOIN t4 ON t1.d=t4.d
24755   WHERE t4.z>0
24756   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24757 } {
24758   10 110 210 310 110 10   -  - 310 10
24759   20 120 220 320 120 20   -  - 320 20
24760   30 130 230 330 130 30 230 30 330 30
24761   40 140 240 340 140 40   -  - 340 40
24762   50 150 250 350 150 50   -  - 350 50
24763   60 160 260 360 160 60 260 60 360 60
24764   70 170 270 370 170 70   -  - 370 70
24765   80 180 280 380 180 80   -  - 380 80
24766   90 190 290 390 190 90 290 90 390 90
24768 do_execsql_test joinD-855 {
24769   SELECT t1.*, t2.*, t3.*, t4.*
24770   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
24771   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
24772   LEFT JOIN t4 ON t1.d=t4.d
24773   WHERE t4.z IS NULL OR t4.z>0
24774   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24775 } {
24776    2 102 202 302 102  2   -  -   -  -
24777    4 104 204 304 104  4   -  -   -  -
24778    6 106 206 306 106  6 206  6   -  -
24779    8 108 208 308 108  8   -  -   -  -
24780   10 110 210 310 110 10   -  - 310 10
24781   12 112 212 312 112 12 212 12   -  -
24782   14 114 214 314 114 14   -  -   -  -
24783   16 116 216 316 116 16   -  -   -  -
24784   18 118 218 318 118 18 218 18   -  -
24785   20 120 220 320 120 20   -  - 320 20
24786   22 122 222 322 122 22   -  -   -  -
24787   24 124 224 324 124 24 224 24   -  -
24788   26 126 226 326 126 26   -  -   -  -
24789   28 128 228 328 128 28   -  -   -  -
24790   30 130 230 330 130 30 230 30 330 30
24791   32 132 232 332 132 32   -  -   -  -
24792   34 134 234 334 134 34   -  -   -  -
24793   36 136 236 336 136 36 236 36   -  -
24794   38 138 238 338 138 38   -  -   -  -
24795   40 140 240 340 140 40   -  - 340 40
24796   42 142 242 342 142 42 242 42   -  -
24797   44 144 244 344 144 44   -  -   -  -
24798   46 146 246 346 146 46   -  -   -  -
24799   48 148 248 348 148 48 248 48   -  -
24800   50 150 250 350 150 50   -  - 350 50
24801   52 152 252 352 152 52   -  -   -  -
24802   54 154 254 354 154 54 254 54   -  -
24803   56 156 256 356 156 56   -  -   -  -
24804   58 158 258 358 158 58   -  -   -  -
24805   60 160 260 360 160 60 260 60 360 60
24806   62 162 262 362 162 62   -  -   -  -
24807   64 164 264 364 164 64   -  -   -  -
24808   66 166 266 366 166 66 266 66   -  -
24809   68 168 268 368 168 68   -  -   -  -
24810   70 170 270 370 170 70   -  - 370 70
24811   72 172 272 372 172 72 272 72   -  -
24812   74 174 274 374 174 74   -  -   -  -
24813   76 176 276 376 176 76   -  -   -  -
24814   78 178 278 378 178 78 278 78   -  -
24815   80 180 280 380 180 80   -  - 380 80
24816   82 182 282 382 182 82   -  -   -  -
24817   84 184 284 384 184 84 284 84   -  -
24818   86 186 286 386 186 86   -  -   -  -
24819   88 188 288 388 188 88   -  -   -  -
24820   90 190 290 390 190 90 290 90 390 90
24821   92 192 292 392 192 92   -  -   -  -
24822   94 194 294 394 194 94   -  -   -  -
24823    -   -   -   - 100  0   -  -   -  -
24824    -   -   -   -   -  - 200  0   -  -
24825    -   -   -   -   -  - 203  3   -  -
24826    -   -   -   -   -  - 209  9   -  -
24827    -   -   -   -   -  - 215 15   -  -
24828    -   -   -   -   -  - 221 21   -  -
24829    -   -   -   -   -  - 227 27   -  -
24830    -   -   -   -   -  - 233 33   -  -
24831    -   -   -   -   -  - 239 39   -  -
24832    -   -   -   -   -  - 245 45   -  -
24833    -   -   -   -   -  - 251 51   -  -
24834    -   -   -   -   -  - 257 57   -  -
24835    -   -   -   -   -  - 263 63   -  -
24836    -   -   -   -   -  - 269 69   -  -
24837    -   -   -   -   -  - 275 75   -  -
24838    -   -   -   -   -  - 281 81   -  -
24839    -   -   -   -   -  - 287 87   -  -
24840    -   -   -   -   -  - 293 93   -  -
24842 do_execsql_test joinD-856 {
24843   SELECT t1.*, t2.*, t3.*, t4.*
24844   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
24845   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
24846   LEFT JOIN t4 ON t1.d=t4.d
24847   WHERE t2.x>0 AND t4.z>0
24848   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24849 } {
24850   10 110 210 310 110 10   -  - 310 10
24851   20 120 220 320 120 20   -  - 320 20
24852   30 130 230 330 130 30 230 30 330 30
24853   40 140 240 340 140 40   -  - 340 40
24854   50 150 250 350 150 50   -  - 350 50
24855   60 160 260 360 160 60 260 60 360 60
24856   70 170 270 370 170 70   -  - 370 70
24857   80 180 280 380 180 80   -  - 380 80
24858   90 190 290 390 190 90 290 90 390 90
24860 do_execsql_test joinD-857 {
24861   SELECT t1.*, t2.*, t3.*, t4.*
24862   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
24863   FULL JOIN t3 ON t1.c=t3.c
24864   LEFT JOIN t4 ON t1.d=t4.d
24865   WHERE t4.z>0 AND t3.y>0
24866   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24867 } {
24868   30 130 230 330 130 30 230 30 330 30
24869   60 160 260 360 160 60 260 60 360 60
24870   90 190 290 390 190 90 290 90 390 90
24872 do_execsql_test joinD-858 {
24873   SELECT t1.*, t2.*, t3.*, t4.*
24874   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
24875   FULL JOIN t3 ON t1.c=t3.c
24876   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
24877   WHERE t2.x>0 AND t3.y>0
24878   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24879 } {
24880    6 106 206 306 106  6 206  6   -  -
24881   12 112 212 312 112 12 212 12   -  -
24882   18 118 218 318 118 18 218 18   -  -
24883   24 124 224 324 124 24 224 24   -  -
24884   30 130 230 330 130 30 230 30 330 30
24885   36 136 236 336 136 36 236 36   -  -
24886   42 142 242 342 142 42 242 42   -  -
24887   48 148 248 348 148 48 248 48   -  -
24888   54 154 254 354 154 54 254 54   -  -
24889   60 160 260 360 160 60 260 60 360 60
24890   66 166 266 366 166 66 266 66   -  -
24891   72 172 272 372 172 72 272 72   -  -
24892   78 178 278 378 178 78 278 78   -  -
24893   84 184 284 384 184 84 284 84   -  -
24894   90 190 290 390 190 90 290 90 390 90
24896 do_execsql_test joinD-859 {
24897   SELECT t1.*, t2.*, t3.*, t4.*
24898   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
24899   FULL JOIN t3 ON t1.c=t3.c
24900   LEFT JOIN t4 ON t1.d=t4.d
24901   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
24902   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24903 } {
24904   30 130 230 330 130 30 230 30 330 30
24905   60 160 260 360 160 60 260 60 360 60
24906   90 190 290 390 190 90 290 90 390 90
24908 do_execsql_test joinD-860 {
24909   SELECT t1.*, t2.*, t3.*, t4.*
24910   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
24911   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
24912   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
24913   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24914 } {
24915    2 102 202 302 102  2   -  -   -  -
24916    4 104 204 304 104  4   -  -   -  -
24917    6 106 206 306 106  6 206  6   -  -
24918    8 108 208 308 108  8   -  -   -  -
24919   10 110 210 310 110 10   -  - 310 10
24920   12 112 212 312 112 12 212 12   -  -
24921   14 114 214 314 114 14   -  -   -  -
24922   16 116 216 316 116 16   -  -   -  -
24923   18 118 218 318 118 18 218 18   -  -
24924   20 120 220 320 120 20   -  - 320 20
24925   22 122 222 322 122 22   -  -   -  -
24926   24 124 224 324 124 24 224 24   -  -
24927   26 126 226 326 126 26   -  -   -  -
24928   28 128 228 328 128 28   -  -   -  -
24929   30 130 230 330 130 30 230 30 330 30
24930   32 132 232 332 132 32   -  -   -  -
24931   34 134 234 334 134 34   -  -   -  -
24932   36 136 236 336 136 36 236 36   -  -
24933   38 138 238 338 138 38   -  -   -  -
24934   40 140 240 340 140 40   -  - 340 40
24935   42 142 242 342 142 42 242 42   -  -
24936   44 144 244 344 144 44   -  -   -  -
24937   46 146 246 346 146 46   -  -   -  -
24938   48 148 248 348 148 48 248 48   -  -
24939   50 150 250 350 150 50   -  - 350 50
24940   52 152 252 352 152 52   -  -   -  -
24941   54 154 254 354 154 54 254 54   -  -
24942   56 156 256 356 156 56   -  -   -  -
24943   58 158 258 358 158 58   -  -   -  -
24944   60 160 260 360 160 60 260 60 360 60
24945   62 162 262 362 162 62   -  -   -  -
24946   64 164 264 364 164 64   -  -   -  -
24947   66 166 266 366 166 66 266 66   -  -
24948   68 168 268 368 168 68   -  -   -  -
24949   70 170 270 370 170 70   -  - 370 70
24950   72 172 272 372 172 72 272 72   -  -
24951   74 174 274 374 174 74   -  -   -  -
24952   76 176 276 376 176 76   -  -   -  -
24953   78 178 278 378 178 78 278 78   -  -
24954   80 180 280 380 180 80   -  - 380 80
24955   82 182 282 382 182 82   -  -   -  -
24956   84 184 284 384 184 84 284 84   -  -
24957   86 186 286 386 186 86   -  -   -  -
24958   88 188 288 388 188 88   -  -   -  -
24959   90 190 290 390 190 90 290 90 390 90
24960   92 192 292 392 192 92   -  -   -  -
24961   94 194 294 394 194 94   -  -   -  -
24962    -   -   -   - 100  0   -  -   -  -
24963    -   -   -   -   -  - 200  0   -  -
24964    -   -   -   -   -  - 203  3   -  -
24965    -   -   -   -   -  - 209  9   -  -
24966    -   -   -   -   -  - 215 15   -  -
24967    -   -   -   -   -  - 221 21   -  -
24968    -   -   -   -   -  - 227 27   -  -
24969    -   -   -   -   -  - 233 33   -  -
24970    -   -   -   -   -  - 239 39   -  -
24971    -   -   -   -   -  - 245 45   -  -
24972    -   -   -   -   -  - 251 51   -  -
24973    -   -   -   -   -  - 257 57   -  -
24974    -   -   -   -   -  - 263 63   -  -
24975    -   -   -   -   -  - 269 69   -  -
24976    -   -   -   -   -  - 275 75   -  -
24977    -   -   -   -   -  - 281 81   -  -
24978    -   -   -   -   -  - 287 87   -  -
24979    -   -   -   -   -  - 293 93   -  -
24981 do_execsql_test joinD-861 {
24982   SELECT t1.*, t2.*, t3.*, t4.*
24983   FROM t1 RIGHT JOIN t2 ON t2.x>0
24984   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
24985   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
24986   WHERE t1.b IS NOT DISTINCT FROM t2.b
24987   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
24988 } {
24989    2 102 202 302 102  2   -  -   -  -
24990    4 104 204 304 104  4   -  -   -  -
24991    6 106 206 306 106  6 206  6   -  -
24992    8 108 208 308 108  8   -  -   -  -
24993   10 110 210 310 110 10   -  - 310 10
24994   12 112 212 312 112 12 212 12   -  -
24995   14 114 214 314 114 14   -  -   -  -
24996   16 116 216 316 116 16   -  -   -  -
24997   18 118 218 318 118 18 218 18   -  -
24998   20 120 220 320 120 20   -  - 320 20
24999   22 122 222 322 122 22   -  -   -  -
25000   24 124 224 324 124 24 224 24   -  -
25001   26 126 226 326 126 26   -  -   -  -
25002   28 128 228 328 128 28   -  -   -  -
25003   30 130 230 330 130 30 230 30 330 30
25004   32 132 232 332 132 32   -  -   -  -
25005   34 134 234 334 134 34   -  -   -  -
25006   36 136 236 336 136 36 236 36   -  -
25007   38 138 238 338 138 38   -  -   -  -
25008   40 140 240 340 140 40   -  - 340 40
25009   42 142 242 342 142 42 242 42   -  -
25010   44 144 244 344 144 44   -  -   -  -
25011   46 146 246 346 146 46   -  -   -  -
25012   48 148 248 348 148 48 248 48   -  -
25013   50 150 250 350 150 50   -  - 350 50
25014   52 152 252 352 152 52   -  -   -  -
25015   54 154 254 354 154 54 254 54   -  -
25016   56 156 256 356 156 56   -  -   -  -
25017   58 158 258 358 158 58   -  -   -  -
25018   60 160 260 360 160 60 260 60 360 60
25019   62 162 262 362 162 62   -  -   -  -
25020   64 164 264 364 164 64   -  -   -  -
25021   66 166 266 366 166 66 266 66   -  -
25022   68 168 268 368 168 68   -  -   -  -
25023   70 170 270 370 170 70   -  - 370 70
25024   72 172 272 372 172 72 272 72   -  -
25025   74 174 274 374 174 74   -  -   -  -
25026   76 176 276 376 176 76   -  -   -  -
25027   78 178 278 378 178 78 278 78   -  -
25028   80 180 280 380 180 80   -  - 380 80
25029   82 182 282 382 182 82   -  -   -  -
25030   84 184 284 384 184 84 284 84   -  -
25031   86 186 286 386 186 86   -  -   -  -
25032   88 188 288 388 188 88   -  -   -  -
25033   90 190 290 390 190 90 290 90 390 90
25034   92 192 292 392 192 92   -  -   -  -
25035   94 194 294 394 194 94   -  -   -  -
25036    -   -   -   -   -  - 200  0   -  -
25038 do_execsql_test joinD-862 {
25039   SELECT t1.*, t2.*, t3.*, t4.*
25040   FROM t1 RIGHT JOIN t2 ON t2.x>0
25041   FULL JOIN t3 ON t3.y>0
25042   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
25043   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
25044   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25045 } {
25046    6 106 206 306 106  6 206  6   -  -
25047   12 112 212 312 112 12 212 12   -  -
25048   18 118 218 318 118 18 218 18   -  -
25049   24 124 224 324 124 24 224 24   -  -
25050   30 130 230 330 130 30 230 30 330 30
25051   36 136 236 336 136 36 236 36   -  -
25052   42 142 242 342 142 42 242 42   -  -
25053   48 148 248 348 148 48 248 48   -  -
25054   54 154 254 354 154 54 254 54   -  -
25055   60 160 260 360 160 60 260 60 360 60
25056   66 166 266 366 166 66 266 66   -  -
25057   72 172 272 372 172 72 272 72   -  -
25058   78 178 278 378 178 78 278 78   -  -
25059   84 184 284 384 184 84 284 84   -  -
25060   90 190 290 390 190 90 290 90 390 90
25062 do_execsql_test joinD-863 {
25063   SELECT t1.*, t2.*, t3.*, t4.*
25064   FROM t1 RIGHT JOIN t2 ON t2.x>0
25065   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
25066   LEFT JOIN t4 ON t4.z>0
25067   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
25068   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25069 } {
25070   10 110 210 310 110 10   -  - 310 10
25071   20 120 220 320 120 20   -  - 320 20
25072   30 130 230 330 130 30 230 30 330 30
25073   40 140 240 340 140 40   -  - 340 40
25074   50 150 250 350 150 50   -  - 350 50
25075   60 160 260 360 160 60 260 60 360 60
25076   70 170 270 370 170 70   -  - 370 70
25077   80 180 280 380 180 80   -  - 380 80
25078   90 190 290 390 190 90 290 90 390 90
25080 do_execsql_test joinD-864 {
25081   SELECT t1.*, t2.*, t3.*, t4.*
25082   FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
25083   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
25084   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
25085   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25086 } {
25087    2 102 202 302 102  2   -  -   -  -
25088    4 104 204 304 104  4   -  -   -  -
25089    6 106 206 306 106  6 206  6   -  -
25090    8 108 208 308 108  8   -  -   -  -
25091   10 110 210 310 110 10   -  - 310 10
25092   12 112 212 312 112 12 212 12   -  -
25093   14 114 214 314 114 14   -  -   -  -
25094   16 116 216 316 116 16   -  -   -  -
25095   18 118 218 318 118 18 218 18   -  -
25096   20 120 220 320 120 20   -  - 320 20
25097   22 122 222 322 122 22   -  -   -  -
25098   24 124 224 324 124 24 224 24   -  -
25099   26 126 226 326 126 26   -  -   -  -
25100   28 128 228 328 128 28   -  -   -  -
25101   30 130 230 330 130 30 230 30 330 30
25102   32 132 232 332 132 32   -  -   -  -
25103   34 134 234 334 134 34   -  -   -  -
25104   36 136 236 336 136 36 236 36   -  -
25105   38 138 238 338 138 38   -  -   -  -
25106   40 140 240 340 140 40   -  - 340 40
25107   42 142 242 342 142 42 242 42   -  -
25108   44 144 244 344 144 44   -  -   -  -
25109   46 146 246 346 146 46   -  -   -  -
25110   48 148 248 348 148 48 248 48   -  -
25111   50 150 250 350 150 50   -  - 350 50
25112   52 152 252 352 152 52   -  -   -  -
25113   54 154 254 354 154 54 254 54   -  -
25114   56 156 256 356 156 56   -  -   -  -
25115   58 158 258 358 158 58   -  -   -  -
25116   60 160 260 360 160 60 260 60 360 60
25117   62 162 262 362 162 62   -  -   -  -
25118   64 164 264 364 164 64   -  -   -  -
25119   66 166 266 366 166 66 266 66   -  -
25120   68 168 268 368 168 68   -  -   -  -
25121   70 170 270 370 170 70   -  - 370 70
25122   72 172 272 372 172 72 272 72   -  -
25123   74 174 274 374 174 74   -  -   -  -
25124   76 176 276 376 176 76   -  -   -  -
25125   78 178 278 378 178 78 278 78   -  -
25126   80 180 280 380 180 80   -  - 380 80
25127   82 182 282 382 182 82   -  -   -  -
25128   84 184 284 384 184 84 284 84   -  -
25129   86 186 286 386 186 86   -  -   -  -
25130   88 188 288 388 188 88   -  -   -  -
25131   90 190 290 390 190 90 290 90 390 90
25132   92 192 292 392 192 92   -  -   -  -
25133   94 194 294 394 194 94   -  -   -  -
25134    -   -   -   - 100  0   -  -   -  -
25135    -   -   -   -   -  - 200  0   -  -
25136    -   -   -   -   -  - 203  3   -  -
25137    -   -   -   -   -  - 209  9   -  -
25138    -   -   -   -   -  - 215 15   -  -
25139    -   -   -   -   -  - 221 21   -  -
25140    -   -   -   -   -  - 227 27   -  -
25141    -   -   -   -   -  - 233 33   -  -
25142    -   -   -   -   -  - 239 39   -  -
25143    -   -   -   -   -  - 245 45   -  -
25144    -   -   -   -   -  - 251 51   -  -
25145    -   -   -   -   -  - 257 57   -  -
25146    -   -   -   -   -  - 263 63   -  -
25147    -   -   -   -   -  - 269 69   -  -
25148    -   -   -   -   -  - 275 75   -  -
25149    -   -   -   -   -  - 281 81   -  -
25150    -   -   -   -   -  - 287 87   -  -
25151    -   -   -   -   -  - 293 93   -  -
25153 do_execsql_test joinD-865 {
25154   SELECT t1.*, t2.*, t3.*, t4.*
25155   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
25156   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
25157   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
25158   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25159 } {
25160   10 110 210 310 110 10   -  - 310 10
25161   20 120 220 320 120 20   -  - 320 20
25162   30 130 230 330 130 30 230 30 330 30
25163   40 140 240 340 140 40   -  - 340 40
25164   50 150 250 350 150 50   -  - 350 50
25165   60 160 260 360 160 60 260 60 360 60
25166   70 170 270 370 170 70   -  - 370 70
25167   80 180 280 380 180 80   -  - 380 80
25168   90 190 290 390 190 90 290 90 390 90
25169    -   -   -   -   -  -   -  - 300  0
25170    -   -   -   -   -  -   -  - 305  5
25171    -   -   -   -   -  -   -  - 315 15
25172    -   -   -   -   -  -   -  - 325 25
25173    -   -   -   -   -  -   -  - 335 35
25174    -   -   -   -   -  -   -  - 345 45
25175    -   -   -   -   -  -   -  - 355 55
25176    -   -   -   -   -  -   -  - 365 65
25177    -   -   -   -   -  -   -  - 375 75
25178    -   -   -   -   -  -   -  - 385 85
25179    -   -   -   -   -  -   -  - 395 95
25181 do_execsql_test joinD-866 {
25182   SELECT t1.*, t2.*, t3.*, t4.*
25183   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
25184   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
25185   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
25186   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25187 } {
25188   10 110 210 310 110 10   -  - 310 10
25189   20 120 220 320 120 20   -  - 320 20
25190   30 130 230 330 130 30 230 30 330 30
25191   40 140 240 340 140 40   -  - 340 40
25192   50 150 250 350 150 50   -  - 350 50
25193   60 160 260 360 160 60 260 60 360 60
25194   70 170 270 370 170 70   -  - 370 70
25195   80 180 280 380 180 80   -  - 380 80
25196   90 190 290 390 190 90 290 90 390 90
25197    -   -   -   -   -  -   -  - 300  0
25198    -   -   -   -   -  -   -  - 305  5
25199    -   -   -   -   -  -   -  - 315 15
25200    -   -   -   -   -  -   -  - 325 25
25201    -   -   -   -   -  -   -  - 335 35
25202    -   -   -   -   -  -   -  - 345 45
25203    -   -   -   -   -  -   -  - 355 55
25204    -   -   -   -   -  -   -  - 365 65
25205    -   -   -   -   -  -   -  - 375 75
25206    -   -   -   -   -  -   -  - 385 85
25207    -   -   -   -   -  -   -  - 395 95
25209 do_execsql_test joinD-867 {
25210   SELECT t1.*, t2.*, t3.*, t4.*
25211   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
25212   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
25213   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
25214   WHERE t2.x>0
25215   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25216 } {
25217   10 110 210 310 110 10   -  - 310 10
25218   20 120 220 320 120 20   -  - 320 20
25219   30 130 230 330 130 30 230 30 330 30
25220   40 140 240 340 140 40   -  - 340 40
25221   50 150 250 350 150 50   -  - 350 50
25222   60 160 260 360 160 60 260 60 360 60
25223   70 170 270 370 170 70   -  - 370 70
25224   80 180 280 380 180 80   -  - 380 80
25225   90 190 290 390 190 90 290 90 390 90
25227 do_execsql_test joinD-868 {
25228   SELECT t1.*, t2.*, t3.*, t4.*
25229   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
25230   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
25231   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
25232   WHERE (t2.x>0 OR t2.x IS NULL)
25233   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25234 } {
25235   10 110 210 310 110 10   -  - 310 10
25236   20 120 220 320 120 20   -  - 320 20
25237   30 130 230 330 130 30 230 30 330 30
25238   40 140 240 340 140 40   -  - 340 40
25239   50 150 250 350 150 50   -  - 350 50
25240   60 160 260 360 160 60 260 60 360 60
25241   70 170 270 370 170 70   -  - 370 70
25242   80 180 280 380 180 80   -  - 380 80
25243   90 190 290 390 190 90 290 90 390 90
25244    -   -   -   -   -  -   -  - 300  0
25245    -   -   -   -   -  -   -  - 305  5
25246    -   -   -   -   -  -   -  - 315 15
25247    -   -   -   -   -  -   -  - 325 25
25248    -   -   -   -   -  -   -  - 335 35
25249    -   -   -   -   -  -   -  - 345 45
25250    -   -   -   -   -  -   -  - 355 55
25251    -   -   -   -   -  -   -  - 365 65
25252    -   -   -   -   -  -   -  - 375 75
25253    -   -   -   -   -  -   -  - 385 85
25254    -   -   -   -   -  -   -  - 395 95
25256 do_execsql_test joinD-869 {
25257   SELECT t1.*, t2.*, t3.*, t4.*
25258   FROM t1 RIGHT JOIN t2 ON true
25259   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
25260   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
25261   WHERE t1.b=t2.b AND t2.x>0
25262   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25263 } {
25264   10 110 210 310 110 10   -  - 310 10
25265   20 120 220 320 120 20   -  - 320 20
25266   30 130 230 330 130 30 230 30 330 30
25267   40 140 240 340 140 40   -  - 340 40
25268   50 150 250 350 150 50   -  - 350 50
25269   60 160 260 360 160 60 260 60 360 60
25270   70 170 270 370 170 70   -  - 370 70
25271   80 180 280 380 180 80   -  - 380 80
25272   90 190 290 390 190 90 290 90 390 90
25274 do_execsql_test joinD-870 {
25275   SELECT t1.*, t2.*, t3.*, t4.*
25276   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
25277   FULL JOIN t3 ON t1.c=t3.c
25278   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
25279   WHERE t3.y>0
25280   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25281 } {
25282   30 130 230 330 130 30 230 30 330 30
25283   60 160 260 360 160 60 260 60 360 60
25284   90 190 290 390 190 90 290 90 390 90
25286 do_execsql_test joinD-871 {
25287   SELECT t1.*, t2.*, t3.*, t4.*
25288   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
25289   FULL JOIN t3 ON t1.c=t3.c
25290   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
25291   WHERE t3.y>0 OR t3.y IS NULL
25292   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25293 } {
25294   10 110 210 310 110 10   -  - 310 10
25295   20 120 220 320 120 20   -  - 320 20
25296   30 130 230 330 130 30 230 30 330 30
25297   40 140 240 340 140 40   -  - 340 40
25298   50 150 250 350 150 50   -  - 350 50
25299   60 160 260 360 160 60 260 60 360 60
25300   70 170 270 370 170 70   -  - 370 70
25301   80 180 280 380 180 80   -  - 380 80
25302   90 190 290 390 190 90 290 90 390 90
25303    -   -   -   -   -  -   -  - 300  0
25304    -   -   -   -   -  -   -  - 305  5
25305    -   -   -   -   -  -   -  - 315 15
25306    -   -   -   -   -  -   -  - 325 25
25307    -   -   -   -   -  -   -  - 335 35
25308    -   -   -   -   -  -   -  - 345 45
25309    -   -   -   -   -  -   -  - 355 55
25310    -   -   -   -   -  -   -  - 365 65
25311    -   -   -   -   -  -   -  - 375 75
25312    -   -   -   -   -  -   -  - 385 85
25313    -   -   -   -   -  -   -  - 395 95
25315 do_execsql_test joinD-872 {
25316   SELECT t1.*, t2.*, t3.*, t4.*
25317   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
25318   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
25319   RIGHT JOIN t4 ON t1.d=t4.d
25320   WHERE t4.z>0
25321   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25322 } {
25323   10 110 210 310 110 10   -  - 310 10
25324   20 120 220 320 120 20   -  - 320 20
25325   30 130 230 330 130 30 230 30 330 30
25326   40 140 240 340 140 40   -  - 340 40
25327   50 150 250 350 150 50   -  - 350 50
25328   60 160 260 360 160 60 260 60 360 60
25329   70 170 270 370 170 70   -  - 370 70
25330   80 180 280 380 180 80   -  - 380 80
25331   90 190 290 390 190 90 290 90 390 90
25332    -   -   -   -   -  -   -  - 305  5
25333    -   -   -   -   -  -   -  - 315 15
25334    -   -   -   -   -  -   -  - 325 25
25335    -   -   -   -   -  -   -  - 335 35
25336    -   -   -   -   -  -   -  - 345 45
25337    -   -   -   -   -  -   -  - 355 55
25338    -   -   -   -   -  -   -  - 365 65
25339    -   -   -   -   -  -   -  - 375 75
25340    -   -   -   -   -  -   -  - 385 85
25341    -   -   -   -   -  -   -  - 395 95
25343 do_execsql_test joinD-873 {
25344   SELECT t1.*, t2.*, t3.*, t4.*
25345   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
25346   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
25347   RIGHT JOIN t4 ON t1.d=t4.d
25348   WHERE t4.z IS NULL OR t4.z>0
25349   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25350 } {
25351   10 110 210 310 110 10   -  - 310 10
25352   20 120 220 320 120 20   -  - 320 20
25353   30 130 230 330 130 30 230 30 330 30
25354   40 140 240 340 140 40   -  - 340 40
25355   50 150 250 350 150 50   -  - 350 50
25356   60 160 260 360 160 60 260 60 360 60
25357   70 170 270 370 170 70   -  - 370 70
25358   80 180 280 380 180 80   -  - 380 80
25359   90 190 290 390 190 90 290 90 390 90
25360    -   -   -   -   -  -   -  - 305  5
25361    -   -   -   -   -  -   -  - 315 15
25362    -   -   -   -   -  -   -  - 325 25
25363    -   -   -   -   -  -   -  - 335 35
25364    -   -   -   -   -  -   -  - 345 45
25365    -   -   -   -   -  -   -  - 355 55
25366    -   -   -   -   -  -   -  - 365 65
25367    -   -   -   -   -  -   -  - 375 75
25368    -   -   -   -   -  -   -  - 385 85
25369    -   -   -   -   -  -   -  - 395 95
25371 do_execsql_test joinD-874 {
25372   SELECT t1.*, t2.*, t3.*, t4.*
25373   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
25374   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
25375   RIGHT JOIN t4 ON t1.d=t4.d
25376   WHERE t2.x>0 AND t4.z>0
25377   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25378 } {
25379   10 110 210 310 110 10   -  - 310 10
25380   20 120 220 320 120 20   -  - 320 20
25381   30 130 230 330 130 30 230 30 330 30
25382   40 140 240 340 140 40   -  - 340 40
25383   50 150 250 350 150 50   -  - 350 50
25384   60 160 260 360 160 60 260 60 360 60
25385   70 170 270 370 170 70   -  - 370 70
25386   80 180 280 380 180 80   -  - 380 80
25387   90 190 290 390 190 90 290 90 390 90
25389 do_execsql_test joinD-875 {
25390   SELECT t1.*, t2.*, t3.*, t4.*
25391   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
25392   FULL JOIN t3 ON t1.c=t3.c
25393   RIGHT JOIN t4 ON t1.d=t4.d
25394   WHERE t4.z>0 AND t3.y>0
25395   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25396 } {
25397   30 130 230 330 130 30 230 30 330 30
25398   60 160 260 360 160 60 260 60 360 60
25399   90 190 290 390 190 90 290 90 390 90
25401 do_execsql_test joinD-876 {
25402   SELECT t1.*, t2.*, t3.*, t4.*
25403   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
25404   FULL JOIN t3 ON t1.c=t3.c
25405   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
25406   WHERE t2.x>0 AND t3.y>0
25407   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25408 } {
25409   30 130 230 330 130 30 230 30 330 30
25410   60 160 260 360 160 60 260 60 360 60
25411   90 190 290 390 190 90 290 90 390 90
25413 do_execsql_test joinD-877 {
25414   SELECT t1.*, t2.*, t3.*, t4.*
25415   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
25416   FULL JOIN t3 ON t1.c=t3.c
25417   RIGHT JOIN t4 ON t1.d=t4.d
25418   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
25419   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25420 } {
25421   30 130 230 330 130 30 230 30 330 30
25422   60 160 260 360 160 60 260 60 360 60
25423   90 190 290 390 190 90 290 90 390 90
25425 do_execsql_test joinD-878 {
25426   SELECT t1.*, t2.*, t3.*, t4.*
25427   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
25428   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
25429   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
25430   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25431 } {
25432   10 110 210 310 110 10   -  - 310 10
25433   20 120 220 320 120 20   -  - 320 20
25434   30 130 230 330 130 30 230 30 330 30
25435   40 140 240 340 140 40   -  - 340 40
25436   50 150 250 350 150 50   -  - 350 50
25437   60 160 260 360 160 60 260 60 360 60
25438   70 170 270 370 170 70   -  - 370 70
25439   80 180 280 380 180 80   -  - 380 80
25440   90 190 290 390 190 90 290 90 390 90
25441    -   -   -   -   -  -   -  - 300  0
25442    -   -   -   -   -  -   -  - 305  5
25443    -   -   -   -   -  -   -  - 315 15
25444    -   -   -   -   -  -   -  - 325 25
25445    -   -   -   -   -  -   -  - 335 35
25446    -   -   -   -   -  -   -  - 345 45
25447    -   -   -   -   -  -   -  - 355 55
25448    -   -   -   -   -  -   -  - 365 65
25449    -   -   -   -   -  -   -  - 375 75
25450    -   -   -   -   -  -   -  - 385 85
25451    -   -   -   -   -  -   -  - 395 95
25453 do_execsql_test joinD-879 {
25454   SELECT t1.*, t2.*, t3.*, t4.*
25455   FROM t1 RIGHT JOIN t2 ON t2.x>0
25456   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
25457   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
25458   WHERE t1.b IS NOT DISTINCT FROM t2.b
25459   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25460 } {
25461   10 110 210 310 110 10   -  - 310 10
25462   20 120 220 320 120 20   -  - 320 20
25463   30 130 230 330 130 30 230 30 330 30
25464   40 140 240 340 140 40   -  - 340 40
25465   50 150 250 350 150 50   -  - 350 50
25466   60 160 260 360 160 60 260 60 360 60
25467   70 170 270 370 170 70   -  - 370 70
25468   80 180 280 380 180 80   -  - 380 80
25469   90 190 290 390 190 90 290 90 390 90
25470    -   -   -   -   -  -   -  - 300  0
25472 do_execsql_test joinD-880 {
25473   SELECT t1.*, t2.*, t3.*, t4.*
25474   FROM t1 RIGHT JOIN t2 ON t2.x>0
25475   FULL JOIN t3 ON t3.y>0
25476   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
25477   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
25478   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25479 } {
25480   30 130 230 330 130 30 230 30 330 30
25481   60 160 260 360 160 60 260 60 360 60
25482   90 190 290 390 190 90 290 90 390 90
25484 do_execsql_test joinD-881 {
25485   SELECT t1.*, t2.*, t3.*, t4.*
25486   FROM t1 RIGHT JOIN t2 ON t2.x>0
25487   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
25488   RIGHT JOIN t4 ON t4.z>0
25489   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d IS NOT DISTINCT FROM t4.d
25490   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25491 } {
25492   10 110 210 310 110 10   -  - 310 10
25493   20 120 220 320 120 20   -  - 320 20
25494   30 130 230 330 130 30 230 30 330 30
25495   40 140 240 340 140 40   -  - 340 40
25496   50 150 250 350 150 50   -  - 350 50
25497   60 160 260 360 160 60 260 60 360 60
25498   70 170 270 370 170 70   -  - 370 70
25499   80 180 280 380 180 80   -  - 380 80
25500   90 190 290 390 190 90 290 90 390 90
25502 do_execsql_test joinD-882 {
25503   SELECT t1.*, t2.*, t3.*, t4.*
25504   FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
25505   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
25506   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
25507   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25508 } {
25509   10 110 210 310 110 10   -  - 310 10
25510   20 120 220 320 120 20   -  - 320 20
25511   30 130 230 330 130 30 230 30 330 30
25512   40 140 240 340 140 40   -  - 340 40
25513   50 150 250 350 150 50   -  - 350 50
25514   60 160 260 360 160 60 260 60 360 60
25515   70 170 270 370 170 70   -  - 370 70
25516   80 180 280 380 180 80   -  - 380 80
25517   90 190 290 390 190 90 290 90 390 90
25518    -   -   -   -   -  -   -  - 300  0
25519    -   -   -   -   -  -   -  - 305  5
25520    -   -   -   -   -  -   -  - 315 15
25521    -   -   -   -   -  -   -  - 325 25
25522    -   -   -   -   -  -   -  - 335 35
25523    -   -   -   -   -  -   -  - 345 45
25524    -   -   -   -   -  -   -  - 355 55
25525    -   -   -   -   -  -   -  - 365 65
25526    -   -   -   -   -  -   -  - 375 75
25527    -   -   -   -   -  -   -  - 385 85
25528    -   -   -   -   -  -   -  - 395 95
25530 do_execsql_test joinD-883 {
25531   SELECT t1.*, t2.*, t3.*, t4.*
25532   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
25533   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
25534   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
25535   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25536 } {
25537    2 102 202 302 102  2   -  -   -  -
25538    4 104 204 304 104  4   -  -   -  -
25539    6 106 206 306 106  6 206  6   -  -
25540    8 108 208 308 108  8   -  -   -  -
25541   10 110 210 310 110 10   -  - 310 10
25542   12 112 212 312 112 12 212 12   -  -
25543   14 114 214 314 114 14   -  -   -  -
25544   16 116 216 316 116 16   -  -   -  -
25545   18 118 218 318 118 18 218 18   -  -
25546   20 120 220 320 120 20   -  - 320 20
25547   22 122 222 322 122 22   -  -   -  -
25548   24 124 224 324 124 24 224 24   -  -
25549   26 126 226 326 126 26   -  -   -  -
25550   28 128 228 328 128 28   -  -   -  -
25551   30 130 230 330 130 30 230 30 330 30
25552   32 132 232 332 132 32   -  -   -  -
25553   34 134 234 334 134 34   -  -   -  -
25554   36 136 236 336 136 36 236 36   -  -
25555   38 138 238 338 138 38   -  -   -  -
25556   40 140 240 340 140 40   -  - 340 40
25557   42 142 242 342 142 42 242 42   -  -
25558   44 144 244 344 144 44   -  -   -  -
25559   46 146 246 346 146 46   -  -   -  -
25560   48 148 248 348 148 48 248 48   -  -
25561   50 150 250 350 150 50   -  - 350 50
25562   52 152 252 352 152 52   -  -   -  -
25563   54 154 254 354 154 54 254 54   -  -
25564   56 156 256 356 156 56   -  -   -  -
25565   58 158 258 358 158 58   -  -   -  -
25566   60 160 260 360 160 60 260 60 360 60
25567   62 162 262 362 162 62   -  -   -  -
25568   64 164 264 364 164 64   -  -   -  -
25569   66 166 266 366 166 66 266 66   -  -
25570   68 168 268 368 168 68   -  -   -  -
25571   70 170 270 370 170 70   -  - 370 70
25572   72 172 272 372 172 72 272 72   -  -
25573   74 174 274 374 174 74   -  -   -  -
25574   76 176 276 376 176 76   -  -   -  -
25575   78 178 278 378 178 78 278 78   -  -
25576   80 180 280 380 180 80   -  - 380 80
25577   82 182 282 382 182 82   -  -   -  -
25578   84 184 284 384 184 84 284 84   -  -
25579   86 186 286 386 186 86   -  -   -  -
25580   88 188 288 388 188 88   -  -   -  -
25581   90 190 290 390 190 90 290 90 390 90
25582   92 192 292 392 192 92   -  -   -  -
25583   94 194 294 394 194 94   -  -   -  -
25584    -   -   -   - 100  0   -  -   -  -
25585    -   -   -   -   -  - 200  0   -  -
25586    -   -   -   -   -  - 203  3   -  -
25587    -   -   -   -   -  - 209  9   -  -
25588    -   -   -   -   -  - 215 15   -  -
25589    -   -   -   -   -  - 221 21   -  -
25590    -   -   -   -   -  - 227 27   -  -
25591    -   -   -   -   -  - 233 33   -  -
25592    -   -   -   -   -  - 239 39   -  -
25593    -   -   -   -   -  - 245 45   -  -
25594    -   -   -   -   -  - 251 51   -  -
25595    -   -   -   -   -  - 257 57   -  -
25596    -   -   -   -   -  - 263 63   -  -
25597    -   -   -   -   -  - 269 69   -  -
25598    -   -   -   -   -  - 275 75   -  -
25599    -   -   -   -   -  - 281 81   -  -
25600    -   -   -   -   -  - 287 87   -  -
25601    -   -   -   -   -  - 293 93   -  -
25602    -   -   -   -   -  -   -  - 300  0
25603    -   -   -   -   -  -   -  - 305  5
25604    -   -   -   -   -  -   -  - 315 15
25605    -   -   -   -   -  -   -  - 325 25
25606    -   -   -   -   -  -   -  - 335 35
25607    -   -   -   -   -  -   -  - 345 45
25608    -   -   -   -   -  -   -  - 355 55
25609    -   -   -   -   -  -   -  - 365 65
25610    -   -   -   -   -  -   -  - 375 75
25611    -   -   -   -   -  -   -  - 385 85
25612    -   -   -   -   -  -   -  - 395 95
25614 do_execsql_test joinD-884 {
25615   SELECT t1.*, t2.*, t3.*, t4.*
25616   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
25617   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
25618   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
25619   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25620 } {
25621    2 102 202 302 102  2   -  -   -  -
25622    4 104 204 304 104  4   -  -   -  -
25623    6 106 206 306 106  6 206  6   -  -
25624    8 108 208 308 108  8   -  -   -  -
25625   10 110 210 310 110 10   -  - 310 10
25626   12 112 212 312 112 12 212 12   -  -
25627   14 114 214 314 114 14   -  -   -  -
25628   16 116 216 316 116 16   -  -   -  -
25629   18 118 218 318 118 18 218 18   -  -
25630   20 120 220 320 120 20   -  - 320 20
25631   22 122 222 322 122 22   -  -   -  -
25632   24 124 224 324 124 24 224 24   -  -
25633   26 126 226 326 126 26   -  -   -  -
25634   28 128 228 328 128 28   -  -   -  -
25635   30 130 230 330 130 30 230 30 330 30
25636   32 132 232 332 132 32   -  -   -  -
25637   34 134 234 334 134 34   -  -   -  -
25638   36 136 236 336 136 36 236 36   -  -
25639   38 138 238 338 138 38   -  -   -  -
25640   40 140 240 340 140 40   -  - 340 40
25641   42 142 242 342 142 42 242 42   -  -
25642   44 144 244 344 144 44   -  -   -  -
25643   46 146 246 346 146 46   -  -   -  -
25644   48 148 248 348 148 48 248 48   -  -
25645   50 150 250 350 150 50   -  - 350 50
25646   52 152 252 352 152 52   -  -   -  -
25647   54 154 254 354 154 54 254 54   -  -
25648   56 156 256 356 156 56   -  -   -  -
25649   58 158 258 358 158 58   -  -   -  -
25650   60 160 260 360 160 60 260 60 360 60
25651   62 162 262 362 162 62   -  -   -  -
25652   64 164 264 364 164 64   -  -   -  -
25653   66 166 266 366 166 66 266 66   -  -
25654   68 168 268 368 168 68   -  -   -  -
25655   70 170 270 370 170 70   -  - 370 70
25656   72 172 272 372 172 72 272 72   -  -
25657   74 174 274 374 174 74   -  -   -  -
25658   76 176 276 376 176 76   -  -   -  -
25659   78 178 278 378 178 78 278 78   -  -
25660   80 180 280 380 180 80   -  - 380 80
25661   82 182 282 382 182 82   -  -   -  -
25662   84 184 284 384 184 84 284 84   -  -
25663   86 186 286 386 186 86   -  -   -  -
25664   88 188 288 388 188 88   -  -   -  -
25665   90 190 290 390 190 90 290 90 390 90
25666   92 192 292 392 192 92   -  -   -  -
25667   94 194 294 394 194 94   -  -   -  -
25668    -   -   -   - 100  0   -  -   -  -
25669    -   -   -   -   -  - 200  0   -  -
25670    -   -   -   -   -  - 203  3   -  -
25671    -   -   -   -   -  - 209  9   -  -
25672    -   -   -   -   -  - 215 15   -  -
25673    -   -   -   -   -  - 221 21   -  -
25674    -   -   -   -   -  - 227 27   -  -
25675    -   -   -   -   -  - 233 33   -  -
25676    -   -   -   -   -  - 239 39   -  -
25677    -   -   -   -   -  - 245 45   -  -
25678    -   -   -   -   -  - 251 51   -  -
25679    -   -   -   -   -  - 257 57   -  -
25680    -   -   -   -   -  - 263 63   -  -
25681    -   -   -   -   -  - 269 69   -  -
25682    -   -   -   -   -  - 275 75   -  -
25683    -   -   -   -   -  - 281 81   -  -
25684    -   -   -   -   -  - 287 87   -  -
25685    -   -   -   -   -  - 293 93   -  -
25686    -   -   -   -   -  -   -  - 300  0
25687    -   -   -   -   -  -   -  - 305  5
25688    -   -   -   -   -  -   -  - 315 15
25689    -   -   -   -   -  -   -  - 325 25
25690    -   -   -   -   -  -   -  - 335 35
25691    -   -   -   -   -  -   -  - 345 45
25692    -   -   -   -   -  -   -  - 355 55
25693    -   -   -   -   -  -   -  - 365 65
25694    -   -   -   -   -  -   -  - 375 75
25695    -   -   -   -   -  -   -  - 385 85
25696    -   -   -   -   -  -   -  - 395 95
25698 do_execsql_test joinD-885 {
25699   SELECT t1.*, t2.*, t3.*, t4.*
25700   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
25701   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
25702   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
25703   WHERE t2.x>0
25704   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25705 } {
25706    2 102 202 302 102  2   -  -   -  -
25707    4 104 204 304 104  4   -  -   -  -
25708    6 106 206 306 106  6 206  6   -  -
25709    8 108 208 308 108  8   -  -   -  -
25710   10 110 210 310 110 10   -  - 310 10
25711   12 112 212 312 112 12 212 12   -  -
25712   14 114 214 314 114 14   -  -   -  -
25713   16 116 216 316 116 16   -  -   -  -
25714   18 118 218 318 118 18 218 18   -  -
25715   20 120 220 320 120 20   -  - 320 20
25716   22 122 222 322 122 22   -  -   -  -
25717   24 124 224 324 124 24 224 24   -  -
25718   26 126 226 326 126 26   -  -   -  -
25719   28 128 228 328 128 28   -  -   -  -
25720   30 130 230 330 130 30 230 30 330 30
25721   32 132 232 332 132 32   -  -   -  -
25722   34 134 234 334 134 34   -  -   -  -
25723   36 136 236 336 136 36 236 36   -  -
25724   38 138 238 338 138 38   -  -   -  -
25725   40 140 240 340 140 40   -  - 340 40
25726   42 142 242 342 142 42 242 42   -  -
25727   44 144 244 344 144 44   -  -   -  -
25728   46 146 246 346 146 46   -  -   -  -
25729   48 148 248 348 148 48 248 48   -  -
25730   50 150 250 350 150 50   -  - 350 50
25731   52 152 252 352 152 52   -  -   -  -
25732   54 154 254 354 154 54 254 54   -  -
25733   56 156 256 356 156 56   -  -   -  -
25734   58 158 258 358 158 58   -  -   -  -
25735   60 160 260 360 160 60 260 60 360 60
25736   62 162 262 362 162 62   -  -   -  -
25737   64 164 264 364 164 64   -  -   -  -
25738   66 166 266 366 166 66 266 66   -  -
25739   68 168 268 368 168 68   -  -   -  -
25740   70 170 270 370 170 70   -  - 370 70
25741   72 172 272 372 172 72 272 72   -  -
25742   74 174 274 374 174 74   -  -   -  -
25743   76 176 276 376 176 76   -  -   -  -
25744   78 178 278 378 178 78 278 78   -  -
25745   80 180 280 380 180 80   -  - 380 80
25746   82 182 282 382 182 82   -  -   -  -
25747   84 184 284 384 184 84 284 84   -  -
25748   86 186 286 386 186 86   -  -   -  -
25749   88 188 288 388 188 88   -  -   -  -
25750   90 190 290 390 190 90 290 90 390 90
25751   92 192 292 392 192 92   -  -   -  -
25752   94 194 294 394 194 94   -  -   -  -
25754 do_execsql_test joinD-886 {
25755   SELECT t1.*, t2.*, t3.*, t4.*
25756   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
25757   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
25758   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
25759   WHERE (t2.x>0 OR t2.x IS NULL)
25760   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25761 } {
25762    2 102 202 302 102  2   -  -   -  -
25763    4 104 204 304 104  4   -  -   -  -
25764    6 106 206 306 106  6 206  6   -  -
25765    8 108 208 308 108  8   -  -   -  -
25766   10 110 210 310 110 10   -  - 310 10
25767   12 112 212 312 112 12 212 12   -  -
25768   14 114 214 314 114 14   -  -   -  -
25769   16 116 216 316 116 16   -  -   -  -
25770   18 118 218 318 118 18 218 18   -  -
25771   20 120 220 320 120 20   -  - 320 20
25772   22 122 222 322 122 22   -  -   -  -
25773   24 124 224 324 124 24 224 24   -  -
25774   26 126 226 326 126 26   -  -   -  -
25775   28 128 228 328 128 28   -  -   -  -
25776   30 130 230 330 130 30 230 30 330 30
25777   32 132 232 332 132 32   -  -   -  -
25778   34 134 234 334 134 34   -  -   -  -
25779   36 136 236 336 136 36 236 36   -  -
25780   38 138 238 338 138 38   -  -   -  -
25781   40 140 240 340 140 40   -  - 340 40
25782   42 142 242 342 142 42 242 42   -  -
25783   44 144 244 344 144 44   -  -   -  -
25784   46 146 246 346 146 46   -  -   -  -
25785   48 148 248 348 148 48 248 48   -  -
25786   50 150 250 350 150 50   -  - 350 50
25787   52 152 252 352 152 52   -  -   -  -
25788   54 154 254 354 154 54 254 54   -  -
25789   56 156 256 356 156 56   -  -   -  -
25790   58 158 258 358 158 58   -  -   -  -
25791   60 160 260 360 160 60 260 60 360 60
25792   62 162 262 362 162 62   -  -   -  -
25793   64 164 264 364 164 64   -  -   -  -
25794   66 166 266 366 166 66 266 66   -  -
25795   68 168 268 368 168 68   -  -   -  -
25796   70 170 270 370 170 70   -  - 370 70
25797   72 172 272 372 172 72 272 72   -  -
25798   74 174 274 374 174 74   -  -   -  -
25799   76 176 276 376 176 76   -  -   -  -
25800   78 178 278 378 178 78 278 78   -  -
25801   80 180 280 380 180 80   -  - 380 80
25802   82 182 282 382 182 82   -  -   -  -
25803   84 184 284 384 184 84 284 84   -  -
25804   86 186 286 386 186 86   -  -   -  -
25805   88 188 288 388 188 88   -  -   -  -
25806   90 190 290 390 190 90 290 90 390 90
25807   92 192 292 392 192 92   -  -   -  -
25808   94 194 294 394 194 94   -  -   -  -
25809    -   -   -   -   -  - 200  0   -  -
25810    -   -   -   -   -  - 203  3   -  -
25811    -   -   -   -   -  - 209  9   -  -
25812    -   -   -   -   -  - 215 15   -  -
25813    -   -   -   -   -  - 221 21   -  -
25814    -   -   -   -   -  - 227 27   -  -
25815    -   -   -   -   -  - 233 33   -  -
25816    -   -   -   -   -  - 239 39   -  -
25817    -   -   -   -   -  - 245 45   -  -
25818    -   -   -   -   -  - 251 51   -  -
25819    -   -   -   -   -  - 257 57   -  -
25820    -   -   -   -   -  - 263 63   -  -
25821    -   -   -   -   -  - 269 69   -  -
25822    -   -   -   -   -  - 275 75   -  -
25823    -   -   -   -   -  - 281 81   -  -
25824    -   -   -   -   -  - 287 87   -  -
25825    -   -   -   -   -  - 293 93   -  -
25826    -   -   -   -   -  -   -  - 300  0
25827    -   -   -   -   -  -   -  - 305  5
25828    -   -   -   -   -  -   -  - 315 15
25829    -   -   -   -   -  -   -  - 325 25
25830    -   -   -   -   -  -   -  - 335 35
25831    -   -   -   -   -  -   -  - 345 45
25832    -   -   -   -   -  -   -  - 355 55
25833    -   -   -   -   -  -   -  - 365 65
25834    -   -   -   -   -  -   -  - 375 75
25835    -   -   -   -   -  -   -  - 385 85
25836    -   -   -   -   -  -   -  - 395 95
25838 do_execsql_test joinD-887 {
25839   SELECT t1.*, t2.*, t3.*, t4.*
25840   FROM t1 RIGHT JOIN t2 ON true
25841   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
25842   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
25843   WHERE t1.b=t2.b AND t2.x>0
25844   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25845 } {
25846    2 102 202 302 102  2   -  -   -  -
25847    4 104 204 304 104  4   -  -   -  -
25848    6 106 206 306 106  6 206  6   -  -
25849    8 108 208 308 108  8   -  -   -  -
25850   10 110 210 310 110 10   -  - 310 10
25851   12 112 212 312 112 12 212 12   -  -
25852   14 114 214 314 114 14   -  -   -  -
25853   16 116 216 316 116 16   -  -   -  -
25854   18 118 218 318 118 18 218 18   -  -
25855   20 120 220 320 120 20   -  - 320 20
25856   22 122 222 322 122 22   -  -   -  -
25857   24 124 224 324 124 24 224 24   -  -
25858   26 126 226 326 126 26   -  -   -  -
25859   28 128 228 328 128 28   -  -   -  -
25860   30 130 230 330 130 30 230 30 330 30
25861   32 132 232 332 132 32   -  -   -  -
25862   34 134 234 334 134 34   -  -   -  -
25863   36 136 236 336 136 36 236 36   -  -
25864   38 138 238 338 138 38   -  -   -  -
25865   40 140 240 340 140 40   -  - 340 40
25866   42 142 242 342 142 42 242 42   -  -
25867   44 144 244 344 144 44   -  -   -  -
25868   46 146 246 346 146 46   -  -   -  -
25869   48 148 248 348 148 48 248 48   -  -
25870   50 150 250 350 150 50   -  - 350 50
25871   52 152 252 352 152 52   -  -   -  -
25872   54 154 254 354 154 54 254 54   -  -
25873   56 156 256 356 156 56   -  -   -  -
25874   58 158 258 358 158 58   -  -   -  -
25875   60 160 260 360 160 60 260 60 360 60
25876   62 162 262 362 162 62   -  -   -  -
25877   64 164 264 364 164 64   -  -   -  -
25878   66 166 266 366 166 66 266 66   -  -
25879   68 168 268 368 168 68   -  -   -  -
25880   70 170 270 370 170 70   -  - 370 70
25881   72 172 272 372 172 72 272 72   -  -
25882   74 174 274 374 174 74   -  -   -  -
25883   76 176 276 376 176 76   -  -   -  -
25884   78 178 278 378 178 78 278 78   -  -
25885   80 180 280 380 180 80   -  - 380 80
25886   82 182 282 382 182 82   -  -   -  -
25887   84 184 284 384 184 84 284 84   -  -
25888   86 186 286 386 186 86   -  -   -  -
25889   88 188 288 388 188 88   -  -   -  -
25890   90 190 290 390 190 90 290 90 390 90
25891   92 192 292 392 192 92   -  -   -  -
25892   94 194 294 394 194 94   -  -   -  -
25894 do_execsql_test joinD-888 {
25895   SELECT t1.*, t2.*, t3.*, t4.*
25896   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
25897   FULL JOIN t3 ON t1.c=t3.c
25898   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
25899   WHERE t3.y>0
25900   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25901 } {
25902    6 106 206 306 106  6 206  6   -  -
25903   12 112 212 312 112 12 212 12   -  -
25904   18 118 218 318 118 18 218 18   -  -
25905   24 124 224 324 124 24 224 24   -  -
25906   30 130 230 330 130 30 230 30 330 30
25907   36 136 236 336 136 36 236 36   -  -
25908   42 142 242 342 142 42 242 42   -  -
25909   48 148 248 348 148 48 248 48   -  -
25910   54 154 254 354 154 54 254 54   -  -
25911   60 160 260 360 160 60 260 60 360 60
25912   66 166 266 366 166 66 266 66   -  -
25913   72 172 272 372 172 72 272 72   -  -
25914   78 178 278 378 178 78 278 78   -  -
25915   84 184 284 384 184 84 284 84   -  -
25916   90 190 290 390 190 90 290 90 390 90
25917    -   -   -   -   -  - 203  3   -  -
25918    -   -   -   -   -  - 209  9   -  -
25919    -   -   -   -   -  - 215 15   -  -
25920    -   -   -   -   -  - 221 21   -  -
25921    -   -   -   -   -  - 227 27   -  -
25922    -   -   -   -   -  - 233 33   -  -
25923    -   -   -   -   -  - 239 39   -  -
25924    -   -   -   -   -  - 245 45   -  -
25925    -   -   -   -   -  - 251 51   -  -
25926    -   -   -   -   -  - 257 57   -  -
25927    -   -   -   -   -  - 263 63   -  -
25928    -   -   -   -   -  - 269 69   -  -
25929    -   -   -   -   -  - 275 75   -  -
25930    -   -   -   -   -  - 281 81   -  -
25931    -   -   -   -   -  - 287 87   -  -
25932    -   -   -   -   -  - 293 93   -  -
25934 do_execsql_test joinD-889 {
25935   SELECT t1.*, t2.*, t3.*, t4.*
25936   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
25937   FULL JOIN t3 ON t1.c=t3.c
25938   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
25939   WHERE t3.y>0 OR t3.y IS NULL
25940   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
25941 } {
25942    2 102 202 302 102  2   -  -   -  -
25943    4 104 204 304 104  4   -  -   -  -
25944    6 106 206 306 106  6 206  6   -  -
25945    8 108 208 308 108  8   -  -   -  -
25946   10 110 210 310 110 10   -  - 310 10
25947   12 112 212 312 112 12 212 12   -  -
25948   14 114 214 314 114 14   -  -   -  -
25949   16 116 216 316 116 16   -  -   -  -
25950   18 118 218 318 118 18 218 18   -  -
25951   20 120 220 320 120 20   -  - 320 20
25952   22 122 222 322 122 22   -  -   -  -
25953   24 124 224 324 124 24 224 24   -  -
25954   26 126 226 326 126 26   -  -   -  -
25955   28 128 228 328 128 28   -  -   -  -
25956   30 130 230 330 130 30 230 30 330 30
25957   32 132 232 332 132 32   -  -   -  -
25958   34 134 234 334 134 34   -  -   -  -
25959   36 136 236 336 136 36 236 36   -  -
25960   38 138 238 338 138 38   -  -   -  -
25961   40 140 240 340 140 40   -  - 340 40
25962   42 142 242 342 142 42 242 42   -  -
25963   44 144 244 344 144 44   -  -   -  -
25964   46 146 246 346 146 46   -  -   -  -
25965   48 148 248 348 148 48 248 48   -  -
25966   50 150 250 350 150 50   -  - 350 50
25967   52 152 252 352 152 52   -  -   -  -
25968   54 154 254 354 154 54 254 54   -  -
25969   56 156 256 356 156 56   -  -   -  -
25970   58 158 258 358 158 58   -  -   -  -
25971   60 160 260 360 160 60 260 60 360 60
25972   62 162 262 362 162 62   -  -   -  -
25973   64 164 264 364 164 64   -  -   -  -
25974   66 166 266 366 166 66 266 66   -  -
25975   68 168 268 368 168 68   -  -   -  -
25976   70 170 270 370 170 70   -  - 370 70
25977   72 172 272 372 172 72 272 72   -  -
25978   74 174 274 374 174 74   -  -   -  -
25979   76 176 276 376 176 76   -  -   -  -
25980   78 178 278 378 178 78 278 78   -  -
25981   80 180 280 380 180 80   -  - 380 80
25982   82 182 282 382 182 82   -  -   -  -
25983   84 184 284 384 184 84 284 84   -  -
25984   86 186 286 386 186 86   -  -   -  -
25985   88 188 288 388 188 88   -  -   -  -
25986   90 190 290 390 190 90 290 90 390 90
25987   92 192 292 392 192 92   -  -   -  -
25988   94 194 294 394 194 94   -  -   -  -
25989    -   -   -   - 100  0   -  -   -  -
25990    -   -   -   -   -  - 203  3   -  -
25991    -   -   -   -   -  - 209  9   -  -
25992    -   -   -   -   -  - 215 15   -  -
25993    -   -   -   -   -  - 221 21   -  -
25994    -   -   -   -   -  - 227 27   -  -
25995    -   -   -   -   -  - 233 33   -  -
25996    -   -   -   -   -  - 239 39   -  -
25997    -   -   -   -   -  - 245 45   -  -
25998    -   -   -   -   -  - 251 51   -  -
25999    -   -   -   -   -  - 257 57   -  -
26000    -   -   -   -   -  - 263 63   -  -
26001    -   -   -   -   -  - 269 69   -  -
26002    -   -   -   -   -  - 275 75   -  -
26003    -   -   -   -   -  - 281 81   -  -
26004    -   -   -   -   -  - 287 87   -  -
26005    -   -   -   -   -  - 293 93   -  -
26006    -   -   -   -   -  -   -  - 300  0
26007    -   -   -   -   -  -   -  - 305  5
26008    -   -   -   -   -  -   -  - 315 15
26009    -   -   -   -   -  -   -  - 325 25
26010    -   -   -   -   -  -   -  - 335 35
26011    -   -   -   -   -  -   -  - 345 45
26012    -   -   -   -   -  -   -  - 355 55
26013    -   -   -   -   -  -   -  - 365 65
26014    -   -   -   -   -  -   -  - 375 75
26015    -   -   -   -   -  -   -  - 385 85
26016    -   -   -   -   -  -   -  - 395 95
26018 do_execsql_test joinD-890 {
26019   SELECT t1.*, t2.*, t3.*, t4.*
26020   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
26021   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
26022   FULL JOIN t4 ON t1.d=t4.d
26023   WHERE t4.z>0
26024   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26025 } {
26026   10 110 210 310 110 10   -  - 310 10
26027   20 120 220 320 120 20   -  - 320 20
26028   30 130 230 330 130 30 230 30 330 30
26029   40 140 240 340 140 40   -  - 340 40
26030   50 150 250 350 150 50   -  - 350 50
26031   60 160 260 360 160 60 260 60 360 60
26032   70 170 270 370 170 70   -  - 370 70
26033   80 180 280 380 180 80   -  - 380 80
26034   90 190 290 390 190 90 290 90 390 90
26035    -   -   -   -   -  -   -  - 305  5
26036    -   -   -   -   -  -   -  - 315 15
26037    -   -   -   -   -  -   -  - 325 25
26038    -   -   -   -   -  -   -  - 335 35
26039    -   -   -   -   -  -   -  - 345 45
26040    -   -   -   -   -  -   -  - 355 55
26041    -   -   -   -   -  -   -  - 365 65
26042    -   -   -   -   -  -   -  - 375 75
26043    -   -   -   -   -  -   -  - 385 85
26044    -   -   -   -   -  -   -  - 395 95
26046 do_execsql_test joinD-891 {
26047   SELECT t1.*, t2.*, t3.*, t4.*
26048   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
26049   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
26050   FULL JOIN t4 ON t1.d=t4.d
26051   WHERE t4.z IS NULL OR t4.z>0
26052   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26053 } {
26054    2 102 202 302 102  2   -  -   -  -
26055    4 104 204 304 104  4   -  -   -  -
26056    6 106 206 306 106  6 206  6   -  -
26057    8 108 208 308 108  8   -  -   -  -
26058   10 110 210 310 110 10   -  - 310 10
26059   12 112 212 312 112 12 212 12   -  -
26060   14 114 214 314 114 14   -  -   -  -
26061   16 116 216 316 116 16   -  -   -  -
26062   18 118 218 318 118 18 218 18   -  -
26063   20 120 220 320 120 20   -  - 320 20
26064   22 122 222 322 122 22   -  -   -  -
26065   24 124 224 324 124 24 224 24   -  -
26066   26 126 226 326 126 26   -  -   -  -
26067   28 128 228 328 128 28   -  -   -  -
26068   30 130 230 330 130 30 230 30 330 30
26069   32 132 232 332 132 32   -  -   -  -
26070   34 134 234 334 134 34   -  -   -  -
26071   36 136 236 336 136 36 236 36   -  -
26072   38 138 238 338 138 38   -  -   -  -
26073   40 140 240 340 140 40   -  - 340 40
26074   42 142 242 342 142 42 242 42   -  -
26075   44 144 244 344 144 44   -  -   -  -
26076   46 146 246 346 146 46   -  -   -  -
26077   48 148 248 348 148 48 248 48   -  -
26078   50 150 250 350 150 50   -  - 350 50
26079   52 152 252 352 152 52   -  -   -  -
26080   54 154 254 354 154 54 254 54   -  -
26081   56 156 256 356 156 56   -  -   -  -
26082   58 158 258 358 158 58   -  -   -  -
26083   60 160 260 360 160 60 260 60 360 60
26084   62 162 262 362 162 62   -  -   -  -
26085   64 164 264 364 164 64   -  -   -  -
26086   66 166 266 366 166 66 266 66   -  -
26087   68 168 268 368 168 68   -  -   -  -
26088   70 170 270 370 170 70   -  - 370 70
26089   72 172 272 372 172 72 272 72   -  -
26090   74 174 274 374 174 74   -  -   -  -
26091   76 176 276 376 176 76   -  -   -  -
26092   78 178 278 378 178 78 278 78   -  -
26093   80 180 280 380 180 80   -  - 380 80
26094   82 182 282 382 182 82   -  -   -  -
26095   84 184 284 384 184 84 284 84   -  -
26096   86 186 286 386 186 86   -  -   -  -
26097   88 188 288 388 188 88   -  -   -  -
26098   90 190 290 390 190 90 290 90 390 90
26099   92 192 292 392 192 92   -  -   -  -
26100   94 194 294 394 194 94   -  -   -  -
26101    -   -   -   - 100  0   -  -   -  -
26102    -   -   -   -   -  - 200  0   -  -
26103    -   -   -   -   -  - 203  3   -  -
26104    -   -   -   -   -  - 209  9   -  -
26105    -   -   -   -   -  - 215 15   -  -
26106    -   -   -   -   -  - 221 21   -  -
26107    -   -   -   -   -  - 227 27   -  -
26108    -   -   -   -   -  - 233 33   -  -
26109    -   -   -   -   -  - 239 39   -  -
26110    -   -   -   -   -  - 245 45   -  -
26111    -   -   -   -   -  - 251 51   -  -
26112    -   -   -   -   -  - 257 57   -  -
26113    -   -   -   -   -  - 263 63   -  -
26114    -   -   -   -   -  - 269 69   -  -
26115    -   -   -   -   -  - 275 75   -  -
26116    -   -   -   -   -  - 281 81   -  -
26117    -   -   -   -   -  - 287 87   -  -
26118    -   -   -   -   -  - 293 93   -  -
26119    -   -   -   -   -  -   -  - 305  5
26120    -   -   -   -   -  -   -  - 315 15
26121    -   -   -   -   -  -   -  - 325 25
26122    -   -   -   -   -  -   -  - 335 35
26123    -   -   -   -   -  -   -  - 345 45
26124    -   -   -   -   -  -   -  - 355 55
26125    -   -   -   -   -  -   -  - 365 65
26126    -   -   -   -   -  -   -  - 375 75
26127    -   -   -   -   -  -   -  - 385 85
26128    -   -   -   -   -  -   -  - 395 95
26130 do_execsql_test joinD-892 {
26131   SELECT t1.*, t2.*, t3.*, t4.*
26132   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
26133   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
26134   FULL JOIN t4 ON t1.d=t4.d
26135   WHERE t2.x>0 AND t4.z>0
26136   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26137 } {
26138   10 110 210 310 110 10   -  - 310 10
26139   20 120 220 320 120 20   -  - 320 20
26140   30 130 230 330 130 30 230 30 330 30
26141   40 140 240 340 140 40   -  - 340 40
26142   50 150 250 350 150 50   -  - 350 50
26143   60 160 260 360 160 60 260 60 360 60
26144   70 170 270 370 170 70   -  - 370 70
26145   80 180 280 380 180 80   -  - 380 80
26146   90 190 290 390 190 90 290 90 390 90
26148 do_execsql_test joinD-893 {
26149   SELECT t1.*, t2.*, t3.*, t4.*
26150   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b AND t2.x>0
26151   FULL JOIN t3 ON t1.c=t3.c
26152   FULL JOIN t4 ON t1.d=t4.d
26153   WHERE t4.z>0 AND t3.y>0
26154   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26155 } {
26156   30 130 230 330 130 30 230 30 330 30
26157   60 160 260 360 160 60 260 60 360 60
26158   90 190 290 390 190 90 290 90 390 90
26160 do_execsql_test joinD-894 {
26161   SELECT t1.*, t2.*, t3.*, t4.*
26162   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
26163   FULL JOIN t3 ON t1.c=t3.c
26164   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
26165   WHERE t2.x>0 AND t3.y>0
26166   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26167 } {
26168    6 106 206 306 106  6 206  6   -  -
26169   12 112 212 312 112 12 212 12   -  -
26170   18 118 218 318 118 18 218 18   -  -
26171   24 124 224 324 124 24 224 24   -  -
26172   30 130 230 330 130 30 230 30 330 30
26173   36 136 236 336 136 36 236 36   -  -
26174   42 142 242 342 142 42 242 42   -  -
26175   48 148 248 348 148 48 248 48   -  -
26176   54 154 254 354 154 54 254 54   -  -
26177   60 160 260 360 160 60 260 60 360 60
26178   66 166 266 366 166 66 266 66   -  -
26179   72 172 272 372 172 72 272 72   -  -
26180   78 178 278 378 178 78 278 78   -  -
26181   84 184 284 384 184 84 284 84   -  -
26182   90 190 290 390 190 90 290 90 390 90
26184 do_execsql_test joinD-895 {
26185   SELECT t1.*, t2.*, t3.*, t4.*
26186   FROM t1 RIGHT JOIN t2 ON t1.b=t2.b
26187   FULL JOIN t3 ON t1.c=t3.c
26188   FULL JOIN t4 ON t1.d=t4.d
26189   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
26190   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26191 } {
26192   30 130 230 330 130 30 230 30 330 30
26193   60 160 260 360 160 60 260 60 360 60
26194   90 190 290 390 190 90 290 90 390 90
26196 do_execsql_test joinD-896 {
26197   SELECT t1.*, t2.*, t3.*, t4.*
26198   FROM t1 RIGHT JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0
26199   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
26200   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
26201   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26202 } {
26203    2 102 202 302 102  2   -  -   -  -
26204    4 104 204 304 104  4   -  -   -  -
26205    6 106 206 306 106  6 206  6   -  -
26206    8 108 208 308 108  8   -  -   -  -
26207   10 110 210 310 110 10   -  - 310 10
26208   12 112 212 312 112 12 212 12   -  -
26209   14 114 214 314 114 14   -  -   -  -
26210   16 116 216 316 116 16   -  -   -  -
26211   18 118 218 318 118 18 218 18   -  -
26212   20 120 220 320 120 20   -  - 320 20
26213   22 122 222 322 122 22   -  -   -  -
26214   24 124 224 324 124 24 224 24   -  -
26215   26 126 226 326 126 26   -  -   -  -
26216   28 128 228 328 128 28   -  -   -  -
26217   30 130 230 330 130 30 230 30 330 30
26218   32 132 232 332 132 32   -  -   -  -
26219   34 134 234 334 134 34   -  -   -  -
26220   36 136 236 336 136 36 236 36   -  -
26221   38 138 238 338 138 38   -  -   -  -
26222   40 140 240 340 140 40   -  - 340 40
26223   42 142 242 342 142 42 242 42   -  -
26224   44 144 244 344 144 44   -  -   -  -
26225   46 146 246 346 146 46   -  -   -  -
26226   48 148 248 348 148 48 248 48   -  -
26227   50 150 250 350 150 50   -  - 350 50
26228   52 152 252 352 152 52   -  -   -  -
26229   54 154 254 354 154 54 254 54   -  -
26230   56 156 256 356 156 56   -  -   -  -
26231   58 158 258 358 158 58   -  -   -  -
26232   60 160 260 360 160 60 260 60 360 60
26233   62 162 262 362 162 62   -  -   -  -
26234   64 164 264 364 164 64   -  -   -  -
26235   66 166 266 366 166 66 266 66   -  -
26236   68 168 268 368 168 68   -  -   -  -
26237   70 170 270 370 170 70   -  - 370 70
26238   72 172 272 372 172 72 272 72   -  -
26239   74 174 274 374 174 74   -  -   -  -
26240   76 176 276 376 176 76   -  -   -  -
26241   78 178 278 378 178 78 278 78   -  -
26242   80 180 280 380 180 80   -  - 380 80
26243   82 182 282 382 182 82   -  -   -  -
26244   84 184 284 384 184 84 284 84   -  -
26245   86 186 286 386 186 86   -  -   -  -
26246   88 188 288 388 188 88   -  -   -  -
26247   90 190 290 390 190 90 290 90 390 90
26248   92 192 292 392 192 92   -  -   -  -
26249   94 194 294 394 194 94   -  -   -  -
26250    -   -   -   - 100  0   -  -   -  -
26251    -   -   -   -   -  - 200  0   -  -
26252    -   -   -   -   -  - 203  3   -  -
26253    -   -   -   -   -  - 209  9   -  -
26254    -   -   -   -   -  - 215 15   -  -
26255    -   -   -   -   -  - 221 21   -  -
26256    -   -   -   -   -  - 227 27   -  -
26257    -   -   -   -   -  - 233 33   -  -
26258    -   -   -   -   -  - 239 39   -  -
26259    -   -   -   -   -  - 245 45   -  -
26260    -   -   -   -   -  - 251 51   -  -
26261    -   -   -   -   -  - 257 57   -  -
26262    -   -   -   -   -  - 263 63   -  -
26263    -   -   -   -   -  - 269 69   -  -
26264    -   -   -   -   -  - 275 75   -  -
26265    -   -   -   -   -  - 281 81   -  -
26266    -   -   -   -   -  - 287 87   -  -
26267    -   -   -   -   -  - 293 93   -  -
26268    -   -   -   -   -  -   -  - 300  0
26269    -   -   -   -   -  -   -  - 305  5
26270    -   -   -   -   -  -   -  - 315 15
26271    -   -   -   -   -  -   -  - 325 25
26272    -   -   -   -   -  -   -  - 335 35
26273    -   -   -   -   -  -   -  - 345 45
26274    -   -   -   -   -  -   -  - 355 55
26275    -   -   -   -   -  -   -  - 365 65
26276    -   -   -   -   -  -   -  - 375 75
26277    -   -   -   -   -  -   -  - 385 85
26278    -   -   -   -   -  -   -  - 395 95
26280 do_execsql_test joinD-897 {
26281   SELECT t1.*, t2.*, t3.*, t4.*
26282   FROM t1 RIGHT JOIN t2 ON t2.x>0
26283   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
26284   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
26285   WHERE t1.b IS NOT DISTINCT FROM t2.b
26286   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26287 } {
26288    2 102 202 302 102  2   -  -   -  -
26289    4 104 204 304 104  4   -  -   -  -
26290    6 106 206 306 106  6 206  6   -  -
26291    8 108 208 308 108  8   -  -   -  -
26292   10 110 210 310 110 10   -  - 310 10
26293   12 112 212 312 112 12 212 12   -  -
26294   14 114 214 314 114 14   -  -   -  -
26295   16 116 216 316 116 16   -  -   -  -
26296   18 118 218 318 118 18 218 18   -  -
26297   20 120 220 320 120 20   -  - 320 20
26298   22 122 222 322 122 22   -  -   -  -
26299   24 124 224 324 124 24 224 24   -  -
26300   26 126 226 326 126 26   -  -   -  -
26301   28 128 228 328 128 28   -  -   -  -
26302   30 130 230 330 130 30 230 30 330 30
26303   32 132 232 332 132 32   -  -   -  -
26304   34 134 234 334 134 34   -  -   -  -
26305   36 136 236 336 136 36 236 36   -  -
26306   38 138 238 338 138 38   -  -   -  -
26307   40 140 240 340 140 40   -  - 340 40
26308   42 142 242 342 142 42 242 42   -  -
26309   44 144 244 344 144 44   -  -   -  -
26310   46 146 246 346 146 46   -  -   -  -
26311   48 148 248 348 148 48 248 48   -  -
26312   50 150 250 350 150 50   -  - 350 50
26313   52 152 252 352 152 52   -  -   -  -
26314   54 154 254 354 154 54 254 54   -  -
26315   56 156 256 356 156 56   -  -   -  -
26316   58 158 258 358 158 58   -  -   -  -
26317   60 160 260 360 160 60 260 60 360 60
26318   62 162 262 362 162 62   -  -   -  -
26319   64 164 264 364 164 64   -  -   -  -
26320   66 166 266 366 166 66 266 66   -  -
26321   68 168 268 368 168 68   -  -   -  -
26322   70 170 270 370 170 70   -  - 370 70
26323   72 172 272 372 172 72 272 72   -  -
26324   74 174 274 374 174 74   -  -   -  -
26325   76 176 276 376 176 76   -  -   -  -
26326   78 178 278 378 178 78 278 78   -  -
26327   80 180 280 380 180 80   -  - 380 80
26328   82 182 282 382 182 82   -  -   -  -
26329   84 184 284 384 184 84 284 84   -  -
26330   86 186 286 386 186 86   -  -   -  -
26331   88 188 288 388 188 88   -  -   -  -
26332   90 190 290 390 190 90 290 90 390 90
26333   92 192 292 392 192 92   -  -   -  -
26334   94 194 294 394 194 94   -  -   -  -
26335    -   -   -   -   -  - 200  0   -  -
26336    -   -   -   -   -  -   -  - 300  0
26338 do_execsql_test joinD-898 {
26339   SELECT t1.*, t2.*, t3.*, t4.*
26340   FROM t1 RIGHT JOIN t2 ON t2.x>0
26341   FULL JOIN t3 ON t3.y>0
26342   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
26343   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.c = t3.c
26344   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26345 } {
26346    6 106 206 306 106  6 206  6   -  -
26347   12 112 212 312 112 12 212 12   -  -
26348   18 118 218 318 118 18 218 18   -  -
26349   24 124 224 324 124 24 224 24   -  -
26350   30 130 230 330 130 30 230 30 330 30
26351   36 136 236 336 136 36 236 36   -  -
26352   42 142 242 342 142 42 242 42   -  -
26353   48 148 248 348 148 48 248 48   -  -
26354   54 154 254 354 154 54 254 54   -  -
26355   60 160 260 360 160 60 260 60 360 60
26356   66 166 266 366 166 66 266 66   -  -
26357   72 172 272 372 172 72 272 72   -  -
26358   78 178 278 378 178 78 278 78   -  -
26359   84 184 284 384 184 84 284 84   -  -
26360   90 190 290 390 190 90 290 90 390 90
26362 do_execsql_test joinD-899 {
26363   SELECT t1.*, t2.*, t3.*, t4.*
26364   FROM t1 RIGHT JOIN t2 ON t2.x>0
26365   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
26366   FULL JOIN t4 ON t4.z>0
26367   WHERE t1.b IS NOT DISTINCT FROM t2.b AND t1.d = t4.d
26368   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26369 } {
26370   10 110 210 310 110 10   -  - 310 10
26371   20 120 220 320 120 20   -  - 320 20
26372   30 130 230 330 130 30 230 30 330 30
26373   40 140 240 340 140 40   -  - 340 40
26374   50 150 250 350 150 50   -  - 350 50
26375   60 160 260 360 160 60 260 60 360 60
26376   70 170 270 370 170 70   -  - 370 70
26377   80 180 280 380 180 80   -  - 380 80
26378   90 190 290 390 190 90 290 90 390 90
26380 do_execsql_test joinD-900 {
26381   SELECT t1.*, t2.*, t3.*, t4.*
26382   FROM t1 RIGHT JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0
26383   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
26384   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
26385   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26386 } {
26387    2 102 202 302 102  2   -  -   -  -
26388    4 104 204 304 104  4   -  -   -  -
26389    6 106 206 306 106  6 206  6   -  -
26390    8 108 208 308 108  8   -  -   -  -
26391   10 110 210 310 110 10   -  - 310 10
26392   12 112 212 312 112 12 212 12   -  -
26393   14 114 214 314 114 14   -  -   -  -
26394   16 116 216 316 116 16   -  -   -  -
26395   18 118 218 318 118 18 218 18   -  -
26396   20 120 220 320 120 20   -  - 320 20
26397   22 122 222 322 122 22   -  -   -  -
26398   24 124 224 324 124 24 224 24   -  -
26399   26 126 226 326 126 26   -  -   -  -
26400   28 128 228 328 128 28   -  -   -  -
26401   30 130 230 330 130 30 230 30 330 30
26402   32 132 232 332 132 32   -  -   -  -
26403   34 134 234 334 134 34   -  -   -  -
26404   36 136 236 336 136 36 236 36   -  -
26405   38 138 238 338 138 38   -  -   -  -
26406   40 140 240 340 140 40   -  - 340 40
26407   42 142 242 342 142 42 242 42   -  -
26408   44 144 244 344 144 44   -  -   -  -
26409   46 146 246 346 146 46   -  -   -  -
26410   48 148 248 348 148 48 248 48   -  -
26411   50 150 250 350 150 50   -  - 350 50
26412   52 152 252 352 152 52   -  -   -  -
26413   54 154 254 354 154 54 254 54   -  -
26414   56 156 256 356 156 56   -  -   -  -
26415   58 158 258 358 158 58   -  -   -  -
26416   60 160 260 360 160 60 260 60 360 60
26417   62 162 262 362 162 62   -  -   -  -
26418   64 164 264 364 164 64   -  -   -  -
26419   66 166 266 366 166 66 266 66   -  -
26420   68 168 268 368 168 68   -  -   -  -
26421   70 170 270 370 170 70   -  - 370 70
26422   72 172 272 372 172 72 272 72   -  -
26423   74 174 274 374 174 74   -  -   -  -
26424   76 176 276 376 176 76   -  -   -  -
26425   78 178 278 378 178 78 278 78   -  -
26426   80 180 280 380 180 80   -  - 380 80
26427   82 182 282 382 182 82   -  -   -  -
26428   84 184 284 384 184 84 284 84   -  -
26429   86 186 286 386 186 86   -  -   -  -
26430   88 188 288 388 188 88   -  -   -  -
26431   90 190 290 390 190 90 290 90 390 90
26432   92 192 292 392 192 92   -  -   -  -
26433   94 194 294 394 194 94   -  -   -  -
26434    -   -   -   - 100  0   -  -   -  -
26435    -   -   -   -   -  - 200  0   -  -
26436    -   -   -   -   -  - 203  3   -  -
26437    -   -   -   -   -  - 209  9   -  -
26438    -   -   -   -   -  - 215 15   -  -
26439    -   -   -   -   -  - 221 21   -  -
26440    -   -   -   -   -  - 227 27   -  -
26441    -   -   -   -   -  - 233 33   -  -
26442    -   -   -   -   -  - 239 39   -  -
26443    -   -   -   -   -  - 245 45   -  -
26444    -   -   -   -   -  - 251 51   -  -
26445    -   -   -   -   -  - 257 57   -  -
26446    -   -   -   -   -  - 263 63   -  -
26447    -   -   -   -   -  - 269 69   -  -
26448    -   -   -   -   -  - 275 75   -  -
26449    -   -   -   -   -  - 281 81   -  -
26450    -   -   -   -   -  - 287 87   -  -
26451    -   -   -   -   -  - 293 93   -  -
26452    -   -   -   -   -  -   -  - 300  0
26453    -   -   -   -   -  -   -  - 305  5
26454    -   -   -   -   -  -   -  - 315 15
26455    -   -   -   -   -  -   -  - 325 25
26456    -   -   -   -   -  -   -  - 335 35
26457    -   -   -   -   -  -   -  - 345 45
26458    -   -   -   -   -  -   -  - 355 55
26459    -   -   -   -   -  -   -  - 365 65
26460    -   -   -   -   -  -   -  - 375 75
26461    -   -   -   -   -  -   -  - 385 85
26462    -   -   -   -   -  -   -  - 395 95
26464 do_execsql_test joinD-901 {
26465   SELECT t1.*, t2.*, t3.*, t4.*
26466   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
26467   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
26468   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
26469   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26470 } {
26471   15 115 215 315   -  - 215 15 315 15
26472   30 130 230 330 130 30 230 30 330 30
26473   45 145 245 345   -  - 245 45 345 45
26474   60 160 260 360 160 60 260 60 360 60
26475   75 175 275 375   -  - 275 75 375 75
26476   90 190 290 390 190 90 290 90 390 90
26478 do_execsql_test joinD-902 {
26479   SELECT t1.*, t2.*, t3.*, t4.*
26480   FROM t1 FULL JOIN t2 ON t1.b=t2.b
26481   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
26482   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
26483   WHERE t2.x>0
26484   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26485 } {
26486   30 130 230 330 130 30 230 30 330 30
26487   60 160 260 360 160 60 260 60 360 60
26488   90 190 290 390 190 90 290 90 390 90
26490 do_execsql_test joinD-903 {
26491   SELECT t1.*, t2.*, t3.*, t4.*
26492   FROM t1 FULL JOIN t2 ON t1.b=t2.b
26493   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
26494   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
26495   WHERE (t2.x>0 OR t2.x IS NULL)
26496   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26497 } {
26498   15 115 215 315   -  - 215 15 315 15
26499   30 130 230 330 130 30 230 30 330 30
26500   45 145 245 345   -  - 245 45 345 45
26501   60 160 260 360 160 60 260 60 360 60
26502   75 175 275 375   -  - 275 75 375 75
26503   90 190 290 390 190 90 290 90 390 90
26505 do_execsql_test joinD-904 {
26506   SELECT t1.*, t2.*, t3.*, t4.*
26507   FROM t1 FULL JOIN t2 ON true
26508   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
26509   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
26510   WHERE t1.b=t2.b AND t2.x>0
26511   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26512 } {
26513   30 130 230 330 130 30 230 30 330 30
26514   60 160 260 360 160 60 260 60 360 60
26515   90 190 290 390 190 90 290 90 390 90
26517 do_execsql_test joinD-905 {
26518   SELECT t1.*, t2.*, t3.*, t4.*
26519   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
26520   INNER JOIN t3 ON t1.c=t3.c
26521   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
26522   WHERE t3.y>0
26523   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26524 } {
26525   15 115 215 315   -  - 215 15 315 15
26526   30 130 230 330 130 30 230 30 330 30
26527   45 145 245 345   -  - 245 45 345 45
26528   60 160 260 360 160 60 260 60 360 60
26529   75 175 275 375   -  - 275 75 375 75
26530   90 190 290 390 190 90 290 90 390 90
26532 do_execsql_test joinD-906 {
26533   SELECT t1.*, t2.*, t3.*, t4.*
26534   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
26535   INNER JOIN t3 ON t1.c=t3.c
26536   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
26537   WHERE t3.y>0 OR t3.y IS NULL
26538   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26539 } {
26540   15 115 215 315   -  - 215 15 315 15
26541   30 130 230 330 130 30 230 30 330 30
26542   45 145 245 345   -  - 245 45 345 45
26543   60 160 260 360 160 60 260 60 360 60
26544   75 175 275 375   -  - 275 75 375 75
26545   90 190 290 390 190 90 290 90 390 90
26547 do_execsql_test joinD-907 {
26548   SELECT t1.*, t2.*, t3.*, t4.*
26549   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
26550   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
26551   INNER JOIN t4 ON t1.d=t4.d
26552   WHERE t4.z>0
26553   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26554 } {
26555   15 115 215 315   -  - 215 15 315 15
26556   30 130 230 330 130 30 230 30 330 30
26557   45 145 245 345   -  - 245 45 345 45
26558   60 160 260 360 160 60 260 60 360 60
26559   75 175 275 375   -  - 275 75 375 75
26560   90 190 290 390 190 90 290 90 390 90
26562 do_execsql_test joinD-908 {
26563   SELECT t1.*, t2.*, t3.*, t4.*
26564   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
26565   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
26566   INNER JOIN t4 ON t1.d=t4.d
26567   WHERE t4.z IS NULL OR t4.z>0
26568   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26569 } {
26570   15 115 215 315   -  - 215 15 315 15
26571   30 130 230 330 130 30 230 30 330 30
26572   45 145 245 345   -  - 245 45 345 45
26573   60 160 260 360 160 60 260 60 360 60
26574   75 175 275 375   -  - 275 75 375 75
26575   90 190 290 390 190 90 290 90 390 90
26577 do_execsql_test joinD-909 {
26578   SELECT t1.*, t2.*, t3.*, t4.*
26579   FROM t1 FULL JOIN t2 ON t1.b=t2.b
26580   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
26581   INNER JOIN t4 ON t1.d=t4.d
26582   WHERE t2.x>0 AND t4.z>0
26583   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26584 } {
26585   30 130 230 330 130 30 230 30 330 30
26586   60 160 260 360 160 60 260 60 360 60
26587   90 190 290 390 190 90 290 90 390 90
26589 do_execsql_test joinD-910 {
26590   SELECT t1.*, t2.*, t3.*, t4.*
26591   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
26592   INNER JOIN t3 ON t1.c=t3.c
26593   INNER JOIN t4 ON t1.d=t4.d
26594   WHERE t4.z>0 AND t3.y>0
26595   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26596 } {
26597   15 115 215 315   -  - 215 15 315 15
26598   30 130 230 330 130 30 230 30 330 30
26599   45 145 245 345   -  - 245 45 345 45
26600   60 160 260 360 160 60 260 60 360 60
26601   75 175 275 375   -  - 275 75 375 75
26602   90 190 290 390 190 90 290 90 390 90
26604 do_execsql_test joinD-911 {
26605   SELECT t1.*, t2.*, t3.*, t4.*
26606   FROM t1 FULL JOIN t2 ON t1.b=t2.b
26607   INNER JOIN t3 ON t1.c=t3.c
26608   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
26609   WHERE t2.x>0 AND t3.y>0
26610   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26611 } {
26612   30 130 230 330 130 30 230 30 330 30
26613   60 160 260 360 160 60 260 60 360 60
26614   90 190 290 390 190 90 290 90 390 90
26616 do_execsql_test joinD-912 {
26617   SELECT t1.*, t2.*, t3.*, t4.*
26618   FROM t1 FULL JOIN t2 ON t1.b=t2.b
26619   INNER JOIN t3 ON t1.c=t3.c
26620   INNER JOIN t4 ON t1.d=t4.d
26621   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
26622   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26623 } {
26624   30 130 230 330 130 30 230 30 330 30
26625   60 160 260 360 160 60 260 60 360 60
26626   90 190 290 390 190 90 290 90 390 90
26628 do_execsql_test joinD-913 {
26629   SELECT t1.*, t2.*, t3.*, t4.*
26630   FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
26631   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
26632   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
26633   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26634 } {
26635   15 115 215 315   -  - 215 15 315 15
26636   30 130 230 330 130 30 230 30 330 30
26637   45 145 245 345   -  - 245 45 345 45
26638   60 160 260 360 160 60 260 60 360 60
26639   75 175 275 375   -  - 275 75 375 75
26640   90 190 290 390 190 90 290 90 390 90
26642 do_execsql_test joinD-914 {
26643   SELECT t1.*, t2.*, t3.*, t4.*
26644   FROM t1 FULL JOIN t2 ON t2.x>0
26645   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
26646   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
26647   WHERE t1.b = t2.b
26648   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26649 } {
26650   30 130 230 330 130 30 230 30 330 30
26651   60 160 260 360 160 60 260 60 360 60
26652   90 190 290 390 190 90 290 90 390 90
26654 do_execsql_test joinD-915 {
26655   SELECT t1.*, t2.*, t3.*, t4.*
26656   FROM t1 FULL JOIN t2 ON t2.x>0
26657   INNER JOIN t3 ON t3.y>0
26658   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
26659   WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
26660   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26661 } {
26662   30 130 230 330 130 30 230 30 330 30
26663   60 160 260 360 160 60 260 60 360 60
26664   90 190 290 390 190 90 290 90 390 90
26666 do_execsql_test joinD-916 {
26667   SELECT t1.*, t2.*, t3.*, t4.*
26668   FROM t1 FULL JOIN t2 ON t2.x>0
26669   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
26670   INNER JOIN t4 ON t4.z>0
26671   WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
26672   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26673 } {
26674   30 130 230 330 130 30 230 30 330 30
26675   60 160 260 360 160 60 260 60 360 60
26676   90 190 290 390 190 90 290 90 390 90
26678 do_execsql_test joinD-917 {
26679   SELECT t1.*, t2.*, t3.*, t4.*
26680   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
26681   INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
26682   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
26683   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26684 } {
26685   15 115 215 315   -  - 215 15 315 15
26686   30 130 230 330 130 30 230 30 330 30
26687   45 145 245 345   -  - 245 45 345 45
26688   60 160 260 360 160 60 260 60 360 60
26689   75 175 275 375   -  - 275 75 375 75
26690   90 190 290 390 190 90 290 90 390 90
26692 do_execsql_test joinD-918 {
26693   SELECT t1.*, t2.*, t3.*, t4.*
26694   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
26695   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
26696   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
26697   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26698 } {
26699    3 103 203 303   -  - 203  3   -  -
26700    6 106 206 306 106  6 206  6   -  -
26701    9 109 209 309   -  - 209  9   -  -
26702   12 112 212 312 112 12 212 12   -  -
26703   15 115 215 315   -  - 215 15 315 15
26704   18 118 218 318 118 18 218 18   -  -
26705   21 121 221 321   -  - 221 21   -  -
26706   24 124 224 324 124 24 224 24   -  -
26707   27 127 227 327   -  - 227 27   -  -
26708   30 130 230 330 130 30 230 30 330 30
26709   33 133 233 333   -  - 233 33   -  -
26710   36 136 236 336 136 36 236 36   -  -
26711   39 139 239 339   -  - 239 39   -  -
26712   42 142 242 342 142 42 242 42   -  -
26713   45 145 245 345   -  - 245 45 345 45
26714   48 148 248 348 148 48 248 48   -  -
26715   51 151 251 351   -  - 251 51   -  -
26716   54 154 254 354 154 54 254 54   -  -
26717   57 157 257 357   -  - 257 57   -  -
26718   60 160 260 360 160 60 260 60 360 60
26719   63 163 263 363   -  - 263 63   -  -
26720   66 166 266 366 166 66 266 66   -  -
26721   69 169 269 369   -  - 269 69   -  -
26722   72 172 272 372 172 72 272 72   -  -
26723   75 175 275 375   -  - 275 75 375 75
26724   78 178 278 378 178 78 278 78   -  -
26725   81 181 281 381   -  - 281 81   -  -
26726   84 184 284 384 184 84 284 84   -  -
26727   87 187 287 387   -  - 287 87   -  -
26728   90 190 290 390 190 90 290 90 390 90
26729   93 193 293 393   -  - 293 93   -  -
26731 do_execsql_test joinD-919 {
26732   SELECT t1.*, t2.*, t3.*, t4.*
26733   FROM t1 FULL JOIN t2 ON t1.b=t2.b
26734   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
26735   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
26736   WHERE t2.x>0
26737   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26738 } {
26739    6 106 206 306 106  6 206  6   -  -
26740   12 112 212 312 112 12 212 12   -  -
26741   18 118 218 318 118 18 218 18   -  -
26742   24 124 224 324 124 24 224 24   -  -
26743   30 130 230 330 130 30 230 30 330 30
26744   36 136 236 336 136 36 236 36   -  -
26745   42 142 242 342 142 42 242 42   -  -
26746   48 148 248 348 148 48 248 48   -  -
26747   54 154 254 354 154 54 254 54   -  -
26748   60 160 260 360 160 60 260 60 360 60
26749   66 166 266 366 166 66 266 66   -  -
26750   72 172 272 372 172 72 272 72   -  -
26751   78 178 278 378 178 78 278 78   -  -
26752   84 184 284 384 184 84 284 84   -  -
26753   90 190 290 390 190 90 290 90 390 90
26755 do_execsql_test joinD-920 {
26756   SELECT t1.*, t2.*, t3.*, t4.*
26757   FROM t1 FULL JOIN t2 ON t1.b=t2.b
26758   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
26759   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
26760   WHERE (t2.x>0 OR t2.x IS NULL)
26761   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26762 } {
26763    3 103 203 303   -  - 203  3   -  -
26764    6 106 206 306 106  6 206  6   -  -
26765    9 109 209 309   -  - 209  9   -  -
26766   12 112 212 312 112 12 212 12   -  -
26767   15 115 215 315   -  - 215 15 315 15
26768   18 118 218 318 118 18 218 18   -  -
26769   21 121 221 321   -  - 221 21   -  -
26770   24 124 224 324 124 24 224 24   -  -
26771   27 127 227 327   -  - 227 27   -  -
26772   30 130 230 330 130 30 230 30 330 30
26773   33 133 233 333   -  - 233 33   -  -
26774   36 136 236 336 136 36 236 36   -  -
26775   39 139 239 339   -  - 239 39   -  -
26776   42 142 242 342 142 42 242 42   -  -
26777   45 145 245 345   -  - 245 45 345 45
26778   48 148 248 348 148 48 248 48   -  -
26779   51 151 251 351   -  - 251 51   -  -
26780   54 154 254 354 154 54 254 54   -  -
26781   57 157 257 357   -  - 257 57   -  -
26782   60 160 260 360 160 60 260 60 360 60
26783   63 163 263 363   -  - 263 63   -  -
26784   66 166 266 366 166 66 266 66   -  -
26785   69 169 269 369   -  - 269 69   -  -
26786   72 172 272 372 172 72 272 72   -  -
26787   75 175 275 375   -  - 275 75 375 75
26788   78 178 278 378 178 78 278 78   -  -
26789   81 181 281 381   -  - 281 81   -  -
26790   84 184 284 384 184 84 284 84   -  -
26791   87 187 287 387   -  - 287 87   -  -
26792   90 190 290 390 190 90 290 90 390 90
26793   93 193 293 393   -  - 293 93   -  -
26795 do_execsql_test joinD-921 {
26796   SELECT t1.*, t2.*, t3.*, t4.*
26797   FROM t1 FULL JOIN t2 ON true
26798   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
26799   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
26800   WHERE t1.b=t2.b AND t2.x>0
26801   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26802 } {
26803    6 106 206 306 106  6 206  6   -  -
26804   12 112 212 312 112 12 212 12   -  -
26805   18 118 218 318 118 18 218 18   -  -
26806   24 124 224 324 124 24 224 24   -  -
26807   30 130 230 330 130 30 230 30 330 30
26808   36 136 236 336 136 36 236 36   -  -
26809   42 142 242 342 142 42 242 42   -  -
26810   48 148 248 348 148 48 248 48   -  -
26811   54 154 254 354 154 54 254 54   -  -
26812   60 160 260 360 160 60 260 60 360 60
26813   66 166 266 366 166 66 266 66   -  -
26814   72 172 272 372 172 72 272 72   -  -
26815   78 178 278 378 178 78 278 78   -  -
26816   84 184 284 384 184 84 284 84   -  -
26817   90 190 290 390 190 90 290 90 390 90
26819 do_execsql_test joinD-922 {
26820   SELECT t1.*, t2.*, t3.*, t4.*
26821   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
26822   INNER JOIN t3 ON t1.c=t3.c
26823   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
26824   WHERE t3.y>0
26825   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26826 } {
26827    3 103 203 303   -  - 203  3   -  -
26828    6 106 206 306 106  6 206  6   -  -
26829    9 109 209 309   -  - 209  9   -  -
26830   12 112 212 312 112 12 212 12   -  -
26831   15 115 215 315   -  - 215 15 315 15
26832   18 118 218 318 118 18 218 18   -  -
26833   21 121 221 321   -  - 221 21   -  -
26834   24 124 224 324 124 24 224 24   -  -
26835   27 127 227 327   -  - 227 27   -  -
26836   30 130 230 330 130 30 230 30 330 30
26837   33 133 233 333   -  - 233 33   -  -
26838   36 136 236 336 136 36 236 36   -  -
26839   39 139 239 339   -  - 239 39   -  -
26840   42 142 242 342 142 42 242 42   -  -
26841   45 145 245 345   -  - 245 45 345 45
26842   48 148 248 348 148 48 248 48   -  -
26843   51 151 251 351   -  - 251 51   -  -
26844   54 154 254 354 154 54 254 54   -  -
26845   57 157 257 357   -  - 257 57   -  -
26846   60 160 260 360 160 60 260 60 360 60
26847   63 163 263 363   -  - 263 63   -  -
26848   66 166 266 366 166 66 266 66   -  -
26849   69 169 269 369   -  - 269 69   -  -
26850   72 172 272 372 172 72 272 72   -  -
26851   75 175 275 375   -  - 275 75 375 75
26852   78 178 278 378 178 78 278 78   -  -
26853   81 181 281 381   -  - 281 81   -  -
26854   84 184 284 384 184 84 284 84   -  -
26855   87 187 287 387   -  - 287 87   -  -
26856   90 190 290 390 190 90 290 90 390 90
26857   93 193 293 393   -  - 293 93   -  -
26859 do_execsql_test joinD-923 {
26860   SELECT t1.*, t2.*, t3.*, t4.*
26861   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
26862   INNER JOIN t3 ON t1.c=t3.c
26863   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
26864   WHERE t3.y>0 OR t3.y IS NULL
26865   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26866 } {
26867    3 103 203 303   -  - 203  3   -  -
26868    6 106 206 306 106  6 206  6   -  -
26869    9 109 209 309   -  - 209  9   -  -
26870   12 112 212 312 112 12 212 12   -  -
26871   15 115 215 315   -  - 215 15 315 15
26872   18 118 218 318 118 18 218 18   -  -
26873   21 121 221 321   -  - 221 21   -  -
26874   24 124 224 324 124 24 224 24   -  -
26875   27 127 227 327   -  - 227 27   -  -
26876   30 130 230 330 130 30 230 30 330 30
26877   33 133 233 333   -  - 233 33   -  -
26878   36 136 236 336 136 36 236 36   -  -
26879   39 139 239 339   -  - 239 39   -  -
26880   42 142 242 342 142 42 242 42   -  -
26881   45 145 245 345   -  - 245 45 345 45
26882   48 148 248 348 148 48 248 48   -  -
26883   51 151 251 351   -  - 251 51   -  -
26884   54 154 254 354 154 54 254 54   -  -
26885   57 157 257 357   -  - 257 57   -  -
26886   60 160 260 360 160 60 260 60 360 60
26887   63 163 263 363   -  - 263 63   -  -
26888   66 166 266 366 166 66 266 66   -  -
26889   69 169 269 369   -  - 269 69   -  -
26890   72 172 272 372 172 72 272 72   -  -
26891   75 175 275 375   -  - 275 75 375 75
26892   78 178 278 378 178 78 278 78   -  -
26893   81 181 281 381   -  - 281 81   -  -
26894   84 184 284 384 184 84 284 84   -  -
26895   87 187 287 387   -  - 287 87   -  -
26896   90 190 290 390 190 90 290 90 390 90
26897   93 193 293 393   -  - 293 93   -  -
26899 do_execsql_test joinD-924 {
26900   SELECT t1.*, t2.*, t3.*, t4.*
26901   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
26902   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
26903   LEFT JOIN t4 ON t1.d=t4.d
26904   WHERE t4.z>0
26905   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26906 } {
26907   15 115 215 315   -  - 215 15 315 15
26908   30 130 230 330 130 30 230 30 330 30
26909   45 145 245 345   -  - 245 45 345 45
26910   60 160 260 360 160 60 260 60 360 60
26911   75 175 275 375   -  - 275 75 375 75
26912   90 190 290 390 190 90 290 90 390 90
26914 do_execsql_test joinD-925 {
26915   SELECT t1.*, t2.*, t3.*, t4.*
26916   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
26917   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
26918   LEFT JOIN t4 ON t1.d=t4.d
26919   WHERE t4.z IS NULL OR t4.z>0
26920   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26921 } {
26922    3 103 203 303   -  - 203  3   -  -
26923    6 106 206 306 106  6 206  6   -  -
26924    9 109 209 309   -  - 209  9   -  -
26925   12 112 212 312 112 12 212 12   -  -
26926   15 115 215 315   -  - 215 15 315 15
26927   18 118 218 318 118 18 218 18   -  -
26928   21 121 221 321   -  - 221 21   -  -
26929   24 124 224 324 124 24 224 24   -  -
26930   27 127 227 327   -  - 227 27   -  -
26931   30 130 230 330 130 30 230 30 330 30
26932   33 133 233 333   -  - 233 33   -  -
26933   36 136 236 336 136 36 236 36   -  -
26934   39 139 239 339   -  - 239 39   -  -
26935   42 142 242 342 142 42 242 42   -  -
26936   45 145 245 345   -  - 245 45 345 45
26937   48 148 248 348 148 48 248 48   -  -
26938   51 151 251 351   -  - 251 51   -  -
26939   54 154 254 354 154 54 254 54   -  -
26940   57 157 257 357   -  - 257 57   -  -
26941   60 160 260 360 160 60 260 60 360 60
26942   63 163 263 363   -  - 263 63   -  -
26943   66 166 266 366 166 66 266 66   -  -
26944   69 169 269 369   -  - 269 69   -  -
26945   72 172 272 372 172 72 272 72   -  -
26946   75 175 275 375   -  - 275 75 375 75
26947   78 178 278 378 178 78 278 78   -  -
26948   81 181 281 381   -  - 281 81   -  -
26949   84 184 284 384 184 84 284 84   -  -
26950   87 187 287 387   -  - 287 87   -  -
26951   90 190 290 390 190 90 290 90 390 90
26952   93 193 293 393   -  - 293 93   -  -
26954 do_execsql_test joinD-926 {
26955   SELECT t1.*, t2.*, t3.*, t4.*
26956   FROM t1 FULL JOIN t2 ON t1.b=t2.b
26957   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
26958   LEFT JOIN t4 ON t1.d=t4.d
26959   WHERE t2.x>0 AND t4.z>0
26960   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26961 } {
26962   30 130 230 330 130 30 230 30 330 30
26963   60 160 260 360 160 60 260 60 360 60
26964   90 190 290 390 190 90 290 90 390 90
26966 do_execsql_test joinD-927 {
26967   SELECT t1.*, t2.*, t3.*, t4.*
26968   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
26969   INNER JOIN t3 ON t1.c=t3.c
26970   LEFT JOIN t4 ON t1.d=t4.d
26971   WHERE t4.z>0 AND t3.y>0
26972   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26973 } {
26974   15 115 215 315   -  - 215 15 315 15
26975   30 130 230 330 130 30 230 30 330 30
26976   45 145 245 345   -  - 245 45 345 45
26977   60 160 260 360 160 60 260 60 360 60
26978   75 175 275 375   -  - 275 75 375 75
26979   90 190 290 390 190 90 290 90 390 90
26981 do_execsql_test joinD-928 {
26982   SELECT t1.*, t2.*, t3.*, t4.*
26983   FROM t1 FULL JOIN t2 ON t1.b=t2.b
26984   INNER JOIN t3 ON t1.c=t3.c
26985   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
26986   WHERE t2.x>0 AND t3.y>0
26987   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
26988 } {
26989    6 106 206 306 106  6 206  6   -  -
26990   12 112 212 312 112 12 212 12   -  -
26991   18 118 218 318 118 18 218 18   -  -
26992   24 124 224 324 124 24 224 24   -  -
26993   30 130 230 330 130 30 230 30 330 30
26994   36 136 236 336 136 36 236 36   -  -
26995   42 142 242 342 142 42 242 42   -  -
26996   48 148 248 348 148 48 248 48   -  -
26997   54 154 254 354 154 54 254 54   -  -
26998   60 160 260 360 160 60 260 60 360 60
26999   66 166 266 366 166 66 266 66   -  -
27000   72 172 272 372 172 72 272 72   -  -
27001   78 178 278 378 178 78 278 78   -  -
27002   84 184 284 384 184 84 284 84   -  -
27003   90 190 290 390 190 90 290 90 390 90
27005 do_execsql_test joinD-929 {
27006   SELECT t1.*, t2.*, t3.*, t4.*
27007   FROM t1 FULL JOIN t2 ON t1.b=t2.b
27008   INNER JOIN t3 ON t1.c=t3.c
27009   LEFT JOIN t4 ON t1.d=t4.d
27010   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
27011   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27012 } {
27013   30 130 230 330 130 30 230 30 330 30
27014   60 160 260 360 160 60 260 60 360 60
27015   90 190 290 390 190 90 290 90 390 90
27017 do_execsql_test joinD-930 {
27018   SELECT t1.*, t2.*, t3.*, t4.*
27019   FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
27020   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
27021   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
27022   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27023 } {
27024    3 103 203 303   -  - 203  3   -  -
27025    6 106 206 306 106  6 206  6   -  -
27026    9 109 209 309   -  - 209  9   -  -
27027   12 112 212 312 112 12 212 12   -  -
27028   15 115 215 315   -  - 215 15 315 15
27029   18 118 218 318 118 18 218 18   -  -
27030   21 121 221 321   -  - 221 21   -  -
27031   24 124 224 324 124 24 224 24   -  -
27032   27 127 227 327   -  - 227 27   -  -
27033   30 130 230 330 130 30 230 30 330 30
27034   33 133 233 333   -  - 233 33   -  -
27035   36 136 236 336 136 36 236 36   -  -
27036   39 139 239 339   -  - 239 39   -  -
27037   42 142 242 342 142 42 242 42   -  -
27038   45 145 245 345   -  - 245 45 345 45
27039   48 148 248 348 148 48 248 48   -  -
27040   51 151 251 351   -  - 251 51   -  -
27041   54 154 254 354 154 54 254 54   -  -
27042   57 157 257 357   -  - 257 57   -  -
27043   60 160 260 360 160 60 260 60 360 60
27044   63 163 263 363   -  - 263 63   -  -
27045   66 166 266 366 166 66 266 66   -  -
27046   69 169 269 369   -  - 269 69   -  -
27047   72 172 272 372 172 72 272 72   -  -
27048   75 175 275 375   -  - 275 75 375 75
27049   78 178 278 378 178 78 278 78   -  -
27050   81 181 281 381   -  - 281 81   -  -
27051   84 184 284 384 184 84 284 84   -  -
27052   87 187 287 387   -  - 287 87   -  -
27053   90 190 290 390 190 90 290 90 390 90
27054   93 193 293 393   -  - 293 93   -  -
27056 do_execsql_test joinD-931 {
27057   SELECT t1.*, t2.*, t3.*, t4.*
27058   FROM t1 FULL JOIN t2 ON t2.x>0
27059   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
27060   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
27061   WHERE t1.b = t2.b
27062   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27063 } {
27064    6 106 206 306 106  6 206  6   -  -
27065   12 112 212 312 112 12 212 12   -  -
27066   18 118 218 318 118 18 218 18   -  -
27067   24 124 224 324 124 24 224 24   -  -
27068   30 130 230 330 130 30 230 30 330 30
27069   36 136 236 336 136 36 236 36   -  -
27070   42 142 242 342 142 42 242 42   -  -
27071   48 148 248 348 148 48 248 48   -  -
27072   54 154 254 354 154 54 254 54   -  -
27073   60 160 260 360 160 60 260 60 360 60
27074   66 166 266 366 166 66 266 66   -  -
27075   72 172 272 372 172 72 272 72   -  -
27076   78 178 278 378 178 78 278 78   -  -
27077   84 184 284 384 184 84 284 84   -  -
27078   90 190 290 390 190 90 290 90 390 90
27080 do_execsql_test joinD-932 {
27081   SELECT t1.*, t2.*, t3.*, t4.*
27082   FROM t1 FULL JOIN t2 ON t2.x>0
27083   INNER JOIN t3 ON t3.y>0
27084   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
27085   WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
27086   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27087 } {
27088    6 106 206 306 106  6 206  6   -  -
27089   12 112 212 312 112 12 212 12   -  -
27090   18 118 218 318 118 18 218 18   -  -
27091   24 124 224 324 124 24 224 24   -  -
27092   30 130 230 330 130 30 230 30 330 30
27093   36 136 236 336 136 36 236 36   -  -
27094   42 142 242 342 142 42 242 42   -  -
27095   48 148 248 348 148 48 248 48   -  -
27096   54 154 254 354 154 54 254 54   -  -
27097   60 160 260 360 160 60 260 60 360 60
27098   66 166 266 366 166 66 266 66   -  -
27099   72 172 272 372 172 72 272 72   -  -
27100   78 178 278 378 178 78 278 78   -  -
27101   84 184 284 384 184 84 284 84   -  -
27102   90 190 290 390 190 90 290 90 390 90
27104 do_execsql_test joinD-933 {
27105   SELECT t1.*, t2.*, t3.*, t4.*
27106   FROM t1 FULL JOIN t2 ON t2.x>0
27107   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
27108   LEFT JOIN t4 ON t4.z>0
27109   WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
27110   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27111 } {
27112   30 130 230 330 130 30 230 30 330 30
27113   60 160 260 360 160 60 260 60 360 60
27114   90 190 290 390 190 90 290 90 390 90
27116 do_execsql_test joinD-934 {
27117   SELECT t1.*, t2.*, t3.*, t4.*
27118   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
27119   INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
27120   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
27121   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27122 } {
27123    3 103 203 303   -  - 203  3   -  -
27124    6 106 206 306 106  6 206  6   -  -
27125    9 109 209 309   -  - 209  9   -  -
27126   12 112 212 312 112 12 212 12   -  -
27127   15 115 215 315   -  - 215 15 315 15
27128   18 118 218 318 118 18 218 18   -  -
27129   21 121 221 321   -  - 221 21   -  -
27130   24 124 224 324 124 24 224 24   -  -
27131   27 127 227 327   -  - 227 27   -  -
27132   30 130 230 330 130 30 230 30 330 30
27133   33 133 233 333   -  - 233 33   -  -
27134   36 136 236 336 136 36 236 36   -  -
27135   39 139 239 339   -  - 239 39   -  -
27136   42 142 242 342 142 42 242 42   -  -
27137   45 145 245 345   -  - 245 45 345 45
27138   48 148 248 348 148 48 248 48   -  -
27139   51 151 251 351   -  - 251 51   -  -
27140   54 154 254 354 154 54 254 54   -  -
27141   57 157 257 357   -  - 257 57   -  -
27142   60 160 260 360 160 60 260 60 360 60
27143   63 163 263 363   -  - 263 63   -  -
27144   66 166 266 366 166 66 266 66   -  -
27145   69 169 269 369   -  - 269 69   -  -
27146   72 172 272 372 172 72 272 72   -  -
27147   75 175 275 375   -  - 275 75 375 75
27148   78 178 278 378 178 78 278 78   -  -
27149   81 181 281 381   -  - 281 81   -  -
27150   84 184 284 384 184 84 284 84   -  -
27151   87 187 287 387   -  - 287 87   -  -
27152   90 190 290 390 190 90 290 90 390 90
27153   93 193 293 393   -  - 293 93   -  -
27155 do_execsql_test joinD-935 {
27156   SELECT t1.*, t2.*, t3.*, t4.*
27157   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
27158   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
27159   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
27160   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27161 } {
27162   15 115 215 315   -  - 215 15 315 15
27163   30 130 230 330 130 30 230 30 330 30
27164   45 145 245 345   -  - 245 45 345 45
27165   60 160 260 360 160 60 260 60 360 60
27166   75 175 275 375   -  - 275 75 375 75
27167   90 190 290 390 190 90 290 90 390 90
27168    -   -   -   -   -  -   -  - 300  0
27169    -   -   -   -   -  -   -  - 305  5
27170    -   -   -   -   -  -   -  - 310 10
27171    -   -   -   -   -  -   -  - 320 20
27172    -   -   -   -   -  -   -  - 325 25
27173    -   -   -   -   -  -   -  - 335 35
27174    -   -   -   -   -  -   -  - 340 40
27175    -   -   -   -   -  -   -  - 350 50
27176    -   -   -   -   -  -   -  - 355 55
27177    -   -   -   -   -  -   -  - 365 65
27178    -   -   -   -   -  -   -  - 370 70
27179    -   -   -   -   -  -   -  - 380 80
27180    -   -   -   -   -  -   -  - 385 85
27181    -   -   -   -   -  -   -  - 395 95
27183 do_execsql_test joinD-936 {
27184   SELECT t1.*, t2.*, t3.*, t4.*
27185   FROM t1 FULL JOIN t2 ON t1.b=t2.b
27186   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
27187   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
27188   WHERE t2.x>0
27189   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27190 } {
27191   30 130 230 330 130 30 230 30 330 30
27192   60 160 260 360 160 60 260 60 360 60
27193   90 190 290 390 190 90 290 90 390 90
27195 do_execsql_test joinD-937 {
27196   SELECT t1.*, t2.*, t3.*, t4.*
27197   FROM t1 FULL JOIN t2 ON t1.b=t2.b
27198   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
27199   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
27200   WHERE (t2.x>0 OR t2.x IS NULL)
27201   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27202 } {
27203   15 115 215 315   -  - 215 15 315 15
27204   30 130 230 330 130 30 230 30 330 30
27205   45 145 245 345   -  - 245 45 345 45
27206   60 160 260 360 160 60 260 60 360 60
27207   75 175 275 375   -  - 275 75 375 75
27208   90 190 290 390 190 90 290 90 390 90
27209    -   -   -   -   -  -   -  - 300  0
27210    -   -   -   -   -  -   -  - 305  5
27211    -   -   -   -   -  -   -  - 310 10
27212    -   -   -   -   -  -   -  - 320 20
27213    -   -   -   -   -  -   -  - 325 25
27214    -   -   -   -   -  -   -  - 335 35
27215    -   -   -   -   -  -   -  - 340 40
27216    -   -   -   -   -  -   -  - 350 50
27217    -   -   -   -   -  -   -  - 355 55
27218    -   -   -   -   -  -   -  - 365 65
27219    -   -   -   -   -  -   -  - 370 70
27220    -   -   -   -   -  -   -  - 380 80
27221    -   -   -   -   -  -   -  - 385 85
27222    -   -   -   -   -  -   -  - 395 95
27224 do_execsql_test joinD-938 {
27225   SELECT t1.*, t2.*, t3.*, t4.*
27226   FROM t1 FULL JOIN t2 ON true
27227   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
27228   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
27229   WHERE t1.b=t2.b AND t2.x>0
27230   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27231 } {
27232   30 130 230 330 130 30 230 30 330 30
27233   60 160 260 360 160 60 260 60 360 60
27234   90 190 290 390 190 90 290 90 390 90
27236 do_execsql_test joinD-939 {
27237   SELECT t1.*, t2.*, t3.*, t4.*
27238   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
27239   INNER JOIN t3 ON t1.c=t3.c
27240   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
27241   WHERE t3.y>0
27242   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27243 } {
27244   15 115 215 315   -  - 215 15 315 15
27245   30 130 230 330 130 30 230 30 330 30
27246   45 145 245 345   -  - 245 45 345 45
27247   60 160 260 360 160 60 260 60 360 60
27248   75 175 275 375   -  - 275 75 375 75
27249   90 190 290 390 190 90 290 90 390 90
27251 do_execsql_test joinD-940 {
27252   SELECT t1.*, t2.*, t3.*, t4.*
27253   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
27254   INNER JOIN t3 ON t1.c=t3.c
27255   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
27256   WHERE t3.y>0 OR t3.y IS NULL
27257   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27258 } {
27259   15 115 215 315   -  - 215 15 315 15
27260   30 130 230 330 130 30 230 30 330 30
27261   45 145 245 345   -  - 245 45 345 45
27262   60 160 260 360 160 60 260 60 360 60
27263   75 175 275 375   -  - 275 75 375 75
27264   90 190 290 390 190 90 290 90 390 90
27265    -   -   -   -   -  -   -  - 300  0
27266    -   -   -   -   -  -   -  - 305  5
27267    -   -   -   -   -  -   -  - 310 10
27268    -   -   -   -   -  -   -  - 320 20
27269    -   -   -   -   -  -   -  - 325 25
27270    -   -   -   -   -  -   -  - 335 35
27271    -   -   -   -   -  -   -  - 340 40
27272    -   -   -   -   -  -   -  - 350 50
27273    -   -   -   -   -  -   -  - 355 55
27274    -   -   -   -   -  -   -  - 365 65
27275    -   -   -   -   -  -   -  - 370 70
27276    -   -   -   -   -  -   -  - 380 80
27277    -   -   -   -   -  -   -  - 385 85
27278    -   -   -   -   -  -   -  - 395 95
27280 do_execsql_test joinD-941 {
27281   SELECT t1.*, t2.*, t3.*, t4.*
27282   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
27283   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
27284   RIGHT JOIN t4 ON t1.d=t4.d
27285   WHERE t4.z>0
27286   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27287 } {
27288   15 115 215 315   -  - 215 15 315 15
27289   30 130 230 330 130 30 230 30 330 30
27290   45 145 245 345   -  - 245 45 345 45
27291   60 160 260 360 160 60 260 60 360 60
27292   75 175 275 375   -  - 275 75 375 75
27293   90 190 290 390 190 90 290 90 390 90
27294    -   -   -   -   -  -   -  - 305  5
27295    -   -   -   -   -  -   -  - 310 10
27296    -   -   -   -   -  -   -  - 320 20
27297    -   -   -   -   -  -   -  - 325 25
27298    -   -   -   -   -  -   -  - 335 35
27299    -   -   -   -   -  -   -  - 340 40
27300    -   -   -   -   -  -   -  - 350 50
27301    -   -   -   -   -  -   -  - 355 55
27302    -   -   -   -   -  -   -  - 365 65
27303    -   -   -   -   -  -   -  - 370 70
27304    -   -   -   -   -  -   -  - 380 80
27305    -   -   -   -   -  -   -  - 385 85
27306    -   -   -   -   -  -   -  - 395 95
27308 do_execsql_test joinD-942 {
27309   SELECT t1.*, t2.*, t3.*, t4.*
27310   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
27311   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
27312   RIGHT JOIN t4 ON t1.d=t4.d
27313   WHERE t4.z IS NULL OR t4.z>0
27314   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27315 } {
27316   15 115 215 315   -  - 215 15 315 15
27317   30 130 230 330 130 30 230 30 330 30
27318   45 145 245 345   -  - 245 45 345 45
27319   60 160 260 360 160 60 260 60 360 60
27320   75 175 275 375   -  - 275 75 375 75
27321   90 190 290 390 190 90 290 90 390 90
27322    -   -   -   -   -  -   -  - 305  5
27323    -   -   -   -   -  -   -  - 310 10
27324    -   -   -   -   -  -   -  - 320 20
27325    -   -   -   -   -  -   -  - 325 25
27326    -   -   -   -   -  -   -  - 335 35
27327    -   -   -   -   -  -   -  - 340 40
27328    -   -   -   -   -  -   -  - 350 50
27329    -   -   -   -   -  -   -  - 355 55
27330    -   -   -   -   -  -   -  - 365 65
27331    -   -   -   -   -  -   -  - 370 70
27332    -   -   -   -   -  -   -  - 380 80
27333    -   -   -   -   -  -   -  - 385 85
27334    -   -   -   -   -  -   -  - 395 95
27336 do_execsql_test joinD-943 {
27337   SELECT t1.*, t2.*, t3.*, t4.*
27338   FROM t1 FULL JOIN t2 ON t1.b=t2.b
27339   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
27340   RIGHT JOIN t4 ON t1.d=t4.d
27341   WHERE t2.x>0 AND t4.z>0
27342   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27343 } {
27344   30 130 230 330 130 30 230 30 330 30
27345   60 160 260 360 160 60 260 60 360 60
27346   90 190 290 390 190 90 290 90 390 90
27348 do_execsql_test joinD-944 {
27349   SELECT t1.*, t2.*, t3.*, t4.*
27350   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
27351   INNER JOIN t3 ON t1.c=t3.c
27352   RIGHT JOIN t4 ON t1.d=t4.d
27353   WHERE t4.z>0 AND t3.y>0
27354   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27355 } {
27356   15 115 215 315   -  - 215 15 315 15
27357   30 130 230 330 130 30 230 30 330 30
27358   45 145 245 345   -  - 245 45 345 45
27359   60 160 260 360 160 60 260 60 360 60
27360   75 175 275 375   -  - 275 75 375 75
27361   90 190 290 390 190 90 290 90 390 90
27363 do_execsql_test joinD-945 {
27364   SELECT t1.*, t2.*, t3.*, t4.*
27365   FROM t1 FULL JOIN t2 ON t1.b=t2.b
27366   INNER JOIN t3 ON t1.c=t3.c
27367   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
27368   WHERE t2.x>0 AND t3.y>0
27369   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27370 } {
27371   30 130 230 330 130 30 230 30 330 30
27372   60 160 260 360 160 60 260 60 360 60
27373   90 190 290 390 190 90 290 90 390 90
27375 do_execsql_test joinD-946 {
27376   SELECT t1.*, t2.*, t3.*, t4.*
27377   FROM t1 FULL JOIN t2 ON t1.b=t2.b
27378   INNER JOIN t3 ON t1.c=t3.c
27379   RIGHT JOIN t4 ON t1.d=t4.d
27380   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
27381   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27382 } {
27383   30 130 230 330 130 30 230 30 330 30
27384   60 160 260 360 160 60 260 60 360 60
27385   90 190 290 390 190 90 290 90 390 90
27387 do_execsql_test joinD-947 {
27388   SELECT t1.*, t2.*, t3.*, t4.*
27389   FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
27390   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
27391   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
27392   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27393 } {
27394   15 115 215 315   -  - 215 15 315 15
27395   30 130 230 330 130 30 230 30 330 30
27396   45 145 245 345   -  - 245 45 345 45
27397   60 160 260 360 160 60 260 60 360 60
27398   75 175 275 375   -  - 275 75 375 75
27399   90 190 290 390 190 90 290 90 390 90
27400    -   -   -   -   -  -   -  - 300  0
27401    -   -   -   -   -  -   -  - 305  5
27402    -   -   -   -   -  -   -  - 310 10
27403    -   -   -   -   -  -   -  - 320 20
27404    -   -   -   -   -  -   -  - 325 25
27405    -   -   -   -   -  -   -  - 335 35
27406    -   -   -   -   -  -   -  - 340 40
27407    -   -   -   -   -  -   -  - 350 50
27408    -   -   -   -   -  -   -  - 355 55
27409    -   -   -   -   -  -   -  - 365 65
27410    -   -   -   -   -  -   -  - 370 70
27411    -   -   -   -   -  -   -  - 380 80
27412    -   -   -   -   -  -   -  - 385 85
27413    -   -   -   -   -  -   -  - 395 95
27415 do_execsql_test joinD-948 {
27416   SELECT t1.*, t2.*, t3.*, t4.*
27417   FROM t1 FULL JOIN t2 ON t2.x>0
27418   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
27419   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
27420   WHERE t1.b = t2.b
27421   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27422 } {
27423   30 130 230 330 130 30 230 30 330 30
27424   60 160 260 360 160 60 260 60 360 60
27425   90 190 290 390 190 90 290 90 390 90
27427 do_execsql_test joinD-949 {
27428   SELECT t1.*, t2.*, t3.*, t4.*
27429   FROM t1 FULL JOIN t2 ON t2.x>0
27430   INNER JOIN t3 ON t3.y>0
27431   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
27432   WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
27433   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27434 } {
27435   30 130 230 330 130 30 230 30 330 30
27436   60 160 260 360 160 60 260 60 360 60
27437   90 190 290 390 190 90 290 90 390 90
27439 do_execsql_test joinD-950 {
27440   SELECT t1.*, t2.*, t3.*, t4.*
27441   FROM t1 FULL JOIN t2 ON t2.x>0
27442   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
27443   RIGHT JOIN t4 ON t4.z>0
27444   WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
27445   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27446 } {
27447   30 130 230 330 130 30 230 30 330 30
27448   60 160 260 360 160 60 260 60 360 60
27449   90 190 290 390 190 90 290 90 390 90
27451 do_execsql_test joinD-951 {
27452   SELECT t1.*, t2.*, t3.*, t4.*
27453   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
27454   INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
27455   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
27456   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27457 } {
27458   15 115 215 315   -  - 215 15 315 15
27459   30 130 230 330 130 30 230 30 330 30
27460   45 145 245 345   -  - 245 45 345 45
27461   60 160 260 360 160 60 260 60 360 60
27462   75 175 275 375   -  - 275 75 375 75
27463   90 190 290 390 190 90 290 90 390 90
27464    -   -   -   -   -  -   -  - 300  0
27465    -   -   -   -   -  -   -  - 305  5
27466    -   -   -   -   -  -   -  - 310 10
27467    -   -   -   -   -  -   -  - 320 20
27468    -   -   -   -   -  -   -  - 325 25
27469    -   -   -   -   -  -   -  - 335 35
27470    -   -   -   -   -  -   -  - 340 40
27471    -   -   -   -   -  -   -  - 350 50
27472    -   -   -   -   -  -   -  - 355 55
27473    -   -   -   -   -  -   -  - 365 65
27474    -   -   -   -   -  -   -  - 370 70
27475    -   -   -   -   -  -   -  - 380 80
27476    -   -   -   -   -  -   -  - 385 85
27477    -   -   -   -   -  -   -  - 395 95
27479 do_execsql_test joinD-952 {
27480   SELECT t1.*, t2.*, t3.*, t4.*
27481   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
27482   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
27483   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
27484   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27485 } {
27486    3 103 203 303   -  - 203  3   -  -
27487    6 106 206 306 106  6 206  6   -  -
27488    9 109 209 309   -  - 209  9   -  -
27489   12 112 212 312 112 12 212 12   -  -
27490   15 115 215 315   -  - 215 15 315 15
27491   18 118 218 318 118 18 218 18   -  -
27492   21 121 221 321   -  - 221 21   -  -
27493   24 124 224 324 124 24 224 24   -  -
27494   27 127 227 327   -  - 227 27   -  -
27495   30 130 230 330 130 30 230 30 330 30
27496   33 133 233 333   -  - 233 33   -  -
27497   36 136 236 336 136 36 236 36   -  -
27498   39 139 239 339   -  - 239 39   -  -
27499   42 142 242 342 142 42 242 42   -  -
27500   45 145 245 345   -  - 245 45 345 45
27501   48 148 248 348 148 48 248 48   -  -
27502   51 151 251 351   -  - 251 51   -  -
27503   54 154 254 354 154 54 254 54   -  -
27504   57 157 257 357   -  - 257 57   -  -
27505   60 160 260 360 160 60 260 60 360 60
27506   63 163 263 363   -  - 263 63   -  -
27507   66 166 266 366 166 66 266 66   -  -
27508   69 169 269 369   -  - 269 69   -  -
27509   72 172 272 372 172 72 272 72   -  -
27510   75 175 275 375   -  - 275 75 375 75
27511   78 178 278 378 178 78 278 78   -  -
27512   81 181 281 381   -  - 281 81   -  -
27513   84 184 284 384 184 84 284 84   -  -
27514   87 187 287 387   -  - 287 87   -  -
27515   90 190 290 390 190 90 290 90 390 90
27516   93 193 293 393   -  - 293 93   -  -
27517    -   -   -   -   -  -   -  - 300  0
27518    -   -   -   -   -  -   -  - 305  5
27519    -   -   -   -   -  -   -  - 310 10
27520    -   -   -   -   -  -   -  - 320 20
27521    -   -   -   -   -  -   -  - 325 25
27522    -   -   -   -   -  -   -  - 335 35
27523    -   -   -   -   -  -   -  - 340 40
27524    -   -   -   -   -  -   -  - 350 50
27525    -   -   -   -   -  -   -  - 355 55
27526    -   -   -   -   -  -   -  - 365 65
27527    -   -   -   -   -  -   -  - 370 70
27528    -   -   -   -   -  -   -  - 380 80
27529    -   -   -   -   -  -   -  - 385 85
27530    -   -   -   -   -  -   -  - 395 95
27532 do_execsql_test joinD-953 {
27533   SELECT t1.*, t2.*, t3.*, t4.*
27534   FROM t1 FULL JOIN t2 ON t1.b=t2.b
27535   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
27536   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
27537   WHERE t2.x>0
27538   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27539 } {
27540    6 106 206 306 106  6 206  6   -  -
27541   12 112 212 312 112 12 212 12   -  -
27542   18 118 218 318 118 18 218 18   -  -
27543   24 124 224 324 124 24 224 24   -  -
27544   30 130 230 330 130 30 230 30 330 30
27545   36 136 236 336 136 36 236 36   -  -
27546   42 142 242 342 142 42 242 42   -  -
27547   48 148 248 348 148 48 248 48   -  -
27548   54 154 254 354 154 54 254 54   -  -
27549   60 160 260 360 160 60 260 60 360 60
27550   66 166 266 366 166 66 266 66   -  -
27551   72 172 272 372 172 72 272 72   -  -
27552   78 178 278 378 178 78 278 78   -  -
27553   84 184 284 384 184 84 284 84   -  -
27554   90 190 290 390 190 90 290 90 390 90
27556 do_execsql_test joinD-954 {
27557   SELECT t1.*, t2.*, t3.*, t4.*
27558   FROM t1 FULL JOIN t2 ON t1.b=t2.b
27559   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
27560   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
27561   WHERE (t2.x>0 OR t2.x IS NULL)
27562   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27563 } {
27564    3 103 203 303   -  - 203  3   -  -
27565    6 106 206 306 106  6 206  6   -  -
27566    9 109 209 309   -  - 209  9   -  -
27567   12 112 212 312 112 12 212 12   -  -
27568   15 115 215 315   -  - 215 15 315 15
27569   18 118 218 318 118 18 218 18   -  -
27570   21 121 221 321   -  - 221 21   -  -
27571   24 124 224 324 124 24 224 24   -  -
27572   27 127 227 327   -  - 227 27   -  -
27573   30 130 230 330 130 30 230 30 330 30
27574   33 133 233 333   -  - 233 33   -  -
27575   36 136 236 336 136 36 236 36   -  -
27576   39 139 239 339   -  - 239 39   -  -
27577   42 142 242 342 142 42 242 42   -  -
27578   45 145 245 345   -  - 245 45 345 45
27579   48 148 248 348 148 48 248 48   -  -
27580   51 151 251 351   -  - 251 51   -  -
27581   54 154 254 354 154 54 254 54   -  -
27582   57 157 257 357   -  - 257 57   -  -
27583   60 160 260 360 160 60 260 60 360 60
27584   63 163 263 363   -  - 263 63   -  -
27585   66 166 266 366 166 66 266 66   -  -
27586   69 169 269 369   -  - 269 69   -  -
27587   72 172 272 372 172 72 272 72   -  -
27588   75 175 275 375   -  - 275 75 375 75
27589   78 178 278 378 178 78 278 78   -  -
27590   81 181 281 381   -  - 281 81   -  -
27591   84 184 284 384 184 84 284 84   -  -
27592   87 187 287 387   -  - 287 87   -  -
27593   90 190 290 390 190 90 290 90 390 90
27594   93 193 293 393   -  - 293 93   -  -
27595    -   -   -   -   -  -   -  - 300  0
27596    -   -   -   -   -  -   -  - 305  5
27597    -   -   -   -   -  -   -  - 310 10
27598    -   -   -   -   -  -   -  - 320 20
27599    -   -   -   -   -  -   -  - 325 25
27600    -   -   -   -   -  -   -  - 335 35
27601    -   -   -   -   -  -   -  - 340 40
27602    -   -   -   -   -  -   -  - 350 50
27603    -   -   -   -   -  -   -  - 355 55
27604    -   -   -   -   -  -   -  - 365 65
27605    -   -   -   -   -  -   -  - 370 70
27606    -   -   -   -   -  -   -  - 380 80
27607    -   -   -   -   -  -   -  - 385 85
27608    -   -   -   -   -  -   -  - 395 95
27610 do_execsql_test joinD-955 {
27611   SELECT t1.*, t2.*, t3.*, t4.*
27612   FROM t1 FULL JOIN t2 ON true
27613   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
27614   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
27615   WHERE t1.b=t2.b AND t2.x>0
27616   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27617 } {
27618    6 106 206 306 106  6 206  6   -  -
27619   12 112 212 312 112 12 212 12   -  -
27620   18 118 218 318 118 18 218 18   -  -
27621   24 124 224 324 124 24 224 24   -  -
27622   30 130 230 330 130 30 230 30 330 30
27623   36 136 236 336 136 36 236 36   -  -
27624   42 142 242 342 142 42 242 42   -  -
27625   48 148 248 348 148 48 248 48   -  -
27626   54 154 254 354 154 54 254 54   -  -
27627   60 160 260 360 160 60 260 60 360 60
27628   66 166 266 366 166 66 266 66   -  -
27629   72 172 272 372 172 72 272 72   -  -
27630   78 178 278 378 178 78 278 78   -  -
27631   84 184 284 384 184 84 284 84   -  -
27632   90 190 290 390 190 90 290 90 390 90
27634 do_execsql_test joinD-956 {
27635   SELECT t1.*, t2.*, t3.*, t4.*
27636   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
27637   INNER JOIN t3 ON t1.c=t3.c
27638   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
27639   WHERE t3.y>0
27640   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27641 } {
27642    3 103 203 303   -  - 203  3   -  -
27643    6 106 206 306 106  6 206  6   -  -
27644    9 109 209 309   -  - 209  9   -  -
27645   12 112 212 312 112 12 212 12   -  -
27646   15 115 215 315   -  - 215 15 315 15
27647   18 118 218 318 118 18 218 18   -  -
27648   21 121 221 321   -  - 221 21   -  -
27649   24 124 224 324 124 24 224 24   -  -
27650   27 127 227 327   -  - 227 27   -  -
27651   30 130 230 330 130 30 230 30 330 30
27652   33 133 233 333   -  - 233 33   -  -
27653   36 136 236 336 136 36 236 36   -  -
27654   39 139 239 339   -  - 239 39   -  -
27655   42 142 242 342 142 42 242 42   -  -
27656   45 145 245 345   -  - 245 45 345 45
27657   48 148 248 348 148 48 248 48   -  -
27658   51 151 251 351   -  - 251 51   -  -
27659   54 154 254 354 154 54 254 54   -  -
27660   57 157 257 357   -  - 257 57   -  -
27661   60 160 260 360 160 60 260 60 360 60
27662   63 163 263 363   -  - 263 63   -  -
27663   66 166 266 366 166 66 266 66   -  -
27664   69 169 269 369   -  - 269 69   -  -
27665   72 172 272 372 172 72 272 72   -  -
27666   75 175 275 375   -  - 275 75 375 75
27667   78 178 278 378 178 78 278 78   -  -
27668   81 181 281 381   -  - 281 81   -  -
27669   84 184 284 384 184 84 284 84   -  -
27670   87 187 287 387   -  - 287 87   -  -
27671   90 190 290 390 190 90 290 90 390 90
27672   93 193 293 393   -  - 293 93   -  -
27674 do_execsql_test joinD-957 {
27675   SELECT t1.*, t2.*, t3.*, t4.*
27676   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
27677   INNER JOIN t3 ON t1.c=t3.c
27678   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
27679   WHERE t3.y>0 OR t3.y IS NULL
27680   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27681 } {
27682    3 103 203 303   -  - 203  3   -  -
27683    6 106 206 306 106  6 206  6   -  -
27684    9 109 209 309   -  - 209  9   -  -
27685   12 112 212 312 112 12 212 12   -  -
27686   15 115 215 315   -  - 215 15 315 15
27687   18 118 218 318 118 18 218 18   -  -
27688   21 121 221 321   -  - 221 21   -  -
27689   24 124 224 324 124 24 224 24   -  -
27690   27 127 227 327   -  - 227 27   -  -
27691   30 130 230 330 130 30 230 30 330 30
27692   33 133 233 333   -  - 233 33   -  -
27693   36 136 236 336 136 36 236 36   -  -
27694   39 139 239 339   -  - 239 39   -  -
27695   42 142 242 342 142 42 242 42   -  -
27696   45 145 245 345   -  - 245 45 345 45
27697   48 148 248 348 148 48 248 48   -  -
27698   51 151 251 351   -  - 251 51   -  -
27699   54 154 254 354 154 54 254 54   -  -
27700   57 157 257 357   -  - 257 57   -  -
27701   60 160 260 360 160 60 260 60 360 60
27702   63 163 263 363   -  - 263 63   -  -
27703   66 166 266 366 166 66 266 66   -  -
27704   69 169 269 369   -  - 269 69   -  -
27705   72 172 272 372 172 72 272 72   -  -
27706   75 175 275 375   -  - 275 75 375 75
27707   78 178 278 378 178 78 278 78   -  -
27708   81 181 281 381   -  - 281 81   -  -
27709   84 184 284 384 184 84 284 84   -  -
27710   87 187 287 387   -  - 287 87   -  -
27711   90 190 290 390 190 90 290 90 390 90
27712   93 193 293 393   -  - 293 93   -  -
27713    -   -   -   -   -  -   -  - 300  0
27714    -   -   -   -   -  -   -  - 305  5
27715    -   -   -   -   -  -   -  - 310 10
27716    -   -   -   -   -  -   -  - 320 20
27717    -   -   -   -   -  -   -  - 325 25
27718    -   -   -   -   -  -   -  - 335 35
27719    -   -   -   -   -  -   -  - 340 40
27720    -   -   -   -   -  -   -  - 350 50
27721    -   -   -   -   -  -   -  - 355 55
27722    -   -   -   -   -  -   -  - 365 65
27723    -   -   -   -   -  -   -  - 370 70
27724    -   -   -   -   -  -   -  - 380 80
27725    -   -   -   -   -  -   -  - 385 85
27726    -   -   -   -   -  -   -  - 395 95
27728 do_execsql_test joinD-958 {
27729   SELECT t1.*, t2.*, t3.*, t4.*
27730   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
27731   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
27732   FULL JOIN t4 ON t1.d=t4.d
27733   WHERE t4.z>0
27734   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27735 } {
27736   15 115 215 315   -  - 215 15 315 15
27737   30 130 230 330 130 30 230 30 330 30
27738   45 145 245 345   -  - 245 45 345 45
27739   60 160 260 360 160 60 260 60 360 60
27740   75 175 275 375   -  - 275 75 375 75
27741   90 190 290 390 190 90 290 90 390 90
27742    -   -   -   -   -  -   -  - 305  5
27743    -   -   -   -   -  -   -  - 310 10
27744    -   -   -   -   -  -   -  - 320 20
27745    -   -   -   -   -  -   -  - 325 25
27746    -   -   -   -   -  -   -  - 335 35
27747    -   -   -   -   -  -   -  - 340 40
27748    -   -   -   -   -  -   -  - 350 50
27749    -   -   -   -   -  -   -  - 355 55
27750    -   -   -   -   -  -   -  - 365 65
27751    -   -   -   -   -  -   -  - 370 70
27752    -   -   -   -   -  -   -  - 380 80
27753    -   -   -   -   -  -   -  - 385 85
27754    -   -   -   -   -  -   -  - 395 95
27756 do_execsql_test joinD-959 {
27757   SELECT t1.*, t2.*, t3.*, t4.*
27758   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
27759   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
27760   FULL JOIN t4 ON t1.d=t4.d
27761   WHERE t4.z IS NULL OR t4.z>0
27762   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27763 } {
27764    3 103 203 303   -  - 203  3   -  -
27765    6 106 206 306 106  6 206  6   -  -
27766    9 109 209 309   -  - 209  9   -  -
27767   12 112 212 312 112 12 212 12   -  -
27768   15 115 215 315   -  - 215 15 315 15
27769   18 118 218 318 118 18 218 18   -  -
27770   21 121 221 321   -  - 221 21   -  -
27771   24 124 224 324 124 24 224 24   -  -
27772   27 127 227 327   -  - 227 27   -  -
27773   30 130 230 330 130 30 230 30 330 30
27774   33 133 233 333   -  - 233 33   -  -
27775   36 136 236 336 136 36 236 36   -  -
27776   39 139 239 339   -  - 239 39   -  -
27777   42 142 242 342 142 42 242 42   -  -
27778   45 145 245 345   -  - 245 45 345 45
27779   48 148 248 348 148 48 248 48   -  -
27780   51 151 251 351   -  - 251 51   -  -
27781   54 154 254 354 154 54 254 54   -  -
27782   57 157 257 357   -  - 257 57   -  -
27783   60 160 260 360 160 60 260 60 360 60
27784   63 163 263 363   -  - 263 63   -  -
27785   66 166 266 366 166 66 266 66   -  -
27786   69 169 269 369   -  - 269 69   -  -
27787   72 172 272 372 172 72 272 72   -  -
27788   75 175 275 375   -  - 275 75 375 75
27789   78 178 278 378 178 78 278 78   -  -
27790   81 181 281 381   -  - 281 81   -  -
27791   84 184 284 384 184 84 284 84   -  -
27792   87 187 287 387   -  - 287 87   -  -
27793   90 190 290 390 190 90 290 90 390 90
27794   93 193 293 393   -  - 293 93   -  -
27795    -   -   -   -   -  -   -  - 305  5
27796    -   -   -   -   -  -   -  - 310 10
27797    -   -   -   -   -  -   -  - 320 20
27798    -   -   -   -   -  -   -  - 325 25
27799    -   -   -   -   -  -   -  - 335 35
27800    -   -   -   -   -  -   -  - 340 40
27801    -   -   -   -   -  -   -  - 350 50
27802    -   -   -   -   -  -   -  - 355 55
27803    -   -   -   -   -  -   -  - 365 65
27804    -   -   -   -   -  -   -  - 370 70
27805    -   -   -   -   -  -   -  - 380 80
27806    -   -   -   -   -  -   -  - 385 85
27807    -   -   -   -   -  -   -  - 395 95
27809 do_execsql_test joinD-960 {
27810   SELECT t1.*, t2.*, t3.*, t4.*
27811   FROM t1 FULL JOIN t2 ON t1.b=t2.b
27812   INNER JOIN t3 ON t1.c=t3.c AND t3.y>0
27813   FULL JOIN t4 ON t1.d=t4.d
27814   WHERE t2.x>0 AND t4.z>0
27815   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27816 } {
27817   30 130 230 330 130 30 230 30 330 30
27818   60 160 260 360 160 60 260 60 360 60
27819   90 190 290 390 190 90 290 90 390 90
27821 do_execsql_test joinD-961 {
27822   SELECT t1.*, t2.*, t3.*, t4.*
27823   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
27824   INNER JOIN t3 ON t1.c=t3.c
27825   FULL JOIN t4 ON t1.d=t4.d
27826   WHERE t4.z>0 AND t3.y>0
27827   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27828 } {
27829   15 115 215 315   -  - 215 15 315 15
27830   30 130 230 330 130 30 230 30 330 30
27831   45 145 245 345   -  - 245 45 345 45
27832   60 160 260 360 160 60 260 60 360 60
27833   75 175 275 375   -  - 275 75 375 75
27834   90 190 290 390 190 90 290 90 390 90
27836 do_execsql_test joinD-962 {
27837   SELECT t1.*, t2.*, t3.*, t4.*
27838   FROM t1 FULL JOIN t2 ON t1.b=t2.b
27839   INNER JOIN t3 ON t1.c=t3.c
27840   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
27841   WHERE t2.x>0 AND t3.y>0
27842   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27843 } {
27844    6 106 206 306 106  6 206  6   -  -
27845   12 112 212 312 112 12 212 12   -  -
27846   18 118 218 318 118 18 218 18   -  -
27847   24 124 224 324 124 24 224 24   -  -
27848   30 130 230 330 130 30 230 30 330 30
27849   36 136 236 336 136 36 236 36   -  -
27850   42 142 242 342 142 42 242 42   -  -
27851   48 148 248 348 148 48 248 48   -  -
27852   54 154 254 354 154 54 254 54   -  -
27853   60 160 260 360 160 60 260 60 360 60
27854   66 166 266 366 166 66 266 66   -  -
27855   72 172 272 372 172 72 272 72   -  -
27856   78 178 278 378 178 78 278 78   -  -
27857   84 184 284 384 184 84 284 84   -  -
27858   90 190 290 390 190 90 290 90 390 90
27860 do_execsql_test joinD-963 {
27861   SELECT t1.*, t2.*, t3.*, t4.*
27862   FROM t1 FULL JOIN t2 ON t1.b=t2.b
27863   INNER JOIN t3 ON t1.c=t3.c
27864   FULL JOIN t4 ON t1.d=t4.d
27865   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
27866   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27867 } {
27868   30 130 230 330 130 30 230 30 330 30
27869   60 160 260 360 160 60 260 60 360 60
27870   90 190 290 390 190 90 290 90 390 90
27872 do_execsql_test joinD-964 {
27873   SELECT t1.*, t2.*, t3.*, t4.*
27874   FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
27875   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
27876   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
27877   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27878 } {
27879    3 103 203 303   -  - 203  3   -  -
27880    6 106 206 306 106  6 206  6   -  -
27881    9 109 209 309   -  - 209  9   -  -
27882   12 112 212 312 112 12 212 12   -  -
27883   15 115 215 315   -  - 215 15 315 15
27884   18 118 218 318 118 18 218 18   -  -
27885   21 121 221 321   -  - 221 21   -  -
27886   24 124 224 324 124 24 224 24   -  -
27887   27 127 227 327   -  - 227 27   -  -
27888   30 130 230 330 130 30 230 30 330 30
27889   33 133 233 333   -  - 233 33   -  -
27890   36 136 236 336 136 36 236 36   -  -
27891   39 139 239 339   -  - 239 39   -  -
27892   42 142 242 342 142 42 242 42   -  -
27893   45 145 245 345   -  - 245 45 345 45
27894   48 148 248 348 148 48 248 48   -  -
27895   51 151 251 351   -  - 251 51   -  -
27896   54 154 254 354 154 54 254 54   -  -
27897   57 157 257 357   -  - 257 57   -  -
27898   60 160 260 360 160 60 260 60 360 60
27899   63 163 263 363   -  - 263 63   -  -
27900   66 166 266 366 166 66 266 66   -  -
27901   69 169 269 369   -  - 269 69   -  -
27902   72 172 272 372 172 72 272 72   -  -
27903   75 175 275 375   -  - 275 75 375 75
27904   78 178 278 378 178 78 278 78   -  -
27905   81 181 281 381   -  - 281 81   -  -
27906   84 184 284 384 184 84 284 84   -  -
27907   87 187 287 387   -  - 287 87   -  -
27908   90 190 290 390 190 90 290 90 390 90
27909   93 193 293 393   -  - 293 93   -  -
27910    -   -   -   -   -  -   -  - 300  0
27911    -   -   -   -   -  -   -  - 305  5
27912    -   -   -   -   -  -   -  - 310 10
27913    -   -   -   -   -  -   -  - 320 20
27914    -   -   -   -   -  -   -  - 325 25
27915    -   -   -   -   -  -   -  - 335 35
27916    -   -   -   -   -  -   -  - 340 40
27917    -   -   -   -   -  -   -  - 350 50
27918    -   -   -   -   -  -   -  - 355 55
27919    -   -   -   -   -  -   -  - 365 65
27920    -   -   -   -   -  -   -  - 370 70
27921    -   -   -   -   -  -   -  - 380 80
27922    -   -   -   -   -  -   -  - 385 85
27923    -   -   -   -   -  -   -  - 395 95
27925 do_execsql_test joinD-965 {
27926   SELECT t1.*, t2.*, t3.*, t4.*
27927   FROM t1 FULL JOIN t2 ON t2.x>0
27928   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
27929   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
27930   WHERE t1.b = t2.b
27931   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27932 } {
27933    6 106 206 306 106  6 206  6   -  -
27934   12 112 212 312 112 12 212 12   -  -
27935   18 118 218 318 118 18 218 18   -  -
27936   24 124 224 324 124 24 224 24   -  -
27937   30 130 230 330 130 30 230 30 330 30
27938   36 136 236 336 136 36 236 36   -  -
27939   42 142 242 342 142 42 242 42   -  -
27940   48 148 248 348 148 48 248 48   -  -
27941   54 154 254 354 154 54 254 54   -  -
27942   60 160 260 360 160 60 260 60 360 60
27943   66 166 266 366 166 66 266 66   -  -
27944   72 172 272 372 172 72 272 72   -  -
27945   78 178 278 378 178 78 278 78   -  -
27946   84 184 284 384 184 84 284 84   -  -
27947   90 190 290 390 190 90 290 90 390 90
27949 do_execsql_test joinD-966 {
27950   SELECT t1.*, t2.*, t3.*, t4.*
27951   FROM t1 FULL JOIN t2 ON t2.x>0
27952   INNER JOIN t3 ON t3.y>0
27953   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
27954   WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
27955   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27956 } {
27957    6 106 206 306 106  6 206  6   -  -
27958   12 112 212 312 112 12 212 12   -  -
27959   18 118 218 318 118 18 218 18   -  -
27960   24 124 224 324 124 24 224 24   -  -
27961   30 130 230 330 130 30 230 30 330 30
27962   36 136 236 336 136 36 236 36   -  -
27963   42 142 242 342 142 42 242 42   -  -
27964   48 148 248 348 148 48 248 48   -  -
27965   54 154 254 354 154 54 254 54   -  -
27966   60 160 260 360 160 60 260 60 360 60
27967   66 166 266 366 166 66 266 66   -  -
27968   72 172 272 372 172 72 272 72   -  -
27969   78 178 278 378 178 78 278 78   -  -
27970   84 184 284 384 184 84 284 84   -  -
27971   90 190 290 390 190 90 290 90 390 90
27973 do_execsql_test joinD-967 {
27974   SELECT t1.*, t2.*, t3.*, t4.*
27975   FROM t1 FULL JOIN t2 ON t2.x>0
27976   INNER JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
27977   FULL JOIN t4 ON t4.z>0
27978   WHERE t1.b = t2.b AND t1.d = t4.d
27979   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27980 } {
27981   30 130 230 330 130 30 230 30 330 30
27982   60 160 260 360 160 60 260 60 360 60
27983   90 190 290 390 190 90 290 90 390 90
27985 do_execsql_test joinD-968 {
27986   SELECT t1.*, t2.*, t3.*, t4.*
27987   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
27988   INNER JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
27989   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
27990   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
27991 } {
27992    3 103 203 303   -  - 203  3   -  -
27993    6 106 206 306 106  6 206  6   -  -
27994    9 109 209 309   -  - 209  9   -  -
27995   12 112 212 312 112 12 212 12   -  -
27996   15 115 215 315   -  - 215 15 315 15
27997   18 118 218 318 118 18 218 18   -  -
27998   21 121 221 321   -  - 221 21   -  -
27999   24 124 224 324 124 24 224 24   -  -
28000   27 127 227 327   -  - 227 27   -  -
28001   30 130 230 330 130 30 230 30 330 30
28002   33 133 233 333   -  - 233 33   -  -
28003   36 136 236 336 136 36 236 36   -  -
28004   39 139 239 339   -  - 239 39   -  -
28005   42 142 242 342 142 42 242 42   -  -
28006   45 145 245 345   -  - 245 45 345 45
28007   48 148 248 348 148 48 248 48   -  -
28008   51 151 251 351   -  - 251 51   -  -
28009   54 154 254 354 154 54 254 54   -  -
28010   57 157 257 357   -  - 257 57   -  -
28011   60 160 260 360 160 60 260 60 360 60
28012   63 163 263 363   -  - 263 63   -  -
28013   66 166 266 366 166 66 266 66   -  -
28014   69 169 269 369   -  - 269 69   -  -
28015   72 172 272 372 172 72 272 72   -  -
28016   75 175 275 375   -  - 275 75 375 75
28017   78 178 278 378 178 78 278 78   -  -
28018   81 181 281 381   -  - 281 81   -  -
28019   84 184 284 384 184 84 284 84   -  -
28020   87 187 287 387   -  - 287 87   -  -
28021   90 190 290 390 190 90 290 90 390 90
28022   93 193 293 393   -  - 293 93   -  -
28023    -   -   -   -   -  -   -  - 300  0
28024    -   -   -   -   -  -   -  - 305  5
28025    -   -   -   -   -  -   -  - 310 10
28026    -   -   -   -   -  -   -  - 320 20
28027    -   -   -   -   -  -   -  - 325 25
28028    -   -   -   -   -  -   -  - 335 35
28029    -   -   -   -   -  -   -  - 340 40
28030    -   -   -   -   -  -   -  - 350 50
28031    -   -   -   -   -  -   -  - 355 55
28032    -   -   -   -   -  -   -  - 365 65
28033    -   -   -   -   -  -   -  - 370 70
28034    -   -   -   -   -  -   -  - 380 80
28035    -   -   -   -   -  -   -  - 385 85
28036    -   -   -   -   -  -   -  - 395 95
28038 do_execsql_test joinD-969 {
28039   SELECT t1.*, t2.*, t3.*, t4.*
28040   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
28041   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
28042   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
28043   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28044 } {
28045    5 105 205 305   -  -   -  - 305  5
28046   10 110 210 310 110 10   -  - 310 10
28047   15 115 215 315   -  - 215 15 315 15
28048   20 120 220 320 120 20   -  - 320 20
28049   25 125 225 325   -  -   -  - 325 25
28050   30 130 230 330 130 30 230 30 330 30
28051   35 135 235 335   -  -   -  - 335 35
28052   40 140 240 340 140 40   -  - 340 40
28053   45 145 245 345   -  - 245 45 345 45
28054   50 150 250 350 150 50   -  - 350 50
28055   55 155 255 355   -  -   -  - 355 55
28056   60 160 260 360 160 60 260 60 360 60
28057   65 165 265 365   -  -   -  - 365 65
28058   70 170 270 370 170 70   -  - 370 70
28059   75 175 275 375   -  - 275 75 375 75
28060   80 180 280 380 180 80   -  - 380 80
28061   85 185 285 385   -  -   -  - 385 85
28062   90 190 290 390 190 90 290 90 390 90
28063   95 195 295 395   -  -   -  - 395 95
28065 do_execsql_test joinD-970 {
28066   SELECT t1.*, t2.*, t3.*, t4.*
28067   FROM t1 FULL JOIN t2 ON t1.b=t2.b
28068   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
28069   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
28070   WHERE t2.x>0
28071   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28072 } {
28073   10 110 210 310 110 10   -  - 310 10
28074   20 120 220 320 120 20   -  - 320 20
28075   30 130 230 330 130 30 230 30 330 30
28076   40 140 240 340 140 40   -  - 340 40
28077   50 150 250 350 150 50   -  - 350 50
28078   60 160 260 360 160 60 260 60 360 60
28079   70 170 270 370 170 70   -  - 370 70
28080   80 180 280 380 180 80   -  - 380 80
28081   90 190 290 390 190 90 290 90 390 90
28083 do_execsql_test joinD-971 {
28084   SELECT t1.*, t2.*, t3.*, t4.*
28085   FROM t1 FULL JOIN t2 ON t1.b=t2.b
28086   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
28087   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
28088   WHERE (t2.x>0 OR t2.x IS NULL)
28089   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28090 } {
28091    5 105 205 305   -  -   -  - 305  5
28092   10 110 210 310 110 10   -  - 310 10
28093   15 115 215 315   -  - 215 15 315 15
28094   20 120 220 320 120 20   -  - 320 20
28095   25 125 225 325   -  -   -  - 325 25
28096   30 130 230 330 130 30 230 30 330 30
28097   35 135 235 335   -  -   -  - 335 35
28098   40 140 240 340 140 40   -  - 340 40
28099   45 145 245 345   -  - 245 45 345 45
28100   50 150 250 350 150 50   -  - 350 50
28101   55 155 255 355   -  -   -  - 355 55
28102   60 160 260 360 160 60 260 60 360 60
28103   65 165 265 365   -  -   -  - 365 65
28104   70 170 270 370 170 70   -  - 370 70
28105   75 175 275 375   -  - 275 75 375 75
28106   80 180 280 380 180 80   -  - 380 80
28107   85 185 285 385   -  -   -  - 385 85
28108   90 190 290 390 190 90 290 90 390 90
28109   95 195 295 395   -  -   -  - 395 95
28111 do_execsql_test joinD-972 {
28112   SELECT t1.*, t2.*, t3.*, t4.*
28113   FROM t1 FULL JOIN t2 ON true
28114   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
28115   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
28116   WHERE t1.b=t2.b AND t2.x>0
28117   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28118 } {
28119   10 110 210 310 110 10   -  - 310 10
28120   20 120 220 320 120 20   -  - 320 20
28121   30 130 230 330 130 30 230 30 330 30
28122   40 140 240 340 140 40   -  - 340 40
28123   50 150 250 350 150 50   -  - 350 50
28124   60 160 260 360 160 60 260 60 360 60
28125   70 170 270 370 170 70   -  - 370 70
28126   80 180 280 380 180 80   -  - 380 80
28127   90 190 290 390 190 90 290 90 390 90
28129 do_execsql_test joinD-973 {
28130   SELECT t1.*, t2.*, t3.*, t4.*
28131   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
28132   LEFT JOIN t3 ON t1.c=t3.c
28133   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
28134   WHERE t3.y>0
28135   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28136 } {
28137   15 115 215 315   -  - 215 15 315 15
28138   30 130 230 330 130 30 230 30 330 30
28139   45 145 245 345   -  - 245 45 345 45
28140   60 160 260 360 160 60 260 60 360 60
28141   75 175 275 375   -  - 275 75 375 75
28142   90 190 290 390 190 90 290 90 390 90
28144 do_execsql_test joinD-974 {
28145   SELECT t1.*, t2.*, t3.*, t4.*
28146   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
28147   LEFT JOIN t3 ON t1.c=t3.c
28148   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
28149   WHERE t3.y>0 OR t3.y IS NULL
28150   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28151 } {
28152    5 105 205 305   -  -   -  - 305  5
28153   10 110 210 310 110 10   -  - 310 10
28154   15 115 215 315   -  - 215 15 315 15
28155   20 120 220 320 120 20   -  - 320 20
28156   25 125 225 325   -  -   -  - 325 25
28157   30 130 230 330 130 30 230 30 330 30
28158   35 135 235 335   -  -   -  - 335 35
28159   40 140 240 340 140 40   -  - 340 40
28160   45 145 245 345   -  - 245 45 345 45
28161   50 150 250 350 150 50   -  - 350 50
28162   55 155 255 355   -  -   -  - 355 55
28163   60 160 260 360 160 60 260 60 360 60
28164   65 165 265 365   -  -   -  - 365 65
28165   70 170 270 370 170 70   -  - 370 70
28166   75 175 275 375   -  - 275 75 375 75
28167   80 180 280 380 180 80   -  - 380 80
28168   85 185 285 385   -  -   -  - 385 85
28169   90 190 290 390 190 90 290 90 390 90
28170   95 195 295 395   -  -   -  - 395 95
28172 do_execsql_test joinD-975 {
28173   SELECT t1.*, t2.*, t3.*, t4.*
28174   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
28175   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
28176   INNER JOIN t4 ON t1.d=t4.d
28177   WHERE t4.z>0
28178   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28179 } {
28180    5 105 205 305   -  -   -  - 305  5
28181   10 110 210 310 110 10   -  - 310 10
28182   15 115 215 315   -  - 215 15 315 15
28183   20 120 220 320 120 20   -  - 320 20
28184   25 125 225 325   -  -   -  - 325 25
28185   30 130 230 330 130 30 230 30 330 30
28186   35 135 235 335   -  -   -  - 335 35
28187   40 140 240 340 140 40   -  - 340 40
28188   45 145 245 345   -  - 245 45 345 45
28189   50 150 250 350 150 50   -  - 350 50
28190   55 155 255 355   -  -   -  - 355 55
28191   60 160 260 360 160 60 260 60 360 60
28192   65 165 265 365   -  -   -  - 365 65
28193   70 170 270 370 170 70   -  - 370 70
28194   75 175 275 375   -  - 275 75 375 75
28195   80 180 280 380 180 80   -  - 380 80
28196   85 185 285 385   -  -   -  - 385 85
28197   90 190 290 390 190 90 290 90 390 90
28198   95 195 295 395   -  -   -  - 395 95
28200 do_execsql_test joinD-976 {
28201   SELECT t1.*, t2.*, t3.*, t4.*
28202   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
28203   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
28204   INNER JOIN t4 ON t1.d=t4.d
28205   WHERE t4.z IS NULL OR t4.z>0
28206   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28207 } {
28208    5 105 205 305   -  -   -  - 305  5
28209   10 110 210 310 110 10   -  - 310 10
28210   15 115 215 315   -  - 215 15 315 15
28211   20 120 220 320 120 20   -  - 320 20
28212   25 125 225 325   -  -   -  - 325 25
28213   30 130 230 330 130 30 230 30 330 30
28214   35 135 235 335   -  -   -  - 335 35
28215   40 140 240 340 140 40   -  - 340 40
28216   45 145 245 345   -  - 245 45 345 45
28217   50 150 250 350 150 50   -  - 350 50
28218   55 155 255 355   -  -   -  - 355 55
28219   60 160 260 360 160 60 260 60 360 60
28220   65 165 265 365   -  -   -  - 365 65
28221   70 170 270 370 170 70   -  - 370 70
28222   75 175 275 375   -  - 275 75 375 75
28223   80 180 280 380 180 80   -  - 380 80
28224   85 185 285 385   -  -   -  - 385 85
28225   90 190 290 390 190 90 290 90 390 90
28226   95 195 295 395   -  -   -  - 395 95
28228 do_execsql_test joinD-977 {
28229   SELECT t1.*, t2.*, t3.*, t4.*
28230   FROM t1 FULL JOIN t2 ON t1.b=t2.b
28231   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
28232   INNER JOIN t4 ON t1.d=t4.d
28233   WHERE t2.x>0 AND t4.z>0
28234   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28235 } {
28236   10 110 210 310 110 10   -  - 310 10
28237   20 120 220 320 120 20   -  - 320 20
28238   30 130 230 330 130 30 230 30 330 30
28239   40 140 240 340 140 40   -  - 340 40
28240   50 150 250 350 150 50   -  - 350 50
28241   60 160 260 360 160 60 260 60 360 60
28242   70 170 270 370 170 70   -  - 370 70
28243   80 180 280 380 180 80   -  - 380 80
28244   90 190 290 390 190 90 290 90 390 90
28246 do_execsql_test joinD-978 {
28247   SELECT t1.*, t2.*, t3.*, t4.*
28248   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
28249   LEFT JOIN t3 ON t1.c=t3.c
28250   INNER JOIN t4 ON t1.d=t4.d
28251   WHERE t4.z>0 AND t3.y>0
28252   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28253 } {
28254   15 115 215 315   -  - 215 15 315 15
28255   30 130 230 330 130 30 230 30 330 30
28256   45 145 245 345   -  - 245 45 345 45
28257   60 160 260 360 160 60 260 60 360 60
28258   75 175 275 375   -  - 275 75 375 75
28259   90 190 290 390 190 90 290 90 390 90
28261 do_execsql_test joinD-979 {
28262   SELECT t1.*, t2.*, t3.*, t4.*
28263   FROM t1 FULL JOIN t2 ON t1.b=t2.b
28264   LEFT JOIN t3 ON t1.c=t3.c
28265   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
28266   WHERE t2.x>0 AND t3.y>0
28267   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28268 } {
28269   30 130 230 330 130 30 230 30 330 30
28270   60 160 260 360 160 60 260 60 360 60
28271   90 190 290 390 190 90 290 90 390 90
28273 do_execsql_test joinD-980 {
28274   SELECT t1.*, t2.*, t3.*, t4.*
28275   FROM t1 FULL JOIN t2 ON t1.b=t2.b
28276   LEFT JOIN t3 ON t1.c=t3.c
28277   INNER JOIN t4 ON t1.d=t4.d
28278   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
28279   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28280 } {
28281   30 130 230 330 130 30 230 30 330 30
28282   60 160 260 360 160 60 260 60 360 60
28283   90 190 290 390 190 90 290 90 390 90
28285 do_execsql_test joinD-981 {
28286   SELECT t1.*, t2.*, t3.*, t4.*
28287   FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
28288   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
28289   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
28290   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28291 } {
28292    5 105 205 305   -  -   -  - 305  5
28293   10 110 210 310 110 10   -  - 310 10
28294   15 115 215 315   -  - 215 15 315 15
28295   20 120 220 320 120 20   -  - 320 20
28296   25 125 225 325   -  -   -  - 325 25
28297   30 130 230 330 130 30 230 30 330 30
28298   35 135 235 335   -  -   -  - 335 35
28299   40 140 240 340 140 40   -  - 340 40
28300   45 145 245 345   -  - 245 45 345 45
28301   50 150 250 350 150 50   -  - 350 50
28302   55 155 255 355   -  -   -  - 355 55
28303   60 160 260 360 160 60 260 60 360 60
28304   65 165 265 365   -  -   -  - 365 65
28305   70 170 270 370 170 70   -  - 370 70
28306   75 175 275 375   -  - 275 75 375 75
28307   80 180 280 380 180 80   -  - 380 80
28308   85 185 285 385   -  -   -  - 385 85
28309   90 190 290 390 190 90 290 90 390 90
28310   95 195 295 395   -  -   -  - 395 95
28312 do_execsql_test joinD-982 {
28313   SELECT t1.*, t2.*, t3.*, t4.*
28314   FROM t1 FULL JOIN t2 ON t2.x>0
28315   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
28316   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
28317   WHERE t1.b = t2.b
28318   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28319 } {
28320   10 110 210 310 110 10   -  - 310 10
28321   20 120 220 320 120 20   -  - 320 20
28322   30 130 230 330 130 30 230 30 330 30
28323   40 140 240 340 140 40   -  - 340 40
28324   50 150 250 350 150 50   -  - 350 50
28325   60 160 260 360 160 60 260 60 360 60
28326   70 170 270 370 170 70   -  - 370 70
28327   80 180 280 380 180 80   -  - 380 80
28328   90 190 290 390 190 90 290 90 390 90
28330 do_execsql_test joinD-983 {
28331   SELECT t1.*, t2.*, t3.*, t4.*
28332   FROM t1 FULL JOIN t2 ON t2.x>0
28333   LEFT JOIN t3 ON t3.y>0
28334   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
28335   WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
28336   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28337 } {
28338   30 130 230 330 130 30 230 30 330 30
28339   60 160 260 360 160 60 260 60 360 60
28340   90 190 290 390 190 90 290 90 390 90
28342 do_execsql_test joinD-984 {
28343   SELECT t1.*, t2.*, t3.*, t4.*
28344   FROM t1 FULL JOIN t2 ON t2.x>0
28345   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
28346   INNER JOIN t4 ON t4.z>0
28347   WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
28348   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28349 } {
28350   10 110 210 310 110 10   -  - 310 10
28351   20 120 220 320 120 20   -  - 320 20
28352   30 130 230 330 130 30 230 30 330 30
28353   40 140 240 340 140 40   -  - 340 40
28354   50 150 250 350 150 50   -  - 350 50
28355   60 160 260 360 160 60 260 60 360 60
28356   70 170 270 370 170 70   -  - 370 70
28357   80 180 280 380 180 80   -  - 380 80
28358   90 190 290 390 190 90 290 90 390 90
28360 do_execsql_test joinD-985 {
28361   SELECT t1.*, t2.*, t3.*, t4.*
28362   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
28363   LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
28364   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
28365   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28366 } {
28367    5 105 205 305   -  -   -  - 305  5
28368   10 110 210 310 110 10   -  - 310 10
28369   15 115 215 315   -  - 215 15 315 15
28370   20 120 220 320 120 20   -  - 320 20
28371   25 125 225 325   -  -   -  - 325 25
28372   30 130 230 330 130 30 230 30 330 30
28373   35 135 235 335   -  -   -  - 335 35
28374   40 140 240 340 140 40   -  - 340 40
28375   45 145 245 345   -  - 245 45 345 45
28376   50 150 250 350 150 50   -  - 350 50
28377   55 155 255 355   -  -   -  - 355 55
28378   60 160 260 360 160 60 260 60 360 60
28379   65 165 265 365   -  -   -  - 365 65
28380   70 170 270 370 170 70   -  - 370 70
28381   75 175 275 375   -  - 275 75 375 75
28382   80 180 280 380 180 80   -  - 380 80
28383   85 185 285 385   -  -   -  - 385 85
28384   90 190 290 390 190 90 290 90 390 90
28385   95 195 295 395   -  -   -  - 395 95
28387 do_execsql_test joinD-986 {
28388   SELECT t1.*, t2.*, t3.*, t4.*
28389   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
28390   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
28391   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
28392   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28393 } {
28394    0 100 200 300   -  -   -  -   -  -
28395    1 101 201 301   -  -   -  -   -  -
28396    2 102 202 302 102  2   -  -   -  -
28397    3 103 203 303   -  - 203  3   -  -
28398    4 104 204 304 104  4   -  -   -  -
28399    5 105 205 305   -  -   -  - 305  5
28400    6 106 206 306 106  6 206  6   -  -
28401    7 107 207 307   -  -   -  -   -  -
28402    8 108 208 308 108  8   -  -   -  -
28403    9 109 209 309   -  - 209  9   -  -
28404   10 110 210 310 110 10   -  - 310 10
28405   11 111 211 311   -  -   -  -   -  -
28406   12 112 212 312 112 12 212 12   -  -
28407   13 113 213 313   -  -   -  -   -  -
28408   14 114 214 314 114 14   -  -   -  -
28409   15 115 215 315   -  - 215 15 315 15
28410   16 116 216 316 116 16   -  -   -  -
28411   17 117 217 317   -  -   -  -   -  -
28412   18 118 218 318 118 18 218 18   -  -
28413   19 119 219 319   -  -   -  -   -  -
28414   20 120 220 320 120 20   -  - 320 20
28415   21 121 221 321   -  - 221 21   -  -
28416   22 122 222 322 122 22   -  -   -  -
28417   23 123 223 323   -  -   -  -   -  -
28418   24 124 224 324 124 24 224 24   -  -
28419   25 125 225 325   -  -   -  - 325 25
28420   26 126 226 326 126 26   -  -   -  -
28421   27 127 227 327   -  - 227 27   -  -
28422   28 128 228 328 128 28   -  -   -  -
28423   29 129 229 329   -  -   -  -   -  -
28424   30 130 230 330 130 30 230 30 330 30
28425   31 131 231 331   -  -   -  -   -  -
28426   32 132 232 332 132 32   -  -   -  -
28427   33 133 233 333   -  - 233 33   -  -
28428   34 134 234 334 134 34   -  -   -  -
28429   35 135 235 335   -  -   -  - 335 35
28430   36 136 236 336 136 36 236 36   -  -
28431   37 137 237 337   -  -   -  -   -  -
28432   38 138 238 338 138 38   -  -   -  -
28433   39 139 239 339   -  - 239 39   -  -
28434   40 140 240 340 140 40   -  - 340 40
28435   41 141 241 341   -  -   -  -   -  -
28436   42 142 242 342 142 42 242 42   -  -
28437   43 143 243 343   -  -   -  -   -  -
28438   44 144 244 344 144 44   -  -   -  -
28439   45 145 245 345   -  - 245 45 345 45
28440   46 146 246 346 146 46   -  -   -  -
28441   47 147 247 347   -  -   -  -   -  -
28442   48 148 248 348 148 48 248 48   -  -
28443   49 149 249 349   -  -   -  -   -  -
28444   50 150 250 350 150 50   -  - 350 50
28445   51 151 251 351   -  - 251 51   -  -
28446   52 152 252 352 152 52   -  -   -  -
28447   53 153 253 353   -  -   -  -   -  -
28448   54 154 254 354 154 54 254 54   -  -
28449   55 155 255 355   -  -   -  - 355 55
28450   56 156 256 356 156 56   -  -   -  -
28451   57 157 257 357   -  - 257 57   -  -
28452   58 158 258 358 158 58   -  -   -  -
28453   59 159 259 359   -  -   -  -   -  -
28454   60 160 260 360 160 60 260 60 360 60
28455   61 161 261 361   -  -   -  -   -  -
28456   62 162 262 362 162 62   -  -   -  -
28457   63 163 263 363   -  - 263 63   -  -
28458   64 164 264 364 164 64   -  -   -  -
28459   65 165 265 365   -  -   -  - 365 65
28460   66 166 266 366 166 66 266 66   -  -
28461   67 167 267 367   -  -   -  -   -  -
28462   68 168 268 368 168 68   -  -   -  -
28463   69 169 269 369   -  - 269 69   -  -
28464   70 170 270 370 170 70   -  - 370 70
28465   71 171 271 371   -  -   -  -   -  -
28466   72 172 272 372 172 72 272 72   -  -
28467   73 173 273 373   -  -   -  -   -  -
28468   74 174 274 374 174 74   -  -   -  -
28469   75 175 275 375   -  - 275 75 375 75
28470   76 176 276 376 176 76   -  -   -  -
28471   77 177 277 377   -  -   -  -   -  -
28472   78 178 278 378 178 78 278 78   -  -
28473   79 179 279 379   -  -   -  -   -  -
28474   80 180 280 380 180 80   -  - 380 80
28475   81 181 281 381   -  - 281 81   -  -
28476   82 182 282 382 182 82   -  -   -  -
28477   83 183 283 383   -  -   -  -   -  -
28478   84 184 284 384 184 84 284 84   -  -
28479   85 185 285 385   -  -   -  - 385 85
28480   86 186 286 386 186 86   -  -   -  -
28481   87 187 287 387   -  - 287 87   -  -
28482   88 188 288 388 188 88   -  -   -  -
28483   89 189 289 389   -  -   -  -   -  -
28484   90 190 290 390 190 90 290 90 390 90
28485   91 191 291 391   -  -   -  -   -  -
28486   92 192 292 392 192 92   -  -   -  -
28487   93 193 293 393   -  - 293 93   -  -
28488   94 194 294 394 194 94   -  -   -  -
28489   95 195 295 395   -  -   -  - 395 95
28490   96   - 296 396   -  -   -  -   -  -
28491   97 197   - 397   -  -   -  -   -  -
28492   98 198 298   -   -  -   -  -   -  -
28493   99   -   -   -   -  -   -  -   -  -
28494    -   -   -   - 100  0   -  -   -  -
28496 do_execsql_test joinD-987 {
28497   SELECT t1.*, t2.*, t3.*, t4.*
28498   FROM t1 FULL JOIN t2 ON t1.b=t2.b
28499   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
28500   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
28501   WHERE t2.x>0
28502   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28503 } {
28504    2 102 202 302 102  2   -  -   -  -
28505    4 104 204 304 104  4   -  -   -  -
28506    6 106 206 306 106  6 206  6   -  -
28507    8 108 208 308 108  8   -  -   -  -
28508   10 110 210 310 110 10   -  - 310 10
28509   12 112 212 312 112 12 212 12   -  -
28510   14 114 214 314 114 14   -  -   -  -
28511   16 116 216 316 116 16   -  -   -  -
28512   18 118 218 318 118 18 218 18   -  -
28513   20 120 220 320 120 20   -  - 320 20
28514   22 122 222 322 122 22   -  -   -  -
28515   24 124 224 324 124 24 224 24   -  -
28516   26 126 226 326 126 26   -  -   -  -
28517   28 128 228 328 128 28   -  -   -  -
28518   30 130 230 330 130 30 230 30 330 30
28519   32 132 232 332 132 32   -  -   -  -
28520   34 134 234 334 134 34   -  -   -  -
28521   36 136 236 336 136 36 236 36   -  -
28522   38 138 238 338 138 38   -  -   -  -
28523   40 140 240 340 140 40   -  - 340 40
28524   42 142 242 342 142 42 242 42   -  -
28525   44 144 244 344 144 44   -  -   -  -
28526   46 146 246 346 146 46   -  -   -  -
28527   48 148 248 348 148 48 248 48   -  -
28528   50 150 250 350 150 50   -  - 350 50
28529   52 152 252 352 152 52   -  -   -  -
28530   54 154 254 354 154 54 254 54   -  -
28531   56 156 256 356 156 56   -  -   -  -
28532   58 158 258 358 158 58   -  -   -  -
28533   60 160 260 360 160 60 260 60 360 60
28534   62 162 262 362 162 62   -  -   -  -
28535   64 164 264 364 164 64   -  -   -  -
28536   66 166 266 366 166 66 266 66   -  -
28537   68 168 268 368 168 68   -  -   -  -
28538   70 170 270 370 170 70   -  - 370 70
28539   72 172 272 372 172 72 272 72   -  -
28540   74 174 274 374 174 74   -  -   -  -
28541   76 176 276 376 176 76   -  -   -  -
28542   78 178 278 378 178 78 278 78   -  -
28543   80 180 280 380 180 80   -  - 380 80
28544   82 182 282 382 182 82   -  -   -  -
28545   84 184 284 384 184 84 284 84   -  -
28546   86 186 286 386 186 86   -  -   -  -
28547   88 188 288 388 188 88   -  -   -  -
28548   90 190 290 390 190 90 290 90 390 90
28549   92 192 292 392 192 92   -  -   -  -
28550   94 194 294 394 194 94   -  -   -  -
28552 do_execsql_test joinD-988 {
28553   SELECT t1.*, t2.*, t3.*, t4.*
28554   FROM t1 FULL JOIN t2 ON t1.b=t2.b
28555   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
28556   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
28557   WHERE (t2.x>0 OR t2.x IS NULL)
28558   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28559 } {
28560    1 101 201 301   -  -   -  -   -  -
28561    2 102 202 302 102  2   -  -   -  -
28562    3 103 203 303   -  - 203  3   -  -
28563    4 104 204 304 104  4   -  -   -  -
28564    5 105 205 305   -  -   -  - 305  5
28565    6 106 206 306 106  6 206  6   -  -
28566    7 107 207 307   -  -   -  -   -  -
28567    8 108 208 308 108  8   -  -   -  -
28568    9 109 209 309   -  - 209  9   -  -
28569   10 110 210 310 110 10   -  - 310 10
28570   11 111 211 311   -  -   -  -   -  -
28571   12 112 212 312 112 12 212 12   -  -
28572   13 113 213 313   -  -   -  -   -  -
28573   14 114 214 314 114 14   -  -   -  -
28574   15 115 215 315   -  - 215 15 315 15
28575   16 116 216 316 116 16   -  -   -  -
28576   17 117 217 317   -  -   -  -   -  -
28577   18 118 218 318 118 18 218 18   -  -
28578   19 119 219 319   -  -   -  -   -  -
28579   20 120 220 320 120 20   -  - 320 20
28580   21 121 221 321   -  - 221 21   -  -
28581   22 122 222 322 122 22   -  -   -  -
28582   23 123 223 323   -  -   -  -   -  -
28583   24 124 224 324 124 24 224 24   -  -
28584   25 125 225 325   -  -   -  - 325 25
28585   26 126 226 326 126 26   -  -   -  -
28586   27 127 227 327   -  - 227 27   -  -
28587   28 128 228 328 128 28   -  -   -  -
28588   29 129 229 329   -  -   -  -   -  -
28589   30 130 230 330 130 30 230 30 330 30
28590   31 131 231 331   -  -   -  -   -  -
28591   32 132 232 332 132 32   -  -   -  -
28592   33 133 233 333   -  - 233 33   -  -
28593   34 134 234 334 134 34   -  -   -  -
28594   35 135 235 335   -  -   -  - 335 35
28595   36 136 236 336 136 36 236 36   -  -
28596   37 137 237 337   -  -   -  -   -  -
28597   38 138 238 338 138 38   -  -   -  -
28598   39 139 239 339   -  - 239 39   -  -
28599   40 140 240 340 140 40   -  - 340 40
28600   41 141 241 341   -  -   -  -   -  -
28601   42 142 242 342 142 42 242 42   -  -
28602   43 143 243 343   -  -   -  -   -  -
28603   44 144 244 344 144 44   -  -   -  -
28604   45 145 245 345   -  - 245 45 345 45
28605   46 146 246 346 146 46   -  -   -  -
28606   47 147 247 347   -  -   -  -   -  -
28607   48 148 248 348 148 48 248 48   -  -
28608   49 149 249 349   -  -   -  -   -  -
28609   50 150 250 350 150 50   -  - 350 50
28610   51 151 251 351   -  - 251 51   -  -
28611   52 152 252 352 152 52   -  -   -  -
28612   53 153 253 353   -  -   -  -   -  -
28613   54 154 254 354 154 54 254 54   -  -
28614   55 155 255 355   -  -   -  - 355 55
28615   56 156 256 356 156 56   -  -   -  -
28616   57 157 257 357   -  - 257 57   -  -
28617   58 158 258 358 158 58   -  -   -  -
28618   59 159 259 359   -  -   -  -   -  -
28619   60 160 260 360 160 60 260 60 360 60
28620   61 161 261 361   -  -   -  -   -  -
28621   62 162 262 362 162 62   -  -   -  -
28622   63 163 263 363   -  - 263 63   -  -
28623   64 164 264 364 164 64   -  -   -  -
28624   65 165 265 365   -  -   -  - 365 65
28625   66 166 266 366 166 66 266 66   -  -
28626   67 167 267 367   -  -   -  -   -  -
28627   68 168 268 368 168 68   -  -   -  -
28628   69 169 269 369   -  - 269 69   -  -
28629   70 170 270 370 170 70   -  - 370 70
28630   71 171 271 371   -  -   -  -   -  -
28631   72 172 272 372 172 72 272 72   -  -
28632   73 173 273 373   -  -   -  -   -  -
28633   74 174 274 374 174 74   -  -   -  -
28634   75 175 275 375   -  - 275 75 375 75
28635   76 176 276 376 176 76   -  -   -  -
28636   77 177 277 377   -  -   -  -   -  -
28637   78 178 278 378 178 78 278 78   -  -
28638   79 179 279 379   -  -   -  -   -  -
28639   80 180 280 380 180 80   -  - 380 80
28640   81 181 281 381   -  - 281 81   -  -
28641   82 182 282 382 182 82   -  -   -  -
28642   83 183 283 383   -  -   -  -   -  -
28643   84 184 284 384 184 84 284 84   -  -
28644   85 185 285 385   -  -   -  - 385 85
28645   86 186 286 386 186 86   -  -   -  -
28646   87 187 287 387   -  - 287 87   -  -
28647   88 188 288 388 188 88   -  -   -  -
28648   89 189 289 389   -  -   -  -   -  -
28649   90 190 290 390 190 90 290 90 390 90
28650   91 191 291 391   -  -   -  -   -  -
28651   92 192 292 392 192 92   -  -   -  -
28652   93 193 293 393   -  - 293 93   -  -
28653   94 194 294 394 194 94   -  -   -  -
28654   95 195 295 395   -  -   -  - 395 95
28655   96   - 296 396   -  -   -  -   -  -
28656   97 197   - 397   -  -   -  -   -  -
28657   98 198 298   -   -  -   -  -   -  -
28658   99   -   -   -   -  -   -  -   -  -
28660 do_execsql_test joinD-989 {
28661   SELECT t1.*, t2.*, t3.*, t4.*
28662   FROM t1 FULL JOIN t2 ON true
28663   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
28664   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
28665   WHERE t1.b=t2.b AND t2.x>0
28666   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28667 } {
28668    2 102 202 302 102  2   -  -   -  -
28669    4 104 204 304 104  4   -  -   -  -
28670    6 106 206 306 106  6 206  6   -  -
28671    8 108 208 308 108  8   -  -   -  -
28672   10 110 210 310 110 10   -  - 310 10
28673   12 112 212 312 112 12 212 12   -  -
28674   14 114 214 314 114 14   -  -   -  -
28675   16 116 216 316 116 16   -  -   -  -
28676   18 118 218 318 118 18 218 18   -  -
28677   20 120 220 320 120 20   -  - 320 20
28678   22 122 222 322 122 22   -  -   -  -
28679   24 124 224 324 124 24 224 24   -  -
28680   26 126 226 326 126 26   -  -   -  -
28681   28 128 228 328 128 28   -  -   -  -
28682   30 130 230 330 130 30 230 30 330 30
28683   32 132 232 332 132 32   -  -   -  -
28684   34 134 234 334 134 34   -  -   -  -
28685   36 136 236 336 136 36 236 36   -  -
28686   38 138 238 338 138 38   -  -   -  -
28687   40 140 240 340 140 40   -  - 340 40
28688   42 142 242 342 142 42 242 42   -  -
28689   44 144 244 344 144 44   -  -   -  -
28690   46 146 246 346 146 46   -  -   -  -
28691   48 148 248 348 148 48 248 48   -  -
28692   50 150 250 350 150 50   -  - 350 50
28693   52 152 252 352 152 52   -  -   -  -
28694   54 154 254 354 154 54 254 54   -  -
28695   56 156 256 356 156 56   -  -   -  -
28696   58 158 258 358 158 58   -  -   -  -
28697   60 160 260 360 160 60 260 60 360 60
28698   62 162 262 362 162 62   -  -   -  -
28699   64 164 264 364 164 64   -  -   -  -
28700   66 166 266 366 166 66 266 66   -  -
28701   68 168 268 368 168 68   -  -   -  -
28702   70 170 270 370 170 70   -  - 370 70
28703   72 172 272 372 172 72 272 72   -  -
28704   74 174 274 374 174 74   -  -   -  -
28705   76 176 276 376 176 76   -  -   -  -
28706   78 178 278 378 178 78 278 78   -  -
28707   80 180 280 380 180 80   -  - 380 80
28708   82 182 282 382 182 82   -  -   -  -
28709   84 184 284 384 184 84 284 84   -  -
28710   86 186 286 386 186 86   -  -   -  -
28711   88 188 288 388 188 88   -  -   -  -
28712   90 190 290 390 190 90 290 90 390 90
28713   92 192 292 392 192 92   -  -   -  -
28714   94 194 294 394 194 94   -  -   -  -
28716 do_execsql_test joinD-990 {
28717   SELECT t1.*, t2.*, t3.*, t4.*
28718   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
28719   LEFT JOIN t3 ON t1.c=t3.c
28720   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
28721   WHERE t3.y>0
28722   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28723 } {
28724    3 103 203 303   -  - 203  3   -  -
28725    6 106 206 306 106  6 206  6   -  -
28726    9 109 209 309   -  - 209  9   -  -
28727   12 112 212 312 112 12 212 12   -  -
28728   15 115 215 315   -  - 215 15 315 15
28729   18 118 218 318 118 18 218 18   -  -
28730   21 121 221 321   -  - 221 21   -  -
28731   24 124 224 324 124 24 224 24   -  -
28732   27 127 227 327   -  - 227 27   -  -
28733   30 130 230 330 130 30 230 30 330 30
28734   33 133 233 333   -  - 233 33   -  -
28735   36 136 236 336 136 36 236 36   -  -
28736   39 139 239 339   -  - 239 39   -  -
28737   42 142 242 342 142 42 242 42   -  -
28738   45 145 245 345   -  - 245 45 345 45
28739   48 148 248 348 148 48 248 48   -  -
28740   51 151 251 351   -  - 251 51   -  -
28741   54 154 254 354 154 54 254 54   -  -
28742   57 157 257 357   -  - 257 57   -  -
28743   60 160 260 360 160 60 260 60 360 60
28744   63 163 263 363   -  - 263 63   -  -
28745   66 166 266 366 166 66 266 66   -  -
28746   69 169 269 369   -  - 269 69   -  -
28747   72 172 272 372 172 72 272 72   -  -
28748   75 175 275 375   -  - 275 75 375 75
28749   78 178 278 378 178 78 278 78   -  -
28750   81 181 281 381   -  - 281 81   -  -
28751   84 184 284 384 184 84 284 84   -  -
28752   87 187 287 387   -  - 287 87   -  -
28753   90 190 290 390 190 90 290 90 390 90
28754   93 193 293 393   -  - 293 93   -  -
28756 do_execsql_test joinD-991 {
28757   SELECT t1.*, t2.*, t3.*, t4.*
28758   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
28759   LEFT JOIN t3 ON t1.c=t3.c
28760   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
28761   WHERE t3.y>0 OR t3.y IS NULL
28762   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28763 } {
28764    1 101 201 301   -  -   -  -   -  -
28765    2 102 202 302 102  2   -  -   -  -
28766    3 103 203 303   -  - 203  3   -  -
28767    4 104 204 304 104  4   -  -   -  -
28768    5 105 205 305   -  -   -  - 305  5
28769    6 106 206 306 106  6 206  6   -  -
28770    7 107 207 307   -  -   -  -   -  -
28771    8 108 208 308 108  8   -  -   -  -
28772    9 109 209 309   -  - 209  9   -  -
28773   10 110 210 310 110 10   -  - 310 10
28774   11 111 211 311   -  -   -  -   -  -
28775   12 112 212 312 112 12 212 12   -  -
28776   13 113 213 313   -  -   -  -   -  -
28777   14 114 214 314 114 14   -  -   -  -
28778   15 115 215 315   -  - 215 15 315 15
28779   16 116 216 316 116 16   -  -   -  -
28780   17 117 217 317   -  -   -  -   -  -
28781   18 118 218 318 118 18 218 18   -  -
28782   19 119 219 319   -  -   -  -   -  -
28783   20 120 220 320 120 20   -  - 320 20
28784   21 121 221 321   -  - 221 21   -  -
28785   22 122 222 322 122 22   -  -   -  -
28786   23 123 223 323   -  -   -  -   -  -
28787   24 124 224 324 124 24 224 24   -  -
28788   25 125 225 325   -  -   -  - 325 25
28789   26 126 226 326 126 26   -  -   -  -
28790   27 127 227 327   -  - 227 27   -  -
28791   28 128 228 328 128 28   -  -   -  -
28792   29 129 229 329   -  -   -  -   -  -
28793   30 130 230 330 130 30 230 30 330 30
28794   31 131 231 331   -  -   -  -   -  -
28795   32 132 232 332 132 32   -  -   -  -
28796   33 133 233 333   -  - 233 33   -  -
28797   34 134 234 334 134 34   -  -   -  -
28798   35 135 235 335   -  -   -  - 335 35
28799   36 136 236 336 136 36 236 36   -  -
28800   37 137 237 337   -  -   -  -   -  -
28801   38 138 238 338 138 38   -  -   -  -
28802   39 139 239 339   -  - 239 39   -  -
28803   40 140 240 340 140 40   -  - 340 40
28804   41 141 241 341   -  -   -  -   -  -
28805   42 142 242 342 142 42 242 42   -  -
28806   43 143 243 343   -  -   -  -   -  -
28807   44 144 244 344 144 44   -  -   -  -
28808   45 145 245 345   -  - 245 45 345 45
28809   46 146 246 346 146 46   -  -   -  -
28810   47 147 247 347   -  -   -  -   -  -
28811   48 148 248 348 148 48 248 48   -  -
28812   49 149 249 349   -  -   -  -   -  -
28813   50 150 250 350 150 50   -  - 350 50
28814   51 151 251 351   -  - 251 51   -  -
28815   52 152 252 352 152 52   -  -   -  -
28816   53 153 253 353   -  -   -  -   -  -
28817   54 154 254 354 154 54 254 54   -  -
28818   55 155 255 355   -  -   -  - 355 55
28819   56 156 256 356 156 56   -  -   -  -
28820   57 157 257 357   -  - 257 57   -  -
28821   58 158 258 358 158 58   -  -   -  -
28822   59 159 259 359   -  -   -  -   -  -
28823   60 160 260 360 160 60 260 60 360 60
28824   61 161 261 361   -  -   -  -   -  -
28825   62 162 262 362 162 62   -  -   -  -
28826   63 163 263 363   -  - 263 63   -  -
28827   64 164 264 364 164 64   -  -   -  -
28828   65 165 265 365   -  -   -  - 365 65
28829   66 166 266 366 166 66 266 66   -  -
28830   67 167 267 367   -  -   -  -   -  -
28831   68 168 268 368 168 68   -  -   -  -
28832   69 169 269 369   -  - 269 69   -  -
28833   70 170 270 370 170 70   -  - 370 70
28834   71 171 271 371   -  -   -  -   -  -
28835   72 172 272 372 172 72 272 72   -  -
28836   73 173 273 373   -  -   -  -   -  -
28837   74 174 274 374 174 74   -  -   -  -
28838   75 175 275 375   -  - 275 75 375 75
28839   76 176 276 376 176 76   -  -   -  -
28840   77 177 277 377   -  -   -  -   -  -
28841   78 178 278 378 178 78 278 78   -  -
28842   79 179 279 379   -  -   -  -   -  -
28843   80 180 280 380 180 80   -  - 380 80
28844   81 181 281 381   -  - 281 81   -  -
28845   82 182 282 382 182 82   -  -   -  -
28846   83 183 283 383   -  -   -  -   -  -
28847   84 184 284 384 184 84 284 84   -  -
28848   85 185 285 385   -  -   -  - 385 85
28849   86 186 286 386 186 86   -  -   -  -
28850   87 187 287 387   -  - 287 87   -  -
28851   88 188 288 388 188 88   -  -   -  -
28852   89 189 289 389   -  -   -  -   -  -
28853   90 190 290 390 190 90 290 90 390 90
28854   91 191 291 391   -  -   -  -   -  -
28855   92 192 292 392 192 92   -  -   -  -
28856   93 193 293 393   -  - 293 93   -  -
28857   94 194 294 394 194 94   -  -   -  -
28858   95 195 295 395   -  -   -  - 395 95
28859   96   - 296 396   -  -   -  -   -  -
28860   97 197   - 397   -  -   -  -   -  -
28861   98 198 298   -   -  -   -  -   -  -
28862   99   -   -   -   -  -   -  -   -  -
28863    -   -   -   - 100  0   -  -   -  -
28865 do_execsql_test joinD-992 {
28866   SELECT t1.*, t2.*, t3.*, t4.*
28867   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
28868   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
28869   LEFT JOIN t4 ON t1.d=t4.d
28870   WHERE t4.z>0
28871   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28872 } {
28873    5 105 205 305   -  -   -  - 305  5
28874   10 110 210 310 110 10   -  - 310 10
28875   15 115 215 315   -  - 215 15 315 15
28876   20 120 220 320 120 20   -  - 320 20
28877   25 125 225 325   -  -   -  - 325 25
28878   30 130 230 330 130 30 230 30 330 30
28879   35 135 235 335   -  -   -  - 335 35
28880   40 140 240 340 140 40   -  - 340 40
28881   45 145 245 345   -  - 245 45 345 45
28882   50 150 250 350 150 50   -  - 350 50
28883   55 155 255 355   -  -   -  - 355 55
28884   60 160 260 360 160 60 260 60 360 60
28885   65 165 265 365   -  -   -  - 365 65
28886   70 170 270 370 170 70   -  - 370 70
28887   75 175 275 375   -  - 275 75 375 75
28888   80 180 280 380 180 80   -  - 380 80
28889   85 185 285 385   -  -   -  - 385 85
28890   90 190 290 390 190 90 290 90 390 90
28891   95 195 295 395   -  -   -  - 395 95
28893 do_execsql_test joinD-993 {
28894   SELECT t1.*, t2.*, t3.*, t4.*
28895   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
28896   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
28897   LEFT JOIN t4 ON t1.d=t4.d
28898   WHERE t4.z IS NULL OR t4.z>0
28899   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
28900 } {
28901    1 101 201 301   -  -   -  -   -  -
28902    2 102 202 302 102  2   -  -   -  -
28903    3 103 203 303   -  - 203  3   -  -
28904    4 104 204 304 104  4   -  -   -  -
28905    5 105 205 305   -  -   -  - 305  5
28906    6 106 206 306 106  6 206  6   -  -
28907    7 107 207 307   -  -   -  -   -  -
28908    8 108 208 308 108  8   -  -   -  -
28909    9 109 209 309   -  - 209  9   -  -
28910   10 110 210 310 110 10   -  - 310 10
28911   11 111 211 311   -  -   -  -   -  -
28912   12 112 212 312 112 12 212 12   -  -
28913   13 113 213 313   -  -   -  -   -  -
28914   14 114 214 314 114 14   -  -   -  -
28915   15 115 215 315   -  - 215 15 315 15
28916   16 116 216 316 116 16   -  -   -  -
28917   17 117 217 317   -  -   -  -   -  -
28918   18 118 218 318 118 18 218 18   -  -
28919   19 119 219 319   -  -   -  -   -  -
28920   20 120 220 320 120 20   -  - 320 20
28921   21 121 221 321   -  - 221 21   -  -
28922   22 122 222 322 122 22   -  -   -  -
28923   23 123 223 323   -  -   -  -   -  -
28924   24 124 224 324 124 24 224 24   -  -
28925   25 125 225 325   -  -   -  - 325 25
28926   26 126 226 326 126 26   -  -   -  -
28927   27 127 227 327   -  - 227 27   -  -
28928   28 128 228 328 128 28   -  -   -  -
28929   29 129 229 329   -  -   -  -   -  -
28930   30 130 230 330 130 30 230 30 330 30
28931   31 131 231 331   -  -   -  -   -  -
28932   32 132 232 332 132 32   -  -   -  -
28933   33 133 233 333   -  - 233 33   -  -
28934   34 134 234 334 134 34   -  -   -  -
28935   35 135 235 335   -  -   -  - 335 35
28936   36 136 236 336 136 36 236 36   -  -
28937   37 137 237 337   -  -   -  -   -  -
28938   38 138 238 338 138 38   -  -   -  -
28939   39 139 239 339   -  - 239 39   -  -
28940   40 140 240 340 140 40   -  - 340 40
28941   41 141 241 341   -  -   -  -   -  -
28942   42 142 242 342 142 42 242 42   -  -
28943   43 143 243 343   -  -   -  -   -  -
28944   44 144 244 344 144 44   -  -   -  -
28945   45 145 245 345   -  - 245 45 345 45
28946   46 146 246 346 146 46   -  -   -  -
28947   47 147 247 347   -  -   -  -   -  -
28948   48 148 248 348 148 48 248 48   -  -
28949   49 149 249 349   -  -   -  -   -  -
28950   50 150 250 350 150 50   -  - 350 50
28951   51 151 251 351   -  - 251 51   -  -
28952   52 152 252 352 152 52   -  -   -  -
28953   53 153 253 353   -  -   -  -   -  -
28954   54 154 254 354 154 54 254 54   -  -
28955   55 155 255 355   -  -   -  - 355 55
28956   56 156 256 356 156 56   -  -   -  -
28957   57 157 257 357   -  - 257 57   -  -
28958   58 158 258 358 158 58   -  -   -  -
28959   59 159 259 359   -  -   -  -   -  -
28960   60 160 260 360 160 60 260 60 360 60
28961   61 161 261 361   -  -   -  -   -  -
28962   62 162 262 362 162 62   -  -   -  -
28963   63 163 263 363   -  - 263 63   -  -
28964   64 164 264 364 164 64   -  -   -  -
28965   65 165 265 365   -  -   -  - 365 65
28966   66 166 266 366 166 66 266 66   -  -
28967   67 167 267 367   -  -   -  -   -  -
28968   68 168 268 368 168 68   -  -   -  -
28969   69 169 269 369   -  - 269 69   -  -
28970   70 170 270 370 170 70   -  - 370 70
28971   71 171 271 371   -  -   -  -   -  -
28972   72 172 272 372 172 72 272 72   -  -
28973   73 173 273 373   -  -   -  -   -  -
28974   74 174 274 374 174 74   -  -   -  -
28975   75 175 275 375   -  - 275 75 375 75
28976   76 176 276 376 176 76   -  -   -  -
28977   77 177 277 377   -  -   -  -   -  -
28978   78 178 278 378 178 78 278 78   -  -
28979   79 179 279 379   -  -   -  -   -  -
28980   80 180 280 380 180 80   -  - 380 80
28981   81 181 281 381   -  - 281 81   -  -
28982   82 182 282 382 182 82   -  -   -  -
28983   83 183 283 383   -  -   -  -   -  -
28984   84 184 284 384 184 84 284 84   -  -
28985   85 185 285 385   -  -   -  - 385 85
28986   86 186 286 386 186 86   -  -   -  -
28987   87 187 287 387   -  - 287 87   -  -
28988   88 188 288 388 188 88   -  -   -  -
28989   89 189 289 389   -  -   -  -   -  -
28990   90 190 290 390 190 90 290 90 390 90
28991   91 191 291 391   -  -   -  -   -  -
28992   92 192 292 392 192 92   -  -   -  -
28993   93 193 293 393   -  - 293 93   -  -
28994   94 194 294 394 194 94   -  -   -  -
28995   95 195 295 395   -  -   -  - 395 95
28996   96   - 296 396   -  -   -  -   -  -
28997   97 197   - 397   -  -   -  -   -  -
28998   98 198 298   -   -  -   -  -   -  -
28999   99   -   -   -   -  -   -  -   -  -
29000    -   -   -   - 100  0   -  -   -  -
29002 do_execsql_test joinD-994 {
29003   SELECT t1.*, t2.*, t3.*, t4.*
29004   FROM t1 FULL JOIN t2 ON t1.b=t2.b
29005   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
29006   LEFT JOIN t4 ON t1.d=t4.d
29007   WHERE t2.x>0 AND t4.z>0
29008   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29009 } {
29010   10 110 210 310 110 10   -  - 310 10
29011   20 120 220 320 120 20   -  - 320 20
29012   30 130 230 330 130 30 230 30 330 30
29013   40 140 240 340 140 40   -  - 340 40
29014   50 150 250 350 150 50   -  - 350 50
29015   60 160 260 360 160 60 260 60 360 60
29016   70 170 270 370 170 70   -  - 370 70
29017   80 180 280 380 180 80   -  - 380 80
29018   90 190 290 390 190 90 290 90 390 90
29020 do_execsql_test joinD-995 {
29021   SELECT t1.*, t2.*, t3.*, t4.*
29022   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
29023   LEFT JOIN t3 ON t1.c=t3.c
29024   LEFT JOIN t4 ON t1.d=t4.d
29025   WHERE t4.z>0 AND t3.y>0
29026   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29027 } {
29028   15 115 215 315   -  - 215 15 315 15
29029   30 130 230 330 130 30 230 30 330 30
29030   45 145 245 345   -  - 245 45 345 45
29031   60 160 260 360 160 60 260 60 360 60
29032   75 175 275 375   -  - 275 75 375 75
29033   90 190 290 390 190 90 290 90 390 90
29035 do_execsql_test joinD-996 {
29036   SELECT t1.*, t2.*, t3.*, t4.*
29037   FROM t1 FULL JOIN t2 ON t1.b=t2.b
29038   LEFT JOIN t3 ON t1.c=t3.c
29039   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
29040   WHERE t2.x>0 AND t3.y>0
29041   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29042 } {
29043    6 106 206 306 106  6 206  6   -  -
29044   12 112 212 312 112 12 212 12   -  -
29045   18 118 218 318 118 18 218 18   -  -
29046   24 124 224 324 124 24 224 24   -  -
29047   30 130 230 330 130 30 230 30 330 30
29048   36 136 236 336 136 36 236 36   -  -
29049   42 142 242 342 142 42 242 42   -  -
29050   48 148 248 348 148 48 248 48   -  -
29051   54 154 254 354 154 54 254 54   -  -
29052   60 160 260 360 160 60 260 60 360 60
29053   66 166 266 366 166 66 266 66   -  -
29054   72 172 272 372 172 72 272 72   -  -
29055   78 178 278 378 178 78 278 78   -  -
29056   84 184 284 384 184 84 284 84   -  -
29057   90 190 290 390 190 90 290 90 390 90
29059 do_execsql_test joinD-997 {
29060   SELECT t1.*, t2.*, t3.*, t4.*
29061   FROM t1 FULL JOIN t2 ON t1.b=t2.b
29062   LEFT JOIN t3 ON t1.c=t3.c
29063   LEFT JOIN t4 ON t1.d=t4.d
29064   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
29065   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29066 } {
29067   30 130 230 330 130 30 230 30 330 30
29068   60 160 260 360 160 60 260 60 360 60
29069   90 190 290 390 190 90 290 90 390 90
29071 do_execsql_test joinD-998 {
29072   SELECT t1.*, t2.*, t3.*, t4.*
29073   FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
29074   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
29075   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
29076   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29077 } {
29078    0 100 200 300   -  -   -  -   -  -
29079    1 101 201 301   -  -   -  -   -  -
29080    2 102 202 302 102  2   -  -   -  -
29081    3 103 203 303   -  - 203  3   -  -
29082    4 104 204 304 104  4   -  -   -  -
29083    5 105 205 305   -  -   -  - 305  5
29084    6 106 206 306 106  6 206  6   -  -
29085    7 107 207 307   -  -   -  -   -  -
29086    8 108 208 308 108  8   -  -   -  -
29087    9 109 209 309   -  - 209  9   -  -
29088   10 110 210 310 110 10   -  - 310 10
29089   11 111 211 311   -  -   -  -   -  -
29090   12 112 212 312 112 12 212 12   -  -
29091   13 113 213 313   -  -   -  -   -  -
29092   14 114 214 314 114 14   -  -   -  -
29093   15 115 215 315   -  - 215 15 315 15
29094   16 116 216 316 116 16   -  -   -  -
29095   17 117 217 317   -  -   -  -   -  -
29096   18 118 218 318 118 18 218 18   -  -
29097   19 119 219 319   -  -   -  -   -  -
29098   20 120 220 320 120 20   -  - 320 20
29099   21 121 221 321   -  - 221 21   -  -
29100   22 122 222 322 122 22   -  -   -  -
29101   23 123 223 323   -  -   -  -   -  -
29102   24 124 224 324 124 24 224 24   -  -
29103   25 125 225 325   -  -   -  - 325 25
29104   26 126 226 326 126 26   -  -   -  -
29105   27 127 227 327   -  - 227 27   -  -
29106   28 128 228 328 128 28   -  -   -  -
29107   29 129 229 329   -  -   -  -   -  -
29108   30 130 230 330 130 30 230 30 330 30
29109   31 131 231 331   -  -   -  -   -  -
29110   32 132 232 332 132 32   -  -   -  -
29111   33 133 233 333   -  - 233 33   -  -
29112   34 134 234 334 134 34   -  -   -  -
29113   35 135 235 335   -  -   -  - 335 35
29114   36 136 236 336 136 36 236 36   -  -
29115   37 137 237 337   -  -   -  -   -  -
29116   38 138 238 338 138 38   -  -   -  -
29117   39 139 239 339   -  - 239 39   -  -
29118   40 140 240 340 140 40   -  - 340 40
29119   41 141 241 341   -  -   -  -   -  -
29120   42 142 242 342 142 42 242 42   -  -
29121   43 143 243 343   -  -   -  -   -  -
29122   44 144 244 344 144 44   -  -   -  -
29123   45 145 245 345   -  - 245 45 345 45
29124   46 146 246 346 146 46   -  -   -  -
29125   47 147 247 347   -  -   -  -   -  -
29126   48 148 248 348 148 48 248 48   -  -
29127   49 149 249 349   -  -   -  -   -  -
29128   50 150 250 350 150 50   -  - 350 50
29129   51 151 251 351   -  - 251 51   -  -
29130   52 152 252 352 152 52   -  -   -  -
29131   53 153 253 353   -  -   -  -   -  -
29132   54 154 254 354 154 54 254 54   -  -
29133   55 155 255 355   -  -   -  - 355 55
29134   56 156 256 356 156 56   -  -   -  -
29135   57 157 257 357   -  - 257 57   -  -
29136   58 158 258 358 158 58   -  -   -  -
29137   59 159 259 359   -  -   -  -   -  -
29138   60 160 260 360 160 60 260 60 360 60
29139   61 161 261 361   -  -   -  -   -  -
29140   62 162 262 362 162 62   -  -   -  -
29141   63 163 263 363   -  - 263 63   -  -
29142   64 164 264 364 164 64   -  -   -  -
29143   65 165 265 365   -  -   -  - 365 65
29144   66 166 266 366 166 66 266 66   -  -
29145   67 167 267 367   -  -   -  -   -  -
29146   68 168 268 368 168 68   -  -   -  -
29147   69 169 269 369   -  - 269 69   -  -
29148   70 170 270 370 170 70   -  - 370 70
29149   71 171 271 371   -  -   -  -   -  -
29150   72 172 272 372 172 72 272 72   -  -
29151   73 173 273 373   -  -   -  -   -  -
29152   74 174 274 374 174 74   -  -   -  -
29153   75 175 275 375   -  - 275 75 375 75
29154   76 176 276 376 176 76   -  -   -  -
29155   77 177 277 377   -  -   -  -   -  -
29156   78 178 278 378 178 78 278 78   -  -
29157   79 179 279 379   -  -   -  -   -  -
29158   80 180 280 380 180 80   -  - 380 80
29159   81 181 281 381   -  - 281 81   -  -
29160   82 182 282 382 182 82   -  -   -  -
29161   83 183 283 383   -  -   -  -   -  -
29162   84 184 284 384 184 84 284 84   -  -
29163   85 185 285 385   -  -   -  - 385 85
29164   86 186 286 386 186 86   -  -   -  -
29165   87 187 287 387   -  - 287 87   -  -
29166   88 188 288 388 188 88   -  -   -  -
29167   89 189 289 389   -  -   -  -   -  -
29168   90 190 290 390 190 90 290 90 390 90
29169   91 191 291 391   -  -   -  -   -  -
29170   92 192 292 392 192 92   -  -   -  -
29171   93 193 293 393   -  - 293 93   -  -
29172   94 194 294 394 194 94   -  -   -  -
29173   95 195 295 395   -  -   -  - 395 95
29174   96   - 296 396   -  -   -  -   -  -
29175   97 197   - 397   -  -   -  -   -  -
29176   98 198 298   -   -  -   -  -   -  -
29177   99   -   -   -   -  -   -  -   -  -
29178    -   -   -   - 100  0   -  -   -  -
29180 do_execsql_test joinD-999 {
29181   SELECT t1.*, t2.*, t3.*, t4.*
29182   FROM t1 FULL JOIN t2 ON t2.x>0
29183   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
29184   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
29185   WHERE t1.b = t2.b
29186   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29187 } {
29188    2 102 202 302 102  2   -  -   -  -
29189    4 104 204 304 104  4   -  -   -  -
29190    6 106 206 306 106  6 206  6   -  -
29191    8 108 208 308 108  8   -  -   -  -
29192   10 110 210 310 110 10   -  - 310 10
29193   12 112 212 312 112 12 212 12   -  -
29194   14 114 214 314 114 14   -  -   -  -
29195   16 116 216 316 116 16   -  -   -  -
29196   18 118 218 318 118 18 218 18   -  -
29197   20 120 220 320 120 20   -  - 320 20
29198   22 122 222 322 122 22   -  -   -  -
29199   24 124 224 324 124 24 224 24   -  -
29200   26 126 226 326 126 26   -  -   -  -
29201   28 128 228 328 128 28   -  -   -  -
29202   30 130 230 330 130 30 230 30 330 30
29203   32 132 232 332 132 32   -  -   -  -
29204   34 134 234 334 134 34   -  -   -  -
29205   36 136 236 336 136 36 236 36   -  -
29206   38 138 238 338 138 38   -  -   -  -
29207   40 140 240 340 140 40   -  - 340 40
29208   42 142 242 342 142 42 242 42   -  -
29209   44 144 244 344 144 44   -  -   -  -
29210   46 146 246 346 146 46   -  -   -  -
29211   48 148 248 348 148 48 248 48   -  -
29212   50 150 250 350 150 50   -  - 350 50
29213   52 152 252 352 152 52   -  -   -  -
29214   54 154 254 354 154 54 254 54   -  -
29215   56 156 256 356 156 56   -  -   -  -
29216   58 158 258 358 158 58   -  -   -  -
29217   60 160 260 360 160 60 260 60 360 60
29218   62 162 262 362 162 62   -  -   -  -
29219   64 164 264 364 164 64   -  -   -  -
29220   66 166 266 366 166 66 266 66   -  -
29221   68 168 268 368 168 68   -  -   -  -
29222   70 170 270 370 170 70   -  - 370 70
29223   72 172 272 372 172 72 272 72   -  -
29224   74 174 274 374 174 74   -  -   -  -
29225   76 176 276 376 176 76   -  -   -  -
29226   78 178 278 378 178 78 278 78   -  -
29227   80 180 280 380 180 80   -  - 380 80
29228   82 182 282 382 182 82   -  -   -  -
29229   84 184 284 384 184 84 284 84   -  -
29230   86 186 286 386 186 86   -  -   -  -
29231   88 188 288 388 188 88   -  -   -  -
29232   90 190 290 390 190 90 290 90 390 90
29233   92 192 292 392 192 92   -  -   -  -
29234   94 194 294 394 194 94   -  -   -  -
29236 do_execsql_test joinD-1000 {
29237   SELECT t1.*, t2.*, t3.*, t4.*
29238   FROM t1 FULL JOIN t2 ON t2.x>0
29239   LEFT JOIN t3 ON t3.y>0
29240   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
29241   WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
29242   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29243 } {
29244    6 106 206 306 106  6 206  6   -  -
29245   12 112 212 312 112 12 212 12   -  -
29246   18 118 218 318 118 18 218 18   -  -
29247   24 124 224 324 124 24 224 24   -  -
29248   30 130 230 330 130 30 230 30 330 30
29249   36 136 236 336 136 36 236 36   -  -
29250   42 142 242 342 142 42 242 42   -  -
29251   48 148 248 348 148 48 248 48   -  -
29252   54 154 254 354 154 54 254 54   -  -
29253   60 160 260 360 160 60 260 60 360 60
29254   66 166 266 366 166 66 266 66   -  -
29255   72 172 272 372 172 72 272 72   -  -
29256   78 178 278 378 178 78 278 78   -  -
29257   84 184 284 384 184 84 284 84   -  -
29258   90 190 290 390 190 90 290 90 390 90
29260 do_execsql_test joinD-1001 {
29261   SELECT t1.*, t2.*, t3.*, t4.*
29262   FROM t1 FULL JOIN t2 ON t2.x>0
29263   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
29264   LEFT JOIN t4 ON t4.z>0
29265   WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
29266   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29267 } {
29268   10 110 210 310 110 10   -  - 310 10
29269   20 120 220 320 120 20   -  - 320 20
29270   30 130 230 330 130 30 230 30 330 30
29271   40 140 240 340 140 40   -  - 340 40
29272   50 150 250 350 150 50   -  - 350 50
29273   60 160 260 360 160 60 260 60 360 60
29274   70 170 270 370 170 70   -  - 370 70
29275   80 180 280 380 180 80   -  - 380 80
29276   90 190 290 390 190 90 290 90 390 90
29278 do_execsql_test joinD-1002 {
29279   SELECT t1.*, t2.*, t3.*, t4.*
29280   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
29281   LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
29282   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
29283   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29284 } {
29285    0 100 200 300   -  -   -  -   -  -
29286    1 101 201 301   -  -   -  -   -  -
29287    2 102 202 302 102  2   -  -   -  -
29288    3 103 203 303   -  - 203  3   -  -
29289    4 104 204 304 104  4   -  -   -  -
29290    5 105 205 305   -  -   -  - 305  5
29291    6 106 206 306 106  6 206  6   -  -
29292    7 107 207 307   -  -   -  -   -  -
29293    8 108 208 308 108  8   -  -   -  -
29294    9 109 209 309   -  - 209  9   -  -
29295   10 110 210 310 110 10   -  - 310 10
29296   11 111 211 311   -  -   -  -   -  -
29297   12 112 212 312 112 12 212 12   -  -
29298   13 113 213 313   -  -   -  -   -  -
29299   14 114 214 314 114 14   -  -   -  -
29300   15 115 215 315   -  - 215 15 315 15
29301   16 116 216 316 116 16   -  -   -  -
29302   17 117 217 317   -  -   -  -   -  -
29303   18 118 218 318 118 18 218 18   -  -
29304   19 119 219 319   -  -   -  -   -  -
29305   20 120 220 320 120 20   -  - 320 20
29306   21 121 221 321   -  - 221 21   -  -
29307   22 122 222 322 122 22   -  -   -  -
29308   23 123 223 323   -  -   -  -   -  -
29309   24 124 224 324 124 24 224 24   -  -
29310   25 125 225 325   -  -   -  - 325 25
29311   26 126 226 326 126 26   -  -   -  -
29312   27 127 227 327   -  - 227 27   -  -
29313   28 128 228 328 128 28   -  -   -  -
29314   29 129 229 329   -  -   -  -   -  -
29315   30 130 230 330 130 30 230 30 330 30
29316   31 131 231 331   -  -   -  -   -  -
29317   32 132 232 332 132 32   -  -   -  -
29318   33 133 233 333   -  - 233 33   -  -
29319   34 134 234 334 134 34   -  -   -  -
29320   35 135 235 335   -  -   -  - 335 35
29321   36 136 236 336 136 36 236 36   -  -
29322   37 137 237 337   -  -   -  -   -  -
29323   38 138 238 338 138 38   -  -   -  -
29324   39 139 239 339   -  - 239 39   -  -
29325   40 140 240 340 140 40   -  - 340 40
29326   41 141 241 341   -  -   -  -   -  -
29327   42 142 242 342 142 42 242 42   -  -
29328   43 143 243 343   -  -   -  -   -  -
29329   44 144 244 344 144 44   -  -   -  -
29330   45 145 245 345   -  - 245 45 345 45
29331   46 146 246 346 146 46   -  -   -  -
29332   47 147 247 347   -  -   -  -   -  -
29333   48 148 248 348 148 48 248 48   -  -
29334   49 149 249 349   -  -   -  -   -  -
29335   50 150 250 350 150 50   -  - 350 50
29336   51 151 251 351   -  - 251 51   -  -
29337   52 152 252 352 152 52   -  -   -  -
29338   53 153 253 353   -  -   -  -   -  -
29339   54 154 254 354 154 54 254 54   -  -
29340   55 155 255 355   -  -   -  - 355 55
29341   56 156 256 356 156 56   -  -   -  -
29342   57 157 257 357   -  - 257 57   -  -
29343   58 158 258 358 158 58   -  -   -  -
29344   59 159 259 359   -  -   -  -   -  -
29345   60 160 260 360 160 60 260 60 360 60
29346   61 161 261 361   -  -   -  -   -  -
29347   62 162 262 362 162 62   -  -   -  -
29348   63 163 263 363   -  - 263 63   -  -
29349   64 164 264 364 164 64   -  -   -  -
29350   65 165 265 365   -  -   -  - 365 65
29351   66 166 266 366 166 66 266 66   -  -
29352   67 167 267 367   -  -   -  -   -  -
29353   68 168 268 368 168 68   -  -   -  -
29354   69 169 269 369   -  - 269 69   -  -
29355   70 170 270 370 170 70   -  - 370 70
29356   71 171 271 371   -  -   -  -   -  -
29357   72 172 272 372 172 72 272 72   -  -
29358   73 173 273 373   -  -   -  -   -  -
29359   74 174 274 374 174 74   -  -   -  -
29360   75 175 275 375   -  - 275 75 375 75
29361   76 176 276 376 176 76   -  -   -  -
29362   77 177 277 377   -  -   -  -   -  -
29363   78 178 278 378 178 78 278 78   -  -
29364   79 179 279 379   -  -   -  -   -  -
29365   80 180 280 380 180 80   -  - 380 80
29366   81 181 281 381   -  - 281 81   -  -
29367   82 182 282 382 182 82   -  -   -  -
29368   83 183 283 383   -  -   -  -   -  -
29369   84 184 284 384 184 84 284 84   -  -
29370   85 185 285 385   -  -   -  - 385 85
29371   86 186 286 386 186 86   -  -   -  -
29372   87 187 287 387   -  - 287 87   -  -
29373   88 188 288 388 188 88   -  -   -  -
29374   89 189 289 389   -  -   -  -   -  -
29375   90 190 290 390 190 90 290 90 390 90
29376   91 191 291 391   -  -   -  -   -  -
29377   92 192 292 392 192 92   -  -   -  -
29378   93 193 293 393   -  - 293 93   -  -
29379   94 194 294 394 194 94   -  -   -  -
29380   95 195 295 395   -  -   -  - 395 95
29381   96   - 296 396   -  -   -  -   -  -
29382   97 197   - 397   -  -   -  -   -  -
29383   98 198 298   -   -  -   -  -   -  -
29384   99   -   -   -   -  -   -  -   -  -
29385    -   -   -   - 100  0   -  -   -  -
29387 do_execsql_test joinD-1003 {
29388   SELECT t1.*, t2.*, t3.*, t4.*
29389   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
29390   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
29391   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
29392   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29393 } {
29394    5 105 205 305   -  -   -  - 305  5
29395   10 110 210 310 110 10   -  - 310 10
29396   15 115 215 315   -  - 215 15 315 15
29397   20 120 220 320 120 20   -  - 320 20
29398   25 125 225 325   -  -   -  - 325 25
29399   30 130 230 330 130 30 230 30 330 30
29400   35 135 235 335   -  -   -  - 335 35
29401   40 140 240 340 140 40   -  - 340 40
29402   45 145 245 345   -  - 245 45 345 45
29403   50 150 250 350 150 50   -  - 350 50
29404   55 155 255 355   -  -   -  - 355 55
29405   60 160 260 360 160 60 260 60 360 60
29406   65 165 265 365   -  -   -  - 365 65
29407   70 170 270 370 170 70   -  - 370 70
29408   75 175 275 375   -  - 275 75 375 75
29409   80 180 280 380 180 80   -  - 380 80
29410   85 185 285 385   -  -   -  - 385 85
29411   90 190 290 390 190 90 290 90 390 90
29412   95 195 295 395   -  -   -  - 395 95
29413    -   -   -   -   -  -   -  - 300  0
29415 do_execsql_test joinD-1004 {
29416   SELECT t1.*, t2.*, t3.*, t4.*
29417   FROM t1 FULL JOIN t2 ON t1.b=t2.b
29418   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
29419   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
29420   WHERE t2.x>0
29421   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29422 } {
29423   10 110 210 310 110 10   -  - 310 10
29424   20 120 220 320 120 20   -  - 320 20
29425   30 130 230 330 130 30 230 30 330 30
29426   40 140 240 340 140 40   -  - 340 40
29427   50 150 250 350 150 50   -  - 350 50
29428   60 160 260 360 160 60 260 60 360 60
29429   70 170 270 370 170 70   -  - 370 70
29430   80 180 280 380 180 80   -  - 380 80
29431   90 190 290 390 190 90 290 90 390 90
29433 do_execsql_test joinD-1005 {
29434   SELECT t1.*, t2.*, t3.*, t4.*
29435   FROM t1 FULL JOIN t2 ON t1.b=t2.b
29436   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
29437   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
29438   WHERE (t2.x>0 OR t2.x IS NULL)
29439   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29440 } {
29441    5 105 205 305   -  -   -  - 305  5
29442   10 110 210 310 110 10   -  - 310 10
29443   15 115 215 315   -  - 215 15 315 15
29444   20 120 220 320 120 20   -  - 320 20
29445   25 125 225 325   -  -   -  - 325 25
29446   30 130 230 330 130 30 230 30 330 30
29447   35 135 235 335   -  -   -  - 335 35
29448   40 140 240 340 140 40   -  - 340 40
29449   45 145 245 345   -  - 245 45 345 45
29450   50 150 250 350 150 50   -  - 350 50
29451   55 155 255 355   -  -   -  - 355 55
29452   60 160 260 360 160 60 260 60 360 60
29453   65 165 265 365   -  -   -  - 365 65
29454   70 170 270 370 170 70   -  - 370 70
29455   75 175 275 375   -  - 275 75 375 75
29456   80 180 280 380 180 80   -  - 380 80
29457   85 185 285 385   -  -   -  - 385 85
29458   90 190 290 390 190 90 290 90 390 90
29459   95 195 295 395   -  -   -  - 395 95
29460    -   -   -   -   -  -   -  - 300  0
29462 do_execsql_test joinD-1006 {
29463   SELECT t1.*, t2.*, t3.*, t4.*
29464   FROM t1 FULL JOIN t2 ON true
29465   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
29466   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
29467   WHERE t1.b=t2.b AND t2.x>0
29468   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29469 } {
29470   10 110 210 310 110 10   -  - 310 10
29471   20 120 220 320 120 20   -  - 320 20
29472   30 130 230 330 130 30 230 30 330 30
29473   40 140 240 340 140 40   -  - 340 40
29474   50 150 250 350 150 50   -  - 350 50
29475   60 160 260 360 160 60 260 60 360 60
29476   70 170 270 370 170 70   -  - 370 70
29477   80 180 280 380 180 80   -  - 380 80
29478   90 190 290 390 190 90 290 90 390 90
29480 do_execsql_test joinD-1007 {
29481   SELECT t1.*, t2.*, t3.*, t4.*
29482   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
29483   LEFT JOIN t3 ON t1.c=t3.c
29484   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
29485   WHERE t3.y>0
29486   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29487 } {
29488   15 115 215 315   -  - 215 15 315 15
29489   30 130 230 330 130 30 230 30 330 30
29490   45 145 245 345   -  - 245 45 345 45
29491   60 160 260 360 160 60 260 60 360 60
29492   75 175 275 375   -  - 275 75 375 75
29493   90 190 290 390 190 90 290 90 390 90
29495 do_execsql_test joinD-1008 {
29496   SELECT t1.*, t2.*, t3.*, t4.*
29497   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
29498   LEFT JOIN t3 ON t1.c=t3.c
29499   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
29500   WHERE t3.y>0 OR t3.y IS NULL
29501   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29502 } {
29503    5 105 205 305   -  -   -  - 305  5
29504   10 110 210 310 110 10   -  - 310 10
29505   15 115 215 315   -  - 215 15 315 15
29506   20 120 220 320 120 20   -  - 320 20
29507   25 125 225 325   -  -   -  - 325 25
29508   30 130 230 330 130 30 230 30 330 30
29509   35 135 235 335   -  -   -  - 335 35
29510   40 140 240 340 140 40   -  - 340 40
29511   45 145 245 345   -  - 245 45 345 45
29512   50 150 250 350 150 50   -  - 350 50
29513   55 155 255 355   -  -   -  - 355 55
29514   60 160 260 360 160 60 260 60 360 60
29515   65 165 265 365   -  -   -  - 365 65
29516   70 170 270 370 170 70   -  - 370 70
29517   75 175 275 375   -  - 275 75 375 75
29518   80 180 280 380 180 80   -  - 380 80
29519   85 185 285 385   -  -   -  - 385 85
29520   90 190 290 390 190 90 290 90 390 90
29521   95 195 295 395   -  -   -  - 395 95
29522    -   -   -   -   -  -   -  - 300  0
29524 do_execsql_test joinD-1009 {
29525   SELECT t1.*, t2.*, t3.*, t4.*
29526   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
29527   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
29528   RIGHT JOIN t4 ON t1.d=t4.d
29529   WHERE t4.z>0
29530   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29531 } {
29532    5 105 205 305   -  -   -  - 305  5
29533   10 110 210 310 110 10   -  - 310 10
29534   15 115 215 315   -  - 215 15 315 15
29535   20 120 220 320 120 20   -  - 320 20
29536   25 125 225 325   -  -   -  - 325 25
29537   30 130 230 330 130 30 230 30 330 30
29538   35 135 235 335   -  -   -  - 335 35
29539   40 140 240 340 140 40   -  - 340 40
29540   45 145 245 345   -  - 245 45 345 45
29541   50 150 250 350 150 50   -  - 350 50
29542   55 155 255 355   -  -   -  - 355 55
29543   60 160 260 360 160 60 260 60 360 60
29544   65 165 265 365   -  -   -  - 365 65
29545   70 170 270 370 170 70   -  - 370 70
29546   75 175 275 375   -  - 275 75 375 75
29547   80 180 280 380 180 80   -  - 380 80
29548   85 185 285 385   -  -   -  - 385 85
29549   90 190 290 390 190 90 290 90 390 90
29550   95 195 295 395   -  -   -  - 395 95
29552 do_execsql_test joinD-1010 {
29553   SELECT t1.*, t2.*, t3.*, t4.*
29554   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
29555   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
29556   RIGHT JOIN t4 ON t1.d=t4.d
29557   WHERE t4.z IS NULL OR t4.z>0
29558   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29559 } {
29560    5 105 205 305   -  -   -  - 305  5
29561   10 110 210 310 110 10   -  - 310 10
29562   15 115 215 315   -  - 215 15 315 15
29563   20 120 220 320 120 20   -  - 320 20
29564   25 125 225 325   -  -   -  - 325 25
29565   30 130 230 330 130 30 230 30 330 30
29566   35 135 235 335   -  -   -  - 335 35
29567   40 140 240 340 140 40   -  - 340 40
29568   45 145 245 345   -  - 245 45 345 45
29569   50 150 250 350 150 50   -  - 350 50
29570   55 155 255 355   -  -   -  - 355 55
29571   60 160 260 360 160 60 260 60 360 60
29572   65 165 265 365   -  -   -  - 365 65
29573   70 170 270 370 170 70   -  - 370 70
29574   75 175 275 375   -  - 275 75 375 75
29575   80 180 280 380 180 80   -  - 380 80
29576   85 185 285 385   -  -   -  - 385 85
29577   90 190 290 390 190 90 290 90 390 90
29578   95 195 295 395   -  -   -  - 395 95
29580 do_execsql_test joinD-1011 {
29581   SELECT t1.*, t2.*, t3.*, t4.*
29582   FROM t1 FULL JOIN t2 ON t1.b=t2.b
29583   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
29584   RIGHT JOIN t4 ON t1.d=t4.d
29585   WHERE t2.x>0 AND t4.z>0
29586   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29587 } {
29588   10 110 210 310 110 10   -  - 310 10
29589   20 120 220 320 120 20   -  - 320 20
29590   30 130 230 330 130 30 230 30 330 30
29591   40 140 240 340 140 40   -  - 340 40
29592   50 150 250 350 150 50   -  - 350 50
29593   60 160 260 360 160 60 260 60 360 60
29594   70 170 270 370 170 70   -  - 370 70
29595   80 180 280 380 180 80   -  - 380 80
29596   90 190 290 390 190 90 290 90 390 90
29598 do_execsql_test joinD-1012 {
29599   SELECT t1.*, t2.*, t3.*, t4.*
29600   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
29601   LEFT JOIN t3 ON t1.c=t3.c
29602   RIGHT JOIN t4 ON t1.d=t4.d
29603   WHERE t4.z>0 AND t3.y>0
29604   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29605 } {
29606   15 115 215 315   -  - 215 15 315 15
29607   30 130 230 330 130 30 230 30 330 30
29608   45 145 245 345   -  - 245 45 345 45
29609   60 160 260 360 160 60 260 60 360 60
29610   75 175 275 375   -  - 275 75 375 75
29611   90 190 290 390 190 90 290 90 390 90
29613 do_execsql_test joinD-1013 {
29614   SELECT t1.*, t2.*, t3.*, t4.*
29615   FROM t1 FULL JOIN t2 ON t1.b=t2.b
29616   LEFT JOIN t3 ON t1.c=t3.c
29617   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
29618   WHERE t2.x>0 AND t3.y>0
29619   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29620 } {
29621   30 130 230 330 130 30 230 30 330 30
29622   60 160 260 360 160 60 260 60 360 60
29623   90 190 290 390 190 90 290 90 390 90
29625 do_execsql_test joinD-1014 {
29626   SELECT t1.*, t2.*, t3.*, t4.*
29627   FROM t1 FULL JOIN t2 ON t1.b=t2.b
29628   LEFT JOIN t3 ON t1.c=t3.c
29629   RIGHT JOIN t4 ON t1.d=t4.d
29630   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
29631   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29632 } {
29633   30 130 230 330 130 30 230 30 330 30
29634   60 160 260 360 160 60 260 60 360 60
29635   90 190 290 390 190 90 290 90 390 90
29637 do_execsql_test joinD-1015 {
29638   SELECT t1.*, t2.*, t3.*, t4.*
29639   FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
29640   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
29641   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
29642   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29643 } {
29644    5 105 205 305   -  -   -  - 305  5
29645   10 110 210 310 110 10   -  - 310 10
29646   15 115 215 315   -  - 215 15 315 15
29647   20 120 220 320 120 20   -  - 320 20
29648   25 125 225 325   -  -   -  - 325 25
29649   30 130 230 330 130 30 230 30 330 30
29650   35 135 235 335   -  -   -  - 335 35
29651   40 140 240 340 140 40   -  - 340 40
29652   45 145 245 345   -  - 245 45 345 45
29653   50 150 250 350 150 50   -  - 350 50
29654   55 155 255 355   -  -   -  - 355 55
29655   60 160 260 360 160 60 260 60 360 60
29656   65 165 265 365   -  -   -  - 365 65
29657   70 170 270 370 170 70   -  - 370 70
29658   75 175 275 375   -  - 275 75 375 75
29659   80 180 280 380 180 80   -  - 380 80
29660   85 185 285 385   -  -   -  - 385 85
29661   90 190 290 390 190 90 290 90 390 90
29662   95 195 295 395   -  -   -  - 395 95
29663    -   -   -   -   -  -   -  - 300  0
29665 do_execsql_test joinD-1016 {
29666   SELECT t1.*, t2.*, t3.*, t4.*
29667   FROM t1 FULL JOIN t2 ON t2.x>0
29668   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
29669   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
29670   WHERE t1.b = t2.b
29671   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29672 } {
29673   10 110 210 310 110 10   -  - 310 10
29674   20 120 220 320 120 20   -  - 320 20
29675   30 130 230 330 130 30 230 30 330 30
29676   40 140 240 340 140 40   -  - 340 40
29677   50 150 250 350 150 50   -  - 350 50
29678   60 160 260 360 160 60 260 60 360 60
29679   70 170 270 370 170 70   -  - 370 70
29680   80 180 280 380 180 80   -  - 380 80
29681   90 190 290 390 190 90 290 90 390 90
29683 do_execsql_test joinD-1017 {
29684   SELECT t1.*, t2.*, t3.*, t4.*
29685   FROM t1 FULL JOIN t2 ON t2.x>0
29686   LEFT JOIN t3 ON t3.y>0
29687   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
29688   WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
29689   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29690 } {
29691   30 130 230 330 130 30 230 30 330 30
29692   60 160 260 360 160 60 260 60 360 60
29693   90 190 290 390 190 90 290 90 390 90
29695 do_execsql_test joinD-1018 {
29696   SELECT t1.*, t2.*, t3.*, t4.*
29697   FROM t1 FULL JOIN t2 ON t2.x>0
29698   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
29699   RIGHT JOIN t4 ON t4.z>0
29700   WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
29701   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29702 } {
29703   10 110 210 310 110 10   -  - 310 10
29704   20 120 220 320 120 20   -  - 320 20
29705   30 130 230 330 130 30 230 30 330 30
29706   40 140 240 340 140 40   -  - 340 40
29707   50 150 250 350 150 50   -  - 350 50
29708   60 160 260 360 160 60 260 60 360 60
29709   70 170 270 370 170 70   -  - 370 70
29710   80 180 280 380 180 80   -  - 380 80
29711   90 190 290 390 190 90 290 90 390 90
29713 do_execsql_test joinD-1019 {
29714   SELECT t1.*, t2.*, t3.*, t4.*
29715   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
29716   LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
29717   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
29718   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29719 } {
29720    5 105 205 305   -  -   -  - 305  5
29721   10 110 210 310 110 10   -  - 310 10
29722   15 115 215 315   -  - 215 15 315 15
29723   20 120 220 320 120 20   -  - 320 20
29724   25 125 225 325   -  -   -  - 325 25
29725   30 130 230 330 130 30 230 30 330 30
29726   35 135 235 335   -  -   -  - 335 35
29727   40 140 240 340 140 40   -  - 340 40
29728   45 145 245 345   -  - 245 45 345 45
29729   50 150 250 350 150 50   -  - 350 50
29730   55 155 255 355   -  -   -  - 355 55
29731   60 160 260 360 160 60 260 60 360 60
29732   65 165 265 365   -  -   -  - 365 65
29733   70 170 270 370 170 70   -  - 370 70
29734   75 175 275 375   -  - 275 75 375 75
29735   80 180 280 380 180 80   -  - 380 80
29736   85 185 285 385   -  -   -  - 385 85
29737   90 190 290 390 190 90 290 90 390 90
29738   95 195 295 395   -  -   -  - 395 95
29739    -   -   -   -   -  -   -  - 300  0
29741 do_execsql_test joinD-1020 {
29742   SELECT t1.*, t2.*, t3.*, t4.*
29743   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
29744   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
29745   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
29746   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29747 } {
29748    0 100 200 300   -  -   -  -   -  -
29749    1 101 201 301   -  -   -  -   -  -
29750    2 102 202 302 102  2   -  -   -  -
29751    3 103 203 303   -  - 203  3   -  -
29752    4 104 204 304 104  4   -  -   -  -
29753    5 105 205 305   -  -   -  - 305  5
29754    6 106 206 306 106  6 206  6   -  -
29755    7 107 207 307   -  -   -  -   -  -
29756    8 108 208 308 108  8   -  -   -  -
29757    9 109 209 309   -  - 209  9   -  -
29758   10 110 210 310 110 10   -  - 310 10
29759   11 111 211 311   -  -   -  -   -  -
29760   12 112 212 312 112 12 212 12   -  -
29761   13 113 213 313   -  -   -  -   -  -
29762   14 114 214 314 114 14   -  -   -  -
29763   15 115 215 315   -  - 215 15 315 15
29764   16 116 216 316 116 16   -  -   -  -
29765   17 117 217 317   -  -   -  -   -  -
29766   18 118 218 318 118 18 218 18   -  -
29767   19 119 219 319   -  -   -  -   -  -
29768   20 120 220 320 120 20   -  - 320 20
29769   21 121 221 321   -  - 221 21   -  -
29770   22 122 222 322 122 22   -  -   -  -
29771   23 123 223 323   -  -   -  -   -  -
29772   24 124 224 324 124 24 224 24   -  -
29773   25 125 225 325   -  -   -  - 325 25
29774   26 126 226 326 126 26   -  -   -  -
29775   27 127 227 327   -  - 227 27   -  -
29776   28 128 228 328 128 28   -  -   -  -
29777   29 129 229 329   -  -   -  -   -  -
29778   30 130 230 330 130 30 230 30 330 30
29779   31 131 231 331   -  -   -  -   -  -
29780   32 132 232 332 132 32   -  -   -  -
29781   33 133 233 333   -  - 233 33   -  -
29782   34 134 234 334 134 34   -  -   -  -
29783   35 135 235 335   -  -   -  - 335 35
29784   36 136 236 336 136 36 236 36   -  -
29785   37 137 237 337   -  -   -  -   -  -
29786   38 138 238 338 138 38   -  -   -  -
29787   39 139 239 339   -  - 239 39   -  -
29788   40 140 240 340 140 40   -  - 340 40
29789   41 141 241 341   -  -   -  -   -  -
29790   42 142 242 342 142 42 242 42   -  -
29791   43 143 243 343   -  -   -  -   -  -
29792   44 144 244 344 144 44   -  -   -  -
29793   45 145 245 345   -  - 245 45 345 45
29794   46 146 246 346 146 46   -  -   -  -
29795   47 147 247 347   -  -   -  -   -  -
29796   48 148 248 348 148 48 248 48   -  -
29797   49 149 249 349   -  -   -  -   -  -
29798   50 150 250 350 150 50   -  - 350 50
29799   51 151 251 351   -  - 251 51   -  -
29800   52 152 252 352 152 52   -  -   -  -
29801   53 153 253 353   -  -   -  -   -  -
29802   54 154 254 354 154 54 254 54   -  -
29803   55 155 255 355   -  -   -  - 355 55
29804   56 156 256 356 156 56   -  -   -  -
29805   57 157 257 357   -  - 257 57   -  -
29806   58 158 258 358 158 58   -  -   -  -
29807   59 159 259 359   -  -   -  -   -  -
29808   60 160 260 360 160 60 260 60 360 60
29809   61 161 261 361   -  -   -  -   -  -
29810   62 162 262 362 162 62   -  -   -  -
29811   63 163 263 363   -  - 263 63   -  -
29812   64 164 264 364 164 64   -  -   -  -
29813   65 165 265 365   -  -   -  - 365 65
29814   66 166 266 366 166 66 266 66   -  -
29815   67 167 267 367   -  -   -  -   -  -
29816   68 168 268 368 168 68   -  -   -  -
29817   69 169 269 369   -  - 269 69   -  -
29818   70 170 270 370 170 70   -  - 370 70
29819   71 171 271 371   -  -   -  -   -  -
29820   72 172 272 372 172 72 272 72   -  -
29821   73 173 273 373   -  -   -  -   -  -
29822   74 174 274 374 174 74   -  -   -  -
29823   75 175 275 375   -  - 275 75 375 75
29824   76 176 276 376 176 76   -  -   -  -
29825   77 177 277 377   -  -   -  -   -  -
29826   78 178 278 378 178 78 278 78   -  -
29827   79 179 279 379   -  -   -  -   -  -
29828   80 180 280 380 180 80   -  - 380 80
29829   81 181 281 381   -  - 281 81   -  -
29830   82 182 282 382 182 82   -  -   -  -
29831   83 183 283 383   -  -   -  -   -  -
29832   84 184 284 384 184 84 284 84   -  -
29833   85 185 285 385   -  -   -  - 385 85
29834   86 186 286 386 186 86   -  -   -  -
29835   87 187 287 387   -  - 287 87   -  -
29836   88 188 288 388 188 88   -  -   -  -
29837   89 189 289 389   -  -   -  -   -  -
29838   90 190 290 390 190 90 290 90 390 90
29839   91 191 291 391   -  -   -  -   -  -
29840   92 192 292 392 192 92   -  -   -  -
29841   93 193 293 393   -  - 293 93   -  -
29842   94 194 294 394 194 94   -  -   -  -
29843   95 195 295 395   -  -   -  - 395 95
29844   96   - 296 396   -  -   -  -   -  -
29845   97 197   - 397   -  -   -  -   -  -
29846   98 198 298   -   -  -   -  -   -  -
29847   99   -   -   -   -  -   -  -   -  -
29848    -   -   -   - 100  0   -  -   -  -
29849    -   -   -   -   -  -   -  - 300  0
29851 do_execsql_test joinD-1021 {
29852   SELECT t1.*, t2.*, t3.*, t4.*
29853   FROM t1 FULL JOIN t2 ON t1.b=t2.b
29854   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
29855   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
29856   WHERE t2.x>0
29857   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29858 } {
29859    2 102 202 302 102  2   -  -   -  -
29860    4 104 204 304 104  4   -  -   -  -
29861    6 106 206 306 106  6 206  6   -  -
29862    8 108 208 308 108  8   -  -   -  -
29863   10 110 210 310 110 10   -  - 310 10
29864   12 112 212 312 112 12 212 12   -  -
29865   14 114 214 314 114 14   -  -   -  -
29866   16 116 216 316 116 16   -  -   -  -
29867   18 118 218 318 118 18 218 18   -  -
29868   20 120 220 320 120 20   -  - 320 20
29869   22 122 222 322 122 22   -  -   -  -
29870   24 124 224 324 124 24 224 24   -  -
29871   26 126 226 326 126 26   -  -   -  -
29872   28 128 228 328 128 28   -  -   -  -
29873   30 130 230 330 130 30 230 30 330 30
29874   32 132 232 332 132 32   -  -   -  -
29875   34 134 234 334 134 34   -  -   -  -
29876   36 136 236 336 136 36 236 36   -  -
29877   38 138 238 338 138 38   -  -   -  -
29878   40 140 240 340 140 40   -  - 340 40
29879   42 142 242 342 142 42 242 42   -  -
29880   44 144 244 344 144 44   -  -   -  -
29881   46 146 246 346 146 46   -  -   -  -
29882   48 148 248 348 148 48 248 48   -  -
29883   50 150 250 350 150 50   -  - 350 50
29884   52 152 252 352 152 52   -  -   -  -
29885   54 154 254 354 154 54 254 54   -  -
29886   56 156 256 356 156 56   -  -   -  -
29887   58 158 258 358 158 58   -  -   -  -
29888   60 160 260 360 160 60 260 60 360 60
29889   62 162 262 362 162 62   -  -   -  -
29890   64 164 264 364 164 64   -  -   -  -
29891   66 166 266 366 166 66 266 66   -  -
29892   68 168 268 368 168 68   -  -   -  -
29893   70 170 270 370 170 70   -  - 370 70
29894   72 172 272 372 172 72 272 72   -  -
29895   74 174 274 374 174 74   -  -   -  -
29896   76 176 276 376 176 76   -  -   -  -
29897   78 178 278 378 178 78 278 78   -  -
29898   80 180 280 380 180 80   -  - 380 80
29899   82 182 282 382 182 82   -  -   -  -
29900   84 184 284 384 184 84 284 84   -  -
29901   86 186 286 386 186 86   -  -   -  -
29902   88 188 288 388 188 88   -  -   -  -
29903   90 190 290 390 190 90 290 90 390 90
29904   92 192 292 392 192 92   -  -   -  -
29905   94 194 294 394 194 94   -  -   -  -
29907 do_execsql_test joinD-1022 {
29908   SELECT t1.*, t2.*, t3.*, t4.*
29909   FROM t1 FULL JOIN t2 ON t1.b=t2.b
29910   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
29911   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
29912   WHERE (t2.x>0 OR t2.x IS NULL)
29913   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
29914 } {
29915    1 101 201 301   -  -   -  -   -  -
29916    2 102 202 302 102  2   -  -   -  -
29917    3 103 203 303   -  - 203  3   -  -
29918    4 104 204 304 104  4   -  -   -  -
29919    5 105 205 305   -  -   -  - 305  5
29920    6 106 206 306 106  6 206  6   -  -
29921    7 107 207 307   -  -   -  -   -  -
29922    8 108 208 308 108  8   -  -   -  -
29923    9 109 209 309   -  - 209  9   -  -
29924   10 110 210 310 110 10   -  - 310 10
29925   11 111 211 311   -  -   -  -   -  -
29926   12 112 212 312 112 12 212 12   -  -
29927   13 113 213 313   -  -   -  -   -  -
29928   14 114 214 314 114 14   -  -   -  -
29929   15 115 215 315   -  - 215 15 315 15
29930   16 116 216 316 116 16   -  -   -  -
29931   17 117 217 317   -  -   -  -   -  -
29932   18 118 218 318 118 18 218 18   -  -
29933   19 119 219 319   -  -   -  -   -  -
29934   20 120 220 320 120 20   -  - 320 20
29935   21 121 221 321   -  - 221 21   -  -
29936   22 122 222 322 122 22   -  -   -  -
29937   23 123 223 323   -  -   -  -   -  -
29938   24 124 224 324 124 24 224 24   -  -
29939   25 125 225 325   -  -   -  - 325 25
29940   26 126 226 326 126 26   -  -   -  -
29941   27 127 227 327   -  - 227 27   -  -
29942   28 128 228 328 128 28   -  -   -  -
29943   29 129 229 329   -  -   -  -   -  -
29944   30 130 230 330 130 30 230 30 330 30
29945   31 131 231 331   -  -   -  -   -  -
29946   32 132 232 332 132 32   -  -   -  -
29947   33 133 233 333   -  - 233 33   -  -
29948   34 134 234 334 134 34   -  -   -  -
29949   35 135 235 335   -  -   -  - 335 35
29950   36 136 236 336 136 36 236 36   -  -
29951   37 137 237 337   -  -   -  -   -  -
29952   38 138 238 338 138 38   -  -   -  -
29953   39 139 239 339   -  - 239 39   -  -
29954   40 140 240 340 140 40   -  - 340 40
29955   41 141 241 341   -  -   -  -   -  -
29956   42 142 242 342 142 42 242 42   -  -
29957   43 143 243 343   -  -   -  -   -  -
29958   44 144 244 344 144 44   -  -   -  -
29959   45 145 245 345   -  - 245 45 345 45
29960   46 146 246 346 146 46   -  -   -  -
29961   47 147 247 347   -  -   -  -   -  -
29962   48 148 248 348 148 48 248 48   -  -
29963   49 149 249 349   -  -   -  -   -  -
29964   50 150 250 350 150 50   -  - 350 50
29965   51 151 251 351   -  - 251 51   -  -
29966   52 152 252 352 152 52   -  -   -  -
29967   53 153 253 353   -  -   -  -   -  -
29968   54 154 254 354 154 54 254 54   -  -
29969   55 155 255 355   -  -   -  - 355 55
29970   56 156 256 356 156 56   -  -   -  -
29971   57 157 257 357   -  - 257 57   -  -
29972   58 158 258 358 158 58   -  -   -  -
29973   59 159 259 359   -  -   -  -   -  -
29974   60 160 260 360 160 60 260 60 360 60
29975   61 161 261 361   -  -   -  -   -  -
29976   62 162 262 362 162 62   -  -   -  -
29977   63 163 263 363   -  - 263 63   -  -
29978   64 164 264 364 164 64   -  -   -  -
29979   65 165 265 365   -  -   -  - 365 65
29980   66 166 266 366 166 66 266 66   -  -
29981   67 167 267 367   -  -   -  -   -  -
29982   68 168 268 368 168 68   -  -   -  -
29983   69 169 269 369   -  - 269 69   -  -
29984   70 170 270 370 170 70   -  - 370 70
29985   71 171 271 371   -  -   -  -   -  -
29986   72 172 272 372 172 72 272 72   -  -
29987   73 173 273 373   -  -   -  -   -  -
29988   74 174 274 374 174 74   -  -   -  -
29989   75 175 275 375   -  - 275 75 375 75
29990   76 176 276 376 176 76   -  -   -  -
29991   77 177 277 377   -  -   -  -   -  -
29992   78 178 278 378 178 78 278 78   -  -
29993   79 179 279 379   -  -   -  -   -  -
29994   80 180 280 380 180 80   -  - 380 80
29995   81 181 281 381   -  - 281 81   -  -
29996   82 182 282 382 182 82   -  -   -  -
29997   83 183 283 383   -  -   -  -   -  -
29998   84 184 284 384 184 84 284 84   -  -
29999   85 185 285 385   -  -   -  - 385 85
30000   86 186 286 386 186 86   -  -   -  -
30001   87 187 287 387   -  - 287 87   -  -
30002   88 188 288 388 188 88   -  -   -  -
30003   89 189 289 389   -  -   -  -   -  -
30004   90 190 290 390 190 90 290 90 390 90
30005   91 191 291 391   -  -   -  -   -  -
30006   92 192 292 392 192 92   -  -   -  -
30007   93 193 293 393   -  - 293 93   -  -
30008   94 194 294 394 194 94   -  -   -  -
30009   95 195 295 395   -  -   -  - 395 95
30010   96   - 296 396   -  -   -  -   -  -
30011   97 197   - 397   -  -   -  -   -  -
30012   98 198 298   -   -  -   -  -   -  -
30013   99   -   -   -   -  -   -  -   -  -
30014    -   -   -   -   -  -   -  - 300  0
30016 do_execsql_test joinD-1023 {
30017   SELECT t1.*, t2.*, t3.*, t4.*
30018   FROM t1 FULL JOIN t2 ON true
30019   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
30020   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
30021   WHERE t1.b=t2.b AND t2.x>0
30022   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30023 } {
30024    2 102 202 302 102  2   -  -   -  -
30025    4 104 204 304 104  4   -  -   -  -
30026    6 106 206 306 106  6 206  6   -  -
30027    8 108 208 308 108  8   -  -   -  -
30028   10 110 210 310 110 10   -  - 310 10
30029   12 112 212 312 112 12 212 12   -  -
30030   14 114 214 314 114 14   -  -   -  -
30031   16 116 216 316 116 16   -  -   -  -
30032   18 118 218 318 118 18 218 18   -  -
30033   20 120 220 320 120 20   -  - 320 20
30034   22 122 222 322 122 22   -  -   -  -
30035   24 124 224 324 124 24 224 24   -  -
30036   26 126 226 326 126 26   -  -   -  -
30037   28 128 228 328 128 28   -  -   -  -
30038   30 130 230 330 130 30 230 30 330 30
30039   32 132 232 332 132 32   -  -   -  -
30040   34 134 234 334 134 34   -  -   -  -
30041   36 136 236 336 136 36 236 36   -  -
30042   38 138 238 338 138 38   -  -   -  -
30043   40 140 240 340 140 40   -  - 340 40
30044   42 142 242 342 142 42 242 42   -  -
30045   44 144 244 344 144 44   -  -   -  -
30046   46 146 246 346 146 46   -  -   -  -
30047   48 148 248 348 148 48 248 48   -  -
30048   50 150 250 350 150 50   -  - 350 50
30049   52 152 252 352 152 52   -  -   -  -
30050   54 154 254 354 154 54 254 54   -  -
30051   56 156 256 356 156 56   -  -   -  -
30052   58 158 258 358 158 58   -  -   -  -
30053   60 160 260 360 160 60 260 60 360 60
30054   62 162 262 362 162 62   -  -   -  -
30055   64 164 264 364 164 64   -  -   -  -
30056   66 166 266 366 166 66 266 66   -  -
30057   68 168 268 368 168 68   -  -   -  -
30058   70 170 270 370 170 70   -  - 370 70
30059   72 172 272 372 172 72 272 72   -  -
30060   74 174 274 374 174 74   -  -   -  -
30061   76 176 276 376 176 76   -  -   -  -
30062   78 178 278 378 178 78 278 78   -  -
30063   80 180 280 380 180 80   -  - 380 80
30064   82 182 282 382 182 82   -  -   -  -
30065   84 184 284 384 184 84 284 84   -  -
30066   86 186 286 386 186 86   -  -   -  -
30067   88 188 288 388 188 88   -  -   -  -
30068   90 190 290 390 190 90 290 90 390 90
30069   92 192 292 392 192 92   -  -   -  -
30070   94 194 294 394 194 94   -  -   -  -
30072 do_execsql_test joinD-1024 {
30073   SELECT t1.*, t2.*, t3.*, t4.*
30074   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
30075   LEFT JOIN t3 ON t1.c=t3.c
30076   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
30077   WHERE t3.y>0
30078   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30079 } {
30080    3 103 203 303   -  - 203  3   -  -
30081    6 106 206 306 106  6 206  6   -  -
30082    9 109 209 309   -  - 209  9   -  -
30083   12 112 212 312 112 12 212 12   -  -
30084   15 115 215 315   -  - 215 15 315 15
30085   18 118 218 318 118 18 218 18   -  -
30086   21 121 221 321   -  - 221 21   -  -
30087   24 124 224 324 124 24 224 24   -  -
30088   27 127 227 327   -  - 227 27   -  -
30089   30 130 230 330 130 30 230 30 330 30
30090   33 133 233 333   -  - 233 33   -  -
30091   36 136 236 336 136 36 236 36   -  -
30092   39 139 239 339   -  - 239 39   -  -
30093   42 142 242 342 142 42 242 42   -  -
30094   45 145 245 345   -  - 245 45 345 45
30095   48 148 248 348 148 48 248 48   -  -
30096   51 151 251 351   -  - 251 51   -  -
30097   54 154 254 354 154 54 254 54   -  -
30098   57 157 257 357   -  - 257 57   -  -
30099   60 160 260 360 160 60 260 60 360 60
30100   63 163 263 363   -  - 263 63   -  -
30101   66 166 266 366 166 66 266 66   -  -
30102   69 169 269 369   -  - 269 69   -  -
30103   72 172 272 372 172 72 272 72   -  -
30104   75 175 275 375   -  - 275 75 375 75
30105   78 178 278 378 178 78 278 78   -  -
30106   81 181 281 381   -  - 281 81   -  -
30107   84 184 284 384 184 84 284 84   -  -
30108   87 187 287 387   -  - 287 87   -  -
30109   90 190 290 390 190 90 290 90 390 90
30110   93 193 293 393   -  - 293 93   -  -
30112 do_execsql_test joinD-1025 {
30113   SELECT t1.*, t2.*, t3.*, t4.*
30114   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
30115   LEFT JOIN t3 ON t1.c=t3.c
30116   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
30117   WHERE t3.y>0 OR t3.y IS NULL
30118   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30119 } {
30120    1 101 201 301   -  -   -  -   -  -
30121    2 102 202 302 102  2   -  -   -  -
30122    3 103 203 303   -  - 203  3   -  -
30123    4 104 204 304 104  4   -  -   -  -
30124    5 105 205 305   -  -   -  - 305  5
30125    6 106 206 306 106  6 206  6   -  -
30126    7 107 207 307   -  -   -  -   -  -
30127    8 108 208 308 108  8   -  -   -  -
30128    9 109 209 309   -  - 209  9   -  -
30129   10 110 210 310 110 10   -  - 310 10
30130   11 111 211 311   -  -   -  -   -  -
30131   12 112 212 312 112 12 212 12   -  -
30132   13 113 213 313   -  -   -  -   -  -
30133   14 114 214 314 114 14   -  -   -  -
30134   15 115 215 315   -  - 215 15 315 15
30135   16 116 216 316 116 16   -  -   -  -
30136   17 117 217 317   -  -   -  -   -  -
30137   18 118 218 318 118 18 218 18   -  -
30138   19 119 219 319   -  -   -  -   -  -
30139   20 120 220 320 120 20   -  - 320 20
30140   21 121 221 321   -  - 221 21   -  -
30141   22 122 222 322 122 22   -  -   -  -
30142   23 123 223 323   -  -   -  -   -  -
30143   24 124 224 324 124 24 224 24   -  -
30144   25 125 225 325   -  -   -  - 325 25
30145   26 126 226 326 126 26   -  -   -  -
30146   27 127 227 327   -  - 227 27   -  -
30147   28 128 228 328 128 28   -  -   -  -
30148   29 129 229 329   -  -   -  -   -  -
30149   30 130 230 330 130 30 230 30 330 30
30150   31 131 231 331   -  -   -  -   -  -
30151   32 132 232 332 132 32   -  -   -  -
30152   33 133 233 333   -  - 233 33   -  -
30153   34 134 234 334 134 34   -  -   -  -
30154   35 135 235 335   -  -   -  - 335 35
30155   36 136 236 336 136 36 236 36   -  -
30156   37 137 237 337   -  -   -  -   -  -
30157   38 138 238 338 138 38   -  -   -  -
30158   39 139 239 339   -  - 239 39   -  -
30159   40 140 240 340 140 40   -  - 340 40
30160   41 141 241 341   -  -   -  -   -  -
30161   42 142 242 342 142 42 242 42   -  -
30162   43 143 243 343   -  -   -  -   -  -
30163   44 144 244 344 144 44   -  -   -  -
30164   45 145 245 345   -  - 245 45 345 45
30165   46 146 246 346 146 46   -  -   -  -
30166   47 147 247 347   -  -   -  -   -  -
30167   48 148 248 348 148 48 248 48   -  -
30168   49 149 249 349   -  -   -  -   -  -
30169   50 150 250 350 150 50   -  - 350 50
30170   51 151 251 351   -  - 251 51   -  -
30171   52 152 252 352 152 52   -  -   -  -
30172   53 153 253 353   -  -   -  -   -  -
30173   54 154 254 354 154 54 254 54   -  -
30174   55 155 255 355   -  -   -  - 355 55
30175   56 156 256 356 156 56   -  -   -  -
30176   57 157 257 357   -  - 257 57   -  -
30177   58 158 258 358 158 58   -  -   -  -
30178   59 159 259 359   -  -   -  -   -  -
30179   60 160 260 360 160 60 260 60 360 60
30180   61 161 261 361   -  -   -  -   -  -
30181   62 162 262 362 162 62   -  -   -  -
30182   63 163 263 363   -  - 263 63   -  -
30183   64 164 264 364 164 64   -  -   -  -
30184   65 165 265 365   -  -   -  - 365 65
30185   66 166 266 366 166 66 266 66   -  -
30186   67 167 267 367   -  -   -  -   -  -
30187   68 168 268 368 168 68   -  -   -  -
30188   69 169 269 369   -  - 269 69   -  -
30189   70 170 270 370 170 70   -  - 370 70
30190   71 171 271 371   -  -   -  -   -  -
30191   72 172 272 372 172 72 272 72   -  -
30192   73 173 273 373   -  -   -  -   -  -
30193   74 174 274 374 174 74   -  -   -  -
30194   75 175 275 375   -  - 275 75 375 75
30195   76 176 276 376 176 76   -  -   -  -
30196   77 177 277 377   -  -   -  -   -  -
30197   78 178 278 378 178 78 278 78   -  -
30198   79 179 279 379   -  -   -  -   -  -
30199   80 180 280 380 180 80   -  - 380 80
30200   81 181 281 381   -  - 281 81   -  -
30201   82 182 282 382 182 82   -  -   -  -
30202   83 183 283 383   -  -   -  -   -  -
30203   84 184 284 384 184 84 284 84   -  -
30204   85 185 285 385   -  -   -  - 385 85
30205   86 186 286 386 186 86   -  -   -  -
30206   87 187 287 387   -  - 287 87   -  -
30207   88 188 288 388 188 88   -  -   -  -
30208   89 189 289 389   -  -   -  -   -  -
30209   90 190 290 390 190 90 290 90 390 90
30210   91 191 291 391   -  -   -  -   -  -
30211   92 192 292 392 192 92   -  -   -  -
30212   93 193 293 393   -  - 293 93   -  -
30213   94 194 294 394 194 94   -  -   -  -
30214   95 195 295 395   -  -   -  - 395 95
30215   96   - 296 396   -  -   -  -   -  -
30216   97 197   - 397   -  -   -  -   -  -
30217   98 198 298   -   -  -   -  -   -  -
30218   99   -   -   -   -  -   -  -   -  -
30219    -   -   -   - 100  0   -  -   -  -
30220    -   -   -   -   -  -   -  - 300  0
30222 do_execsql_test joinD-1026 {
30223   SELECT t1.*, t2.*, t3.*, t4.*
30224   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
30225   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
30226   FULL JOIN t4 ON t1.d=t4.d
30227   WHERE t4.z>0
30228   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30229 } {
30230    5 105 205 305   -  -   -  - 305  5
30231   10 110 210 310 110 10   -  - 310 10
30232   15 115 215 315   -  - 215 15 315 15
30233   20 120 220 320 120 20   -  - 320 20
30234   25 125 225 325   -  -   -  - 325 25
30235   30 130 230 330 130 30 230 30 330 30
30236   35 135 235 335   -  -   -  - 335 35
30237   40 140 240 340 140 40   -  - 340 40
30238   45 145 245 345   -  - 245 45 345 45
30239   50 150 250 350 150 50   -  - 350 50
30240   55 155 255 355   -  -   -  - 355 55
30241   60 160 260 360 160 60 260 60 360 60
30242   65 165 265 365   -  -   -  - 365 65
30243   70 170 270 370 170 70   -  - 370 70
30244   75 175 275 375   -  - 275 75 375 75
30245   80 180 280 380 180 80   -  - 380 80
30246   85 185 285 385   -  -   -  - 385 85
30247   90 190 290 390 190 90 290 90 390 90
30248   95 195 295 395   -  -   -  - 395 95
30250 do_execsql_test joinD-1027 {
30251   SELECT t1.*, t2.*, t3.*, t4.*
30252   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
30253   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
30254   FULL JOIN t4 ON t1.d=t4.d
30255   WHERE t4.z IS NULL OR t4.z>0
30256   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30257 } {
30258    1 101 201 301   -  -   -  -   -  -
30259    2 102 202 302 102  2   -  -   -  -
30260    3 103 203 303   -  - 203  3   -  -
30261    4 104 204 304 104  4   -  -   -  -
30262    5 105 205 305   -  -   -  - 305  5
30263    6 106 206 306 106  6 206  6   -  -
30264    7 107 207 307   -  -   -  -   -  -
30265    8 108 208 308 108  8   -  -   -  -
30266    9 109 209 309   -  - 209  9   -  -
30267   10 110 210 310 110 10   -  - 310 10
30268   11 111 211 311   -  -   -  -   -  -
30269   12 112 212 312 112 12 212 12   -  -
30270   13 113 213 313   -  -   -  -   -  -
30271   14 114 214 314 114 14   -  -   -  -
30272   15 115 215 315   -  - 215 15 315 15
30273   16 116 216 316 116 16   -  -   -  -
30274   17 117 217 317   -  -   -  -   -  -
30275   18 118 218 318 118 18 218 18   -  -
30276   19 119 219 319   -  -   -  -   -  -
30277   20 120 220 320 120 20   -  - 320 20
30278   21 121 221 321   -  - 221 21   -  -
30279   22 122 222 322 122 22   -  -   -  -
30280   23 123 223 323   -  -   -  -   -  -
30281   24 124 224 324 124 24 224 24   -  -
30282   25 125 225 325   -  -   -  - 325 25
30283   26 126 226 326 126 26   -  -   -  -
30284   27 127 227 327   -  - 227 27   -  -
30285   28 128 228 328 128 28   -  -   -  -
30286   29 129 229 329   -  -   -  -   -  -
30287   30 130 230 330 130 30 230 30 330 30
30288   31 131 231 331   -  -   -  -   -  -
30289   32 132 232 332 132 32   -  -   -  -
30290   33 133 233 333   -  - 233 33   -  -
30291   34 134 234 334 134 34   -  -   -  -
30292   35 135 235 335   -  -   -  - 335 35
30293   36 136 236 336 136 36 236 36   -  -
30294   37 137 237 337   -  -   -  -   -  -
30295   38 138 238 338 138 38   -  -   -  -
30296   39 139 239 339   -  - 239 39   -  -
30297   40 140 240 340 140 40   -  - 340 40
30298   41 141 241 341   -  -   -  -   -  -
30299   42 142 242 342 142 42 242 42   -  -
30300   43 143 243 343   -  -   -  -   -  -
30301   44 144 244 344 144 44   -  -   -  -
30302   45 145 245 345   -  - 245 45 345 45
30303   46 146 246 346 146 46   -  -   -  -
30304   47 147 247 347   -  -   -  -   -  -
30305   48 148 248 348 148 48 248 48   -  -
30306   49 149 249 349   -  -   -  -   -  -
30307   50 150 250 350 150 50   -  - 350 50
30308   51 151 251 351   -  - 251 51   -  -
30309   52 152 252 352 152 52   -  -   -  -
30310   53 153 253 353   -  -   -  -   -  -
30311   54 154 254 354 154 54 254 54   -  -
30312   55 155 255 355   -  -   -  - 355 55
30313   56 156 256 356 156 56   -  -   -  -
30314   57 157 257 357   -  - 257 57   -  -
30315   58 158 258 358 158 58   -  -   -  -
30316   59 159 259 359   -  -   -  -   -  -
30317   60 160 260 360 160 60 260 60 360 60
30318   61 161 261 361   -  -   -  -   -  -
30319   62 162 262 362 162 62   -  -   -  -
30320   63 163 263 363   -  - 263 63   -  -
30321   64 164 264 364 164 64   -  -   -  -
30322   65 165 265 365   -  -   -  - 365 65
30323   66 166 266 366 166 66 266 66   -  -
30324   67 167 267 367   -  -   -  -   -  -
30325   68 168 268 368 168 68   -  -   -  -
30326   69 169 269 369   -  - 269 69   -  -
30327   70 170 270 370 170 70   -  - 370 70
30328   71 171 271 371   -  -   -  -   -  -
30329   72 172 272 372 172 72 272 72   -  -
30330   73 173 273 373   -  -   -  -   -  -
30331   74 174 274 374 174 74   -  -   -  -
30332   75 175 275 375   -  - 275 75 375 75
30333   76 176 276 376 176 76   -  -   -  -
30334   77 177 277 377   -  -   -  -   -  -
30335   78 178 278 378 178 78 278 78   -  -
30336   79 179 279 379   -  -   -  -   -  -
30337   80 180 280 380 180 80   -  - 380 80
30338   81 181 281 381   -  - 281 81   -  -
30339   82 182 282 382 182 82   -  -   -  -
30340   83 183 283 383   -  -   -  -   -  -
30341   84 184 284 384 184 84 284 84   -  -
30342   85 185 285 385   -  -   -  - 385 85
30343   86 186 286 386 186 86   -  -   -  -
30344   87 187 287 387   -  - 287 87   -  -
30345   88 188 288 388 188 88   -  -   -  -
30346   89 189 289 389   -  -   -  -   -  -
30347   90 190 290 390 190 90 290 90 390 90
30348   91 191 291 391   -  -   -  -   -  -
30349   92 192 292 392 192 92   -  -   -  -
30350   93 193 293 393   -  - 293 93   -  -
30351   94 194 294 394 194 94   -  -   -  -
30352   95 195 295 395   -  -   -  - 395 95
30353   96   - 296 396   -  -   -  -   -  -
30354   97 197   - 397   -  -   -  -   -  -
30355   98 198 298   -   -  -   -  -   -  -
30356   99   -   -   -   -  -   -  -   -  -
30357    -   -   -   - 100  0   -  -   -  -
30359 do_execsql_test joinD-1028 {
30360   SELECT t1.*, t2.*, t3.*, t4.*
30361   FROM t1 FULL JOIN t2 ON t1.b=t2.b
30362   LEFT JOIN t3 ON t1.c=t3.c AND t3.y>0
30363   FULL JOIN t4 ON t1.d=t4.d
30364   WHERE t2.x>0 AND t4.z>0
30365   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30366 } {
30367   10 110 210 310 110 10   -  - 310 10
30368   20 120 220 320 120 20   -  - 320 20
30369   30 130 230 330 130 30 230 30 330 30
30370   40 140 240 340 140 40   -  - 340 40
30371   50 150 250 350 150 50   -  - 350 50
30372   60 160 260 360 160 60 260 60 360 60
30373   70 170 270 370 170 70   -  - 370 70
30374   80 180 280 380 180 80   -  - 380 80
30375   90 190 290 390 190 90 290 90 390 90
30377 do_execsql_test joinD-1029 {
30378   SELECT t1.*, t2.*, t3.*, t4.*
30379   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
30380   LEFT JOIN t3 ON t1.c=t3.c
30381   FULL JOIN t4 ON t1.d=t4.d
30382   WHERE t4.z>0 AND t3.y>0
30383   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30384 } {
30385   15 115 215 315   -  - 215 15 315 15
30386   30 130 230 330 130 30 230 30 330 30
30387   45 145 245 345   -  - 245 45 345 45
30388   60 160 260 360 160 60 260 60 360 60
30389   75 175 275 375   -  - 275 75 375 75
30390   90 190 290 390 190 90 290 90 390 90
30392 do_execsql_test joinD-1030 {
30393   SELECT t1.*, t2.*, t3.*, t4.*
30394   FROM t1 FULL JOIN t2 ON t1.b=t2.b
30395   LEFT JOIN t3 ON t1.c=t3.c
30396   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
30397   WHERE t2.x>0 AND t3.y>0
30398   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30399 } {
30400    6 106 206 306 106  6 206  6   -  -
30401   12 112 212 312 112 12 212 12   -  -
30402   18 118 218 318 118 18 218 18   -  -
30403   24 124 224 324 124 24 224 24   -  -
30404   30 130 230 330 130 30 230 30 330 30
30405   36 136 236 336 136 36 236 36   -  -
30406   42 142 242 342 142 42 242 42   -  -
30407   48 148 248 348 148 48 248 48   -  -
30408   54 154 254 354 154 54 254 54   -  -
30409   60 160 260 360 160 60 260 60 360 60
30410   66 166 266 366 166 66 266 66   -  -
30411   72 172 272 372 172 72 272 72   -  -
30412   78 178 278 378 178 78 278 78   -  -
30413   84 184 284 384 184 84 284 84   -  -
30414   90 190 290 390 190 90 290 90 390 90
30416 do_execsql_test joinD-1031 {
30417   SELECT t1.*, t2.*, t3.*, t4.*
30418   FROM t1 FULL JOIN t2 ON t1.b=t2.b
30419   LEFT JOIN t3 ON t1.c=t3.c
30420   FULL JOIN t4 ON t1.d=t4.d
30421   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
30422   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30423 } {
30424   30 130 230 330 130 30 230 30 330 30
30425   60 160 260 360 160 60 260 60 360 60
30426   90 190 290 390 190 90 290 90 390 90
30428 do_execsql_test joinD-1032 {
30429   SELECT t1.*, t2.*, t3.*, t4.*
30430   FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
30431   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
30432   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
30433   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30434 } {
30435    0 100 200 300   -  -   -  -   -  -
30436    1 101 201 301   -  -   -  -   -  -
30437    2 102 202 302 102  2   -  -   -  -
30438    3 103 203 303   -  - 203  3   -  -
30439    4 104 204 304 104  4   -  -   -  -
30440    5 105 205 305   -  -   -  - 305  5
30441    6 106 206 306 106  6 206  6   -  -
30442    7 107 207 307   -  -   -  -   -  -
30443    8 108 208 308 108  8   -  -   -  -
30444    9 109 209 309   -  - 209  9   -  -
30445   10 110 210 310 110 10   -  - 310 10
30446   11 111 211 311   -  -   -  -   -  -
30447   12 112 212 312 112 12 212 12   -  -
30448   13 113 213 313   -  -   -  -   -  -
30449   14 114 214 314 114 14   -  -   -  -
30450   15 115 215 315   -  - 215 15 315 15
30451   16 116 216 316 116 16   -  -   -  -
30452   17 117 217 317   -  -   -  -   -  -
30453   18 118 218 318 118 18 218 18   -  -
30454   19 119 219 319   -  -   -  -   -  -
30455   20 120 220 320 120 20   -  - 320 20
30456   21 121 221 321   -  - 221 21   -  -
30457   22 122 222 322 122 22   -  -   -  -
30458   23 123 223 323   -  -   -  -   -  -
30459   24 124 224 324 124 24 224 24   -  -
30460   25 125 225 325   -  -   -  - 325 25
30461   26 126 226 326 126 26   -  -   -  -
30462   27 127 227 327   -  - 227 27   -  -
30463   28 128 228 328 128 28   -  -   -  -
30464   29 129 229 329   -  -   -  -   -  -
30465   30 130 230 330 130 30 230 30 330 30
30466   31 131 231 331   -  -   -  -   -  -
30467   32 132 232 332 132 32   -  -   -  -
30468   33 133 233 333   -  - 233 33   -  -
30469   34 134 234 334 134 34   -  -   -  -
30470   35 135 235 335   -  -   -  - 335 35
30471   36 136 236 336 136 36 236 36   -  -
30472   37 137 237 337   -  -   -  -   -  -
30473   38 138 238 338 138 38   -  -   -  -
30474   39 139 239 339   -  - 239 39   -  -
30475   40 140 240 340 140 40   -  - 340 40
30476   41 141 241 341   -  -   -  -   -  -
30477   42 142 242 342 142 42 242 42   -  -
30478   43 143 243 343   -  -   -  -   -  -
30479   44 144 244 344 144 44   -  -   -  -
30480   45 145 245 345   -  - 245 45 345 45
30481   46 146 246 346 146 46   -  -   -  -
30482   47 147 247 347   -  -   -  -   -  -
30483   48 148 248 348 148 48 248 48   -  -
30484   49 149 249 349   -  -   -  -   -  -
30485   50 150 250 350 150 50   -  - 350 50
30486   51 151 251 351   -  - 251 51   -  -
30487   52 152 252 352 152 52   -  -   -  -
30488   53 153 253 353   -  -   -  -   -  -
30489   54 154 254 354 154 54 254 54   -  -
30490   55 155 255 355   -  -   -  - 355 55
30491   56 156 256 356 156 56   -  -   -  -
30492   57 157 257 357   -  - 257 57   -  -
30493   58 158 258 358 158 58   -  -   -  -
30494   59 159 259 359   -  -   -  -   -  -
30495   60 160 260 360 160 60 260 60 360 60
30496   61 161 261 361   -  -   -  -   -  -
30497   62 162 262 362 162 62   -  -   -  -
30498   63 163 263 363   -  - 263 63   -  -
30499   64 164 264 364 164 64   -  -   -  -
30500   65 165 265 365   -  -   -  - 365 65
30501   66 166 266 366 166 66 266 66   -  -
30502   67 167 267 367   -  -   -  -   -  -
30503   68 168 268 368 168 68   -  -   -  -
30504   69 169 269 369   -  - 269 69   -  -
30505   70 170 270 370 170 70   -  - 370 70
30506   71 171 271 371   -  -   -  -   -  -
30507   72 172 272 372 172 72 272 72   -  -
30508   73 173 273 373   -  -   -  -   -  -
30509   74 174 274 374 174 74   -  -   -  -
30510   75 175 275 375   -  - 275 75 375 75
30511   76 176 276 376 176 76   -  -   -  -
30512   77 177 277 377   -  -   -  -   -  -
30513   78 178 278 378 178 78 278 78   -  -
30514   79 179 279 379   -  -   -  -   -  -
30515   80 180 280 380 180 80   -  - 380 80
30516   81 181 281 381   -  - 281 81   -  -
30517   82 182 282 382 182 82   -  -   -  -
30518   83 183 283 383   -  -   -  -   -  -
30519   84 184 284 384 184 84 284 84   -  -
30520   85 185 285 385   -  -   -  - 385 85
30521   86 186 286 386 186 86   -  -   -  -
30522   87 187 287 387   -  - 287 87   -  -
30523   88 188 288 388 188 88   -  -   -  -
30524   89 189 289 389   -  -   -  -   -  -
30525   90 190 290 390 190 90 290 90 390 90
30526   91 191 291 391   -  -   -  -   -  -
30527   92 192 292 392 192 92   -  -   -  -
30528   93 193 293 393   -  - 293 93   -  -
30529   94 194 294 394 194 94   -  -   -  -
30530   95 195 295 395   -  -   -  - 395 95
30531   96   - 296 396   -  -   -  -   -  -
30532   97 197   - 397   -  -   -  -   -  -
30533   98 198 298   -   -  -   -  -   -  -
30534   99   -   -   -   -  -   -  -   -  -
30535    -   -   -   - 100  0   -  -   -  -
30536    -   -   -   -   -  -   -  - 300  0
30538 do_execsql_test joinD-1033 {
30539   SELECT t1.*, t2.*, t3.*, t4.*
30540   FROM t1 FULL JOIN t2 ON t2.x>0
30541   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
30542   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
30543   WHERE t1.b = t2.b
30544   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30545 } {
30546    2 102 202 302 102  2   -  -   -  -
30547    4 104 204 304 104  4   -  -   -  -
30548    6 106 206 306 106  6 206  6   -  -
30549    8 108 208 308 108  8   -  -   -  -
30550   10 110 210 310 110 10   -  - 310 10
30551   12 112 212 312 112 12 212 12   -  -
30552   14 114 214 314 114 14   -  -   -  -
30553   16 116 216 316 116 16   -  -   -  -
30554   18 118 218 318 118 18 218 18   -  -
30555   20 120 220 320 120 20   -  - 320 20
30556   22 122 222 322 122 22   -  -   -  -
30557   24 124 224 324 124 24 224 24   -  -
30558   26 126 226 326 126 26   -  -   -  -
30559   28 128 228 328 128 28   -  -   -  -
30560   30 130 230 330 130 30 230 30 330 30
30561   32 132 232 332 132 32   -  -   -  -
30562   34 134 234 334 134 34   -  -   -  -
30563   36 136 236 336 136 36 236 36   -  -
30564   38 138 238 338 138 38   -  -   -  -
30565   40 140 240 340 140 40   -  - 340 40
30566   42 142 242 342 142 42 242 42   -  -
30567   44 144 244 344 144 44   -  -   -  -
30568   46 146 246 346 146 46   -  -   -  -
30569   48 148 248 348 148 48 248 48   -  -
30570   50 150 250 350 150 50   -  - 350 50
30571   52 152 252 352 152 52   -  -   -  -
30572   54 154 254 354 154 54 254 54   -  -
30573   56 156 256 356 156 56   -  -   -  -
30574   58 158 258 358 158 58   -  -   -  -
30575   60 160 260 360 160 60 260 60 360 60
30576   62 162 262 362 162 62   -  -   -  -
30577   64 164 264 364 164 64   -  -   -  -
30578   66 166 266 366 166 66 266 66   -  -
30579   68 168 268 368 168 68   -  -   -  -
30580   70 170 270 370 170 70   -  - 370 70
30581   72 172 272 372 172 72 272 72   -  -
30582   74 174 274 374 174 74   -  -   -  -
30583   76 176 276 376 176 76   -  -   -  -
30584   78 178 278 378 178 78 278 78   -  -
30585   80 180 280 380 180 80   -  - 380 80
30586   82 182 282 382 182 82   -  -   -  -
30587   84 184 284 384 184 84 284 84   -  -
30588   86 186 286 386 186 86   -  -   -  -
30589   88 188 288 388 188 88   -  -   -  -
30590   90 190 290 390 190 90 290 90 390 90
30591   92 192 292 392 192 92   -  -   -  -
30592   94 194 294 394 194 94   -  -   -  -
30594 do_execsql_test joinD-1034 {
30595   SELECT t1.*, t2.*, t3.*, t4.*
30596   FROM t1 FULL JOIN t2 ON t2.x>0
30597   LEFT JOIN t3 ON t3.y>0
30598   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
30599   WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
30600   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30601 } {
30602    6 106 206 306 106  6 206  6   -  -
30603   12 112 212 312 112 12 212 12   -  -
30604   18 118 218 318 118 18 218 18   -  -
30605   24 124 224 324 124 24 224 24   -  -
30606   30 130 230 330 130 30 230 30 330 30
30607   36 136 236 336 136 36 236 36   -  -
30608   42 142 242 342 142 42 242 42   -  -
30609   48 148 248 348 148 48 248 48   -  -
30610   54 154 254 354 154 54 254 54   -  -
30611   60 160 260 360 160 60 260 60 360 60
30612   66 166 266 366 166 66 266 66   -  -
30613   72 172 272 372 172 72 272 72   -  -
30614   78 178 278 378 178 78 278 78   -  -
30615   84 184 284 384 184 84 284 84   -  -
30616   90 190 290 390 190 90 290 90 390 90
30618 do_execsql_test joinD-1035 {
30619   SELECT t1.*, t2.*, t3.*, t4.*
30620   FROM t1 FULL JOIN t2 ON t2.x>0
30621   LEFT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
30622   FULL JOIN t4 ON t4.z>0
30623   WHERE t1.b = t2.b AND t1.d = t4.d
30624   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30625 } {
30626   10 110 210 310 110 10   -  - 310 10
30627   20 120 220 320 120 20   -  - 320 20
30628   30 130 230 330 130 30 230 30 330 30
30629   40 140 240 340 140 40   -  - 340 40
30630   50 150 250 350 150 50   -  - 350 50
30631   60 160 260 360 160 60 260 60 360 60
30632   70 170 270 370 170 70   -  - 370 70
30633   80 180 280 380 180 80   -  - 380 80
30634   90 190 290 390 190 90 290 90 390 90
30636 do_execsql_test joinD-1036 {
30637   SELECT t1.*, t2.*, t3.*, t4.*
30638   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
30639   LEFT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
30640   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
30641   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30642 } {
30643    0 100 200 300   -  -   -  -   -  -
30644    1 101 201 301   -  -   -  -   -  -
30645    2 102 202 302 102  2   -  -   -  -
30646    3 103 203 303   -  - 203  3   -  -
30647    4 104 204 304 104  4   -  -   -  -
30648    5 105 205 305   -  -   -  - 305  5
30649    6 106 206 306 106  6 206  6   -  -
30650    7 107 207 307   -  -   -  -   -  -
30651    8 108 208 308 108  8   -  -   -  -
30652    9 109 209 309   -  - 209  9   -  -
30653   10 110 210 310 110 10   -  - 310 10
30654   11 111 211 311   -  -   -  -   -  -
30655   12 112 212 312 112 12 212 12   -  -
30656   13 113 213 313   -  -   -  -   -  -
30657   14 114 214 314 114 14   -  -   -  -
30658   15 115 215 315   -  - 215 15 315 15
30659   16 116 216 316 116 16   -  -   -  -
30660   17 117 217 317   -  -   -  -   -  -
30661   18 118 218 318 118 18 218 18   -  -
30662   19 119 219 319   -  -   -  -   -  -
30663   20 120 220 320 120 20   -  - 320 20
30664   21 121 221 321   -  - 221 21   -  -
30665   22 122 222 322 122 22   -  -   -  -
30666   23 123 223 323   -  -   -  -   -  -
30667   24 124 224 324 124 24 224 24   -  -
30668   25 125 225 325   -  -   -  - 325 25
30669   26 126 226 326 126 26   -  -   -  -
30670   27 127 227 327   -  - 227 27   -  -
30671   28 128 228 328 128 28   -  -   -  -
30672   29 129 229 329   -  -   -  -   -  -
30673   30 130 230 330 130 30 230 30 330 30
30674   31 131 231 331   -  -   -  -   -  -
30675   32 132 232 332 132 32   -  -   -  -
30676   33 133 233 333   -  - 233 33   -  -
30677   34 134 234 334 134 34   -  -   -  -
30678   35 135 235 335   -  -   -  - 335 35
30679   36 136 236 336 136 36 236 36   -  -
30680   37 137 237 337   -  -   -  -   -  -
30681   38 138 238 338 138 38   -  -   -  -
30682   39 139 239 339   -  - 239 39   -  -
30683   40 140 240 340 140 40   -  - 340 40
30684   41 141 241 341   -  -   -  -   -  -
30685   42 142 242 342 142 42 242 42   -  -
30686   43 143 243 343   -  -   -  -   -  -
30687   44 144 244 344 144 44   -  -   -  -
30688   45 145 245 345   -  - 245 45 345 45
30689   46 146 246 346 146 46   -  -   -  -
30690   47 147 247 347   -  -   -  -   -  -
30691   48 148 248 348 148 48 248 48   -  -
30692   49 149 249 349   -  -   -  -   -  -
30693   50 150 250 350 150 50   -  - 350 50
30694   51 151 251 351   -  - 251 51   -  -
30695   52 152 252 352 152 52   -  -   -  -
30696   53 153 253 353   -  -   -  -   -  -
30697   54 154 254 354 154 54 254 54   -  -
30698   55 155 255 355   -  -   -  - 355 55
30699   56 156 256 356 156 56   -  -   -  -
30700   57 157 257 357   -  - 257 57   -  -
30701   58 158 258 358 158 58   -  -   -  -
30702   59 159 259 359   -  -   -  -   -  -
30703   60 160 260 360 160 60 260 60 360 60
30704   61 161 261 361   -  -   -  -   -  -
30705   62 162 262 362 162 62   -  -   -  -
30706   63 163 263 363   -  - 263 63   -  -
30707   64 164 264 364 164 64   -  -   -  -
30708   65 165 265 365   -  -   -  - 365 65
30709   66 166 266 366 166 66 266 66   -  -
30710   67 167 267 367   -  -   -  -   -  -
30711   68 168 268 368 168 68   -  -   -  -
30712   69 169 269 369   -  - 269 69   -  -
30713   70 170 270 370 170 70   -  - 370 70
30714   71 171 271 371   -  -   -  -   -  -
30715   72 172 272 372 172 72 272 72   -  -
30716   73 173 273 373   -  -   -  -   -  -
30717   74 174 274 374 174 74   -  -   -  -
30718   75 175 275 375   -  - 275 75 375 75
30719   76 176 276 376 176 76   -  -   -  -
30720   77 177 277 377   -  -   -  -   -  -
30721   78 178 278 378 178 78 278 78   -  -
30722   79 179 279 379   -  -   -  -   -  -
30723   80 180 280 380 180 80   -  - 380 80
30724   81 181 281 381   -  - 281 81   -  -
30725   82 182 282 382 182 82   -  -   -  -
30726   83 183 283 383   -  -   -  -   -  -
30727   84 184 284 384 184 84 284 84   -  -
30728   85 185 285 385   -  -   -  - 385 85
30729   86 186 286 386 186 86   -  -   -  -
30730   87 187 287 387   -  - 287 87   -  -
30731   88 188 288 388 188 88   -  -   -  -
30732   89 189 289 389   -  -   -  -   -  -
30733   90 190 290 390 190 90 290 90 390 90
30734   91 191 291 391   -  -   -  -   -  -
30735   92 192 292 392 192 92   -  -   -  -
30736   93 193 293 393   -  - 293 93   -  -
30737   94 194 294 394 194 94   -  -   -  -
30738   95 195 295 395   -  -   -  - 395 95
30739   96   - 296 396   -  -   -  -   -  -
30740   97 197   - 397   -  -   -  -   -  -
30741   98 198 298   -   -  -   -  -   -  -
30742   99   -   -   -   -  -   -  -   -  -
30743    -   -   -   - 100  0   -  -   -  -
30744    -   -   -   -   -  -   -  - 300  0
30746 do_execsql_test joinD-1037 {
30747   SELECT t1.*, t2.*, t3.*, t4.*
30748   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
30749   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
30750   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
30751   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30752 } {
30753   15 115 215 315   -  - 215 15 315 15
30754   30 130 230 330 130 30 230 30 330 30
30755   45 145 245 345   -  - 245 45 345 45
30756   60 160 260 360 160 60 260 60 360 60
30757   75 175 275 375   -  - 275 75 375 75
30758   90 190 290 390 190 90 290 90 390 90
30760 do_execsql_test joinD-1038 {
30761   SELECT t1.*, t2.*, t3.*, t4.*
30762   FROM t1 FULL JOIN t2 ON t1.b=t2.b
30763   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
30764   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
30765   WHERE t2.x>0
30766   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30767 } {
30768   30 130 230 330 130 30 230 30 330 30
30769   60 160 260 360 160 60 260 60 360 60
30770   90 190 290 390 190 90 290 90 390 90
30772 do_execsql_test joinD-1039 {
30773   SELECT t1.*, t2.*, t3.*, t4.*
30774   FROM t1 FULL JOIN t2 ON t1.b=t2.b
30775   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
30776   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
30777   WHERE (t2.x>0 OR t2.x IS NULL)
30778   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30779 } {
30780   15 115 215 315   -  - 215 15 315 15
30781   30 130 230 330 130 30 230 30 330 30
30782   45 145 245 345   -  - 245 45 345 45
30783   60 160 260 360 160 60 260 60 360 60
30784   75 175 275 375   -  - 275 75 375 75
30785   90 190 290 390 190 90 290 90 390 90
30787 do_execsql_test joinD-1040 {
30788   SELECT t1.*, t2.*, t3.*, t4.*
30789   FROM t1 FULL JOIN t2 ON true
30790   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
30791   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
30792   WHERE t1.b=t2.b AND t2.x>0
30793   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30794 } {
30795   30 130 230 330 130 30 230 30 330 30
30796   60 160 260 360 160 60 260 60 360 60
30797   90 190 290 390 190 90 290 90 390 90
30799 do_execsql_test joinD-1041 {
30800   SELECT t1.*, t2.*, t3.*, t4.*
30801   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
30802   RIGHT JOIN t3 ON t1.c=t3.c
30803   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
30804   WHERE t3.y>0
30805   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30806 } {
30807   15 115 215 315   -  - 215 15 315 15
30808   30 130 230 330 130 30 230 30 330 30
30809   45 145 245 345   -  - 245 45 345 45
30810   60 160 260 360 160 60 260 60 360 60
30811   75 175 275 375   -  - 275 75 375 75
30812   90 190 290 390 190 90 290 90 390 90
30814 do_execsql_test joinD-1042 {
30815   SELECT t1.*, t2.*, t3.*, t4.*
30816   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
30817   RIGHT JOIN t3 ON t1.c=t3.c
30818   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
30819   WHERE t3.y>0 OR t3.y IS NULL
30820   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30821 } {
30822   15 115 215 315   -  - 215 15 315 15
30823   30 130 230 330 130 30 230 30 330 30
30824   45 145 245 345   -  - 245 45 345 45
30825   60 160 260 360 160 60 260 60 360 60
30826   75 175 275 375   -  - 275 75 375 75
30827   90 190 290 390 190 90 290 90 390 90
30829 do_execsql_test joinD-1043 {
30830   SELECT t1.*, t2.*, t3.*, t4.*
30831   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
30832   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
30833   INNER JOIN t4 ON t1.d=t4.d
30834   WHERE t4.z>0
30835   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30836 } {
30837   15 115 215 315   -  - 215 15 315 15
30838   30 130 230 330 130 30 230 30 330 30
30839   45 145 245 345   -  - 245 45 345 45
30840   60 160 260 360 160 60 260 60 360 60
30841   75 175 275 375   -  - 275 75 375 75
30842   90 190 290 390 190 90 290 90 390 90
30844 do_execsql_test joinD-1044 {
30845   SELECT t1.*, t2.*, t3.*, t4.*
30846   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
30847   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
30848   INNER JOIN t4 ON t1.d=t4.d
30849   WHERE t4.z IS NULL OR t4.z>0
30850   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30851 } {
30852   15 115 215 315   -  - 215 15 315 15
30853   30 130 230 330 130 30 230 30 330 30
30854   45 145 245 345   -  - 245 45 345 45
30855   60 160 260 360 160 60 260 60 360 60
30856   75 175 275 375   -  - 275 75 375 75
30857   90 190 290 390 190 90 290 90 390 90
30859 do_execsql_test joinD-1045 {
30860   SELECT t1.*, t2.*, t3.*, t4.*
30861   FROM t1 FULL JOIN t2 ON t1.b=t2.b
30862   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
30863   INNER JOIN t4 ON t1.d=t4.d
30864   WHERE t2.x>0 AND t4.z>0
30865   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30866 } {
30867   30 130 230 330 130 30 230 30 330 30
30868   60 160 260 360 160 60 260 60 360 60
30869   90 190 290 390 190 90 290 90 390 90
30871 do_execsql_test joinD-1046 {
30872   SELECT t1.*, t2.*, t3.*, t4.*
30873   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
30874   RIGHT JOIN t3 ON t1.c=t3.c
30875   INNER JOIN t4 ON t1.d=t4.d
30876   WHERE t4.z>0 AND t3.y>0
30877   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30878 } {
30879   15 115 215 315   -  - 215 15 315 15
30880   30 130 230 330 130 30 230 30 330 30
30881   45 145 245 345   -  - 245 45 345 45
30882   60 160 260 360 160 60 260 60 360 60
30883   75 175 275 375   -  - 275 75 375 75
30884   90 190 290 390 190 90 290 90 390 90
30886 do_execsql_test joinD-1047 {
30887   SELECT t1.*, t2.*, t3.*, t4.*
30888   FROM t1 FULL JOIN t2 ON t1.b=t2.b
30889   RIGHT JOIN t3 ON t1.c=t3.c
30890   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
30891   WHERE t2.x>0 AND t3.y>0
30892   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30893 } {
30894   30 130 230 330 130 30 230 30 330 30
30895   60 160 260 360 160 60 260 60 360 60
30896   90 190 290 390 190 90 290 90 390 90
30898 do_execsql_test joinD-1048 {
30899   SELECT t1.*, t2.*, t3.*, t4.*
30900   FROM t1 FULL JOIN t2 ON t1.b=t2.b
30901   RIGHT JOIN t3 ON t1.c=t3.c
30902   INNER JOIN t4 ON t1.d=t4.d
30903   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
30904   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30905 } {
30906   30 130 230 330 130 30 230 30 330 30
30907   60 160 260 360 160 60 260 60 360 60
30908   90 190 290 390 190 90 290 90 390 90
30910 do_execsql_test joinD-1049 {
30911   SELECT t1.*, t2.*, t3.*, t4.*
30912   FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
30913   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
30914   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
30915   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30916 } {
30917   15 115 215 315   -  - 215 15 315 15
30918   30 130 230 330 130 30 230 30 330 30
30919   45 145 245 345   -  - 245 45 345 45
30920   60 160 260 360 160 60 260 60 360 60
30921   75 175 275 375   -  - 275 75 375 75
30922   90 190 290 390 190 90 290 90 390 90
30924 do_execsql_test joinD-1050 {
30925   SELECT t1.*, t2.*, t3.*, t4.*
30926   FROM t1 FULL JOIN t2 ON t2.x>0
30927   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
30928   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
30929   WHERE t1.b = t2.b
30930   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30931 } {
30932   30 130 230 330 130 30 230 30 330 30
30933   60 160 260 360 160 60 260 60 360 60
30934   90 190 290 390 190 90 290 90 390 90
30936 do_execsql_test joinD-1051 {
30937   SELECT t1.*, t2.*, t3.*, t4.*
30938   FROM t1 FULL JOIN t2 ON t2.x>0
30939   RIGHT JOIN t3 ON t3.y>0
30940   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
30941   WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
30942   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30943 } {
30944   30 130 230 330 130 30 230 30 330 30
30945   60 160 260 360 160 60 260 60 360 60
30946   90 190 290 390 190 90 290 90 390 90
30948 do_execsql_test joinD-1052 {
30949   SELECT t1.*, t2.*, t3.*, t4.*
30950   FROM t1 FULL JOIN t2 ON t2.x>0
30951   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
30952   INNER JOIN t4 ON t4.z>0
30953   WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
30954   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30955 } {
30956   30 130 230 330 130 30 230 30 330 30
30957   60 160 260 360 160 60 260 60 360 60
30958   90 190 290 390 190 90 290 90 390 90
30960 do_execsql_test joinD-1053 {
30961   SELECT t1.*, t2.*, t3.*, t4.*
30962   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
30963   RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
30964   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
30965   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30966 } {
30967   15 115 215 315   -  - 215 15 315 15
30968   30 130 230 330 130 30 230 30 330 30
30969   45 145 245 345   -  - 245 45 345 45
30970   60 160 260 360 160 60 260 60 360 60
30971   75 175 275 375   -  - 275 75 375 75
30972   90 190 290 390 190 90 290 90 390 90
30974 do_execsql_test joinD-1054 {
30975   SELECT t1.*, t2.*, t3.*, t4.*
30976   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
30977   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
30978   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
30979   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
30980 } {
30981    3 103 203 303   -  - 203  3   -  -
30982    6 106 206 306 106  6 206  6   -  -
30983    9 109 209 309   -  - 209  9   -  -
30984   12 112 212 312 112 12 212 12   -  -
30985   15 115 215 315   -  - 215 15 315 15
30986   18 118 218 318 118 18 218 18   -  -
30987   21 121 221 321   -  - 221 21   -  -
30988   24 124 224 324 124 24 224 24   -  -
30989   27 127 227 327   -  - 227 27   -  -
30990   30 130 230 330 130 30 230 30 330 30
30991   33 133 233 333   -  - 233 33   -  -
30992   36 136 236 336 136 36 236 36   -  -
30993   39 139 239 339   -  - 239 39   -  -
30994   42 142 242 342 142 42 242 42   -  -
30995   45 145 245 345   -  - 245 45 345 45
30996   48 148 248 348 148 48 248 48   -  -
30997   51 151 251 351   -  - 251 51   -  -
30998   54 154 254 354 154 54 254 54   -  -
30999   57 157 257 357   -  - 257 57   -  -
31000   60 160 260 360 160 60 260 60 360 60
31001   63 163 263 363   -  - 263 63   -  -
31002   66 166 266 366 166 66 266 66   -  -
31003   69 169 269 369   -  - 269 69   -  -
31004   72 172 272 372 172 72 272 72   -  -
31005   75 175 275 375   -  - 275 75 375 75
31006   78 178 278 378 178 78 278 78   -  -
31007   81 181 281 381   -  - 281 81   -  -
31008   84 184 284 384 184 84 284 84   -  -
31009   87 187 287 387   -  - 287 87   -  -
31010   90 190 290 390 190 90 290 90 390 90
31011   93 193 293 393   -  - 293 93   -  -
31012    -   -   -   -   -  - 200  0   -  -
31014 do_execsql_test joinD-1055 {
31015   SELECT t1.*, t2.*, t3.*, t4.*
31016   FROM t1 FULL JOIN t2 ON t1.b=t2.b
31017   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
31018   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
31019   WHERE t2.x>0
31020   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31021 } {
31022    6 106 206 306 106  6 206  6   -  -
31023   12 112 212 312 112 12 212 12   -  -
31024   18 118 218 318 118 18 218 18   -  -
31025   24 124 224 324 124 24 224 24   -  -
31026   30 130 230 330 130 30 230 30 330 30
31027   36 136 236 336 136 36 236 36   -  -
31028   42 142 242 342 142 42 242 42   -  -
31029   48 148 248 348 148 48 248 48   -  -
31030   54 154 254 354 154 54 254 54   -  -
31031   60 160 260 360 160 60 260 60 360 60
31032   66 166 266 366 166 66 266 66   -  -
31033   72 172 272 372 172 72 272 72   -  -
31034   78 178 278 378 178 78 278 78   -  -
31035   84 184 284 384 184 84 284 84   -  -
31036   90 190 290 390 190 90 290 90 390 90
31038 do_execsql_test joinD-1056 {
31039   SELECT t1.*, t2.*, t3.*, t4.*
31040   FROM t1 FULL JOIN t2 ON t1.b=t2.b
31041   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
31042   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
31043   WHERE (t2.x>0 OR t2.x IS NULL)
31044   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31045 } {
31046    3 103 203 303   -  - 203  3   -  -
31047    6 106 206 306 106  6 206  6   -  -
31048    9 109 209 309   -  - 209  9   -  -
31049   12 112 212 312 112 12 212 12   -  -
31050   15 115 215 315   -  - 215 15 315 15
31051   18 118 218 318 118 18 218 18   -  -
31052   21 121 221 321   -  - 221 21   -  -
31053   24 124 224 324 124 24 224 24   -  -
31054   27 127 227 327   -  - 227 27   -  -
31055   30 130 230 330 130 30 230 30 330 30
31056   33 133 233 333   -  - 233 33   -  -
31057   36 136 236 336 136 36 236 36   -  -
31058   39 139 239 339   -  - 239 39   -  -
31059   42 142 242 342 142 42 242 42   -  -
31060   45 145 245 345   -  - 245 45 345 45
31061   48 148 248 348 148 48 248 48   -  -
31062   51 151 251 351   -  - 251 51   -  -
31063   54 154 254 354 154 54 254 54   -  -
31064   57 157 257 357   -  - 257 57   -  -
31065   60 160 260 360 160 60 260 60 360 60
31066   63 163 263 363   -  - 263 63   -  -
31067   66 166 266 366 166 66 266 66   -  -
31068   69 169 269 369   -  - 269 69   -  -
31069   72 172 272 372 172 72 272 72   -  -
31070   75 175 275 375   -  - 275 75 375 75
31071   78 178 278 378 178 78 278 78   -  -
31072   81 181 281 381   -  - 281 81   -  -
31073   84 184 284 384 184 84 284 84   -  -
31074   87 187 287 387   -  - 287 87   -  -
31075   90 190 290 390 190 90 290 90 390 90
31076   93 193 293 393   -  - 293 93   -  -
31077    -   -   -   -   -  - 200  0   -  -
31079 do_execsql_test joinD-1057 {
31080   SELECT t1.*, t2.*, t3.*, t4.*
31081   FROM t1 FULL JOIN t2 ON true
31082   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
31083   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
31084   WHERE t1.b=t2.b AND t2.x>0
31085   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31086 } {
31087    6 106 206 306 106  6 206  6   -  -
31088   12 112 212 312 112 12 212 12   -  -
31089   18 118 218 318 118 18 218 18   -  -
31090   24 124 224 324 124 24 224 24   -  -
31091   30 130 230 330 130 30 230 30 330 30
31092   36 136 236 336 136 36 236 36   -  -
31093   42 142 242 342 142 42 242 42   -  -
31094   48 148 248 348 148 48 248 48   -  -
31095   54 154 254 354 154 54 254 54   -  -
31096   60 160 260 360 160 60 260 60 360 60
31097   66 166 266 366 166 66 266 66   -  -
31098   72 172 272 372 172 72 272 72   -  -
31099   78 178 278 378 178 78 278 78   -  -
31100   84 184 284 384 184 84 284 84   -  -
31101   90 190 290 390 190 90 290 90 390 90
31103 do_execsql_test joinD-1058 {
31104   SELECT t1.*, t2.*, t3.*, t4.*
31105   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
31106   RIGHT JOIN t3 ON t1.c=t3.c
31107   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
31108   WHERE t3.y>0
31109   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31110 } {
31111    3 103 203 303   -  - 203  3   -  -
31112    6 106 206 306 106  6 206  6   -  -
31113    9 109 209 309   -  - 209  9   -  -
31114   12 112 212 312 112 12 212 12   -  -
31115   15 115 215 315   -  - 215 15 315 15
31116   18 118 218 318 118 18 218 18   -  -
31117   21 121 221 321   -  - 221 21   -  -
31118   24 124 224 324 124 24 224 24   -  -
31119   27 127 227 327   -  - 227 27   -  -
31120   30 130 230 330 130 30 230 30 330 30
31121   33 133 233 333   -  - 233 33   -  -
31122   36 136 236 336 136 36 236 36   -  -
31123   39 139 239 339   -  - 239 39   -  -
31124   42 142 242 342 142 42 242 42   -  -
31125   45 145 245 345   -  - 245 45 345 45
31126   48 148 248 348 148 48 248 48   -  -
31127   51 151 251 351   -  - 251 51   -  -
31128   54 154 254 354 154 54 254 54   -  -
31129   57 157 257 357   -  - 257 57   -  -
31130   60 160 260 360 160 60 260 60 360 60
31131   63 163 263 363   -  - 263 63   -  -
31132   66 166 266 366 166 66 266 66   -  -
31133   69 169 269 369   -  - 269 69   -  -
31134   72 172 272 372 172 72 272 72   -  -
31135   75 175 275 375   -  - 275 75 375 75
31136   78 178 278 378 178 78 278 78   -  -
31137   81 181 281 381   -  - 281 81   -  -
31138   84 184 284 384 184 84 284 84   -  -
31139   87 187 287 387   -  - 287 87   -  -
31140   90 190 290 390 190 90 290 90 390 90
31141   93 193 293 393   -  - 293 93   -  -
31143 do_execsql_test joinD-1059 {
31144   SELECT t1.*, t2.*, t3.*, t4.*
31145   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
31146   RIGHT JOIN t3 ON t1.c=t3.c
31147   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
31148   WHERE t3.y>0 OR t3.y IS NULL
31149   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31150 } {
31151    3 103 203 303   -  - 203  3   -  -
31152    6 106 206 306 106  6 206  6   -  -
31153    9 109 209 309   -  - 209  9   -  -
31154   12 112 212 312 112 12 212 12   -  -
31155   15 115 215 315   -  - 215 15 315 15
31156   18 118 218 318 118 18 218 18   -  -
31157   21 121 221 321   -  - 221 21   -  -
31158   24 124 224 324 124 24 224 24   -  -
31159   27 127 227 327   -  - 227 27   -  -
31160   30 130 230 330 130 30 230 30 330 30
31161   33 133 233 333   -  - 233 33   -  -
31162   36 136 236 336 136 36 236 36   -  -
31163   39 139 239 339   -  - 239 39   -  -
31164   42 142 242 342 142 42 242 42   -  -
31165   45 145 245 345   -  - 245 45 345 45
31166   48 148 248 348 148 48 248 48   -  -
31167   51 151 251 351   -  - 251 51   -  -
31168   54 154 254 354 154 54 254 54   -  -
31169   57 157 257 357   -  - 257 57   -  -
31170   60 160 260 360 160 60 260 60 360 60
31171   63 163 263 363   -  - 263 63   -  -
31172   66 166 266 366 166 66 266 66   -  -
31173   69 169 269 369   -  - 269 69   -  -
31174   72 172 272 372 172 72 272 72   -  -
31175   75 175 275 375   -  - 275 75 375 75
31176   78 178 278 378 178 78 278 78   -  -
31177   81 181 281 381   -  - 281 81   -  -
31178   84 184 284 384 184 84 284 84   -  -
31179   87 187 287 387   -  - 287 87   -  -
31180   90 190 290 390 190 90 290 90 390 90
31181   93 193 293 393   -  - 293 93   -  -
31183 do_execsql_test joinD-1060 {
31184   SELECT t1.*, t2.*, t3.*, t4.*
31185   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
31186   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
31187   LEFT JOIN t4 ON t1.d=t4.d
31188   WHERE t4.z>0
31189   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31190 } {
31191   15 115 215 315   -  - 215 15 315 15
31192   30 130 230 330 130 30 230 30 330 30
31193   45 145 245 345   -  - 245 45 345 45
31194   60 160 260 360 160 60 260 60 360 60
31195   75 175 275 375   -  - 275 75 375 75
31196   90 190 290 390 190 90 290 90 390 90
31198 do_execsql_test joinD-1061 {
31199   SELECT t1.*, t2.*, t3.*, t4.*
31200   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
31201   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
31202   LEFT JOIN t4 ON t1.d=t4.d
31203   WHERE t4.z IS NULL OR t4.z>0
31204   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31205 } {
31206    3 103 203 303   -  - 203  3   -  -
31207    6 106 206 306 106  6 206  6   -  -
31208    9 109 209 309   -  - 209  9   -  -
31209   12 112 212 312 112 12 212 12   -  -
31210   15 115 215 315   -  - 215 15 315 15
31211   18 118 218 318 118 18 218 18   -  -
31212   21 121 221 321   -  - 221 21   -  -
31213   24 124 224 324 124 24 224 24   -  -
31214   27 127 227 327   -  - 227 27   -  -
31215   30 130 230 330 130 30 230 30 330 30
31216   33 133 233 333   -  - 233 33   -  -
31217   36 136 236 336 136 36 236 36   -  -
31218   39 139 239 339   -  - 239 39   -  -
31219   42 142 242 342 142 42 242 42   -  -
31220   45 145 245 345   -  - 245 45 345 45
31221   48 148 248 348 148 48 248 48   -  -
31222   51 151 251 351   -  - 251 51   -  -
31223   54 154 254 354 154 54 254 54   -  -
31224   57 157 257 357   -  - 257 57   -  -
31225   60 160 260 360 160 60 260 60 360 60
31226   63 163 263 363   -  - 263 63   -  -
31227   66 166 266 366 166 66 266 66   -  -
31228   69 169 269 369   -  - 269 69   -  -
31229   72 172 272 372 172 72 272 72   -  -
31230   75 175 275 375   -  - 275 75 375 75
31231   78 178 278 378 178 78 278 78   -  -
31232   81 181 281 381   -  - 281 81   -  -
31233   84 184 284 384 184 84 284 84   -  -
31234   87 187 287 387   -  - 287 87   -  -
31235   90 190 290 390 190 90 290 90 390 90
31236   93 193 293 393   -  - 293 93   -  -
31237    -   -   -   -   -  - 200  0   -  -
31239 do_execsql_test joinD-1062 {
31240   SELECT t1.*, t2.*, t3.*, t4.*
31241   FROM t1 FULL JOIN t2 ON t1.b=t2.b
31242   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
31243   LEFT JOIN t4 ON t1.d=t4.d
31244   WHERE t2.x>0 AND t4.z>0
31245   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31246 } {
31247   30 130 230 330 130 30 230 30 330 30
31248   60 160 260 360 160 60 260 60 360 60
31249   90 190 290 390 190 90 290 90 390 90
31251 do_execsql_test joinD-1063 {
31252   SELECT t1.*, t2.*, t3.*, t4.*
31253   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
31254   RIGHT JOIN t3 ON t1.c=t3.c
31255   LEFT JOIN t4 ON t1.d=t4.d
31256   WHERE t4.z>0 AND t3.y>0
31257   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31258 } {
31259   15 115 215 315   -  - 215 15 315 15
31260   30 130 230 330 130 30 230 30 330 30
31261   45 145 245 345   -  - 245 45 345 45
31262   60 160 260 360 160 60 260 60 360 60
31263   75 175 275 375   -  - 275 75 375 75
31264   90 190 290 390 190 90 290 90 390 90
31266 do_execsql_test joinD-1064 {
31267   SELECT t1.*, t2.*, t3.*, t4.*
31268   FROM t1 FULL JOIN t2 ON t1.b=t2.b
31269   RIGHT JOIN t3 ON t1.c=t3.c
31270   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
31271   WHERE t2.x>0 AND t3.y>0
31272   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31273 } {
31274    6 106 206 306 106  6 206  6   -  -
31275   12 112 212 312 112 12 212 12   -  -
31276   18 118 218 318 118 18 218 18   -  -
31277   24 124 224 324 124 24 224 24   -  -
31278   30 130 230 330 130 30 230 30 330 30
31279   36 136 236 336 136 36 236 36   -  -
31280   42 142 242 342 142 42 242 42   -  -
31281   48 148 248 348 148 48 248 48   -  -
31282   54 154 254 354 154 54 254 54   -  -
31283   60 160 260 360 160 60 260 60 360 60
31284   66 166 266 366 166 66 266 66   -  -
31285   72 172 272 372 172 72 272 72   -  -
31286   78 178 278 378 178 78 278 78   -  -
31287   84 184 284 384 184 84 284 84   -  -
31288   90 190 290 390 190 90 290 90 390 90
31290 do_execsql_test joinD-1065 {
31291   SELECT t1.*, t2.*, t3.*, t4.*
31292   FROM t1 FULL JOIN t2 ON t1.b=t2.b
31293   RIGHT JOIN t3 ON t1.c=t3.c
31294   LEFT JOIN t4 ON t1.d=t4.d
31295   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
31296   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31297 } {
31298   30 130 230 330 130 30 230 30 330 30
31299   60 160 260 360 160 60 260 60 360 60
31300   90 190 290 390 190 90 290 90 390 90
31302 do_execsql_test joinD-1066 {
31303   SELECT t1.*, t2.*, t3.*, t4.*
31304   FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
31305   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
31306   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
31307   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31308 } {
31309    3 103 203 303   -  - 203  3   -  -
31310    6 106 206 306 106  6 206  6   -  -
31311    9 109 209 309   -  - 209  9   -  -
31312   12 112 212 312 112 12 212 12   -  -
31313   15 115 215 315   -  - 215 15 315 15
31314   18 118 218 318 118 18 218 18   -  -
31315   21 121 221 321   -  - 221 21   -  -
31316   24 124 224 324 124 24 224 24   -  -
31317   27 127 227 327   -  - 227 27   -  -
31318   30 130 230 330 130 30 230 30 330 30
31319   33 133 233 333   -  - 233 33   -  -
31320   36 136 236 336 136 36 236 36   -  -
31321   39 139 239 339   -  - 239 39   -  -
31322   42 142 242 342 142 42 242 42   -  -
31323   45 145 245 345   -  - 245 45 345 45
31324   48 148 248 348 148 48 248 48   -  -
31325   51 151 251 351   -  - 251 51   -  -
31326   54 154 254 354 154 54 254 54   -  -
31327   57 157 257 357   -  - 257 57   -  -
31328   60 160 260 360 160 60 260 60 360 60
31329   63 163 263 363   -  - 263 63   -  -
31330   66 166 266 366 166 66 266 66   -  -
31331   69 169 269 369   -  - 269 69   -  -
31332   72 172 272 372 172 72 272 72   -  -
31333   75 175 275 375   -  - 275 75 375 75
31334   78 178 278 378 178 78 278 78   -  -
31335   81 181 281 381   -  - 281 81   -  -
31336   84 184 284 384 184 84 284 84   -  -
31337   87 187 287 387   -  - 287 87   -  -
31338   90 190 290 390 190 90 290 90 390 90
31339   93 193 293 393   -  - 293 93   -  -
31340    -   -   -   -   -  - 200  0   -  -
31342 do_execsql_test joinD-1067 {
31343   SELECT t1.*, t2.*, t3.*, t4.*
31344   FROM t1 FULL JOIN t2 ON t2.x>0
31345   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
31346   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
31347   WHERE t1.b = t2.b
31348   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31349 } {
31350    6 106 206 306 106  6 206  6   -  -
31351   12 112 212 312 112 12 212 12   -  -
31352   18 118 218 318 118 18 218 18   -  -
31353   24 124 224 324 124 24 224 24   -  -
31354   30 130 230 330 130 30 230 30 330 30
31355   36 136 236 336 136 36 236 36   -  -
31356   42 142 242 342 142 42 242 42   -  -
31357   48 148 248 348 148 48 248 48   -  -
31358   54 154 254 354 154 54 254 54   -  -
31359   60 160 260 360 160 60 260 60 360 60
31360   66 166 266 366 166 66 266 66   -  -
31361   72 172 272 372 172 72 272 72   -  -
31362   78 178 278 378 178 78 278 78   -  -
31363   84 184 284 384 184 84 284 84   -  -
31364   90 190 290 390 190 90 290 90 390 90
31366 do_execsql_test joinD-1068 {
31367   SELECT t1.*, t2.*, t3.*, t4.*
31368   FROM t1 FULL JOIN t2 ON t2.x>0
31369   RIGHT JOIN t3 ON t3.y>0
31370   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
31371   WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
31372   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31373 } {
31374    6 106 206 306 106  6 206  6   -  -
31375   12 112 212 312 112 12 212 12   -  -
31376   18 118 218 318 118 18 218 18   -  -
31377   24 124 224 324 124 24 224 24   -  -
31378   30 130 230 330 130 30 230 30 330 30
31379   36 136 236 336 136 36 236 36   -  -
31380   42 142 242 342 142 42 242 42   -  -
31381   48 148 248 348 148 48 248 48   -  -
31382   54 154 254 354 154 54 254 54   -  -
31383   60 160 260 360 160 60 260 60 360 60
31384   66 166 266 366 166 66 266 66   -  -
31385   72 172 272 372 172 72 272 72   -  -
31386   78 178 278 378 178 78 278 78   -  -
31387   84 184 284 384 184 84 284 84   -  -
31388   90 190 290 390 190 90 290 90 390 90
31390 do_execsql_test joinD-1069 {
31391   SELECT t1.*, t2.*, t3.*, t4.*
31392   FROM t1 FULL JOIN t2 ON t2.x>0
31393   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
31394   LEFT JOIN t4 ON t4.z>0
31395   WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
31396   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31397 } {
31398   30 130 230 330 130 30 230 30 330 30
31399   60 160 260 360 160 60 260 60 360 60
31400   90 190 290 390 190 90 290 90 390 90
31402 do_execsql_test joinD-1070 {
31403   SELECT t1.*, t2.*, t3.*, t4.*
31404   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
31405   RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
31406   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
31407   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31408 } {
31409    3 103 203 303   -  - 203  3   -  -
31410    6 106 206 306 106  6 206  6   -  -
31411    9 109 209 309   -  - 209  9   -  -
31412   12 112 212 312 112 12 212 12   -  -
31413   15 115 215 315   -  - 215 15 315 15
31414   18 118 218 318 118 18 218 18   -  -
31415   21 121 221 321   -  - 221 21   -  -
31416   24 124 224 324 124 24 224 24   -  -
31417   27 127 227 327   -  - 227 27   -  -
31418   30 130 230 330 130 30 230 30 330 30
31419   33 133 233 333   -  - 233 33   -  -
31420   36 136 236 336 136 36 236 36   -  -
31421   39 139 239 339   -  - 239 39   -  -
31422   42 142 242 342 142 42 242 42   -  -
31423   45 145 245 345   -  - 245 45 345 45
31424   48 148 248 348 148 48 248 48   -  -
31425   51 151 251 351   -  - 251 51   -  -
31426   54 154 254 354 154 54 254 54   -  -
31427   57 157 257 357   -  - 257 57   -  -
31428   60 160 260 360 160 60 260 60 360 60
31429   63 163 263 363   -  - 263 63   -  -
31430   66 166 266 366 166 66 266 66   -  -
31431   69 169 269 369   -  - 269 69   -  -
31432   72 172 272 372 172 72 272 72   -  -
31433   75 175 275 375   -  - 275 75 375 75
31434   78 178 278 378 178 78 278 78   -  -
31435   81 181 281 381   -  - 281 81   -  -
31436   84 184 284 384 184 84 284 84   -  -
31437   87 187 287 387   -  - 287 87   -  -
31438   90 190 290 390 190 90 290 90 390 90
31439   93 193 293 393   -  - 293 93   -  -
31440    -   -   -   -   -  - 200  0   -  -
31442 do_execsql_test joinD-1071 {
31443   SELECT t1.*, t2.*, t3.*, t4.*
31444   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
31445   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
31446   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
31447   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31448 } {
31449   15 115 215 315   -  - 215 15 315 15
31450   30 130 230 330 130 30 230 30 330 30
31451   45 145 245 345   -  - 245 45 345 45
31452   60 160 260 360 160 60 260 60 360 60
31453   75 175 275 375   -  - 275 75 375 75
31454   90 190 290 390 190 90 290 90 390 90
31455    -   -   -   -   -  -   -  - 300  0
31456    -   -   -   -   -  -   -  - 305  5
31457    -   -   -   -   -  -   -  - 310 10
31458    -   -   -   -   -  -   -  - 320 20
31459    -   -   -   -   -  -   -  - 325 25
31460    -   -   -   -   -  -   -  - 335 35
31461    -   -   -   -   -  -   -  - 340 40
31462    -   -   -   -   -  -   -  - 350 50
31463    -   -   -   -   -  -   -  - 355 55
31464    -   -   -   -   -  -   -  - 365 65
31465    -   -   -   -   -  -   -  - 370 70
31466    -   -   -   -   -  -   -  - 380 80
31467    -   -   -   -   -  -   -  - 385 85
31468    -   -   -   -   -  -   -  - 395 95
31470 do_execsql_test joinD-1072 {
31471   SELECT t1.*, t2.*, t3.*, t4.*
31472   FROM t1 FULL JOIN t2 ON t1.b=t2.b
31473   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
31474   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
31475   WHERE t2.x>0
31476   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31477 } {
31478   30 130 230 330 130 30 230 30 330 30
31479   60 160 260 360 160 60 260 60 360 60
31480   90 190 290 390 190 90 290 90 390 90
31482 do_execsql_test joinD-1073 {
31483   SELECT t1.*, t2.*, t3.*, t4.*
31484   FROM t1 FULL JOIN t2 ON t1.b=t2.b
31485   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
31486   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
31487   WHERE (t2.x>0 OR t2.x IS NULL)
31488   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31489 } {
31490   15 115 215 315   -  - 215 15 315 15
31491   30 130 230 330 130 30 230 30 330 30
31492   45 145 245 345   -  - 245 45 345 45
31493   60 160 260 360 160 60 260 60 360 60
31494   75 175 275 375   -  - 275 75 375 75
31495   90 190 290 390 190 90 290 90 390 90
31496    -   -   -   -   -  -   -  - 300  0
31497    -   -   -   -   -  -   -  - 305  5
31498    -   -   -   -   -  -   -  - 310 10
31499    -   -   -   -   -  -   -  - 320 20
31500    -   -   -   -   -  -   -  - 325 25
31501    -   -   -   -   -  -   -  - 335 35
31502    -   -   -   -   -  -   -  - 340 40
31503    -   -   -   -   -  -   -  - 350 50
31504    -   -   -   -   -  -   -  - 355 55
31505    -   -   -   -   -  -   -  - 365 65
31506    -   -   -   -   -  -   -  - 370 70
31507    -   -   -   -   -  -   -  - 380 80
31508    -   -   -   -   -  -   -  - 385 85
31509    -   -   -   -   -  -   -  - 395 95
31511 do_execsql_test joinD-1074 {
31512   SELECT t1.*, t2.*, t3.*, t4.*
31513   FROM t1 FULL JOIN t2 ON true
31514   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
31515   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
31516   WHERE t1.b=t2.b AND t2.x>0
31517   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31518 } {
31519   30 130 230 330 130 30 230 30 330 30
31520   60 160 260 360 160 60 260 60 360 60
31521   90 190 290 390 190 90 290 90 390 90
31523 do_execsql_test joinD-1075 {
31524   SELECT t1.*, t2.*, t3.*, t4.*
31525   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
31526   RIGHT JOIN t3 ON t1.c=t3.c
31527   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
31528   WHERE t3.y>0
31529   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31530 } {
31531   15 115 215 315   -  - 215 15 315 15
31532   30 130 230 330 130 30 230 30 330 30
31533   45 145 245 345   -  - 245 45 345 45
31534   60 160 260 360 160 60 260 60 360 60
31535   75 175 275 375   -  - 275 75 375 75
31536   90 190 290 390 190 90 290 90 390 90
31538 do_execsql_test joinD-1076 {
31539   SELECT t1.*, t2.*, t3.*, t4.*
31540   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
31541   RIGHT JOIN t3 ON t1.c=t3.c
31542   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
31543   WHERE t3.y>0 OR t3.y IS NULL
31544   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31545 } {
31546   15 115 215 315   -  - 215 15 315 15
31547   30 130 230 330 130 30 230 30 330 30
31548   45 145 245 345   -  - 245 45 345 45
31549   60 160 260 360 160 60 260 60 360 60
31550   75 175 275 375   -  - 275 75 375 75
31551   90 190 290 390 190 90 290 90 390 90
31552    -   -   -   -   -  -   -  - 300  0
31553    -   -   -   -   -  -   -  - 305  5
31554    -   -   -   -   -  -   -  - 310 10
31555    -   -   -   -   -  -   -  - 320 20
31556    -   -   -   -   -  -   -  - 325 25
31557    -   -   -   -   -  -   -  - 335 35
31558    -   -   -   -   -  -   -  - 340 40
31559    -   -   -   -   -  -   -  - 350 50
31560    -   -   -   -   -  -   -  - 355 55
31561    -   -   -   -   -  -   -  - 365 65
31562    -   -   -   -   -  -   -  - 370 70
31563    -   -   -   -   -  -   -  - 380 80
31564    -   -   -   -   -  -   -  - 385 85
31565    -   -   -   -   -  -   -  - 395 95
31567 do_execsql_test joinD-1077 {
31568   SELECT t1.*, t2.*, t3.*, t4.*
31569   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
31570   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
31571   RIGHT JOIN t4 ON t1.d=t4.d
31572   WHERE t4.z>0
31573   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31574 } {
31575   15 115 215 315   -  - 215 15 315 15
31576   30 130 230 330 130 30 230 30 330 30
31577   45 145 245 345   -  - 245 45 345 45
31578   60 160 260 360 160 60 260 60 360 60
31579   75 175 275 375   -  - 275 75 375 75
31580   90 190 290 390 190 90 290 90 390 90
31581    -   -   -   -   -  -   -  - 305  5
31582    -   -   -   -   -  -   -  - 310 10
31583    -   -   -   -   -  -   -  - 320 20
31584    -   -   -   -   -  -   -  - 325 25
31585    -   -   -   -   -  -   -  - 335 35
31586    -   -   -   -   -  -   -  - 340 40
31587    -   -   -   -   -  -   -  - 350 50
31588    -   -   -   -   -  -   -  - 355 55
31589    -   -   -   -   -  -   -  - 365 65
31590    -   -   -   -   -  -   -  - 370 70
31591    -   -   -   -   -  -   -  - 380 80
31592    -   -   -   -   -  -   -  - 385 85
31593    -   -   -   -   -  -   -  - 395 95
31595 do_execsql_test joinD-1078 {
31596   SELECT t1.*, t2.*, t3.*, t4.*
31597   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
31598   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
31599   RIGHT JOIN t4 ON t1.d=t4.d
31600   WHERE t4.z IS NULL OR t4.z>0
31601   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31602 } {
31603   15 115 215 315   -  - 215 15 315 15
31604   30 130 230 330 130 30 230 30 330 30
31605   45 145 245 345   -  - 245 45 345 45
31606   60 160 260 360 160 60 260 60 360 60
31607   75 175 275 375   -  - 275 75 375 75
31608   90 190 290 390 190 90 290 90 390 90
31609    -   -   -   -   -  -   -  - 305  5
31610    -   -   -   -   -  -   -  - 310 10
31611    -   -   -   -   -  -   -  - 320 20
31612    -   -   -   -   -  -   -  - 325 25
31613    -   -   -   -   -  -   -  - 335 35
31614    -   -   -   -   -  -   -  - 340 40
31615    -   -   -   -   -  -   -  - 350 50
31616    -   -   -   -   -  -   -  - 355 55
31617    -   -   -   -   -  -   -  - 365 65
31618    -   -   -   -   -  -   -  - 370 70
31619    -   -   -   -   -  -   -  - 380 80
31620    -   -   -   -   -  -   -  - 385 85
31621    -   -   -   -   -  -   -  - 395 95
31623 do_execsql_test joinD-1079 {
31624   SELECT t1.*, t2.*, t3.*, t4.*
31625   FROM t1 FULL JOIN t2 ON t1.b=t2.b
31626   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
31627   RIGHT JOIN t4 ON t1.d=t4.d
31628   WHERE t2.x>0 AND t4.z>0
31629   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31630 } {
31631   30 130 230 330 130 30 230 30 330 30
31632   60 160 260 360 160 60 260 60 360 60
31633   90 190 290 390 190 90 290 90 390 90
31635 do_execsql_test joinD-1080 {
31636   SELECT t1.*, t2.*, t3.*, t4.*
31637   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
31638   RIGHT JOIN t3 ON t1.c=t3.c
31639   RIGHT JOIN t4 ON t1.d=t4.d
31640   WHERE t4.z>0 AND t3.y>0
31641   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31642 } {
31643   15 115 215 315   -  - 215 15 315 15
31644   30 130 230 330 130 30 230 30 330 30
31645   45 145 245 345   -  - 245 45 345 45
31646   60 160 260 360 160 60 260 60 360 60
31647   75 175 275 375   -  - 275 75 375 75
31648   90 190 290 390 190 90 290 90 390 90
31650 do_execsql_test joinD-1081 {
31651   SELECT t1.*, t2.*, t3.*, t4.*
31652   FROM t1 FULL JOIN t2 ON t1.b=t2.b
31653   RIGHT JOIN t3 ON t1.c=t3.c
31654   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
31655   WHERE t2.x>0 AND t3.y>0
31656   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31657 } {
31658   30 130 230 330 130 30 230 30 330 30
31659   60 160 260 360 160 60 260 60 360 60
31660   90 190 290 390 190 90 290 90 390 90
31662 do_execsql_test joinD-1082 {
31663   SELECT t1.*, t2.*, t3.*, t4.*
31664   FROM t1 FULL JOIN t2 ON t1.b=t2.b
31665   RIGHT JOIN t3 ON t1.c=t3.c
31666   RIGHT JOIN t4 ON t1.d=t4.d
31667   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
31668   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31669 } {
31670   30 130 230 330 130 30 230 30 330 30
31671   60 160 260 360 160 60 260 60 360 60
31672   90 190 290 390 190 90 290 90 390 90
31674 do_execsql_test joinD-1083 {
31675   SELECT t1.*, t2.*, t3.*, t4.*
31676   FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
31677   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
31678   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
31679   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31680 } {
31681   15 115 215 315   -  - 215 15 315 15
31682   30 130 230 330 130 30 230 30 330 30
31683   45 145 245 345   -  - 245 45 345 45
31684   60 160 260 360 160 60 260 60 360 60
31685   75 175 275 375   -  - 275 75 375 75
31686   90 190 290 390 190 90 290 90 390 90
31687    -   -   -   -   -  -   -  - 300  0
31688    -   -   -   -   -  -   -  - 305  5
31689    -   -   -   -   -  -   -  - 310 10
31690    -   -   -   -   -  -   -  - 320 20
31691    -   -   -   -   -  -   -  - 325 25
31692    -   -   -   -   -  -   -  - 335 35
31693    -   -   -   -   -  -   -  - 340 40
31694    -   -   -   -   -  -   -  - 350 50
31695    -   -   -   -   -  -   -  - 355 55
31696    -   -   -   -   -  -   -  - 365 65
31697    -   -   -   -   -  -   -  - 370 70
31698    -   -   -   -   -  -   -  - 380 80
31699    -   -   -   -   -  -   -  - 385 85
31700    -   -   -   -   -  -   -  - 395 95
31702 do_execsql_test joinD-1084 {
31703   SELECT t1.*, t2.*, t3.*, t4.*
31704   FROM t1 FULL JOIN t2 ON t2.x>0
31705   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
31706   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
31707   WHERE t1.b = t2.b
31708   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31709 } {
31710   30 130 230 330 130 30 230 30 330 30
31711   60 160 260 360 160 60 260 60 360 60
31712   90 190 290 390 190 90 290 90 390 90
31714 do_execsql_test joinD-1085 {
31715   SELECT t1.*, t2.*, t3.*, t4.*
31716   FROM t1 FULL JOIN t2 ON t2.x>0
31717   RIGHT JOIN t3 ON t3.y>0
31718   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
31719   WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
31720   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31721 } {
31722   30 130 230 330 130 30 230 30 330 30
31723   60 160 260 360 160 60 260 60 360 60
31724   90 190 290 390 190 90 290 90 390 90
31726 do_execsql_test joinD-1086 {
31727   SELECT t1.*, t2.*, t3.*, t4.*
31728   FROM t1 FULL JOIN t2 ON t2.x>0
31729   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
31730   RIGHT JOIN t4 ON t4.z>0
31731   WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
31732   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31733 } {
31734   30 130 230 330 130 30 230 30 330 30
31735   60 160 260 360 160 60 260 60 360 60
31736   90 190 290 390 190 90 290 90 390 90
31738 do_execsql_test joinD-1087 {
31739   SELECT t1.*, t2.*, t3.*, t4.*
31740   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
31741   RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
31742   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
31743   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31744 } {
31745   15 115 215 315   -  - 215 15 315 15
31746   30 130 230 330 130 30 230 30 330 30
31747   45 145 245 345   -  - 245 45 345 45
31748   60 160 260 360 160 60 260 60 360 60
31749   75 175 275 375   -  - 275 75 375 75
31750   90 190 290 390 190 90 290 90 390 90
31751    -   -   -   -   -  -   -  - 300  0
31752    -   -   -   -   -  -   -  - 305  5
31753    -   -   -   -   -  -   -  - 310 10
31754    -   -   -   -   -  -   -  - 320 20
31755    -   -   -   -   -  -   -  - 325 25
31756    -   -   -   -   -  -   -  - 335 35
31757    -   -   -   -   -  -   -  - 340 40
31758    -   -   -   -   -  -   -  - 350 50
31759    -   -   -   -   -  -   -  - 355 55
31760    -   -   -   -   -  -   -  - 365 65
31761    -   -   -   -   -  -   -  - 370 70
31762    -   -   -   -   -  -   -  - 380 80
31763    -   -   -   -   -  -   -  - 385 85
31764    -   -   -   -   -  -   -  - 395 95
31766 do_execsql_test joinD-1088 {
31767   SELECT t1.*, t2.*, t3.*, t4.*
31768   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
31769   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
31770   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
31771   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31772 } {
31773    3 103 203 303   -  - 203  3   -  -
31774    6 106 206 306 106  6 206  6   -  -
31775    9 109 209 309   -  - 209  9   -  -
31776   12 112 212 312 112 12 212 12   -  -
31777   15 115 215 315   -  - 215 15 315 15
31778   18 118 218 318 118 18 218 18   -  -
31779   21 121 221 321   -  - 221 21   -  -
31780   24 124 224 324 124 24 224 24   -  -
31781   27 127 227 327   -  - 227 27   -  -
31782   30 130 230 330 130 30 230 30 330 30
31783   33 133 233 333   -  - 233 33   -  -
31784   36 136 236 336 136 36 236 36   -  -
31785   39 139 239 339   -  - 239 39   -  -
31786   42 142 242 342 142 42 242 42   -  -
31787   45 145 245 345   -  - 245 45 345 45
31788   48 148 248 348 148 48 248 48   -  -
31789   51 151 251 351   -  - 251 51   -  -
31790   54 154 254 354 154 54 254 54   -  -
31791   57 157 257 357   -  - 257 57   -  -
31792   60 160 260 360 160 60 260 60 360 60
31793   63 163 263 363   -  - 263 63   -  -
31794   66 166 266 366 166 66 266 66   -  -
31795   69 169 269 369   -  - 269 69   -  -
31796   72 172 272 372 172 72 272 72   -  -
31797   75 175 275 375   -  - 275 75 375 75
31798   78 178 278 378 178 78 278 78   -  -
31799   81 181 281 381   -  - 281 81   -  -
31800   84 184 284 384 184 84 284 84   -  -
31801   87 187 287 387   -  - 287 87   -  -
31802   90 190 290 390 190 90 290 90 390 90
31803   93 193 293 393   -  - 293 93   -  -
31804    -   -   -   -   -  - 200  0   -  -
31805    -   -   -   -   -  -   -  - 300  0
31806    -   -   -   -   -  -   -  - 305  5
31807    -   -   -   -   -  -   -  - 310 10
31808    -   -   -   -   -  -   -  - 320 20
31809    -   -   -   -   -  -   -  - 325 25
31810    -   -   -   -   -  -   -  - 335 35
31811    -   -   -   -   -  -   -  - 340 40
31812    -   -   -   -   -  -   -  - 350 50
31813    -   -   -   -   -  -   -  - 355 55
31814    -   -   -   -   -  -   -  - 365 65
31815    -   -   -   -   -  -   -  - 370 70
31816    -   -   -   -   -  -   -  - 380 80
31817    -   -   -   -   -  -   -  - 385 85
31818    -   -   -   -   -  -   -  - 395 95
31820 do_execsql_test joinD-1089 {
31821   SELECT t1.*, t2.*, t3.*, t4.*
31822   FROM t1 FULL JOIN t2 ON t1.b=t2.b
31823   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
31824   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
31825   WHERE t2.x>0
31826   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31827 } {
31828    6 106 206 306 106  6 206  6   -  -
31829   12 112 212 312 112 12 212 12   -  -
31830   18 118 218 318 118 18 218 18   -  -
31831   24 124 224 324 124 24 224 24   -  -
31832   30 130 230 330 130 30 230 30 330 30
31833   36 136 236 336 136 36 236 36   -  -
31834   42 142 242 342 142 42 242 42   -  -
31835   48 148 248 348 148 48 248 48   -  -
31836   54 154 254 354 154 54 254 54   -  -
31837   60 160 260 360 160 60 260 60 360 60
31838   66 166 266 366 166 66 266 66   -  -
31839   72 172 272 372 172 72 272 72   -  -
31840   78 178 278 378 178 78 278 78   -  -
31841   84 184 284 384 184 84 284 84   -  -
31842   90 190 290 390 190 90 290 90 390 90
31844 do_execsql_test joinD-1090 {
31845   SELECT t1.*, t2.*, t3.*, t4.*
31846   FROM t1 FULL JOIN t2 ON t1.b=t2.b
31847   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
31848   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
31849   WHERE (t2.x>0 OR t2.x IS NULL)
31850   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31851 } {
31852    3 103 203 303   -  - 203  3   -  -
31853    6 106 206 306 106  6 206  6   -  -
31854    9 109 209 309   -  - 209  9   -  -
31855   12 112 212 312 112 12 212 12   -  -
31856   15 115 215 315   -  - 215 15 315 15
31857   18 118 218 318 118 18 218 18   -  -
31858   21 121 221 321   -  - 221 21   -  -
31859   24 124 224 324 124 24 224 24   -  -
31860   27 127 227 327   -  - 227 27   -  -
31861   30 130 230 330 130 30 230 30 330 30
31862   33 133 233 333   -  - 233 33   -  -
31863   36 136 236 336 136 36 236 36   -  -
31864   39 139 239 339   -  - 239 39   -  -
31865   42 142 242 342 142 42 242 42   -  -
31866   45 145 245 345   -  - 245 45 345 45
31867   48 148 248 348 148 48 248 48   -  -
31868   51 151 251 351   -  - 251 51   -  -
31869   54 154 254 354 154 54 254 54   -  -
31870   57 157 257 357   -  - 257 57   -  -
31871   60 160 260 360 160 60 260 60 360 60
31872   63 163 263 363   -  - 263 63   -  -
31873   66 166 266 366 166 66 266 66   -  -
31874   69 169 269 369   -  - 269 69   -  -
31875   72 172 272 372 172 72 272 72   -  -
31876   75 175 275 375   -  - 275 75 375 75
31877   78 178 278 378 178 78 278 78   -  -
31878   81 181 281 381   -  - 281 81   -  -
31879   84 184 284 384 184 84 284 84   -  -
31880   87 187 287 387   -  - 287 87   -  -
31881   90 190 290 390 190 90 290 90 390 90
31882   93 193 293 393   -  - 293 93   -  -
31883    -   -   -   -   -  - 200  0   -  -
31884    -   -   -   -   -  -   -  - 300  0
31885    -   -   -   -   -  -   -  - 305  5
31886    -   -   -   -   -  -   -  - 310 10
31887    -   -   -   -   -  -   -  - 320 20
31888    -   -   -   -   -  -   -  - 325 25
31889    -   -   -   -   -  -   -  - 335 35
31890    -   -   -   -   -  -   -  - 340 40
31891    -   -   -   -   -  -   -  - 350 50
31892    -   -   -   -   -  -   -  - 355 55
31893    -   -   -   -   -  -   -  - 365 65
31894    -   -   -   -   -  -   -  - 370 70
31895    -   -   -   -   -  -   -  - 380 80
31896    -   -   -   -   -  -   -  - 385 85
31897    -   -   -   -   -  -   -  - 395 95
31899 do_execsql_test joinD-1091 {
31900   SELECT t1.*, t2.*, t3.*, t4.*
31901   FROM t1 FULL JOIN t2 ON true
31902   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
31903   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
31904   WHERE t1.b=t2.b AND t2.x>0
31905   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31906 } {
31907    6 106 206 306 106  6 206  6   -  -
31908   12 112 212 312 112 12 212 12   -  -
31909   18 118 218 318 118 18 218 18   -  -
31910   24 124 224 324 124 24 224 24   -  -
31911   30 130 230 330 130 30 230 30 330 30
31912   36 136 236 336 136 36 236 36   -  -
31913   42 142 242 342 142 42 242 42   -  -
31914   48 148 248 348 148 48 248 48   -  -
31915   54 154 254 354 154 54 254 54   -  -
31916   60 160 260 360 160 60 260 60 360 60
31917   66 166 266 366 166 66 266 66   -  -
31918   72 172 272 372 172 72 272 72   -  -
31919   78 178 278 378 178 78 278 78   -  -
31920   84 184 284 384 184 84 284 84   -  -
31921   90 190 290 390 190 90 290 90 390 90
31923 do_execsql_test joinD-1092 {
31924   SELECT t1.*, t2.*, t3.*, t4.*
31925   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
31926   RIGHT JOIN t3 ON t1.c=t3.c
31927   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
31928   WHERE t3.y>0
31929   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31930 } {
31931    3 103 203 303   -  - 203  3   -  -
31932    6 106 206 306 106  6 206  6   -  -
31933    9 109 209 309   -  - 209  9   -  -
31934   12 112 212 312 112 12 212 12   -  -
31935   15 115 215 315   -  - 215 15 315 15
31936   18 118 218 318 118 18 218 18   -  -
31937   21 121 221 321   -  - 221 21   -  -
31938   24 124 224 324 124 24 224 24   -  -
31939   27 127 227 327   -  - 227 27   -  -
31940   30 130 230 330 130 30 230 30 330 30
31941   33 133 233 333   -  - 233 33   -  -
31942   36 136 236 336 136 36 236 36   -  -
31943   39 139 239 339   -  - 239 39   -  -
31944   42 142 242 342 142 42 242 42   -  -
31945   45 145 245 345   -  - 245 45 345 45
31946   48 148 248 348 148 48 248 48   -  -
31947   51 151 251 351   -  - 251 51   -  -
31948   54 154 254 354 154 54 254 54   -  -
31949   57 157 257 357   -  - 257 57   -  -
31950   60 160 260 360 160 60 260 60 360 60
31951   63 163 263 363   -  - 263 63   -  -
31952   66 166 266 366 166 66 266 66   -  -
31953   69 169 269 369   -  - 269 69   -  -
31954   72 172 272 372 172 72 272 72   -  -
31955   75 175 275 375   -  - 275 75 375 75
31956   78 178 278 378 178 78 278 78   -  -
31957   81 181 281 381   -  - 281 81   -  -
31958   84 184 284 384 184 84 284 84   -  -
31959   87 187 287 387   -  - 287 87   -  -
31960   90 190 290 390 190 90 290 90 390 90
31961   93 193 293 393   -  - 293 93   -  -
31963 do_execsql_test joinD-1093 {
31964   SELECT t1.*, t2.*, t3.*, t4.*
31965   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
31966   RIGHT JOIN t3 ON t1.c=t3.c
31967   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
31968   WHERE t3.y>0 OR t3.y IS NULL
31969   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
31970 } {
31971    3 103 203 303   -  - 203  3   -  -
31972    6 106 206 306 106  6 206  6   -  -
31973    9 109 209 309   -  - 209  9   -  -
31974   12 112 212 312 112 12 212 12   -  -
31975   15 115 215 315   -  - 215 15 315 15
31976   18 118 218 318 118 18 218 18   -  -
31977   21 121 221 321   -  - 221 21   -  -
31978   24 124 224 324 124 24 224 24   -  -
31979   27 127 227 327   -  - 227 27   -  -
31980   30 130 230 330 130 30 230 30 330 30
31981   33 133 233 333   -  - 233 33   -  -
31982   36 136 236 336 136 36 236 36   -  -
31983   39 139 239 339   -  - 239 39   -  -
31984   42 142 242 342 142 42 242 42   -  -
31985   45 145 245 345   -  - 245 45 345 45
31986   48 148 248 348 148 48 248 48   -  -
31987   51 151 251 351   -  - 251 51   -  -
31988   54 154 254 354 154 54 254 54   -  -
31989   57 157 257 357   -  - 257 57   -  -
31990   60 160 260 360 160 60 260 60 360 60
31991   63 163 263 363   -  - 263 63   -  -
31992   66 166 266 366 166 66 266 66   -  -
31993   69 169 269 369   -  - 269 69   -  -
31994   72 172 272 372 172 72 272 72   -  -
31995   75 175 275 375   -  - 275 75 375 75
31996   78 178 278 378 178 78 278 78   -  -
31997   81 181 281 381   -  - 281 81   -  -
31998   84 184 284 384 184 84 284 84   -  -
31999   87 187 287 387   -  - 287 87   -  -
32000   90 190 290 390 190 90 290 90 390 90
32001   93 193 293 393   -  - 293 93   -  -
32002    -   -   -   -   -  -   -  - 300  0
32003    -   -   -   -   -  -   -  - 305  5
32004    -   -   -   -   -  -   -  - 310 10
32005    -   -   -   -   -  -   -  - 320 20
32006    -   -   -   -   -  -   -  - 325 25
32007    -   -   -   -   -  -   -  - 335 35
32008    -   -   -   -   -  -   -  - 340 40
32009    -   -   -   -   -  -   -  - 350 50
32010    -   -   -   -   -  -   -  - 355 55
32011    -   -   -   -   -  -   -  - 365 65
32012    -   -   -   -   -  -   -  - 370 70
32013    -   -   -   -   -  -   -  - 380 80
32014    -   -   -   -   -  -   -  - 385 85
32015    -   -   -   -   -  -   -  - 395 95
32017 do_execsql_test joinD-1094 {
32018   SELECT t1.*, t2.*, t3.*, t4.*
32019   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
32020   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
32021   FULL JOIN t4 ON t1.d=t4.d
32022   WHERE t4.z>0
32023   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32024 } {
32025   15 115 215 315   -  - 215 15 315 15
32026   30 130 230 330 130 30 230 30 330 30
32027   45 145 245 345   -  - 245 45 345 45
32028   60 160 260 360 160 60 260 60 360 60
32029   75 175 275 375   -  - 275 75 375 75
32030   90 190 290 390 190 90 290 90 390 90
32031    -   -   -   -   -  -   -  - 305  5
32032    -   -   -   -   -  -   -  - 310 10
32033    -   -   -   -   -  -   -  - 320 20
32034    -   -   -   -   -  -   -  - 325 25
32035    -   -   -   -   -  -   -  - 335 35
32036    -   -   -   -   -  -   -  - 340 40
32037    -   -   -   -   -  -   -  - 350 50
32038    -   -   -   -   -  -   -  - 355 55
32039    -   -   -   -   -  -   -  - 365 65
32040    -   -   -   -   -  -   -  - 370 70
32041    -   -   -   -   -  -   -  - 380 80
32042    -   -   -   -   -  -   -  - 385 85
32043    -   -   -   -   -  -   -  - 395 95
32045 do_execsql_test joinD-1095 {
32046   SELECT t1.*, t2.*, t3.*, t4.*
32047   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
32048   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
32049   FULL JOIN t4 ON t1.d=t4.d
32050   WHERE t4.z IS NULL OR t4.z>0
32051   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32052 } {
32053    3 103 203 303   -  - 203  3   -  -
32054    6 106 206 306 106  6 206  6   -  -
32055    9 109 209 309   -  - 209  9   -  -
32056   12 112 212 312 112 12 212 12   -  -
32057   15 115 215 315   -  - 215 15 315 15
32058   18 118 218 318 118 18 218 18   -  -
32059   21 121 221 321   -  - 221 21   -  -
32060   24 124 224 324 124 24 224 24   -  -
32061   27 127 227 327   -  - 227 27   -  -
32062   30 130 230 330 130 30 230 30 330 30
32063   33 133 233 333   -  - 233 33   -  -
32064   36 136 236 336 136 36 236 36   -  -
32065   39 139 239 339   -  - 239 39   -  -
32066   42 142 242 342 142 42 242 42   -  -
32067   45 145 245 345   -  - 245 45 345 45
32068   48 148 248 348 148 48 248 48   -  -
32069   51 151 251 351   -  - 251 51   -  -
32070   54 154 254 354 154 54 254 54   -  -
32071   57 157 257 357   -  - 257 57   -  -
32072   60 160 260 360 160 60 260 60 360 60
32073   63 163 263 363   -  - 263 63   -  -
32074   66 166 266 366 166 66 266 66   -  -
32075   69 169 269 369   -  - 269 69   -  -
32076   72 172 272 372 172 72 272 72   -  -
32077   75 175 275 375   -  - 275 75 375 75
32078   78 178 278 378 178 78 278 78   -  -
32079   81 181 281 381   -  - 281 81   -  -
32080   84 184 284 384 184 84 284 84   -  -
32081   87 187 287 387   -  - 287 87   -  -
32082   90 190 290 390 190 90 290 90 390 90
32083   93 193 293 393   -  - 293 93   -  -
32084    -   -   -   -   -  - 200  0   -  -
32085    -   -   -   -   -  -   -  - 305  5
32086    -   -   -   -   -  -   -  - 310 10
32087    -   -   -   -   -  -   -  - 320 20
32088    -   -   -   -   -  -   -  - 325 25
32089    -   -   -   -   -  -   -  - 335 35
32090    -   -   -   -   -  -   -  - 340 40
32091    -   -   -   -   -  -   -  - 350 50
32092    -   -   -   -   -  -   -  - 355 55
32093    -   -   -   -   -  -   -  - 365 65
32094    -   -   -   -   -  -   -  - 370 70
32095    -   -   -   -   -  -   -  - 380 80
32096    -   -   -   -   -  -   -  - 385 85
32097    -   -   -   -   -  -   -  - 395 95
32099 do_execsql_test joinD-1096 {
32100   SELECT t1.*, t2.*, t3.*, t4.*
32101   FROM t1 FULL JOIN t2 ON t1.b=t2.b
32102   RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
32103   FULL JOIN t4 ON t1.d=t4.d
32104   WHERE t2.x>0 AND t4.z>0
32105   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32106 } {
32107   30 130 230 330 130 30 230 30 330 30
32108   60 160 260 360 160 60 260 60 360 60
32109   90 190 290 390 190 90 290 90 390 90
32111 do_execsql_test joinD-1097 {
32112   SELECT t1.*, t2.*, t3.*, t4.*
32113   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
32114   RIGHT JOIN t3 ON t1.c=t3.c
32115   FULL JOIN t4 ON t1.d=t4.d
32116   WHERE t4.z>0 AND t3.y>0
32117   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32118 } {
32119   15 115 215 315   -  - 215 15 315 15
32120   30 130 230 330 130 30 230 30 330 30
32121   45 145 245 345   -  - 245 45 345 45
32122   60 160 260 360 160 60 260 60 360 60
32123   75 175 275 375   -  - 275 75 375 75
32124   90 190 290 390 190 90 290 90 390 90
32126 do_execsql_test joinD-1098 {
32127   SELECT t1.*, t2.*, t3.*, t4.*
32128   FROM t1 FULL JOIN t2 ON t1.b=t2.b
32129   RIGHT JOIN t3 ON t1.c=t3.c
32130   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
32131   WHERE t2.x>0 AND t3.y>0
32132   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32133 } {
32134    6 106 206 306 106  6 206  6   -  -
32135   12 112 212 312 112 12 212 12   -  -
32136   18 118 218 318 118 18 218 18   -  -
32137   24 124 224 324 124 24 224 24   -  -
32138   30 130 230 330 130 30 230 30 330 30
32139   36 136 236 336 136 36 236 36   -  -
32140   42 142 242 342 142 42 242 42   -  -
32141   48 148 248 348 148 48 248 48   -  -
32142   54 154 254 354 154 54 254 54   -  -
32143   60 160 260 360 160 60 260 60 360 60
32144   66 166 266 366 166 66 266 66   -  -
32145   72 172 272 372 172 72 272 72   -  -
32146   78 178 278 378 178 78 278 78   -  -
32147   84 184 284 384 184 84 284 84   -  -
32148   90 190 290 390 190 90 290 90 390 90
32150 do_execsql_test joinD-1099 {
32151   SELECT t1.*, t2.*, t3.*, t4.*
32152   FROM t1 FULL JOIN t2 ON t1.b=t2.b
32153   RIGHT JOIN t3 ON t1.c=t3.c
32154   FULL JOIN t4 ON t1.d=t4.d
32155   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
32156   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32157 } {
32158   30 130 230 330 130 30 230 30 330 30
32159   60 160 260 360 160 60 260 60 360 60
32160   90 190 290 390 190 90 290 90 390 90
32162 do_execsql_test joinD-1100 {
32163   SELECT t1.*, t2.*, t3.*, t4.*
32164   FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
32165   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
32166   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
32167   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32168 } {
32169    3 103 203 303   -  - 203  3   -  -
32170    6 106 206 306 106  6 206  6   -  -
32171    9 109 209 309   -  - 209  9   -  -
32172   12 112 212 312 112 12 212 12   -  -
32173   15 115 215 315   -  - 215 15 315 15
32174   18 118 218 318 118 18 218 18   -  -
32175   21 121 221 321   -  - 221 21   -  -
32176   24 124 224 324 124 24 224 24   -  -
32177   27 127 227 327   -  - 227 27   -  -
32178   30 130 230 330 130 30 230 30 330 30
32179   33 133 233 333   -  - 233 33   -  -
32180   36 136 236 336 136 36 236 36   -  -
32181   39 139 239 339   -  - 239 39   -  -
32182   42 142 242 342 142 42 242 42   -  -
32183   45 145 245 345   -  - 245 45 345 45
32184   48 148 248 348 148 48 248 48   -  -
32185   51 151 251 351   -  - 251 51   -  -
32186   54 154 254 354 154 54 254 54   -  -
32187   57 157 257 357   -  - 257 57   -  -
32188   60 160 260 360 160 60 260 60 360 60
32189   63 163 263 363   -  - 263 63   -  -
32190   66 166 266 366 166 66 266 66   -  -
32191   69 169 269 369   -  - 269 69   -  -
32192   72 172 272 372 172 72 272 72   -  -
32193   75 175 275 375   -  - 275 75 375 75
32194   78 178 278 378 178 78 278 78   -  -
32195   81 181 281 381   -  - 281 81   -  -
32196   84 184 284 384 184 84 284 84   -  -
32197   87 187 287 387   -  - 287 87   -  -
32198   90 190 290 390 190 90 290 90 390 90
32199   93 193 293 393   -  - 293 93   -  -
32200    -   -   -   -   -  - 200  0   -  -
32201    -   -   -   -   -  -   -  - 300  0
32202    -   -   -   -   -  -   -  - 305  5
32203    -   -   -   -   -  -   -  - 310 10
32204    -   -   -   -   -  -   -  - 320 20
32205    -   -   -   -   -  -   -  - 325 25
32206    -   -   -   -   -  -   -  - 335 35
32207    -   -   -   -   -  -   -  - 340 40
32208    -   -   -   -   -  -   -  - 350 50
32209    -   -   -   -   -  -   -  - 355 55
32210    -   -   -   -   -  -   -  - 365 65
32211    -   -   -   -   -  -   -  - 370 70
32212    -   -   -   -   -  -   -  - 380 80
32213    -   -   -   -   -  -   -  - 385 85
32214    -   -   -   -   -  -   -  - 395 95
32216 do_execsql_test joinD-1101 {
32217   SELECT t1.*, t2.*, t3.*, t4.*
32218   FROM t1 FULL JOIN t2 ON t2.x>0
32219   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
32220   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
32221   WHERE t1.b = t2.b
32222   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32223 } {
32224    6 106 206 306 106  6 206  6   -  -
32225   12 112 212 312 112 12 212 12   -  -
32226   18 118 218 318 118 18 218 18   -  -
32227   24 124 224 324 124 24 224 24   -  -
32228   30 130 230 330 130 30 230 30 330 30
32229   36 136 236 336 136 36 236 36   -  -
32230   42 142 242 342 142 42 242 42   -  -
32231   48 148 248 348 148 48 248 48   -  -
32232   54 154 254 354 154 54 254 54   -  -
32233   60 160 260 360 160 60 260 60 360 60
32234   66 166 266 366 166 66 266 66   -  -
32235   72 172 272 372 172 72 272 72   -  -
32236   78 178 278 378 178 78 278 78   -  -
32237   84 184 284 384 184 84 284 84   -  -
32238   90 190 290 390 190 90 290 90 390 90
32240 do_execsql_test joinD-1102 {
32241   SELECT t1.*, t2.*, t3.*, t4.*
32242   FROM t1 FULL JOIN t2 ON t2.x>0
32243   RIGHT JOIN t3 ON t3.y>0
32244   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
32245   WHERE t1.b = t2.b AND t1.c IS NOT DISTINCT FROM t3.c
32246   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32247 } {
32248    6 106 206 306 106  6 206  6   -  -
32249   12 112 212 312 112 12 212 12   -  -
32250   18 118 218 318 118 18 218 18   -  -
32251   24 124 224 324 124 24 224 24   -  -
32252   30 130 230 330 130 30 230 30 330 30
32253   36 136 236 336 136 36 236 36   -  -
32254   42 142 242 342 142 42 242 42   -  -
32255   48 148 248 348 148 48 248 48   -  -
32256   54 154 254 354 154 54 254 54   -  -
32257   60 160 260 360 160 60 260 60 360 60
32258   66 166 266 366 166 66 266 66   -  -
32259   72 172 272 372 172 72 272 72   -  -
32260   78 178 278 378 178 78 278 78   -  -
32261   84 184 284 384 184 84 284 84   -  -
32262   90 190 290 390 190 90 290 90 390 90
32264 do_execsql_test joinD-1103 {
32265   SELECT t1.*, t2.*, t3.*, t4.*
32266   FROM t1 FULL JOIN t2 ON t2.x>0
32267   RIGHT JOIN t3 ON t1.c IS NOT DISTINCT FROM t3.c AND t3.y>0
32268   FULL JOIN t4 ON t4.z>0
32269   WHERE t1.b = t2.b AND t1.d = t4.d
32270   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32271 } {
32272   30 130 230 330 130 30 230 30 330 30
32273   60 160 260 360 160 60 260 60 360 60
32274   90 190 290 390 190 90 290 90 390 90
32276 do_execsql_test joinD-1104 {
32277   SELECT t1.*, t2.*, t3.*, t4.*
32278   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
32279   RIGHT JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0
32280   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
32281   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32282 } {
32283    3 103 203 303   -  - 203  3   -  -
32284    6 106 206 306 106  6 206  6   -  -
32285    9 109 209 309   -  - 209  9   -  -
32286   12 112 212 312 112 12 212 12   -  -
32287   15 115 215 315   -  - 215 15 315 15
32288   18 118 218 318 118 18 218 18   -  -
32289   21 121 221 321   -  - 221 21   -  -
32290   24 124 224 324 124 24 224 24   -  -
32291   27 127 227 327   -  - 227 27   -  -
32292   30 130 230 330 130 30 230 30 330 30
32293   33 133 233 333   -  - 233 33   -  -
32294   36 136 236 336 136 36 236 36   -  -
32295   39 139 239 339   -  - 239 39   -  -
32296   42 142 242 342 142 42 242 42   -  -
32297   45 145 245 345   -  - 245 45 345 45
32298   48 148 248 348 148 48 248 48   -  -
32299   51 151 251 351   -  - 251 51   -  -
32300   54 154 254 354 154 54 254 54   -  -
32301   57 157 257 357   -  - 257 57   -  -
32302   60 160 260 360 160 60 260 60 360 60
32303   63 163 263 363   -  - 263 63   -  -
32304   66 166 266 366 166 66 266 66   -  -
32305   69 169 269 369   -  - 269 69   -  -
32306   72 172 272 372 172 72 272 72   -  -
32307   75 175 275 375   -  - 275 75 375 75
32308   78 178 278 378 178 78 278 78   -  -
32309   81 181 281 381   -  - 281 81   -  -
32310   84 184 284 384 184 84 284 84   -  -
32311   87 187 287 387   -  - 287 87   -  -
32312   90 190 290 390 190 90 290 90 390 90
32313   93 193 293 393   -  - 293 93   -  -
32314    -   -   -   -   -  - 200  0   -  -
32315    -   -   -   -   -  -   -  - 300  0
32316    -   -   -   -   -  -   -  - 305  5
32317    -   -   -   -   -  -   -  - 310 10
32318    -   -   -   -   -  -   -  - 320 20
32319    -   -   -   -   -  -   -  - 325 25
32320    -   -   -   -   -  -   -  - 335 35
32321    -   -   -   -   -  -   -  - 340 40
32322    -   -   -   -   -  -   -  - 350 50
32323    -   -   -   -   -  -   -  - 355 55
32324    -   -   -   -   -  -   -  - 365 65
32325    -   -   -   -   -  -   -  - 370 70
32326    -   -   -   -   -  -   -  - 380 80
32327    -   -   -   -   -  -   -  - 385 85
32328    -   -   -   -   -  -   -  - 395 95
32330 do_execsql_test joinD-1105 {
32331   SELECT t1.*, t2.*, t3.*, t4.*
32332   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
32333   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
32334   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
32335   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32336 } {
32337    5 105 205 305   -  -   -  - 305  5
32338   10 110 210 310 110 10   -  - 310 10
32339   15 115 215 315   -  - 215 15 315 15
32340   20 120 220 320 120 20   -  - 320 20
32341   25 125 225 325   -  -   -  - 325 25
32342   30 130 230 330 130 30 230 30 330 30
32343   35 135 235 335   -  -   -  - 335 35
32344   40 140 240 340 140 40   -  - 340 40
32345   45 145 245 345   -  - 245 45 345 45
32346   50 150 250 350 150 50   -  - 350 50
32347   55 155 255 355   -  -   -  - 355 55
32348   60 160 260 360 160 60 260 60 360 60
32349   65 165 265 365   -  -   -  - 365 65
32350   70 170 270 370 170 70   -  - 370 70
32351   75 175 275 375   -  - 275 75 375 75
32352   80 180 280 380 180 80   -  - 380 80
32353   85 185 285 385   -  -   -  - 385 85
32354   90 190 290 390 190 90 290 90 390 90
32355   95 195 295 395   -  -   -  - 395 95
32357 do_execsql_test joinD-1106 {
32358   SELECT t1.*, t2.*, t3.*, t4.*
32359   FROM t1 FULL JOIN t2 ON t1.b=t2.b
32360   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
32361   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
32362   WHERE t2.x>0
32363   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32364 } {
32365   10 110 210 310 110 10   -  - 310 10
32366   20 120 220 320 120 20   -  - 320 20
32367   30 130 230 330 130 30 230 30 330 30
32368   40 140 240 340 140 40   -  - 340 40
32369   50 150 250 350 150 50   -  - 350 50
32370   60 160 260 360 160 60 260 60 360 60
32371   70 170 270 370 170 70   -  - 370 70
32372   80 180 280 380 180 80   -  - 380 80
32373   90 190 290 390 190 90 290 90 390 90
32375 do_execsql_test joinD-1107 {
32376   SELECT t1.*, t2.*, t3.*, t4.*
32377   FROM t1 FULL JOIN t2 ON t1.b=t2.b
32378   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
32379   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
32380   WHERE (t2.x>0 OR t2.x IS NULL)
32381   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32382 } {
32383    5 105 205 305   -  -   -  - 305  5
32384   10 110 210 310 110 10   -  - 310 10
32385   15 115 215 315   -  - 215 15 315 15
32386   20 120 220 320 120 20   -  - 320 20
32387   25 125 225 325   -  -   -  - 325 25
32388   30 130 230 330 130 30 230 30 330 30
32389   35 135 235 335   -  -   -  - 335 35
32390   40 140 240 340 140 40   -  - 340 40
32391   45 145 245 345   -  - 245 45 345 45
32392   50 150 250 350 150 50   -  - 350 50
32393   55 155 255 355   -  -   -  - 355 55
32394   60 160 260 360 160 60 260 60 360 60
32395   65 165 265 365   -  -   -  - 365 65
32396   70 170 270 370 170 70   -  - 370 70
32397   75 175 275 375   -  - 275 75 375 75
32398   80 180 280 380 180 80   -  - 380 80
32399   85 185 285 385   -  -   -  - 385 85
32400   90 190 290 390 190 90 290 90 390 90
32401   95 195 295 395   -  -   -  - 395 95
32403 do_execsql_test joinD-1108 {
32404   SELECT t1.*, t2.*, t3.*, t4.*
32405   FROM t1 FULL JOIN t2 ON true
32406   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
32407   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
32408   WHERE t1.b=t2.b AND t2.x>0
32409   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32410 } {
32411   10 110 210 310 110 10   -  - 310 10
32412   20 120 220 320 120 20   -  - 320 20
32413   30 130 230 330 130 30 230 30 330 30
32414   40 140 240 340 140 40   -  - 340 40
32415   50 150 250 350 150 50   -  - 350 50
32416   60 160 260 360 160 60 260 60 360 60
32417   70 170 270 370 170 70   -  - 370 70
32418   80 180 280 380 180 80   -  - 380 80
32419   90 190 290 390 190 90 290 90 390 90
32421 do_execsql_test joinD-1109 {
32422   SELECT t1.*, t2.*, t3.*, t4.*
32423   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
32424   FULL JOIN t3 ON t1.c=t3.c
32425   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
32426   WHERE t3.y>0
32427   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32428 } {
32429   15 115 215 315   -  - 215 15 315 15
32430   30 130 230 330 130 30 230 30 330 30
32431   45 145 245 345   -  - 245 45 345 45
32432   60 160 260 360 160 60 260 60 360 60
32433   75 175 275 375   -  - 275 75 375 75
32434   90 190 290 390 190 90 290 90 390 90
32436 do_execsql_test joinD-1110 {
32437   SELECT t1.*, t2.*, t3.*, t4.*
32438   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
32439   FULL JOIN t3 ON t1.c=t3.c
32440   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
32441   WHERE t3.y>0 OR t3.y IS NULL
32442   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32443 } {
32444    5 105 205 305   -  -   -  - 305  5
32445   10 110 210 310 110 10   -  - 310 10
32446   15 115 215 315   -  - 215 15 315 15
32447   20 120 220 320 120 20   -  - 320 20
32448   25 125 225 325   -  -   -  - 325 25
32449   30 130 230 330 130 30 230 30 330 30
32450   35 135 235 335   -  -   -  - 335 35
32451   40 140 240 340 140 40   -  - 340 40
32452   45 145 245 345   -  - 245 45 345 45
32453   50 150 250 350 150 50   -  - 350 50
32454   55 155 255 355   -  -   -  - 355 55
32455   60 160 260 360 160 60 260 60 360 60
32456   65 165 265 365   -  -   -  - 365 65
32457   70 170 270 370 170 70   -  - 370 70
32458   75 175 275 375   -  - 275 75 375 75
32459   80 180 280 380 180 80   -  - 380 80
32460   85 185 285 385   -  -   -  - 385 85
32461   90 190 290 390 190 90 290 90 390 90
32462   95 195 295 395   -  -   -  - 395 95
32464 do_execsql_test joinD-1111 {
32465   SELECT t1.*, t2.*, t3.*, t4.*
32466   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
32467   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
32468   INNER JOIN t4 ON t1.d=t4.d
32469   WHERE t4.z>0
32470   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32471 } {
32472    5 105 205 305   -  -   -  - 305  5
32473   10 110 210 310 110 10   -  - 310 10
32474   15 115 215 315   -  - 215 15 315 15
32475   20 120 220 320 120 20   -  - 320 20
32476   25 125 225 325   -  -   -  - 325 25
32477   30 130 230 330 130 30 230 30 330 30
32478   35 135 235 335   -  -   -  - 335 35
32479   40 140 240 340 140 40   -  - 340 40
32480   45 145 245 345   -  - 245 45 345 45
32481   50 150 250 350 150 50   -  - 350 50
32482   55 155 255 355   -  -   -  - 355 55
32483   60 160 260 360 160 60 260 60 360 60
32484   65 165 265 365   -  -   -  - 365 65
32485   70 170 270 370 170 70   -  - 370 70
32486   75 175 275 375   -  - 275 75 375 75
32487   80 180 280 380 180 80   -  - 380 80
32488   85 185 285 385   -  -   -  - 385 85
32489   90 190 290 390 190 90 290 90 390 90
32490   95 195 295 395   -  -   -  - 395 95
32492 do_execsql_test joinD-1112 {
32493   SELECT t1.*, t2.*, t3.*, t4.*
32494   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
32495   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
32496   INNER JOIN t4 ON t1.d=t4.d
32497   WHERE t4.z IS NULL OR t4.z>0
32498   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32499 } {
32500    5 105 205 305   -  -   -  - 305  5
32501   10 110 210 310 110 10   -  - 310 10
32502   15 115 215 315   -  - 215 15 315 15
32503   20 120 220 320 120 20   -  - 320 20
32504   25 125 225 325   -  -   -  - 325 25
32505   30 130 230 330 130 30 230 30 330 30
32506   35 135 235 335   -  -   -  - 335 35
32507   40 140 240 340 140 40   -  - 340 40
32508   45 145 245 345   -  - 245 45 345 45
32509   50 150 250 350 150 50   -  - 350 50
32510   55 155 255 355   -  -   -  - 355 55
32511   60 160 260 360 160 60 260 60 360 60
32512   65 165 265 365   -  -   -  - 365 65
32513   70 170 270 370 170 70   -  - 370 70
32514   75 175 275 375   -  - 275 75 375 75
32515   80 180 280 380 180 80   -  - 380 80
32516   85 185 285 385   -  -   -  - 385 85
32517   90 190 290 390 190 90 290 90 390 90
32518   95 195 295 395   -  -   -  - 395 95
32520 do_execsql_test joinD-1113 {
32521   SELECT t1.*, t2.*, t3.*, t4.*
32522   FROM t1 FULL JOIN t2 ON t1.b=t2.b
32523   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
32524   INNER JOIN t4 ON t1.d=t4.d
32525   WHERE t2.x>0 AND t4.z>0
32526   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32527 } {
32528   10 110 210 310 110 10   -  - 310 10
32529   20 120 220 320 120 20   -  - 320 20
32530   30 130 230 330 130 30 230 30 330 30
32531   40 140 240 340 140 40   -  - 340 40
32532   50 150 250 350 150 50   -  - 350 50
32533   60 160 260 360 160 60 260 60 360 60
32534   70 170 270 370 170 70   -  - 370 70
32535   80 180 280 380 180 80   -  - 380 80
32536   90 190 290 390 190 90 290 90 390 90
32538 do_execsql_test joinD-1114 {
32539   SELECT t1.*, t2.*, t3.*, t4.*
32540   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
32541   FULL JOIN t3 ON t1.c=t3.c
32542   INNER JOIN t4 ON t1.d=t4.d
32543   WHERE t4.z>0 AND t3.y>0
32544   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32545 } {
32546   15 115 215 315   -  - 215 15 315 15
32547   30 130 230 330 130 30 230 30 330 30
32548   45 145 245 345   -  - 245 45 345 45
32549   60 160 260 360 160 60 260 60 360 60
32550   75 175 275 375   -  - 275 75 375 75
32551   90 190 290 390 190 90 290 90 390 90
32553 do_execsql_test joinD-1115 {
32554   SELECT t1.*, t2.*, t3.*, t4.*
32555   FROM t1 FULL JOIN t2 ON t1.b=t2.b
32556   FULL JOIN t3 ON t1.c=t3.c
32557   INNER JOIN t4 ON t1.d=t4.d AND t4.z>0
32558   WHERE t2.x>0 AND t3.y>0
32559   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32560 } {
32561   30 130 230 330 130 30 230 30 330 30
32562   60 160 260 360 160 60 260 60 360 60
32563   90 190 290 390 190 90 290 90 390 90
32565 do_execsql_test joinD-1116 {
32566   SELECT t1.*, t2.*, t3.*, t4.*
32567   FROM t1 FULL JOIN t2 ON t1.b=t2.b
32568   FULL JOIN t3 ON t1.c=t3.c
32569   INNER JOIN t4 ON t1.d=t4.d
32570   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
32571   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32572 } {
32573   30 130 230 330 130 30 230 30 330 30
32574   60 160 260 360 160 60 260 60 360 60
32575   90 190 290 390 190 90 290 90 390 90
32577 do_execsql_test joinD-1117 {
32578   SELECT t1.*, t2.*, t3.*, t4.*
32579   FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
32580   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
32581   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
32582   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32583 } {
32584    5 105 205 305   -  -   -  - 305  5
32585   10 110 210 310 110 10   -  - 310 10
32586   15 115 215 315   -  - 215 15 315 15
32587   20 120 220 320 120 20   -  - 320 20
32588   25 125 225 325   -  -   -  - 325 25
32589   30 130 230 330 130 30 230 30 330 30
32590   35 135 235 335   -  -   -  - 335 35
32591   40 140 240 340 140 40   -  - 340 40
32592   45 145 245 345   -  - 245 45 345 45
32593   50 150 250 350 150 50   -  - 350 50
32594   55 155 255 355   -  -   -  - 355 55
32595   60 160 260 360 160 60 260 60 360 60
32596   65 165 265 365   -  -   -  - 365 65
32597   70 170 270 370 170 70   -  - 370 70
32598   75 175 275 375   -  - 275 75 375 75
32599   80 180 280 380 180 80   -  - 380 80
32600   85 185 285 385   -  -   -  - 385 85
32601   90 190 290 390 190 90 290 90 390 90
32602   95 195 295 395   -  -   -  - 395 95
32604 do_execsql_test joinD-1118 {
32605   SELECT t1.*, t2.*, t3.*, t4.*
32606   FROM t1 FULL JOIN t2 ON t2.x>0
32607   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
32608   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
32609   WHERE t1.b = t2.b
32610   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32611 } {
32612   10 110 210 310 110 10   -  - 310 10
32613   20 120 220 320 120 20   -  - 320 20
32614   30 130 230 330 130 30 230 30 330 30
32615   40 140 240 340 140 40   -  - 340 40
32616   50 150 250 350 150 50   -  - 350 50
32617   60 160 260 360 160 60 260 60 360 60
32618   70 170 270 370 170 70   -  - 370 70
32619   80 180 280 380 180 80   -  - 380 80
32620   90 190 290 390 190 90 290 90 390 90
32622 do_execsql_test joinD-1119 {
32623   SELECT t1.*, t2.*, t3.*, t4.*
32624   FROM t1 FULL JOIN t2 ON t2.x>0
32625   FULL JOIN t3 ON t3.y>0
32626   INNER JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
32627   WHERE t1.b = t2.b AND t1.c = t3.c
32628   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32629 } {
32630   30 130 230 330 130 30 230 30 330 30
32631   60 160 260 360 160 60 260 60 360 60
32632   90 190 290 390 190 90 290 90 390 90
32634 do_execsql_test joinD-1120 {
32635   SELECT t1.*, t2.*, t3.*, t4.*
32636   FROM t1 FULL JOIN t2 ON t2.x>0
32637   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
32638   INNER JOIN t4 ON t4.z>0
32639   WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
32640   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32641 } {
32642   10 110 210 310 110 10   -  - 310 10
32643   20 120 220 320 120 20   -  - 320 20
32644   30 130 230 330 130 30 230 30 330 30
32645   40 140 240 340 140 40   -  - 340 40
32646   50 150 250 350 150 50   -  - 350 50
32647   60 160 260 360 160 60 260 60 360 60
32648   70 170 270 370 170 70   -  - 370 70
32649   80 180 280 380 180 80   -  - 380 80
32650   90 190 290 390 190 90 290 90 390 90
32652 do_execsql_test joinD-1121 {
32653   SELECT t1.*, t2.*, t3.*, t4.*
32654   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
32655   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
32656   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
32657   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32658 } {
32659    0 100 200 300   -  -   -  -   -  -
32660    1 101 201 301   -  -   -  -   -  -
32661    2 102 202 302 102  2   -  -   -  -
32662    3 103 203 303   -  - 203  3   -  -
32663    4 104 204 304 104  4   -  -   -  -
32664    5 105 205 305   -  -   -  - 305  5
32665    6 106 206 306 106  6 206  6   -  -
32666    7 107 207 307   -  -   -  -   -  -
32667    8 108 208 308 108  8   -  -   -  -
32668    9 109 209 309   -  - 209  9   -  -
32669   10 110 210 310 110 10   -  - 310 10
32670   11 111 211 311   -  -   -  -   -  -
32671   12 112 212 312 112 12 212 12   -  -
32672   13 113 213 313   -  -   -  -   -  -
32673   14 114 214 314 114 14   -  -   -  -
32674   15 115 215 315   -  - 215 15 315 15
32675   16 116 216 316 116 16   -  -   -  -
32676   17 117 217 317   -  -   -  -   -  -
32677   18 118 218 318 118 18 218 18   -  -
32678   19 119 219 319   -  -   -  -   -  -
32679   20 120 220 320 120 20   -  - 320 20
32680   21 121 221 321   -  - 221 21   -  -
32681   22 122 222 322 122 22   -  -   -  -
32682   23 123 223 323   -  -   -  -   -  -
32683   24 124 224 324 124 24 224 24   -  -
32684   25 125 225 325   -  -   -  - 325 25
32685   26 126 226 326 126 26   -  -   -  -
32686   27 127 227 327   -  - 227 27   -  -
32687   28 128 228 328 128 28   -  -   -  -
32688   29 129 229 329   -  -   -  -   -  -
32689   30 130 230 330 130 30 230 30 330 30
32690   31 131 231 331   -  -   -  -   -  -
32691   32 132 232 332 132 32   -  -   -  -
32692   33 133 233 333   -  - 233 33   -  -
32693   34 134 234 334 134 34   -  -   -  -
32694   35 135 235 335   -  -   -  - 335 35
32695   36 136 236 336 136 36 236 36   -  -
32696   37 137 237 337   -  -   -  -   -  -
32697   38 138 238 338 138 38   -  -   -  -
32698   39 139 239 339   -  - 239 39   -  -
32699   40 140 240 340 140 40   -  - 340 40
32700   41 141 241 341   -  -   -  -   -  -
32701   42 142 242 342 142 42 242 42   -  -
32702   43 143 243 343   -  -   -  -   -  -
32703   44 144 244 344 144 44   -  -   -  -
32704   45 145 245 345   -  - 245 45 345 45
32705   46 146 246 346 146 46   -  -   -  -
32706   47 147 247 347   -  -   -  -   -  -
32707   48 148 248 348 148 48 248 48   -  -
32708   49 149 249 349   -  -   -  -   -  -
32709   50 150 250 350 150 50   -  - 350 50
32710   51 151 251 351   -  - 251 51   -  -
32711   52 152 252 352 152 52   -  -   -  -
32712   53 153 253 353   -  -   -  -   -  -
32713   54 154 254 354 154 54 254 54   -  -
32714   55 155 255 355   -  -   -  - 355 55
32715   56 156 256 356 156 56   -  -   -  -
32716   57 157 257 357   -  - 257 57   -  -
32717   58 158 258 358 158 58   -  -   -  -
32718   59 159 259 359   -  -   -  -   -  -
32719   60 160 260 360 160 60 260 60 360 60
32720   61 161 261 361   -  -   -  -   -  -
32721   62 162 262 362 162 62   -  -   -  -
32722   63 163 263 363   -  - 263 63   -  -
32723   64 164 264 364 164 64   -  -   -  -
32724   65 165 265 365   -  -   -  - 365 65
32725   66 166 266 366 166 66 266 66   -  -
32726   67 167 267 367   -  -   -  -   -  -
32727   68 168 268 368 168 68   -  -   -  -
32728   69 169 269 369   -  - 269 69   -  -
32729   70 170 270 370 170 70   -  - 370 70
32730   71 171 271 371   -  -   -  -   -  -
32731   72 172 272 372 172 72 272 72   -  -
32732   73 173 273 373   -  -   -  -   -  -
32733   74 174 274 374 174 74   -  -   -  -
32734   75 175 275 375   -  - 275 75 375 75
32735   76 176 276 376 176 76   -  -   -  -
32736   77 177 277 377   -  -   -  -   -  -
32737   78 178 278 378 178 78 278 78   -  -
32738   79 179 279 379   -  -   -  -   -  -
32739   80 180 280 380 180 80   -  - 380 80
32740   81 181 281 381   -  - 281 81   -  -
32741   82 182 282 382 182 82   -  -   -  -
32742   83 183 283 383   -  -   -  -   -  -
32743   84 184 284 384 184 84 284 84   -  -
32744   85 185 285 385   -  -   -  - 385 85
32745   86 186 286 386 186 86   -  -   -  -
32746   87 187 287 387   -  - 287 87   -  -
32747   88 188 288 388 188 88   -  -   -  -
32748   89 189 289 389   -  -   -  -   -  -
32749   90 190 290 390 190 90 290 90 390 90
32750   91 191 291 391   -  -   -  -   -  -
32751   92 192 292 392 192 92   -  -   -  -
32752   93 193 293 393   -  - 293 93   -  -
32753   94 194 294 394 194 94   -  -   -  -
32754   95 195 295 395   -  -   -  - 395 95
32755   96   - 296 396   -  -   -  -   -  -
32756   97 197   - 397   -  -   -  -   -  -
32757   98 198 298   -   -  -   -  -   -  -
32758   99   -   -   -   -  -   -  -   -  -
32759    -   -   -   - 100  0   -  -   -  -
32760    -   -   -   -   -  - 200  0   -  -
32762 do_execsql_test joinD-1122 {
32763   SELECT t1.*, t2.*, t3.*, t4.*
32764   FROM t1 FULL JOIN t2 ON t1.b=t2.b
32765   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
32766   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
32767   WHERE t2.x>0
32768   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32769 } {
32770    2 102 202 302 102  2   -  -   -  -
32771    4 104 204 304 104  4   -  -   -  -
32772    6 106 206 306 106  6 206  6   -  -
32773    8 108 208 308 108  8   -  -   -  -
32774   10 110 210 310 110 10   -  - 310 10
32775   12 112 212 312 112 12 212 12   -  -
32776   14 114 214 314 114 14   -  -   -  -
32777   16 116 216 316 116 16   -  -   -  -
32778   18 118 218 318 118 18 218 18   -  -
32779   20 120 220 320 120 20   -  - 320 20
32780   22 122 222 322 122 22   -  -   -  -
32781   24 124 224 324 124 24 224 24   -  -
32782   26 126 226 326 126 26   -  -   -  -
32783   28 128 228 328 128 28   -  -   -  -
32784   30 130 230 330 130 30 230 30 330 30
32785   32 132 232 332 132 32   -  -   -  -
32786   34 134 234 334 134 34   -  -   -  -
32787   36 136 236 336 136 36 236 36   -  -
32788   38 138 238 338 138 38   -  -   -  -
32789   40 140 240 340 140 40   -  - 340 40
32790   42 142 242 342 142 42 242 42   -  -
32791   44 144 244 344 144 44   -  -   -  -
32792   46 146 246 346 146 46   -  -   -  -
32793   48 148 248 348 148 48 248 48   -  -
32794   50 150 250 350 150 50   -  - 350 50
32795   52 152 252 352 152 52   -  -   -  -
32796   54 154 254 354 154 54 254 54   -  -
32797   56 156 256 356 156 56   -  -   -  -
32798   58 158 258 358 158 58   -  -   -  -
32799   60 160 260 360 160 60 260 60 360 60
32800   62 162 262 362 162 62   -  -   -  -
32801   64 164 264 364 164 64   -  -   -  -
32802   66 166 266 366 166 66 266 66   -  -
32803   68 168 268 368 168 68   -  -   -  -
32804   70 170 270 370 170 70   -  - 370 70
32805   72 172 272 372 172 72 272 72   -  -
32806   74 174 274 374 174 74   -  -   -  -
32807   76 176 276 376 176 76   -  -   -  -
32808   78 178 278 378 178 78 278 78   -  -
32809   80 180 280 380 180 80   -  - 380 80
32810   82 182 282 382 182 82   -  -   -  -
32811   84 184 284 384 184 84 284 84   -  -
32812   86 186 286 386 186 86   -  -   -  -
32813   88 188 288 388 188 88   -  -   -  -
32814   90 190 290 390 190 90 290 90 390 90
32815   92 192 292 392 192 92   -  -   -  -
32816   94 194 294 394 194 94   -  -   -  -
32818 do_execsql_test joinD-1123 {
32819   SELECT t1.*, t2.*, t3.*, t4.*
32820   FROM t1 FULL JOIN t2 ON t1.b=t2.b
32821   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
32822   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
32823   WHERE (t2.x>0 OR t2.x IS NULL)
32824   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32825 } {
32826    1 101 201 301   -  -   -  -   -  -
32827    2 102 202 302 102  2   -  -   -  -
32828    3 103 203 303   -  - 203  3   -  -
32829    4 104 204 304 104  4   -  -   -  -
32830    5 105 205 305   -  -   -  - 305  5
32831    6 106 206 306 106  6 206  6   -  -
32832    7 107 207 307   -  -   -  -   -  -
32833    8 108 208 308 108  8   -  -   -  -
32834    9 109 209 309   -  - 209  9   -  -
32835   10 110 210 310 110 10   -  - 310 10
32836   11 111 211 311   -  -   -  -   -  -
32837   12 112 212 312 112 12 212 12   -  -
32838   13 113 213 313   -  -   -  -   -  -
32839   14 114 214 314 114 14   -  -   -  -
32840   15 115 215 315   -  - 215 15 315 15
32841   16 116 216 316 116 16   -  -   -  -
32842   17 117 217 317   -  -   -  -   -  -
32843   18 118 218 318 118 18 218 18   -  -
32844   19 119 219 319   -  -   -  -   -  -
32845   20 120 220 320 120 20   -  - 320 20
32846   21 121 221 321   -  - 221 21   -  -
32847   22 122 222 322 122 22   -  -   -  -
32848   23 123 223 323   -  -   -  -   -  -
32849   24 124 224 324 124 24 224 24   -  -
32850   25 125 225 325   -  -   -  - 325 25
32851   26 126 226 326 126 26   -  -   -  -
32852   27 127 227 327   -  - 227 27   -  -
32853   28 128 228 328 128 28   -  -   -  -
32854   29 129 229 329   -  -   -  -   -  -
32855   30 130 230 330 130 30 230 30 330 30
32856   31 131 231 331   -  -   -  -   -  -
32857   32 132 232 332 132 32   -  -   -  -
32858   33 133 233 333   -  - 233 33   -  -
32859   34 134 234 334 134 34   -  -   -  -
32860   35 135 235 335   -  -   -  - 335 35
32861   36 136 236 336 136 36 236 36   -  -
32862   37 137 237 337   -  -   -  -   -  -
32863   38 138 238 338 138 38   -  -   -  -
32864   39 139 239 339   -  - 239 39   -  -
32865   40 140 240 340 140 40   -  - 340 40
32866   41 141 241 341   -  -   -  -   -  -
32867   42 142 242 342 142 42 242 42   -  -
32868   43 143 243 343   -  -   -  -   -  -
32869   44 144 244 344 144 44   -  -   -  -
32870   45 145 245 345   -  - 245 45 345 45
32871   46 146 246 346 146 46   -  -   -  -
32872   47 147 247 347   -  -   -  -   -  -
32873   48 148 248 348 148 48 248 48   -  -
32874   49 149 249 349   -  -   -  -   -  -
32875   50 150 250 350 150 50   -  - 350 50
32876   51 151 251 351   -  - 251 51   -  -
32877   52 152 252 352 152 52   -  -   -  -
32878   53 153 253 353   -  -   -  -   -  -
32879   54 154 254 354 154 54 254 54   -  -
32880   55 155 255 355   -  -   -  - 355 55
32881   56 156 256 356 156 56   -  -   -  -
32882   57 157 257 357   -  - 257 57   -  -
32883   58 158 258 358 158 58   -  -   -  -
32884   59 159 259 359   -  -   -  -   -  -
32885   60 160 260 360 160 60 260 60 360 60
32886   61 161 261 361   -  -   -  -   -  -
32887   62 162 262 362 162 62   -  -   -  -
32888   63 163 263 363   -  - 263 63   -  -
32889   64 164 264 364 164 64   -  -   -  -
32890   65 165 265 365   -  -   -  - 365 65
32891   66 166 266 366 166 66 266 66   -  -
32892   67 167 267 367   -  -   -  -   -  -
32893   68 168 268 368 168 68   -  -   -  -
32894   69 169 269 369   -  - 269 69   -  -
32895   70 170 270 370 170 70   -  - 370 70
32896   71 171 271 371   -  -   -  -   -  -
32897   72 172 272 372 172 72 272 72   -  -
32898   73 173 273 373   -  -   -  -   -  -
32899   74 174 274 374 174 74   -  -   -  -
32900   75 175 275 375   -  - 275 75 375 75
32901   76 176 276 376 176 76   -  -   -  -
32902   77 177 277 377   -  -   -  -   -  -
32903   78 178 278 378 178 78 278 78   -  -
32904   79 179 279 379   -  -   -  -   -  -
32905   80 180 280 380 180 80   -  - 380 80
32906   81 181 281 381   -  - 281 81   -  -
32907   82 182 282 382 182 82   -  -   -  -
32908   83 183 283 383   -  -   -  -   -  -
32909   84 184 284 384 184 84 284 84   -  -
32910   85 185 285 385   -  -   -  - 385 85
32911   86 186 286 386 186 86   -  -   -  -
32912   87 187 287 387   -  - 287 87   -  -
32913   88 188 288 388 188 88   -  -   -  -
32914   89 189 289 389   -  -   -  -   -  -
32915   90 190 290 390 190 90 290 90 390 90
32916   91 191 291 391   -  -   -  -   -  -
32917   92 192 292 392 192 92   -  -   -  -
32918   93 193 293 393   -  - 293 93   -  -
32919   94 194 294 394 194 94   -  -   -  -
32920   95 195 295 395   -  -   -  - 395 95
32921   96   - 296 396   -  -   -  -   -  -
32922   97 197   - 397   -  -   -  -   -  -
32923   98 198 298   -   -  -   -  -   -  -
32924   99   -   -   -   -  -   -  -   -  -
32925    -   -   -   -   -  - 200  0   -  -
32927 do_execsql_test joinD-1124 {
32928   SELECT t1.*, t2.*, t3.*, t4.*
32929   FROM t1 FULL JOIN t2 ON true
32930   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
32931   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
32932   WHERE t1.b=t2.b AND t2.x>0
32933   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32934 } {
32935    2 102 202 302 102  2   -  -   -  -
32936    4 104 204 304 104  4   -  -   -  -
32937    6 106 206 306 106  6 206  6   -  -
32938    8 108 208 308 108  8   -  -   -  -
32939   10 110 210 310 110 10   -  - 310 10
32940   12 112 212 312 112 12 212 12   -  -
32941   14 114 214 314 114 14   -  -   -  -
32942   16 116 216 316 116 16   -  -   -  -
32943   18 118 218 318 118 18 218 18   -  -
32944   20 120 220 320 120 20   -  - 320 20
32945   22 122 222 322 122 22   -  -   -  -
32946   24 124 224 324 124 24 224 24   -  -
32947   26 126 226 326 126 26   -  -   -  -
32948   28 128 228 328 128 28   -  -   -  -
32949   30 130 230 330 130 30 230 30 330 30
32950   32 132 232 332 132 32   -  -   -  -
32951   34 134 234 334 134 34   -  -   -  -
32952   36 136 236 336 136 36 236 36   -  -
32953   38 138 238 338 138 38   -  -   -  -
32954   40 140 240 340 140 40   -  - 340 40
32955   42 142 242 342 142 42 242 42   -  -
32956   44 144 244 344 144 44   -  -   -  -
32957   46 146 246 346 146 46   -  -   -  -
32958   48 148 248 348 148 48 248 48   -  -
32959   50 150 250 350 150 50   -  - 350 50
32960   52 152 252 352 152 52   -  -   -  -
32961   54 154 254 354 154 54 254 54   -  -
32962   56 156 256 356 156 56   -  -   -  -
32963   58 158 258 358 158 58   -  -   -  -
32964   60 160 260 360 160 60 260 60 360 60
32965   62 162 262 362 162 62   -  -   -  -
32966   64 164 264 364 164 64   -  -   -  -
32967   66 166 266 366 166 66 266 66   -  -
32968   68 168 268 368 168 68   -  -   -  -
32969   70 170 270 370 170 70   -  - 370 70
32970   72 172 272 372 172 72 272 72   -  -
32971   74 174 274 374 174 74   -  -   -  -
32972   76 176 276 376 176 76   -  -   -  -
32973   78 178 278 378 178 78 278 78   -  -
32974   80 180 280 380 180 80   -  - 380 80
32975   82 182 282 382 182 82   -  -   -  -
32976   84 184 284 384 184 84 284 84   -  -
32977   86 186 286 386 186 86   -  -   -  -
32978   88 188 288 388 188 88   -  -   -  -
32979   90 190 290 390 190 90 290 90 390 90
32980   92 192 292 392 192 92   -  -   -  -
32981   94 194 294 394 194 94   -  -   -  -
32983 do_execsql_test joinD-1125 {
32984   SELECT t1.*, t2.*, t3.*, t4.*
32985   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
32986   FULL JOIN t3 ON t1.c=t3.c
32987   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
32988   WHERE t3.y>0
32989   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
32990 } {
32991    3 103 203 303   -  - 203  3   -  -
32992    6 106 206 306 106  6 206  6   -  -
32993    9 109 209 309   -  - 209  9   -  -
32994   12 112 212 312 112 12 212 12   -  -
32995   15 115 215 315   -  - 215 15 315 15
32996   18 118 218 318 118 18 218 18   -  -
32997   21 121 221 321   -  - 221 21   -  -
32998   24 124 224 324 124 24 224 24   -  -
32999   27 127 227 327   -  - 227 27   -  -
33000   30 130 230 330 130 30 230 30 330 30
33001   33 133 233 333   -  - 233 33   -  -
33002   36 136 236 336 136 36 236 36   -  -
33003   39 139 239 339   -  - 239 39   -  -
33004   42 142 242 342 142 42 242 42   -  -
33005   45 145 245 345   -  - 245 45 345 45
33006   48 148 248 348 148 48 248 48   -  -
33007   51 151 251 351   -  - 251 51   -  -
33008   54 154 254 354 154 54 254 54   -  -
33009   57 157 257 357   -  - 257 57   -  -
33010   60 160 260 360 160 60 260 60 360 60
33011   63 163 263 363   -  - 263 63   -  -
33012   66 166 266 366 166 66 266 66   -  -
33013   69 169 269 369   -  - 269 69   -  -
33014   72 172 272 372 172 72 272 72   -  -
33015   75 175 275 375   -  - 275 75 375 75
33016   78 178 278 378 178 78 278 78   -  -
33017   81 181 281 381   -  - 281 81   -  -
33018   84 184 284 384 184 84 284 84   -  -
33019   87 187 287 387   -  - 287 87   -  -
33020   90 190 290 390 190 90 290 90 390 90
33021   93 193 293 393   -  - 293 93   -  -
33023 do_execsql_test joinD-1126 {
33024   SELECT t1.*, t2.*, t3.*, t4.*
33025   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
33026   FULL JOIN t3 ON t1.c=t3.c
33027   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
33028   WHERE t3.y>0 OR t3.y IS NULL
33029   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33030 } {
33031    1 101 201 301   -  -   -  -   -  -
33032    2 102 202 302 102  2   -  -   -  -
33033    3 103 203 303   -  - 203  3   -  -
33034    4 104 204 304 104  4   -  -   -  -
33035    5 105 205 305   -  -   -  - 305  5
33036    6 106 206 306 106  6 206  6   -  -
33037    7 107 207 307   -  -   -  -   -  -
33038    8 108 208 308 108  8   -  -   -  -
33039    9 109 209 309   -  - 209  9   -  -
33040   10 110 210 310 110 10   -  - 310 10
33041   11 111 211 311   -  -   -  -   -  -
33042   12 112 212 312 112 12 212 12   -  -
33043   13 113 213 313   -  -   -  -   -  -
33044   14 114 214 314 114 14   -  -   -  -
33045   15 115 215 315   -  - 215 15 315 15
33046   16 116 216 316 116 16   -  -   -  -
33047   17 117 217 317   -  -   -  -   -  -
33048   18 118 218 318 118 18 218 18   -  -
33049   19 119 219 319   -  -   -  -   -  -
33050   20 120 220 320 120 20   -  - 320 20
33051   21 121 221 321   -  - 221 21   -  -
33052   22 122 222 322 122 22   -  -   -  -
33053   23 123 223 323   -  -   -  -   -  -
33054   24 124 224 324 124 24 224 24   -  -
33055   25 125 225 325   -  -   -  - 325 25
33056   26 126 226 326 126 26   -  -   -  -
33057   27 127 227 327   -  - 227 27   -  -
33058   28 128 228 328 128 28   -  -   -  -
33059   29 129 229 329   -  -   -  -   -  -
33060   30 130 230 330 130 30 230 30 330 30
33061   31 131 231 331   -  -   -  -   -  -
33062   32 132 232 332 132 32   -  -   -  -
33063   33 133 233 333   -  - 233 33   -  -
33064   34 134 234 334 134 34   -  -   -  -
33065   35 135 235 335   -  -   -  - 335 35
33066   36 136 236 336 136 36 236 36   -  -
33067   37 137 237 337   -  -   -  -   -  -
33068   38 138 238 338 138 38   -  -   -  -
33069   39 139 239 339   -  - 239 39   -  -
33070   40 140 240 340 140 40   -  - 340 40
33071   41 141 241 341   -  -   -  -   -  -
33072   42 142 242 342 142 42 242 42   -  -
33073   43 143 243 343   -  -   -  -   -  -
33074   44 144 244 344 144 44   -  -   -  -
33075   45 145 245 345   -  - 245 45 345 45
33076   46 146 246 346 146 46   -  -   -  -
33077   47 147 247 347   -  -   -  -   -  -
33078   48 148 248 348 148 48 248 48   -  -
33079   49 149 249 349   -  -   -  -   -  -
33080   50 150 250 350 150 50   -  - 350 50
33081   51 151 251 351   -  - 251 51   -  -
33082   52 152 252 352 152 52   -  -   -  -
33083   53 153 253 353   -  -   -  -   -  -
33084   54 154 254 354 154 54 254 54   -  -
33085   55 155 255 355   -  -   -  - 355 55
33086   56 156 256 356 156 56   -  -   -  -
33087   57 157 257 357   -  - 257 57   -  -
33088   58 158 258 358 158 58   -  -   -  -
33089   59 159 259 359   -  -   -  -   -  -
33090   60 160 260 360 160 60 260 60 360 60
33091   61 161 261 361   -  -   -  -   -  -
33092   62 162 262 362 162 62   -  -   -  -
33093   63 163 263 363   -  - 263 63   -  -
33094   64 164 264 364 164 64   -  -   -  -
33095   65 165 265 365   -  -   -  - 365 65
33096   66 166 266 366 166 66 266 66   -  -
33097   67 167 267 367   -  -   -  -   -  -
33098   68 168 268 368 168 68   -  -   -  -
33099   69 169 269 369   -  - 269 69   -  -
33100   70 170 270 370 170 70   -  - 370 70
33101   71 171 271 371   -  -   -  -   -  -
33102   72 172 272 372 172 72 272 72   -  -
33103   73 173 273 373   -  -   -  -   -  -
33104   74 174 274 374 174 74   -  -   -  -
33105   75 175 275 375   -  - 275 75 375 75
33106   76 176 276 376 176 76   -  -   -  -
33107   77 177 277 377   -  -   -  -   -  -
33108   78 178 278 378 178 78 278 78   -  -
33109   79 179 279 379   -  -   -  -   -  -
33110   80 180 280 380 180 80   -  - 380 80
33111   81 181 281 381   -  - 281 81   -  -
33112   82 182 282 382 182 82   -  -   -  -
33113   83 183 283 383   -  -   -  -   -  -
33114   84 184 284 384 184 84 284 84   -  -
33115   85 185 285 385   -  -   -  - 385 85
33116   86 186 286 386 186 86   -  -   -  -
33117   87 187 287 387   -  - 287 87   -  -
33118   88 188 288 388 188 88   -  -   -  -
33119   89 189 289 389   -  -   -  -   -  -
33120   90 190 290 390 190 90 290 90 390 90
33121   91 191 291 391   -  -   -  -   -  -
33122   92 192 292 392 192 92   -  -   -  -
33123   93 193 293 393   -  - 293 93   -  -
33124   94 194 294 394 194 94   -  -   -  -
33125   95 195 295 395   -  -   -  - 395 95
33126   96   - 296 396   -  -   -  -   -  -
33127   97 197   - 397   -  -   -  -   -  -
33128   98 198 298   -   -  -   -  -   -  -
33129   99   -   -   -   -  -   -  -   -  -
33130    -   -   -   - 100  0   -  -   -  -
33132 do_execsql_test joinD-1127 {
33133   SELECT t1.*, t2.*, t3.*, t4.*
33134   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
33135   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
33136   LEFT JOIN t4 ON t1.d=t4.d
33137   WHERE t4.z>0
33138   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33139 } {
33140    5 105 205 305   -  -   -  - 305  5
33141   10 110 210 310 110 10   -  - 310 10
33142   15 115 215 315   -  - 215 15 315 15
33143   20 120 220 320 120 20   -  - 320 20
33144   25 125 225 325   -  -   -  - 325 25
33145   30 130 230 330 130 30 230 30 330 30
33146   35 135 235 335   -  -   -  - 335 35
33147   40 140 240 340 140 40   -  - 340 40
33148   45 145 245 345   -  - 245 45 345 45
33149   50 150 250 350 150 50   -  - 350 50
33150   55 155 255 355   -  -   -  - 355 55
33151   60 160 260 360 160 60 260 60 360 60
33152   65 165 265 365   -  -   -  - 365 65
33153   70 170 270 370 170 70   -  - 370 70
33154   75 175 275 375   -  - 275 75 375 75
33155   80 180 280 380 180 80   -  - 380 80
33156   85 185 285 385   -  -   -  - 385 85
33157   90 190 290 390 190 90 290 90 390 90
33158   95 195 295 395   -  -   -  - 395 95
33160 do_execsql_test joinD-1128 {
33161   SELECT t1.*, t2.*, t3.*, t4.*
33162   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
33163   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
33164   LEFT JOIN t4 ON t1.d=t4.d
33165   WHERE t4.z IS NULL OR t4.z>0
33166   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33167 } {
33168    1 101 201 301   -  -   -  -   -  -
33169    2 102 202 302 102  2   -  -   -  -
33170    3 103 203 303   -  - 203  3   -  -
33171    4 104 204 304 104  4   -  -   -  -
33172    5 105 205 305   -  -   -  - 305  5
33173    6 106 206 306 106  6 206  6   -  -
33174    7 107 207 307   -  -   -  -   -  -
33175    8 108 208 308 108  8   -  -   -  -
33176    9 109 209 309   -  - 209  9   -  -
33177   10 110 210 310 110 10   -  - 310 10
33178   11 111 211 311   -  -   -  -   -  -
33179   12 112 212 312 112 12 212 12   -  -
33180   13 113 213 313   -  -   -  -   -  -
33181   14 114 214 314 114 14   -  -   -  -
33182   15 115 215 315   -  - 215 15 315 15
33183   16 116 216 316 116 16   -  -   -  -
33184   17 117 217 317   -  -   -  -   -  -
33185   18 118 218 318 118 18 218 18   -  -
33186   19 119 219 319   -  -   -  -   -  -
33187   20 120 220 320 120 20   -  - 320 20
33188   21 121 221 321   -  - 221 21   -  -
33189   22 122 222 322 122 22   -  -   -  -
33190   23 123 223 323   -  -   -  -   -  -
33191   24 124 224 324 124 24 224 24   -  -
33192   25 125 225 325   -  -   -  - 325 25
33193   26 126 226 326 126 26   -  -   -  -
33194   27 127 227 327   -  - 227 27   -  -
33195   28 128 228 328 128 28   -  -   -  -
33196   29 129 229 329   -  -   -  -   -  -
33197   30 130 230 330 130 30 230 30 330 30
33198   31 131 231 331   -  -   -  -   -  -
33199   32 132 232 332 132 32   -  -   -  -
33200   33 133 233 333   -  - 233 33   -  -
33201   34 134 234 334 134 34   -  -   -  -
33202   35 135 235 335   -  -   -  - 335 35
33203   36 136 236 336 136 36 236 36   -  -
33204   37 137 237 337   -  -   -  -   -  -
33205   38 138 238 338 138 38   -  -   -  -
33206   39 139 239 339   -  - 239 39   -  -
33207   40 140 240 340 140 40   -  - 340 40
33208   41 141 241 341   -  -   -  -   -  -
33209   42 142 242 342 142 42 242 42   -  -
33210   43 143 243 343   -  -   -  -   -  -
33211   44 144 244 344 144 44   -  -   -  -
33212   45 145 245 345   -  - 245 45 345 45
33213   46 146 246 346 146 46   -  -   -  -
33214   47 147 247 347   -  -   -  -   -  -
33215   48 148 248 348 148 48 248 48   -  -
33216   49 149 249 349   -  -   -  -   -  -
33217   50 150 250 350 150 50   -  - 350 50
33218   51 151 251 351   -  - 251 51   -  -
33219   52 152 252 352 152 52   -  -   -  -
33220   53 153 253 353   -  -   -  -   -  -
33221   54 154 254 354 154 54 254 54   -  -
33222   55 155 255 355   -  -   -  - 355 55
33223   56 156 256 356 156 56   -  -   -  -
33224   57 157 257 357   -  - 257 57   -  -
33225   58 158 258 358 158 58   -  -   -  -
33226   59 159 259 359   -  -   -  -   -  -
33227   60 160 260 360 160 60 260 60 360 60
33228   61 161 261 361   -  -   -  -   -  -
33229   62 162 262 362 162 62   -  -   -  -
33230   63 163 263 363   -  - 263 63   -  -
33231   64 164 264 364 164 64   -  -   -  -
33232   65 165 265 365   -  -   -  - 365 65
33233   66 166 266 366 166 66 266 66   -  -
33234   67 167 267 367   -  -   -  -   -  -
33235   68 168 268 368 168 68   -  -   -  -
33236   69 169 269 369   -  - 269 69   -  -
33237   70 170 270 370 170 70   -  - 370 70
33238   71 171 271 371   -  -   -  -   -  -
33239   72 172 272 372 172 72 272 72   -  -
33240   73 173 273 373   -  -   -  -   -  -
33241   74 174 274 374 174 74   -  -   -  -
33242   75 175 275 375   -  - 275 75 375 75
33243   76 176 276 376 176 76   -  -   -  -
33244   77 177 277 377   -  -   -  -   -  -
33245   78 178 278 378 178 78 278 78   -  -
33246   79 179 279 379   -  -   -  -   -  -
33247   80 180 280 380 180 80   -  - 380 80
33248   81 181 281 381   -  - 281 81   -  -
33249   82 182 282 382 182 82   -  -   -  -
33250   83 183 283 383   -  -   -  -   -  -
33251   84 184 284 384 184 84 284 84   -  -
33252   85 185 285 385   -  -   -  - 385 85
33253   86 186 286 386 186 86   -  -   -  -
33254   87 187 287 387   -  - 287 87   -  -
33255   88 188 288 388 188 88   -  -   -  -
33256   89 189 289 389   -  -   -  -   -  -
33257   90 190 290 390 190 90 290 90 390 90
33258   91 191 291 391   -  -   -  -   -  -
33259   92 192 292 392 192 92   -  -   -  -
33260   93 193 293 393   -  - 293 93   -  -
33261   94 194 294 394 194 94   -  -   -  -
33262   95 195 295 395   -  -   -  - 395 95
33263   96   - 296 396   -  -   -  -   -  -
33264   97 197   - 397   -  -   -  -   -  -
33265   98 198 298   -   -  -   -  -   -  -
33266   99   -   -   -   -  -   -  -   -  -
33267    -   -   -   - 100  0   -  -   -  -
33268    -   -   -   -   -  - 200  0   -  -
33270 do_execsql_test joinD-1129 {
33271   SELECT t1.*, t2.*, t3.*, t4.*
33272   FROM t1 FULL JOIN t2 ON t1.b=t2.b
33273   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
33274   LEFT JOIN t4 ON t1.d=t4.d
33275   WHERE t2.x>0 AND t4.z>0
33276   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33277 } {
33278   10 110 210 310 110 10   -  - 310 10
33279   20 120 220 320 120 20   -  - 320 20
33280   30 130 230 330 130 30 230 30 330 30
33281   40 140 240 340 140 40   -  - 340 40
33282   50 150 250 350 150 50   -  - 350 50
33283   60 160 260 360 160 60 260 60 360 60
33284   70 170 270 370 170 70   -  - 370 70
33285   80 180 280 380 180 80   -  - 380 80
33286   90 190 290 390 190 90 290 90 390 90
33288 do_execsql_test joinD-1130 {
33289   SELECT t1.*, t2.*, t3.*, t4.*
33290   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
33291   FULL JOIN t3 ON t1.c=t3.c
33292   LEFT JOIN t4 ON t1.d=t4.d
33293   WHERE t4.z>0 AND t3.y>0
33294   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33295 } {
33296   15 115 215 315   -  - 215 15 315 15
33297   30 130 230 330 130 30 230 30 330 30
33298   45 145 245 345   -  - 245 45 345 45
33299   60 160 260 360 160 60 260 60 360 60
33300   75 175 275 375   -  - 275 75 375 75
33301   90 190 290 390 190 90 290 90 390 90
33303 do_execsql_test joinD-1131 {
33304   SELECT t1.*, t2.*, t3.*, t4.*
33305   FROM t1 FULL JOIN t2 ON t1.b=t2.b
33306   FULL JOIN t3 ON t1.c=t3.c
33307   LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0
33308   WHERE t2.x>0 AND t3.y>0
33309   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33310 } {
33311    6 106 206 306 106  6 206  6   -  -
33312   12 112 212 312 112 12 212 12   -  -
33313   18 118 218 318 118 18 218 18   -  -
33314   24 124 224 324 124 24 224 24   -  -
33315   30 130 230 330 130 30 230 30 330 30
33316   36 136 236 336 136 36 236 36   -  -
33317   42 142 242 342 142 42 242 42   -  -
33318   48 148 248 348 148 48 248 48   -  -
33319   54 154 254 354 154 54 254 54   -  -
33320   60 160 260 360 160 60 260 60 360 60
33321   66 166 266 366 166 66 266 66   -  -
33322   72 172 272 372 172 72 272 72   -  -
33323   78 178 278 378 178 78 278 78   -  -
33324   84 184 284 384 184 84 284 84   -  -
33325   90 190 290 390 190 90 290 90 390 90
33327 do_execsql_test joinD-1132 {
33328   SELECT t1.*, t2.*, t3.*, t4.*
33329   FROM t1 FULL JOIN t2 ON t1.b=t2.b
33330   FULL JOIN t3 ON t1.c=t3.c
33331   LEFT JOIN t4 ON t1.d=t4.d
33332   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
33333   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33334 } {
33335   30 130 230 330 130 30 230 30 330 30
33336   60 160 260 360 160 60 260 60 360 60
33337   90 190 290 390 190 90 290 90 390 90
33339 do_execsql_test joinD-1133 {
33340   SELECT t1.*, t2.*, t3.*, t4.*
33341   FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
33342   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
33343   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
33344   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33345 } {
33346    0 100 200 300   -  -   -  -   -  -
33347    1 101 201 301   -  -   -  -   -  -
33348    2 102 202 302 102  2   -  -   -  -
33349    3 103 203 303   -  - 203  3   -  -
33350    4 104 204 304 104  4   -  -   -  -
33351    5 105 205 305   -  -   -  - 305  5
33352    6 106 206 306 106  6 206  6   -  -
33353    7 107 207 307   -  -   -  -   -  -
33354    8 108 208 308 108  8   -  -   -  -
33355    9 109 209 309   -  - 209  9   -  -
33356   10 110 210 310 110 10   -  - 310 10
33357   11 111 211 311   -  -   -  -   -  -
33358   12 112 212 312 112 12 212 12   -  -
33359   13 113 213 313   -  -   -  -   -  -
33360   14 114 214 314 114 14   -  -   -  -
33361   15 115 215 315   -  - 215 15 315 15
33362   16 116 216 316 116 16   -  -   -  -
33363   17 117 217 317   -  -   -  -   -  -
33364   18 118 218 318 118 18 218 18   -  -
33365   19 119 219 319   -  -   -  -   -  -
33366   20 120 220 320 120 20   -  - 320 20
33367   21 121 221 321   -  - 221 21   -  -
33368   22 122 222 322 122 22   -  -   -  -
33369   23 123 223 323   -  -   -  -   -  -
33370   24 124 224 324 124 24 224 24   -  -
33371   25 125 225 325   -  -   -  - 325 25
33372   26 126 226 326 126 26   -  -   -  -
33373   27 127 227 327   -  - 227 27   -  -
33374   28 128 228 328 128 28   -  -   -  -
33375   29 129 229 329   -  -   -  -   -  -
33376   30 130 230 330 130 30 230 30 330 30
33377   31 131 231 331   -  -   -  -   -  -
33378   32 132 232 332 132 32   -  -   -  -
33379   33 133 233 333   -  - 233 33   -  -
33380   34 134 234 334 134 34   -  -   -  -
33381   35 135 235 335   -  -   -  - 335 35
33382   36 136 236 336 136 36 236 36   -  -
33383   37 137 237 337   -  -   -  -   -  -
33384   38 138 238 338 138 38   -  -   -  -
33385   39 139 239 339   -  - 239 39   -  -
33386   40 140 240 340 140 40   -  - 340 40
33387   41 141 241 341   -  -   -  -   -  -
33388   42 142 242 342 142 42 242 42   -  -
33389   43 143 243 343   -  -   -  -   -  -
33390   44 144 244 344 144 44   -  -   -  -
33391   45 145 245 345   -  - 245 45 345 45
33392   46 146 246 346 146 46   -  -   -  -
33393   47 147 247 347   -  -   -  -   -  -
33394   48 148 248 348 148 48 248 48   -  -
33395   49 149 249 349   -  -   -  -   -  -
33396   50 150 250 350 150 50   -  - 350 50
33397   51 151 251 351   -  - 251 51   -  -
33398   52 152 252 352 152 52   -  -   -  -
33399   53 153 253 353   -  -   -  -   -  -
33400   54 154 254 354 154 54 254 54   -  -
33401   55 155 255 355   -  -   -  - 355 55
33402   56 156 256 356 156 56   -  -   -  -
33403   57 157 257 357   -  - 257 57   -  -
33404   58 158 258 358 158 58   -  -   -  -
33405   59 159 259 359   -  -   -  -   -  -
33406   60 160 260 360 160 60 260 60 360 60
33407   61 161 261 361   -  -   -  -   -  -
33408   62 162 262 362 162 62   -  -   -  -
33409   63 163 263 363   -  - 263 63   -  -
33410   64 164 264 364 164 64   -  -   -  -
33411   65 165 265 365   -  -   -  - 365 65
33412   66 166 266 366 166 66 266 66   -  -
33413   67 167 267 367   -  -   -  -   -  -
33414   68 168 268 368 168 68   -  -   -  -
33415   69 169 269 369   -  - 269 69   -  -
33416   70 170 270 370 170 70   -  - 370 70
33417   71 171 271 371   -  -   -  -   -  -
33418   72 172 272 372 172 72 272 72   -  -
33419   73 173 273 373   -  -   -  -   -  -
33420   74 174 274 374 174 74   -  -   -  -
33421   75 175 275 375   -  - 275 75 375 75
33422   76 176 276 376 176 76   -  -   -  -
33423   77 177 277 377   -  -   -  -   -  -
33424   78 178 278 378 178 78 278 78   -  -
33425   79 179 279 379   -  -   -  -   -  -
33426   80 180 280 380 180 80   -  - 380 80
33427   81 181 281 381   -  - 281 81   -  -
33428   82 182 282 382 182 82   -  -   -  -
33429   83 183 283 383   -  -   -  -   -  -
33430   84 184 284 384 184 84 284 84   -  -
33431   85 185 285 385   -  -   -  - 385 85
33432   86 186 286 386 186 86   -  -   -  -
33433   87 187 287 387   -  - 287 87   -  -
33434   88 188 288 388 188 88   -  -   -  -
33435   89 189 289 389   -  -   -  -   -  -
33436   90 190 290 390 190 90 290 90 390 90
33437   91 191 291 391   -  -   -  -   -  -
33438   92 192 292 392 192 92   -  -   -  -
33439   93 193 293 393   -  - 293 93   -  -
33440   94 194 294 394 194 94   -  -   -  -
33441   95 195 295 395   -  -   -  - 395 95
33442   96   - 296 396   -  -   -  -   -  -
33443   97 197   - 397   -  -   -  -   -  -
33444   98 198 298   -   -  -   -  -   -  -
33445   99   -   -   -   -  -   -  -   -  -
33446    -   -   -   - 100  0   -  -   -  -
33447    -   -   -   -   -  - 200  0   -  -
33449 do_execsql_test joinD-1134 {
33450   SELECT t1.*, t2.*, t3.*, t4.*
33451   FROM t1 FULL JOIN t2 ON t2.x>0
33452   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
33453   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
33454   WHERE t1.b = t2.b
33455   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33456 } {
33457    2 102 202 302 102  2   -  -   -  -
33458    4 104 204 304 104  4   -  -   -  -
33459    6 106 206 306 106  6 206  6   -  -
33460    8 108 208 308 108  8   -  -   -  -
33461   10 110 210 310 110 10   -  - 310 10
33462   12 112 212 312 112 12 212 12   -  -
33463   14 114 214 314 114 14   -  -   -  -
33464   16 116 216 316 116 16   -  -   -  -
33465   18 118 218 318 118 18 218 18   -  -
33466   20 120 220 320 120 20   -  - 320 20
33467   22 122 222 322 122 22   -  -   -  -
33468   24 124 224 324 124 24 224 24   -  -
33469   26 126 226 326 126 26   -  -   -  -
33470   28 128 228 328 128 28   -  -   -  -
33471   30 130 230 330 130 30 230 30 330 30
33472   32 132 232 332 132 32   -  -   -  -
33473   34 134 234 334 134 34   -  -   -  -
33474   36 136 236 336 136 36 236 36   -  -
33475   38 138 238 338 138 38   -  -   -  -
33476   40 140 240 340 140 40   -  - 340 40
33477   42 142 242 342 142 42 242 42   -  -
33478   44 144 244 344 144 44   -  -   -  -
33479   46 146 246 346 146 46   -  -   -  -
33480   48 148 248 348 148 48 248 48   -  -
33481   50 150 250 350 150 50   -  - 350 50
33482   52 152 252 352 152 52   -  -   -  -
33483   54 154 254 354 154 54 254 54   -  -
33484   56 156 256 356 156 56   -  -   -  -
33485   58 158 258 358 158 58   -  -   -  -
33486   60 160 260 360 160 60 260 60 360 60
33487   62 162 262 362 162 62   -  -   -  -
33488   64 164 264 364 164 64   -  -   -  -
33489   66 166 266 366 166 66 266 66   -  -
33490   68 168 268 368 168 68   -  -   -  -
33491   70 170 270 370 170 70   -  - 370 70
33492   72 172 272 372 172 72 272 72   -  -
33493   74 174 274 374 174 74   -  -   -  -
33494   76 176 276 376 176 76   -  -   -  -
33495   78 178 278 378 178 78 278 78   -  -
33496   80 180 280 380 180 80   -  - 380 80
33497   82 182 282 382 182 82   -  -   -  -
33498   84 184 284 384 184 84 284 84   -  -
33499   86 186 286 386 186 86   -  -   -  -
33500   88 188 288 388 188 88   -  -   -  -
33501   90 190 290 390 190 90 290 90 390 90
33502   92 192 292 392 192 92   -  -   -  -
33503   94 194 294 394 194 94   -  -   -  -
33505 do_execsql_test joinD-1135 {
33506   SELECT t1.*, t2.*, t3.*, t4.*
33507   FROM t1 FULL JOIN t2 ON t2.x>0
33508   FULL JOIN t3 ON t3.y>0
33509   LEFT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
33510   WHERE t1.b = t2.b AND t1.c = t3.c
33511   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33512 } {
33513    6 106 206 306 106  6 206  6   -  -
33514   12 112 212 312 112 12 212 12   -  -
33515   18 118 218 318 118 18 218 18   -  -
33516   24 124 224 324 124 24 224 24   -  -
33517   30 130 230 330 130 30 230 30 330 30
33518   36 136 236 336 136 36 236 36   -  -
33519   42 142 242 342 142 42 242 42   -  -
33520   48 148 248 348 148 48 248 48   -  -
33521   54 154 254 354 154 54 254 54   -  -
33522   60 160 260 360 160 60 260 60 360 60
33523   66 166 266 366 166 66 266 66   -  -
33524   72 172 272 372 172 72 272 72   -  -
33525   78 178 278 378 178 78 278 78   -  -
33526   84 184 284 384 184 84 284 84   -  -
33527   90 190 290 390 190 90 290 90 390 90
33529 do_execsql_test joinD-1136 {
33530   SELECT t1.*, t2.*, t3.*, t4.*
33531   FROM t1 FULL JOIN t2 ON t2.x>0
33532   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
33533   LEFT JOIN t4 ON t4.z>0
33534   WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
33535   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33536 } {
33537   10 110 210 310 110 10   -  - 310 10
33538   20 120 220 320 120 20   -  - 320 20
33539   30 130 230 330 130 30 230 30 330 30
33540   40 140 240 340 140 40   -  - 340 40
33541   50 150 250 350 150 50   -  - 350 50
33542   60 160 260 360 160 60 260 60 360 60
33543   70 170 270 370 170 70   -  - 370 70
33544   80 180 280 380 180 80   -  - 380 80
33545   90 190 290 390 190 90 290 90 390 90
33547 do_execsql_test joinD-1137 {
33548   SELECT t1.*, t2.*, t3.*, t4.*
33549   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
33550   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
33551   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
33552   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33553 } {
33554    5 105 205 305   -  -   -  - 305  5
33555   10 110 210 310 110 10   -  - 310 10
33556   15 115 215 315   -  - 215 15 315 15
33557   20 120 220 320 120 20   -  - 320 20
33558   25 125 225 325   -  -   -  - 325 25
33559   30 130 230 330 130 30 230 30 330 30
33560   35 135 235 335   -  -   -  - 335 35
33561   40 140 240 340 140 40   -  - 340 40
33562   45 145 245 345   -  - 245 45 345 45
33563   50 150 250 350 150 50   -  - 350 50
33564   55 155 255 355   -  -   -  - 355 55
33565   60 160 260 360 160 60 260 60 360 60
33566   65 165 265 365   -  -   -  - 365 65
33567   70 170 270 370 170 70   -  - 370 70
33568   75 175 275 375   -  - 275 75 375 75
33569   80 180 280 380 180 80   -  - 380 80
33570   85 185 285 385   -  -   -  - 385 85
33571   90 190 290 390 190 90 290 90 390 90
33572   95 195 295 395   -  -   -  - 395 95
33573    -   -   -   -   -  -   -  - 300  0
33575 do_execsql_test joinD-1138 {
33576   SELECT t1.*, t2.*, t3.*, t4.*
33577   FROM t1 FULL JOIN t2 ON t1.b=t2.b
33578   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
33579   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
33580   WHERE t2.x>0
33581   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33582 } {
33583   10 110 210 310 110 10   -  - 310 10
33584   20 120 220 320 120 20   -  - 320 20
33585   30 130 230 330 130 30 230 30 330 30
33586   40 140 240 340 140 40   -  - 340 40
33587   50 150 250 350 150 50   -  - 350 50
33588   60 160 260 360 160 60 260 60 360 60
33589   70 170 270 370 170 70   -  - 370 70
33590   80 180 280 380 180 80   -  - 380 80
33591   90 190 290 390 190 90 290 90 390 90
33593 do_execsql_test joinD-1139 {
33594   SELECT t1.*, t2.*, t3.*, t4.*
33595   FROM t1 FULL JOIN t2 ON t1.b=t2.b
33596   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
33597   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
33598   WHERE (t2.x>0 OR t2.x IS NULL)
33599   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33600 } {
33601    5 105 205 305   -  -   -  - 305  5
33602   10 110 210 310 110 10   -  - 310 10
33603   15 115 215 315   -  - 215 15 315 15
33604   20 120 220 320 120 20   -  - 320 20
33605   25 125 225 325   -  -   -  - 325 25
33606   30 130 230 330 130 30 230 30 330 30
33607   35 135 235 335   -  -   -  - 335 35
33608   40 140 240 340 140 40   -  - 340 40
33609   45 145 245 345   -  - 245 45 345 45
33610   50 150 250 350 150 50   -  - 350 50
33611   55 155 255 355   -  -   -  - 355 55
33612   60 160 260 360 160 60 260 60 360 60
33613   65 165 265 365   -  -   -  - 365 65
33614   70 170 270 370 170 70   -  - 370 70
33615   75 175 275 375   -  - 275 75 375 75
33616   80 180 280 380 180 80   -  - 380 80
33617   85 185 285 385   -  -   -  - 385 85
33618   90 190 290 390 190 90 290 90 390 90
33619   95 195 295 395   -  -   -  - 395 95
33620    -   -   -   -   -  -   -  - 300  0
33622 do_execsql_test joinD-1140 {
33623   SELECT t1.*, t2.*, t3.*, t4.*
33624   FROM t1 FULL JOIN t2 ON true
33625   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
33626   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
33627   WHERE t1.b=t2.b AND t2.x>0
33628   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33629 } {
33630   10 110 210 310 110 10   -  - 310 10
33631   20 120 220 320 120 20   -  - 320 20
33632   30 130 230 330 130 30 230 30 330 30
33633   40 140 240 340 140 40   -  - 340 40
33634   50 150 250 350 150 50   -  - 350 50
33635   60 160 260 360 160 60 260 60 360 60
33636   70 170 270 370 170 70   -  - 370 70
33637   80 180 280 380 180 80   -  - 380 80
33638   90 190 290 390 190 90 290 90 390 90
33640 do_execsql_test joinD-1141 {
33641   SELECT t1.*, t2.*, t3.*, t4.*
33642   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
33643   FULL JOIN t3 ON t1.c=t3.c
33644   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
33645   WHERE t3.y>0
33646   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33647 } {
33648   15 115 215 315   -  - 215 15 315 15
33649   30 130 230 330 130 30 230 30 330 30
33650   45 145 245 345   -  - 245 45 345 45
33651   60 160 260 360 160 60 260 60 360 60
33652   75 175 275 375   -  - 275 75 375 75
33653   90 190 290 390 190 90 290 90 390 90
33655 do_execsql_test joinD-1142 {
33656   SELECT t1.*, t2.*, t3.*, t4.*
33657   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
33658   FULL JOIN t3 ON t1.c=t3.c
33659   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
33660   WHERE t3.y>0 OR t3.y IS NULL
33661   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33662 } {
33663    5 105 205 305   -  -   -  - 305  5
33664   10 110 210 310 110 10   -  - 310 10
33665   15 115 215 315   -  - 215 15 315 15
33666   20 120 220 320 120 20   -  - 320 20
33667   25 125 225 325   -  -   -  - 325 25
33668   30 130 230 330 130 30 230 30 330 30
33669   35 135 235 335   -  -   -  - 335 35
33670   40 140 240 340 140 40   -  - 340 40
33671   45 145 245 345   -  - 245 45 345 45
33672   50 150 250 350 150 50   -  - 350 50
33673   55 155 255 355   -  -   -  - 355 55
33674   60 160 260 360 160 60 260 60 360 60
33675   65 165 265 365   -  -   -  - 365 65
33676   70 170 270 370 170 70   -  - 370 70
33677   75 175 275 375   -  - 275 75 375 75
33678   80 180 280 380 180 80   -  - 380 80
33679   85 185 285 385   -  -   -  - 385 85
33680   90 190 290 390 190 90 290 90 390 90
33681   95 195 295 395   -  -   -  - 395 95
33682    -   -   -   -   -  -   -  - 300  0
33684 do_execsql_test joinD-1143 {
33685   SELECT t1.*, t2.*, t3.*, t4.*
33686   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
33687   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
33688   RIGHT JOIN t4 ON t1.d=t4.d
33689   WHERE t4.z>0
33690   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33691 } {
33692    5 105 205 305   -  -   -  - 305  5
33693   10 110 210 310 110 10   -  - 310 10
33694   15 115 215 315   -  - 215 15 315 15
33695   20 120 220 320 120 20   -  - 320 20
33696   25 125 225 325   -  -   -  - 325 25
33697   30 130 230 330 130 30 230 30 330 30
33698   35 135 235 335   -  -   -  - 335 35
33699   40 140 240 340 140 40   -  - 340 40
33700   45 145 245 345   -  - 245 45 345 45
33701   50 150 250 350 150 50   -  - 350 50
33702   55 155 255 355   -  -   -  - 355 55
33703   60 160 260 360 160 60 260 60 360 60
33704   65 165 265 365   -  -   -  - 365 65
33705   70 170 270 370 170 70   -  - 370 70
33706   75 175 275 375   -  - 275 75 375 75
33707   80 180 280 380 180 80   -  - 380 80
33708   85 185 285 385   -  -   -  - 385 85
33709   90 190 290 390 190 90 290 90 390 90
33710   95 195 295 395   -  -   -  - 395 95
33712 do_execsql_test joinD-1144 {
33713   SELECT t1.*, t2.*, t3.*, t4.*
33714   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
33715   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
33716   RIGHT JOIN t4 ON t1.d=t4.d
33717   WHERE t4.z IS NULL OR t4.z>0
33718   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33719 } {
33720    5 105 205 305   -  -   -  - 305  5
33721   10 110 210 310 110 10   -  - 310 10
33722   15 115 215 315   -  - 215 15 315 15
33723   20 120 220 320 120 20   -  - 320 20
33724   25 125 225 325   -  -   -  - 325 25
33725   30 130 230 330 130 30 230 30 330 30
33726   35 135 235 335   -  -   -  - 335 35
33727   40 140 240 340 140 40   -  - 340 40
33728   45 145 245 345   -  - 245 45 345 45
33729   50 150 250 350 150 50   -  - 350 50
33730   55 155 255 355   -  -   -  - 355 55
33731   60 160 260 360 160 60 260 60 360 60
33732   65 165 265 365   -  -   -  - 365 65
33733   70 170 270 370 170 70   -  - 370 70
33734   75 175 275 375   -  - 275 75 375 75
33735   80 180 280 380 180 80   -  - 380 80
33736   85 185 285 385   -  -   -  - 385 85
33737   90 190 290 390 190 90 290 90 390 90
33738   95 195 295 395   -  -   -  - 395 95
33740 do_execsql_test joinD-1145 {
33741   SELECT t1.*, t2.*, t3.*, t4.*
33742   FROM t1 FULL JOIN t2 ON t1.b=t2.b
33743   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
33744   RIGHT JOIN t4 ON t1.d=t4.d
33745   WHERE t2.x>0 AND t4.z>0
33746   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33747 } {
33748   10 110 210 310 110 10   -  - 310 10
33749   20 120 220 320 120 20   -  - 320 20
33750   30 130 230 330 130 30 230 30 330 30
33751   40 140 240 340 140 40   -  - 340 40
33752   50 150 250 350 150 50   -  - 350 50
33753   60 160 260 360 160 60 260 60 360 60
33754   70 170 270 370 170 70   -  - 370 70
33755   80 180 280 380 180 80   -  - 380 80
33756   90 190 290 390 190 90 290 90 390 90
33758 do_execsql_test joinD-1146 {
33759   SELECT t1.*, t2.*, t3.*, t4.*
33760   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
33761   FULL JOIN t3 ON t1.c=t3.c
33762   RIGHT JOIN t4 ON t1.d=t4.d
33763   WHERE t4.z>0 AND t3.y>0
33764   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33765 } {
33766   15 115 215 315   -  - 215 15 315 15
33767   30 130 230 330 130 30 230 30 330 30
33768   45 145 245 345   -  - 245 45 345 45
33769   60 160 260 360 160 60 260 60 360 60
33770   75 175 275 375   -  - 275 75 375 75
33771   90 190 290 390 190 90 290 90 390 90
33773 do_execsql_test joinD-1147 {
33774   SELECT t1.*, t2.*, t3.*, t4.*
33775   FROM t1 FULL JOIN t2 ON t1.b=t2.b
33776   FULL JOIN t3 ON t1.c=t3.c
33777   RIGHT JOIN t4 ON t1.d=t4.d AND t4.z>0
33778   WHERE t2.x>0 AND t3.y>0
33779   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33780 } {
33781   30 130 230 330 130 30 230 30 330 30
33782   60 160 260 360 160 60 260 60 360 60
33783   90 190 290 390 190 90 290 90 390 90
33785 do_execsql_test joinD-1148 {
33786   SELECT t1.*, t2.*, t3.*, t4.*
33787   FROM t1 FULL JOIN t2 ON t1.b=t2.b
33788   FULL JOIN t3 ON t1.c=t3.c
33789   RIGHT JOIN t4 ON t1.d=t4.d
33790   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
33791   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33792 } {
33793   30 130 230 330 130 30 230 30 330 30
33794   60 160 260 360 160 60 260 60 360 60
33795   90 190 290 390 190 90 290 90 390 90
33797 do_execsql_test joinD-1149 {
33798   SELECT t1.*, t2.*, t3.*, t4.*
33799   FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
33800   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
33801   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
33802   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33803 } {
33804    5 105 205 305   -  -   -  - 305  5
33805   10 110 210 310 110 10   -  - 310 10
33806   15 115 215 315   -  - 215 15 315 15
33807   20 120 220 320 120 20   -  - 320 20
33808   25 125 225 325   -  -   -  - 325 25
33809   30 130 230 330 130 30 230 30 330 30
33810   35 135 235 335   -  -   -  - 335 35
33811   40 140 240 340 140 40   -  - 340 40
33812   45 145 245 345   -  - 245 45 345 45
33813   50 150 250 350 150 50   -  - 350 50
33814   55 155 255 355   -  -   -  - 355 55
33815   60 160 260 360 160 60 260 60 360 60
33816   65 165 265 365   -  -   -  - 365 65
33817   70 170 270 370 170 70   -  - 370 70
33818   75 175 275 375   -  - 275 75 375 75
33819   80 180 280 380 180 80   -  - 380 80
33820   85 185 285 385   -  -   -  - 385 85
33821   90 190 290 390 190 90 290 90 390 90
33822   95 195 295 395   -  -   -  - 395 95
33823    -   -   -   -   -  -   -  - 300  0
33825 do_execsql_test joinD-1150 {
33826   SELECT t1.*, t2.*, t3.*, t4.*
33827   FROM t1 FULL JOIN t2 ON t2.x>0
33828   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
33829   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
33830   WHERE t1.b = t2.b
33831   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33832 } {
33833   10 110 210 310 110 10   -  - 310 10
33834   20 120 220 320 120 20   -  - 320 20
33835   30 130 230 330 130 30 230 30 330 30
33836   40 140 240 340 140 40   -  - 340 40
33837   50 150 250 350 150 50   -  - 350 50
33838   60 160 260 360 160 60 260 60 360 60
33839   70 170 270 370 170 70   -  - 370 70
33840   80 180 280 380 180 80   -  - 380 80
33841   90 190 290 390 190 90 290 90 390 90
33843 do_execsql_test joinD-1151 {
33844   SELECT t1.*, t2.*, t3.*, t4.*
33845   FROM t1 FULL JOIN t2 ON t2.x>0
33846   FULL JOIN t3 ON t3.y>0
33847   RIGHT JOIN t4 ON t1.d IS NOT DISTINCT FROM t4.d AND t4.z>0
33848   WHERE t1.b = t2.b AND t1.c = t3.c
33849   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33850 } {
33851   30 130 230 330 130 30 230 30 330 30
33852   60 160 260 360 160 60 260 60 360 60
33853   90 190 290 390 190 90 290 90 390 90
33855 do_execsql_test joinD-1152 {
33856   SELECT t1.*, t2.*, t3.*, t4.*
33857   FROM t1 FULL JOIN t2 ON t2.x>0
33858   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
33859   RIGHT JOIN t4 ON t4.z>0
33860   WHERE t1.b = t2.b AND t1.d IS NOT DISTINCT FROM t4.d
33861   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33862 } {
33863   10 110 210 310 110 10   -  - 310 10
33864   20 120 220 320 120 20   -  - 320 20
33865   30 130 230 330 130 30 230 30 330 30
33866   40 140 240 340 140 40   -  - 340 40
33867   50 150 250 350 150 50   -  - 350 50
33868   60 160 260 360 160 60 260 60 360 60
33869   70 170 270 370 170 70   -  - 370 70
33870   80 180 280 380 180 80   -  - 380 80
33871   90 190 290 390 190 90 290 90 390 90
33873 do_execsql_test joinD-1153 {
33874   SELECT t1.*, t2.*, t3.*, t4.*
33875   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
33876   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
33877   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
33878   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33879 } {
33880    0 100 200 300   -  -   -  -   -  -
33881    1 101 201 301   -  -   -  -   -  -
33882    2 102 202 302 102  2   -  -   -  -
33883    3 103 203 303   -  - 203  3   -  -
33884    4 104 204 304 104  4   -  -   -  -
33885    5 105 205 305   -  -   -  - 305  5
33886    6 106 206 306 106  6 206  6   -  -
33887    7 107 207 307   -  -   -  -   -  -
33888    8 108 208 308 108  8   -  -   -  -
33889    9 109 209 309   -  - 209  9   -  -
33890   10 110 210 310 110 10   -  - 310 10
33891   11 111 211 311   -  -   -  -   -  -
33892   12 112 212 312 112 12 212 12   -  -
33893   13 113 213 313   -  -   -  -   -  -
33894   14 114 214 314 114 14   -  -   -  -
33895   15 115 215 315   -  - 215 15 315 15
33896   16 116 216 316 116 16   -  -   -  -
33897   17 117 217 317   -  -   -  -   -  -
33898   18 118 218 318 118 18 218 18   -  -
33899   19 119 219 319   -  -   -  -   -  -
33900   20 120 220 320 120 20   -  - 320 20
33901   21 121 221 321   -  - 221 21   -  -
33902   22 122 222 322 122 22   -  -   -  -
33903   23 123 223 323   -  -   -  -   -  -
33904   24 124 224 324 124 24 224 24   -  -
33905   25 125 225 325   -  -   -  - 325 25
33906   26 126 226 326 126 26   -  -   -  -
33907   27 127 227 327   -  - 227 27   -  -
33908   28 128 228 328 128 28   -  -   -  -
33909   29 129 229 329   -  -   -  -   -  -
33910   30 130 230 330 130 30 230 30 330 30
33911   31 131 231 331   -  -   -  -   -  -
33912   32 132 232 332 132 32   -  -   -  -
33913   33 133 233 333   -  - 233 33   -  -
33914   34 134 234 334 134 34   -  -   -  -
33915   35 135 235 335   -  -   -  - 335 35
33916   36 136 236 336 136 36 236 36   -  -
33917   37 137 237 337   -  -   -  -   -  -
33918   38 138 238 338 138 38   -  -   -  -
33919   39 139 239 339   -  - 239 39   -  -
33920   40 140 240 340 140 40   -  - 340 40
33921   41 141 241 341   -  -   -  -   -  -
33922   42 142 242 342 142 42 242 42   -  -
33923   43 143 243 343   -  -   -  -   -  -
33924   44 144 244 344 144 44   -  -   -  -
33925   45 145 245 345   -  - 245 45 345 45
33926   46 146 246 346 146 46   -  -   -  -
33927   47 147 247 347   -  -   -  -   -  -
33928   48 148 248 348 148 48 248 48   -  -
33929   49 149 249 349   -  -   -  -   -  -
33930   50 150 250 350 150 50   -  - 350 50
33931   51 151 251 351   -  - 251 51   -  -
33932   52 152 252 352 152 52   -  -   -  -
33933   53 153 253 353   -  -   -  -   -  -
33934   54 154 254 354 154 54 254 54   -  -
33935   55 155 255 355   -  -   -  - 355 55
33936   56 156 256 356 156 56   -  -   -  -
33937   57 157 257 357   -  - 257 57   -  -
33938   58 158 258 358 158 58   -  -   -  -
33939   59 159 259 359   -  -   -  -   -  -
33940   60 160 260 360 160 60 260 60 360 60
33941   61 161 261 361   -  -   -  -   -  -
33942   62 162 262 362 162 62   -  -   -  -
33943   63 163 263 363   -  - 263 63   -  -
33944   64 164 264 364 164 64   -  -   -  -
33945   65 165 265 365   -  -   -  - 365 65
33946   66 166 266 366 166 66 266 66   -  -
33947   67 167 267 367   -  -   -  -   -  -
33948   68 168 268 368 168 68   -  -   -  -
33949   69 169 269 369   -  - 269 69   -  -
33950   70 170 270 370 170 70   -  - 370 70
33951   71 171 271 371   -  -   -  -   -  -
33952   72 172 272 372 172 72 272 72   -  -
33953   73 173 273 373   -  -   -  -   -  -
33954   74 174 274 374 174 74   -  -   -  -
33955   75 175 275 375   -  - 275 75 375 75
33956   76 176 276 376 176 76   -  -   -  -
33957   77 177 277 377   -  -   -  -   -  -
33958   78 178 278 378 178 78 278 78   -  -
33959   79 179 279 379   -  -   -  -   -  -
33960   80 180 280 380 180 80   -  - 380 80
33961   81 181 281 381   -  - 281 81   -  -
33962   82 182 282 382 182 82   -  -   -  -
33963   83 183 283 383   -  -   -  -   -  -
33964   84 184 284 384 184 84 284 84   -  -
33965   85 185 285 385   -  -   -  - 385 85
33966   86 186 286 386 186 86   -  -   -  -
33967   87 187 287 387   -  - 287 87   -  -
33968   88 188 288 388 188 88   -  -   -  -
33969   89 189 289 389   -  -   -  -   -  -
33970   90 190 290 390 190 90 290 90 390 90
33971   91 191 291 391   -  -   -  -   -  -
33972   92 192 292 392 192 92   -  -   -  -
33973   93 193 293 393   -  - 293 93   -  -
33974   94 194 294 394 194 94   -  -   -  -
33975   95 195 295 395   -  -   -  - 395 95
33976   96   - 296 396   -  -   -  -   -  -
33977   97 197   - 397   -  -   -  -   -  -
33978   98 198 298   -   -  -   -  -   -  -
33979   99   -   -   -   -  -   -  -   -  -
33980    -   -   -   - 100  0   -  -   -  -
33981    -   -   -   -   -  - 200  0   -  -
33982    -   -   -   -   -  -   -  - 300  0
33984 do_execsql_test joinD-1154 {
33985   SELECT t1.*, t2.*, t3.*, t4.*
33986   FROM t1 FULL JOIN t2 ON t1.b=t2.b
33987   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
33988   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
33989   WHERE t2.x>0
33990   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
33991 } {
33992    2 102 202 302 102  2   -  -   -  -
33993    4 104 204 304 104  4   -  -   -  -
33994    6 106 206 306 106  6 206  6   -  -
33995    8 108 208 308 108  8   -  -   -  -
33996   10 110 210 310 110 10   -  - 310 10
33997   12 112 212 312 112 12 212 12   -  -
33998   14 114 214 314 114 14   -  -   -  -
33999   16 116 216 316 116 16   -  -   -  -
34000   18 118 218 318 118 18 218 18   -  -
34001   20 120 220 320 120 20   -  - 320 20
34002   22 122 222 322 122 22   -  -   -  -
34003   24 124 224 324 124 24 224 24   -  -
34004   26 126 226 326 126 26   -  -   -  -
34005   28 128 228 328 128 28   -  -   -  -
34006   30 130 230 330 130 30 230 30 330 30
34007   32 132 232 332 132 32   -  -   -  -
34008   34 134 234 334 134 34   -  -   -  -
34009   36 136 236 336 136 36 236 36   -  -
34010   38 138 238 338 138 38   -  -   -  -
34011   40 140 240 340 140 40   -  - 340 40
34012   42 142 242 342 142 42 242 42   -  -
34013   44 144 244 344 144 44   -  -   -  -
34014   46 146 246 346 146 46   -  -   -  -
34015   48 148 248 348 148 48 248 48   -  -
34016   50 150 250 350 150 50   -  - 350 50
34017   52 152 252 352 152 52   -  -   -  -
34018   54 154 254 354 154 54 254 54   -  -
34019   56 156 256 356 156 56   -  -   -  -
34020   58 158 258 358 158 58   -  -   -  -
34021   60 160 260 360 160 60 260 60 360 60
34022   62 162 262 362 162 62   -  -   -  -
34023   64 164 264 364 164 64   -  -   -  -
34024   66 166 266 366 166 66 266 66   -  -
34025   68 168 268 368 168 68   -  -   -  -
34026   70 170 270 370 170 70   -  - 370 70
34027   72 172 272 372 172 72 272 72   -  -
34028   74 174 274 374 174 74   -  -   -  -
34029   76 176 276 376 176 76   -  -   -  -
34030   78 178 278 378 178 78 278 78   -  -
34031   80 180 280 380 180 80   -  - 380 80
34032   82 182 282 382 182 82   -  -   -  -
34033   84 184 284 384 184 84 284 84   -  -
34034   86 186 286 386 186 86   -  -   -  -
34035   88 188 288 388 188 88   -  -   -  -
34036   90 190 290 390 190 90 290 90 390 90
34037   92 192 292 392 192 92   -  -   -  -
34038   94 194 294 394 194 94   -  -   -  -
34040 do_execsql_test joinD-1155 {
34041   SELECT t1.*, t2.*, t3.*, t4.*
34042   FROM t1 FULL JOIN t2 ON t1.b=t2.b
34043   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
34044   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
34045   WHERE (t2.x>0 OR t2.x IS NULL)
34046   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
34047 } {
34048    1 101 201 301   -  -   -  -   -  -
34049    2 102 202 302 102  2   -  -   -  -
34050    3 103 203 303   -  - 203  3   -  -
34051    4 104 204 304 104  4   -  -   -  -
34052    5 105 205 305   -  -   -  - 305  5
34053    6 106 206 306 106  6 206  6   -  -
34054    7 107 207 307   -  -   -  -   -  -
34055    8 108 208 308 108  8   -  -   -  -
34056    9 109 209 309   -  - 209  9   -  -
34057   10 110 210 310 110 10   -  - 310 10
34058   11 111 211 311   -  -   -  -   -  -
34059   12 112 212 312 112 12 212 12   -  -
34060   13 113 213 313   -  -   -  -   -  -
34061   14 114 214 314 114 14   -  -   -  -
34062   15 115 215 315   -  - 215 15 315 15
34063   16 116 216 316 116 16   -  -   -  -
34064   17 117 217 317   -  -   -  -   -  -
34065   18 118 218 318 118 18 218 18   -  -
34066   19 119 219 319   -  -   -  -   -  -
34067   20 120 220 320 120 20   -  - 320 20
34068   21 121 221 321   -  - 221 21   -  -
34069   22 122 222 322 122 22   -  -   -  -
34070   23 123 223 323   -  -   -  -   -  -
34071   24 124 224 324 124 24 224 24   -  -
34072   25 125 225 325   -  -   -  - 325 25
34073   26 126 226 326 126 26   -  -   -  -
34074   27 127 227 327   -  - 227 27   -  -
34075   28 128 228 328 128 28   -  -   -  -
34076   29 129 229 329   -  -   -  -   -  -
34077   30 130 230 330 130 30 230 30 330 30
34078   31 131 231 331   -  -   -  -   -  -
34079   32 132 232 332 132 32   -  -   -  -
34080   33 133 233 333   -  - 233 33   -  -
34081   34 134 234 334 134 34   -  -   -  -
34082   35 135 235 335   -  -   -  - 335 35
34083   36 136 236 336 136 36 236 36   -  -
34084   37 137 237 337   -  -   -  -   -  -
34085   38 138 238 338 138 38   -  -   -  -
34086   39 139 239 339   -  - 239 39   -  -
34087   40 140 240 340 140 40   -  - 340 40
34088   41 141 241 341   -  -   -  -   -  -
34089   42 142 242 342 142 42 242 42   -  -
34090   43 143 243 343   -  -   -  -   -  -
34091   44 144 244 344 144 44   -  -   -  -
34092   45 145 245 345   -  - 245 45 345 45
34093   46 146 246 346 146 46   -  -   -  -
34094   47 147 247 347   -  -   -  -   -  -
34095   48 148 248 348 148 48 248 48   -  -
34096   49 149 249 349   -  -   -  -   -  -
34097   50 150 250 350 150 50   -  - 350 50
34098   51 151 251 351   -  - 251 51   -  -
34099   52 152 252 352 152 52   -  -   -  -
34100   53 153 253 353   -  -   -  -   -  -
34101   54 154 254 354 154 54 254 54   -  -
34102   55 155 255 355   -  -   -  - 355 55
34103   56 156 256 356 156 56   -  -   -  -
34104   57 157 257 357   -  - 257 57   -  -
34105   58 158 258 358 158 58   -  -   -  -
34106   59 159 259 359   -  -   -  -   -  -
34107   60 160 260 360 160 60 260 60 360 60
34108   61 161 261 361   -  -   -  -   -  -
34109   62 162 262 362 162 62   -  -   -  -
34110   63 163 263 363   -  - 263 63   -  -
34111   64 164 264 364 164 64   -  -   -  -
34112   65 165 265 365   -  -   -  - 365 65
34113   66 166 266 366 166 66 266 66   -  -
34114   67 167 267 367   -  -   -  -   -  -
34115   68 168 268 368 168 68   -  -   -  -
34116   69 169 269 369   -  - 269 69   -  -
34117   70 170 270 370 170 70   -  - 370 70
34118   71 171 271 371   -  -   -  -   -  -
34119   72 172 272 372 172 72 272 72   -  -
34120   73 173 273 373   -  -   -  -   -  -
34121   74 174 274 374 174 74   -  -   -  -
34122   75 175 275 375   -  - 275 75 375 75
34123   76 176 276 376 176 76   -  -   -  -
34124   77 177 277 377   -  -   -  -   -  -
34125   78 178 278 378 178 78 278 78   -  -
34126   79 179 279 379   -  -   -  -   -  -
34127   80 180 280 380 180 80   -  - 380 80
34128   81 181 281 381   -  - 281 81   -  -
34129   82 182 282 382 182 82   -  -   -  -
34130   83 183 283 383   -  -   -  -   -  -
34131   84 184 284 384 184 84 284 84   -  -
34132   85 185 285 385   -  -   -  - 385 85
34133   86 186 286 386 186 86   -  -   -  -
34134   87 187 287 387   -  - 287 87   -  -
34135   88 188 288 388 188 88   -  -   -  -
34136   89 189 289 389   -  -   -  -   -  -
34137   90 190 290 390 190 90 290 90 390 90
34138   91 191 291 391   -  -   -  -   -  -
34139   92 192 292 392 192 92   -  -   -  -
34140   93 193 293 393   -  - 293 93   -  -
34141   94 194 294 394 194 94   -  -   -  -
34142   95 195 295 395   -  -   -  - 395 95
34143   96   - 296 396   -  -   -  -   -  -
34144   97 197   - 397   -  -   -  -   -  -
34145   98 198 298   -   -  -   -  -   -  -
34146   99   -   -   -   -  -   -  -   -  -
34147    -   -   -   -   -  - 200  0   -  -
34148    -   -   -   -   -  -   -  - 300  0
34150 do_execsql_test joinD-1156 {
34151   SELECT t1.*, t2.*, t3.*, t4.*
34152   FROM t1 FULL JOIN t2 ON true
34153   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
34154   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
34155   WHERE t1.b=t2.b AND t2.x>0
34156   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
34157 } {
34158    2 102 202 302 102  2   -  -   -  -
34159    4 104 204 304 104  4   -  -   -  -
34160    6 106 206 306 106  6 206  6   -  -
34161    8 108 208 308 108  8   -  -   -  -
34162   10 110 210 310 110 10   -  - 310 10
34163   12 112 212 312 112 12 212 12   -  -
34164   14 114 214 314 114 14   -  -   -  -
34165   16 116 216 316 116 16   -  -   -  -
34166   18 118 218 318 118 18 218 18   -  -
34167   20 120 220 320 120 20   -  - 320 20
34168   22 122 222 322 122 22   -  -   -  -
34169   24 124 224 324 124 24 224 24   -  -
34170   26 126 226 326 126 26   -  -   -  -
34171   28 128 228 328 128 28   -  -   -  -
34172   30 130 230 330 130 30 230 30 330 30
34173   32 132 232 332 132 32   -  -   -  -
34174   34 134 234 334 134 34   -  -   -  -
34175   36 136 236 336 136 36 236 36   -  -
34176   38 138 238 338 138 38   -  -   -  -
34177   40 140 240 340 140 40   -  - 340 40
34178   42 142 242 342 142 42 242 42   -  -
34179   44 144 244 344 144 44   -  -   -  -
34180   46 146 246 346 146 46   -  -   -  -
34181   48 148 248 348 148 48 248 48   -  -
34182   50 150 250 350 150 50   -  - 350 50
34183   52 152 252 352 152 52   -  -   -  -
34184   54 154 254 354 154 54 254 54   -  -
34185   56 156 256 356 156 56   -  -   -  -
34186   58 158 258 358 158 58   -  -   -  -
34187   60 160 260 360 160 60 260 60 360 60
34188   62 162 262 362 162 62   -  -   -  -
34189   64 164 264 364 164 64   -  -   -  -
34190   66 166 266 366 166 66 266 66   -  -
34191   68 168 268 368 168 68   -  -   -  -
34192   70 170 270 370 170 70   -  - 370 70
34193   72 172 272 372 172 72 272 72   -  -
34194   74 174 274 374 174 74   -  -   -  -
34195   76 176 276 376 176 76   -  -   -  -
34196   78 178 278 378 178 78 278 78   -  -
34197   80 180 280 380 180 80   -  - 380 80
34198   82 182 282 382 182 82   -  -   -  -
34199   84 184 284 384 184 84 284 84   -  -
34200   86 186 286 386 186 86   -  -   -  -
34201   88 188 288 388 188 88   -  -   -  -
34202   90 190 290 390 190 90 290 90 390 90
34203   92 192 292 392 192 92   -  -   -  -
34204   94 194 294 394 194 94   -  -   -  -
34206 do_execsql_test joinD-1157 {
34207   SELECT t1.*, t2.*, t3.*, t4.*
34208   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
34209   FULL JOIN t3 ON t1.c=t3.c
34210   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
34211   WHERE t3.y>0
34212   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
34213 } {
34214    3 103 203 303   -  - 203  3   -  -
34215    6 106 206 306 106  6 206  6   -  -
34216    9 109 209 309   -  - 209  9   -  -
34217   12 112 212 312 112 12 212 12   -  -
34218   15 115 215 315   -  - 215 15 315 15
34219   18 118 218 318 118 18 218 18   -  -
34220   21 121 221 321   -  - 221 21   -  -
34221   24 124 224 324 124 24 224 24   -  -
34222   27 127 227 327   -  - 227 27   -  -
34223   30 130 230 330 130 30 230 30 330 30
34224   33 133 233 333   -  - 233 33   -  -
34225   36 136 236 336 136 36 236 36   -  -
34226   39 139 239 339   -  - 239 39   -  -
34227   42 142 242 342 142 42 242 42   -  -
34228   45 145 245 345   -  - 245 45 345 45
34229   48 148 248 348 148 48 248 48   -  -
34230   51 151 251 351   -  - 251 51   -  -
34231   54 154 254 354 154 54 254 54   -  -
34232   57 157 257 357   -  - 257 57   -  -
34233   60 160 260 360 160 60 260 60 360 60
34234   63 163 263 363   -  - 263 63   -  -
34235   66 166 266 366 166 66 266 66   -  -
34236   69 169 269 369   -  - 269 69   -  -
34237   72 172 272 372 172 72 272 72   -  -
34238   75 175 275 375   -  - 275 75 375 75
34239   78 178 278 378 178 78 278 78   -  -
34240   81 181 281 381   -  - 281 81   -  -
34241   84 184 284 384 184 84 284 84   -  -
34242   87 187 287 387   -  - 287 87   -  -
34243   90 190 290 390 190 90 290 90 390 90
34244   93 193 293 393   -  - 293 93   -  -
34246 do_execsql_test joinD-1158 {
34247   SELECT t1.*, t2.*, t3.*, t4.*
34248   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
34249   FULL JOIN t3 ON t1.c=t3.c
34250   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
34251   WHERE t3.y>0 OR t3.y IS NULL
34252   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
34253 } {
34254    1 101 201 301   -  -   -  -   -  -
34255    2 102 202 302 102  2   -  -   -  -
34256    3 103 203 303   -  - 203  3   -  -
34257    4 104 204 304 104  4   -  -   -  -
34258    5 105 205 305   -  -   -  - 305  5
34259    6 106 206 306 106  6 206  6   -  -
34260    7 107 207 307   -  -   -  -   -  -
34261    8 108 208 308 108  8   -  -   -  -
34262    9 109 209 309   -  - 209  9   -  -
34263   10 110 210 310 110 10   -  - 310 10
34264   11 111 211 311   -  -   -  -   -  -
34265   12 112 212 312 112 12 212 12   -  -
34266   13 113 213 313   -  -   -  -   -  -
34267   14 114 214 314 114 14   -  -   -  -
34268   15 115 215 315   -  - 215 15 315 15
34269   16 116 216 316 116 16   -  -   -  -
34270   17 117 217 317   -  -   -  -   -  -
34271   18 118 218 318 118 18 218 18   -  -
34272   19 119 219 319   -  -   -  -   -  -
34273   20 120 220 320 120 20   -  - 320 20
34274   21 121 221 321   -  - 221 21   -  -
34275   22 122 222 322 122 22   -  -   -  -
34276   23 123 223 323   -  -   -  -   -  -
34277   24 124 224 324 124 24 224 24   -  -
34278   25 125 225 325   -  -   -  - 325 25
34279   26 126 226 326 126 26   -  -   -  -
34280   27 127 227 327   -  - 227 27   -  -
34281   28 128 228 328 128 28   -  -   -  -
34282   29 129 229 329   -  -   -  -   -  -
34283   30 130 230 330 130 30 230 30 330 30
34284   31 131 231 331   -  -   -  -   -  -
34285   32 132 232 332 132 32   -  -   -  -
34286   33 133 233 333   -  - 233 33   -  -
34287   34 134 234 334 134 34   -  -   -  -
34288   35 135 235 335   -  -   -  - 335 35
34289   36 136 236 336 136 36 236 36   -  -
34290   37 137 237 337   -  -   -  -   -  -
34291   38 138 238 338 138 38   -  -   -  -
34292   39 139 239 339   -  - 239 39   -  -
34293   40 140 240 340 140 40   -  - 340 40
34294   41 141 241 341   -  -   -  -   -  -
34295   42 142 242 342 142 42 242 42   -  -
34296   43 143 243 343   -  -   -  -   -  -
34297   44 144 244 344 144 44   -  -   -  -
34298   45 145 245 345   -  - 245 45 345 45
34299   46 146 246 346 146 46   -  -   -  -
34300   47 147 247 347   -  -   -  -   -  -
34301   48 148 248 348 148 48 248 48   -  -
34302   49 149 249 349   -  -   -  -   -  -
34303   50 150 250 350 150 50   -  - 350 50
34304   51 151 251 351   -  - 251 51   -  -
34305   52 152 252 352 152 52   -  -   -  -
34306   53 153 253 353   -  -   -  -   -  -
34307   54 154 254 354 154 54 254 54   -  -
34308   55 155 255 355   -  -   -  - 355 55
34309   56 156 256 356 156 56   -  -   -  -
34310   57 157 257 357   -  - 257 57   -  -
34311   58 158 258 358 158 58   -  -   -  -
34312   59 159 259 359   -  -   -  -   -  -
34313   60 160 260 360 160 60 260 60 360 60
34314   61 161 261 361   -  -   -  -   -  -
34315   62 162 262 362 162 62   -  -   -  -
34316   63 163 263 363   -  - 263 63   -  -
34317   64 164 264 364 164 64   -  -   -  -
34318   65 165 265 365   -  -   -  - 365 65
34319   66 166 266 366 166 66 266 66   -  -
34320   67 167 267 367   -  -   -  -   -  -
34321   68 168 268 368 168 68   -  -   -  -
34322   69 169 269 369   -  - 269 69   -  -
34323   70 170 270 370 170 70   -  - 370 70
34324   71 171 271 371   -  -   -  -   -  -
34325   72 172 272 372 172 72 272 72   -  -
34326   73 173 273 373   -  -   -  -   -  -
34327   74 174 274 374 174 74   -  -   -  -
34328   75 175 275 375   -  - 275 75 375 75
34329   76 176 276 376 176 76   -  -   -  -
34330   77 177 277 377   -  -   -  -   -  -
34331   78 178 278 378 178 78 278 78   -  -
34332   79 179 279 379   -  -   -  -   -  -
34333   80 180 280 380 180 80   -  - 380 80
34334   81 181 281 381   -  - 281 81   -  -
34335   82 182 282 382 182 82   -  -   -  -
34336   83 183 283 383   -  -   -  -   -  -
34337   84 184 284 384 184 84 284 84   -  -
34338   85 185 285 385   -  -   -  - 385 85
34339   86 186 286 386 186 86   -  -   -  -
34340   87 187 287 387   -  - 287 87   -  -
34341   88 188 288 388 188 88   -  -   -  -
34342   89 189 289 389   -  -   -  -   -  -
34343   90 190 290 390 190 90 290 90 390 90
34344   91 191 291 391   -  -   -  -   -  -
34345   92 192 292 392 192 92   -  -   -  -
34346   93 193 293 393   -  - 293 93   -  -
34347   94 194 294 394 194 94   -  -   -  -
34348   95 195 295 395   -  -   -  - 395 95
34349   96   - 296 396   -  -   -  -   -  -
34350   97 197   - 397   -  -   -  -   -  -
34351   98 198 298   -   -  -   -  -   -  -
34352   99   -   -   -   -  -   -  -   -  -
34353    -   -   -   - 100  0   -  -   -  -
34354    -   -   -   -   -  -   -  - 300  0
34356 do_execsql_test joinD-1159 {
34357   SELECT t1.*, t2.*, t3.*, t4.*
34358   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
34359   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
34360   FULL JOIN t4 ON t1.d=t4.d
34361   WHERE t4.z>0
34362   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
34363 } {
34364    5 105 205 305   -  -   -  - 305  5
34365   10 110 210 310 110 10   -  - 310 10
34366   15 115 215 315   -  - 215 15 315 15
34367   20 120 220 320 120 20   -  - 320 20
34368   25 125 225 325   -  -   -  - 325 25
34369   30 130 230 330 130 30 230 30 330 30
34370   35 135 235 335   -  -   -  - 335 35
34371   40 140 240 340 140 40   -  - 340 40
34372   45 145 245 345   -  - 245 45 345 45
34373   50 150 250 350 150 50   -  - 350 50
34374   55 155 255 355   -  -   -  - 355 55
34375   60 160 260 360 160 60 260 60 360 60
34376   65 165 265 365   -  -   -  - 365 65
34377   70 170 270 370 170 70   -  - 370 70
34378   75 175 275 375   -  - 275 75 375 75
34379   80 180 280 380 180 80   -  - 380 80
34380   85 185 285 385   -  -   -  - 385 85
34381   90 190 290 390 190 90 290 90 390 90
34382   95 195 295 395   -  -   -  - 395 95
34384 do_execsql_test joinD-1160 {
34385   SELECT t1.*, t2.*, t3.*, t4.*
34386   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
34387   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
34388   FULL JOIN t4 ON t1.d=t4.d
34389   WHERE t4.z IS NULL OR t4.z>0
34390   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
34391 } {
34392    1 101 201 301   -  -   -  -   -  -
34393    2 102 202 302 102  2   -  -   -  -
34394    3 103 203 303   -  - 203  3   -  -
34395    4 104 204 304 104  4   -  -   -  -
34396    5 105 205 305   -  -   -  - 305  5
34397    6 106 206 306 106  6 206  6   -  -
34398    7 107 207 307   -  -   -  -   -  -
34399    8 108 208 308 108  8   -  -   -  -
34400    9 109 209 309   -  - 209  9   -  -
34401   10 110 210 310 110 10   -  - 310 10
34402   11 111 211 311   -  -   -  -   -  -
34403   12 112 212 312 112 12 212 12   -  -
34404   13 113 213 313   -  -   -  -   -  -
34405   14 114 214 314 114 14   -  -   -  -
34406   15 115 215 315   -  - 215 15 315 15
34407   16 116 216 316 116 16   -  -   -  -
34408   17 117 217 317   -  -   -  -   -  -
34409   18 118 218 318 118 18 218 18   -  -
34410   19 119 219 319   -  -   -  -   -  -
34411   20 120 220 320 120 20   -  - 320 20
34412   21 121 221 321   -  - 221 21   -  -
34413   22 122 222 322 122 22   -  -   -  -
34414   23 123 223 323   -  -   -  -   -  -
34415   24 124 224 324 124 24 224 24   -  -
34416   25 125 225 325   -  -   -  - 325 25
34417   26 126 226 326 126 26   -  -   -  -
34418   27 127 227 327   -  - 227 27   -  -
34419   28 128 228 328 128 28   -  -   -  -
34420   29 129 229 329   -  -   -  -   -  -
34421   30 130 230 330 130 30 230 30 330 30
34422   31 131 231 331   -  -   -  -   -  -
34423   32 132 232 332 132 32   -  -   -  -
34424   33 133 233 333   -  - 233 33   -  -
34425   34 134 234 334 134 34   -  -   -  -
34426   35 135 235 335   -  -   -  - 335 35
34427   36 136 236 336 136 36 236 36   -  -
34428   37 137 237 337   -  -   -  -   -  -
34429   38 138 238 338 138 38   -  -   -  -
34430   39 139 239 339   -  - 239 39   -  -
34431   40 140 240 340 140 40   -  - 340 40
34432   41 141 241 341   -  -   -  -   -  -
34433   42 142 242 342 142 42 242 42   -  -
34434   43 143 243 343   -  -   -  -   -  -
34435   44 144 244 344 144 44   -  -   -  -
34436   45 145 245 345   -  - 245 45 345 45
34437   46 146 246 346 146 46   -  -   -  -
34438   47 147 247 347   -  -   -  -   -  -
34439   48 148 248 348 148 48 248 48   -  -
34440   49 149 249 349   -  -   -  -   -  -
34441   50 150 250 350 150 50   -  - 350 50
34442   51 151 251 351   -  - 251 51   -  -
34443   52 152 252 352 152 52   -  -   -  -
34444   53 153 253 353   -  -   -  -   -  -
34445   54 154 254 354 154 54 254 54   -  -
34446   55 155 255 355   -  -   -  - 355 55
34447   56 156 256 356 156 56   -  -   -  -
34448   57 157 257 357   -  - 257 57   -  -
34449   58 158 258 358 158 58   -  -   -  -
34450   59 159 259 359   -  -   -  -   -  -
34451   60 160 260 360 160 60 260 60 360 60
34452   61 161 261 361   -  -   -  -   -  -
34453   62 162 262 362 162 62   -  -   -  -
34454   63 163 263 363   -  - 263 63   -  -
34455   64 164 264 364 164 64   -  -   -  -
34456   65 165 265 365   -  -   -  - 365 65
34457   66 166 266 366 166 66 266 66   -  -
34458   67 167 267 367   -  -   -  -   -  -
34459   68 168 268 368 168 68   -  -   -  -
34460   69 169 269 369   -  - 269 69   -  -
34461   70 170 270 370 170 70   -  - 370 70
34462   71 171 271 371   -  -   -  -   -  -
34463   72 172 272 372 172 72 272 72   -  -
34464   73 173 273 373   -  -   -  -   -  -
34465   74 174 274 374 174 74   -  -   -  -
34466   75 175 275 375   -  - 275 75 375 75
34467   76 176 276 376 176 76   -  -   -  -
34468   77 177 277 377   -  -   -  -   -  -
34469   78 178 278 378 178 78 278 78   -  -
34470   79 179 279 379   -  -   -  -   -  -
34471   80 180 280 380 180 80   -  - 380 80
34472   81 181 281 381   -  - 281 81   -  -
34473   82 182 282 382 182 82   -  -   -  -
34474   83 183 283 383   -  -   -  -   -  -
34475   84 184 284 384 184 84 284 84   -  -
34476   85 185 285 385   -  -   -  - 385 85
34477   86 186 286 386 186 86   -  -   -  -
34478   87 187 287 387   -  - 287 87   -  -
34479   88 188 288 388 188 88   -  -   -  -
34480   89 189 289 389   -  -   -  -   -  -
34481   90 190 290 390 190 90 290 90 390 90
34482   91 191 291 391   -  -   -  -   -  -
34483   92 192 292 392 192 92   -  -   -  -
34484   93 193 293 393   -  - 293 93   -  -
34485   94 194 294 394 194 94   -  -   -  -
34486   95 195 295 395   -  -   -  - 395 95
34487   96   - 296 396   -  -   -  -   -  -
34488   97 197   - 397   -  -   -  -   -  -
34489   98 198 298   -   -  -   -  -   -  -
34490   99   -   -   -   -  -   -  -   -  -
34491    -   -   -   - 100  0   -  -   -  -
34492    -   -   -   -   -  - 200  0   -  -
34494 do_execsql_test joinD-1161 {
34495   SELECT t1.*, t2.*, t3.*, t4.*
34496   FROM t1 FULL JOIN t2 ON t1.b=t2.b
34497   FULL JOIN t3 ON t1.c=t3.c AND t3.y>0
34498   FULL JOIN t4 ON t1.d=t4.d
34499   WHERE t2.x>0 AND t4.z>0
34500   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
34501 } {
34502   10 110 210 310 110 10   -  - 310 10
34503   20 120 220 320 120 20   -  - 320 20
34504   30 130 230 330 130 30 230 30 330 30
34505   40 140 240 340 140 40   -  - 340 40
34506   50 150 250 350 150 50   -  - 350 50
34507   60 160 260 360 160 60 260 60 360 60
34508   70 170 270 370 170 70   -  - 370 70
34509   80 180 280 380 180 80   -  - 380 80
34510   90 190 290 390 190 90 290 90 390 90
34512 do_execsql_test joinD-1162 {
34513   SELECT t1.*, t2.*, t3.*, t4.*
34514   FROM t1 FULL JOIN t2 ON t1.b=t2.b AND t2.x>0
34515   FULL JOIN t3 ON t1.c=t3.c
34516   FULL JOIN t4 ON t1.d=t4.d
34517   WHERE t4.z>0 AND t3.y>0
34518   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
34519 } {
34520   15 115 215 315   -  - 215 15 315 15
34521   30 130 230 330 130 30 230 30 330 30
34522   45 145 245 345   -  - 245 45 345 45
34523   60 160 260 360 160 60 260 60 360 60
34524   75 175 275 375   -  - 275 75 375 75
34525   90 190 290 390 190 90 290 90 390 90
34527 do_execsql_test joinD-1163 {
34528   SELECT t1.*, t2.*, t3.*, t4.*
34529   FROM t1 FULL JOIN t2 ON t1.b=t2.b
34530   FULL JOIN t3 ON t1.c=t3.c
34531   FULL JOIN t4 ON t1.d=t4.d AND t4.z>0
34532   WHERE t2.x>0 AND t3.y>0
34533   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
34534 } {
34535    6 106 206 306 106  6 206  6   -  -
34536   12 112 212 312 112 12 212 12   -  -
34537   18 118 218 318 118 18 218 18   -  -
34538   24 124 224 324 124 24 224 24   -  -
34539   30 130 230 330 130 30 230 30 330 30
34540   36 136 236 336 136 36 236 36   -  -
34541   42 142 242 342 142 42 242 42   -  -
34542   48 148 248 348 148 48 248 48   -  -
34543   54 154 254 354 154 54 254 54   -  -
34544   60 160 260 360 160 60 260 60 360 60
34545   66 166 266 366 166 66 266 66   -  -
34546   72 172 272 372 172 72 272 72   -  -
34547   78 178 278 378 178 78 278 78   -  -
34548   84 184 284 384 184 84 284 84   -  -
34549   90 190 290 390 190 90 290 90 390 90
34551 do_execsql_test joinD-1164 {
34552   SELECT t1.*, t2.*, t3.*, t4.*
34553   FROM t1 FULL JOIN t2 ON t1.b=t2.b
34554   FULL JOIN t3 ON t1.c=t3.c
34555   FULL JOIN t4 ON t1.d=t4.d
34556   WHERE t2.x>0 AND t3.y>0 AND t4.z>0
34557   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
34558 } {
34559   30 130 230 330 130 30 230 30 330 30
34560   60 160 260 360 160 60 260 60 360 60
34561   90 190 290 390 190 90 290 90 390 90
34563 do_execsql_test joinD-1165 {
34564   SELECT t1.*, t2.*, t3.*, t4.*
34565   FROM t1 FULL JOIN t2 ON t1.b = t2.b AND t2.x>0
34566   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
34567   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
34568   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
34569 } {
34570    0 100 200 300   -  -   -  -   -  -
34571    1 101 201 301   -  -   -  -   -  -
34572    2 102 202 302 102  2   -  -   -  -
34573    3 103 203 303   -  - 203  3   -  -
34574    4 104 204 304 104  4   -  -   -  -
34575    5 105 205 305   -  -   -  - 305  5
34576    6 106 206 306 106  6 206  6   -  -
34577    7 107 207 307   -  -   -  -   -  -
34578    8 108 208 308 108  8   -  -   -  -
34579    9 109 209 309   -  - 209  9   -  -
34580   10 110 210 310 110 10   -  - 310 10
34581   11 111 211 311   -  -   -  -   -  -
34582   12 112 212 312 112 12 212 12   -  -
34583   13 113 213 313   -  -   -  -   -  -
34584   14 114 214 314 114 14   -  -   -  -
34585   15 115 215 315   -  - 215 15 315 15
34586   16 116 216 316 116 16   -  -   -  -
34587   17 117 217 317   -  -   -  -   -  -
34588   18 118 218 318 118 18 218 18   -  -
34589   19 119 219 319   -  -   -  -   -  -
34590   20 120 220 320 120 20   -  - 320 20
34591   21 121 221 321   -  - 221 21   -  -
34592   22 122 222 322 122 22   -  -   -  -
34593   23 123 223 323   -  -   -  -   -  -
34594   24 124 224 324 124 24 224 24   -  -
34595   25 125 225 325   -  -   -  - 325 25
34596   26 126 226 326 126 26   -  -   -  -
34597   27 127 227 327   -  - 227 27   -  -
34598   28 128 228 328 128 28   -  -   -  -
34599   29 129 229 329   -  -   -  -   -  -
34600   30 130 230 330 130 30 230 30 330 30
34601   31 131 231 331   -  -   -  -   -  -
34602   32 132 232 332 132 32   -  -   -  -
34603   33 133 233 333   -  - 233 33   -  -
34604   34 134 234 334 134 34   -  -   -  -
34605   35 135 235 335   -  -   -  - 335 35
34606   36 136 236 336 136 36 236 36   -  -
34607   37 137 237 337   -  -   -  -   -  -
34608   38 138 238 338 138 38   -  -   -  -
34609   39 139 239 339   -  - 239 39   -  -
34610   40 140 240 340 140 40   -  - 340 40
34611   41 141 241 341   -  -   -  -   -  -
34612   42 142 242 342 142 42 242 42   -  -
34613   43 143 243 343   -  -   -  -   -  -
34614   44 144 244 344 144 44   -  -   -  -
34615   45 145 245 345   -  - 245 45 345 45
34616   46 146 246 346 146 46   -  -   -  -
34617   47 147 247 347   -  -   -  -   -  -
34618   48 148 248 348 148 48 248 48   -  -
34619   49 149 249 349   -  -   -  -   -  -
34620   50 150 250 350 150 50   -  - 350 50
34621   51 151 251 351   -  - 251 51   -  -
34622   52 152 252 352 152 52   -  -   -  -
34623   53 153 253 353   -  -   -  -   -  -
34624   54 154 254 354 154 54 254 54   -  -
34625   55 155 255 355   -  -   -  - 355 55
34626   56 156 256 356 156 56   -  -   -  -
34627   57 157 257 357   -  - 257 57   -  -
34628   58 158 258 358 158 58   -  -   -  -
34629   59 159 259 359   -  -   -  -   -  -
34630   60 160 260 360 160 60 260 60 360 60
34631   61 161 261 361   -  -   -  -   -  -
34632   62 162 262 362 162 62   -  -   -  -
34633   63 163 263 363   -  - 263 63   -  -
34634   64 164 264 364 164 64   -  -   -  -
34635   65 165 265 365   -  -   -  - 365 65
34636   66 166 266 366 166 66 266 66   -  -
34637   67 167 267 367   -  -   -  -   -  -
34638   68 168 268 368 168 68   -  -   -  -
34639   69 169 269 369   -  - 269 69   -  -
34640   70 170 270 370 170 70   -  - 370 70
34641   71 171 271 371   -  -   -  -   -  -
34642   72 172 272 372 172 72 272 72   -  -
34643   73 173 273 373   -  -   -  -   -  -
34644   74 174 274 374 174 74   -  -   -  -
34645   75 175 275 375   -  - 275 75 375 75
34646   76 176 276 376 176 76   -  -   -  -
34647   77 177 277 377   -  -   -  -   -  -
34648   78 178 278 378 178 78 278 78   -  -
34649   79 179 279 379   -  -   -  -   -  -
34650   80 180 280 380 180 80   -  - 380 80
34651   81 181 281 381   -  - 281 81   -  -
34652   82 182 282 382 182 82   -  -   -  -
34653   83 183 283 383   -  -   -  -   -  -
34654   84 184 284 384 184 84 284 84   -  -
34655   85 185 285 385   -  -   -  - 385 85
34656   86 186 286 386 186 86   -  -   -  -
34657   87 187 287 387   -  - 287 87   -  -
34658   88 188 288 388 188 88   -  -   -  -
34659   89 189 289 389   -  -   -  -   -  -
34660   90 190 290 390 190 90 290 90 390 90
34661   91 191 291 391   -  -   -  -   -  -
34662   92 192 292 392 192 92   -  -   -  -
34663   93 193 293 393   -  - 293 93   -  -
34664   94 194 294 394 194 94   -  -   -  -
34665   95 195 295 395   -  -   -  - 395 95
34666   96   - 296 396   -  -   -  -   -  -
34667   97 197   - 397   -  -   -  -   -  -
34668   98 198 298   -   -  -   -  -   -  -
34669   99   -   -   -   -  -   -  -   -  -
34670    -   -   -   - 100  0   -  -   -  -
34671    -   -   -   -   -  - 200  0   -  -
34672    -   -   -   -   -  -   -  - 300  0
34674 do_execsql_test joinD-1166 {
34675   SELECT t1.*, t2.*, t3.*, t4.*
34676   FROM t1 FULL JOIN t2 ON t2.x>0
34677   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
34678   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
34679   WHERE t1.b = t2.b
34680   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
34681 } {
34682    2 102 202 302 102  2   -  -   -  -
34683    4 104 204 304 104  4   -  -   -  -
34684    6 106 206 306 106  6 206  6   -  -
34685    8 108 208 308 108  8   -  -   -  -
34686   10 110 210 310 110 10   -  - 310 10
34687   12 112 212 312 112 12 212 12   -  -
34688   14 114 214 314 114 14   -  -   -  -
34689   16 116 216 316 116 16   -  -   -  -
34690   18 118 218 318 118 18 218 18   -  -
34691   20 120 220 320 120 20   -  - 320 20
34692   22 122 222 322 122 22   -  -   -  -
34693   24 124 224 324 124 24 224 24   -  -
34694   26 126 226 326 126 26   -  -   -  -
34695   28 128 228 328 128 28   -  -   -  -
34696   30 130 230 330 130 30 230 30 330 30
34697   32 132 232 332 132 32   -  -   -  -
34698   34 134 234 334 134 34   -  -   -  -
34699   36 136 236 336 136 36 236 36   -  -
34700   38 138 238 338 138 38   -  -   -  -
34701   40 140 240 340 140 40   -  - 340 40
34702   42 142 242 342 142 42 242 42   -  -
34703   44 144 244 344 144 44   -  -   -  -
34704   46 146 246 346 146 46   -  -   -  -
34705   48 148 248 348 148 48 248 48   -  -
34706   50 150 250 350 150 50   -  - 350 50
34707   52 152 252 352 152 52   -  -   -  -
34708   54 154 254 354 154 54 254 54   -  -
34709   56 156 256 356 156 56   -  -   -  -
34710   58 158 258 358 158 58   -  -   -  -
34711   60 160 260 360 160 60 260 60 360 60
34712   62 162 262 362 162 62   -  -   -  -
34713   64 164 264 364 164 64   -  -   -  -
34714   66 166 266 366 166 66 266 66   -  -
34715   68 168 268 368 168 68   -  -   -  -
34716   70 170 270 370 170 70   -  - 370 70
34717   72 172 272 372 172 72 272 72   -  -
34718   74 174 274 374 174 74   -  -   -  -
34719   76 176 276 376 176 76   -  -   -  -
34720   78 178 278 378 178 78 278 78   -  -
34721   80 180 280 380 180 80   -  - 380 80
34722   82 182 282 382 182 82   -  -   -  -
34723   84 184 284 384 184 84 284 84   -  -
34724   86 186 286 386 186 86   -  -   -  -
34725   88 188 288 388 188 88   -  -   -  -
34726   90 190 290 390 190 90 290 90 390 90
34727   92 192 292 392 192 92   -  -   -  -
34728   94 194 294 394 194 94   -  -   -  -
34730 do_execsql_test joinD-1167 {
34731   SELECT t1.*, t2.*, t3.*, t4.*
34732   FROM t1 FULL JOIN t2 ON t2.x>0
34733   FULL JOIN t3 ON t3.y>0
34734   FULL JOIN t4 ON t1.d = t4.d AND t4.z>0
34735   WHERE t1.b = t2.b AND t1.c = t3.c
34736   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
34737 } {
34738    6 106 206 306 106  6 206  6   -  -
34739   12 112 212 312 112 12 212 12   -  -
34740   18 118 218 318 118 18 218 18   -  -
34741   24 124 224 324 124 24 224 24   -  -
34742   30 130 230 330 130 30 230 30 330 30
34743   36 136 236 336 136 36 236 36   -  -
34744   42 142 242 342 142 42 242 42   -  -
34745   48 148 248 348 148 48 248 48   -  -
34746   54 154 254 354 154 54 254 54   -  -
34747   60 160 260 360 160 60 260 60 360 60
34748   66 166 266 366 166 66 266 66   -  -
34749   72 172 272 372 172 72 272 72   -  -
34750   78 178 278 378 178 78 278 78   -  -
34751   84 184 284 384 184 84 284 84   -  -
34752   90 190 290 390 190 90 290 90 390 90
34754 do_execsql_test joinD-1168 {
34755   SELECT t1.*, t2.*, t3.*, t4.*
34756   FROM t1 FULL JOIN t2 ON t2.x>0
34757   FULL JOIN t3 ON t1.c = t3.c AND t3.y>0
34758   FULL JOIN t4 ON t4.z>0
34759   WHERE t1.b = t2.b AND t1.d = t4.d
34760   ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);
34761 } {
34762   10 110 210 310 110 10   -  - 310 10
34763   20 120 220 320 120 20   -  - 320 20
34764   30 130 230 330 130 30 230 30 330 30
34765   40 140 240 340 140 40   -  - 340 40
34766   50 150 250 350 150 50   -  - 350 50
34767   60 160 260 360 160 60 260 60 360 60
34768   70 170 270 370 170 70   -  - 370 70
34769   80 180 280 380 180 80   -  - 380 80
34770   90 190 290 390 190 90 290 90 390 90
34772 #############################################################################
34773 # The following are extra tests added manually
34774 do_execsql_test joinD-extra-1000 {
34775   CREATE VIEW v1 AS
34776     SELECT *
34777     FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
34778     RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
34779     LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0;
34780   CREATE TRIGGER v1r1 INSTEAD OF UPDATE OF c ON v1 BEGIN
34781     UPDATE t1 SET c=new.c WHERE (a,b,c,d) IS (old.a,old.b,old.c,old.d);
34782     UPDATE t3 SET c=new.c WHERE (c,y) IS (old.c,old.y);
34783   END;
34784   SELECT * FROM v1 WHERE y BETWEEN 30 AND 40 ORDER BY y;
34785 } {
34786   30 130 230 330 130 30 230 30 330 30
34787    -   -   -   -   -  - 233 33   -  -
34788   36 136 236 336 136 36 236 36   -  -
34789    -   -   -   -   -  - 239 39   -  -
34791 do_execsql_test joinD-extra-1010 {
34792   BEGIN;
34793   UPDATE v1 SET c=c+1000 WHERE y BETWEEN 30 and 40;
34794   SELECT * FROM v1 WHERE y BETWEEN 30 AND 40 ORDER BY y;
34795   ROLLBACK;
34796 } {
34797   30 130 1230 330 130 30 1230 30 330 30
34798    -   -    -   -   -  -  233 33   -  -
34799   36 136 1236 336 136 36 1236 36   -  -
34800    -   -    -   -   -  -  239 39   -  -
34802 finish_test
34803 #############################################################################
34804 # This is the TCL script used to generate the psql script that generated
34805 # the data above.
34807 # puts "
34808 # \\pset border off
34809 # \\pset tuples_only on
34810 # \\pset null -
34812 # DROP TABLE IF EXISTS t1;
34813 # DROP TABLE IF EXISTS t2;
34814 # DROP TABLE IF EXISTS t3;
34815 # DROP TABLE IF EXISTS t4;
34816 # CREATE TABLE t1(a INT, b INT, c INT, d INT);
34817 # WITH RECURSIVE c(x) AS (VALUES(0) UNION ALL SELECT x+1 FROM c WHERE x<95)
34818 #   INSERT INTO t1(a,b,c,d) SELECT x, x+100, x+200, x+300 FROM c;
34819 # CREATE TABLE t2(b INT, x INT);
34820 # INSERT INTO t2(b,x) SELECT b, a FROM t1 WHERE a%2=0;
34821 # CREATE INDEX t2b ON t2(b);
34822 # CREATE TABLE t3(c INT, y INT);
34823 # INSERT INTO t3(c,y) SELECT c, a FROM t1 WHERE a%3=0;
34824 # CREATE INDEX t3c ON t3(c);
34825 # CREATE TABLE t4(d INT, z INT);
34826 # INSERT INTO t4(d,z) SELECT d, a FROM t1 WHERE a%5=0;
34827 # CREATE INDEX t4d ON t4(d);
34828 # INSERT INTO t1(a,b,c,d) VALUES
34829 #   (96,NULL,296,396),
34830 #   (97,197,NULL,397),
34831 #   (98,198,298,NULL),
34832 #   (99,NULL,NULL,NULL);
34833 # "
34835 # proc echo {prefix txt} {
34836 #   regsub -all {\n} $txt \n$prefix txt
34837 #   puts "$prefix$txt"
34838 # }
34840 # set n 0
34841 # foreach j1 {INNER LEFT RIGHT FULL} {
34842 #   foreach j2 {INNER LEFT RIGHT FULL} {
34843 #     foreach j3 {INNER LEFT RIGHT FULL} {
34845 # incr n
34846 # set q1 ""
34847 # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
34848 # append q1 "  FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n"
34849 # append q1 "          $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n"
34850 # append q1 "          $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
34851 # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
34853 # echo "\\qecho " "do_execsql_test joinB-$n \{"
34854 # echo "\\qecho X  " $q1
34855 # echo "\\qecho " "\} \{"
34856 # puts $q1
34857 # echo "\\qecho " "\}"
34859 # if {$j1!="FULL"} {
34860 #   incr n
34861 #   set q1 ""
34862 #   append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
34863 #   append q1 "  FROM t1 $j1 JOIN t2 ON t1.b IS NOT DISTINCT FROM t2.b AND t2.x>0\n"
34864 #   append q1 "          $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n"
34865 #   append q1 "          $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
34866 #   append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
34867 #   
34868 #   echo "\\qecho " "do_execsql_test joinB-$n \{"
34869 #   echo "\\qecho X  " $q1
34870 #   echo "\\qecho " "\} \{"
34871 #   puts $q1
34872 #   echo "\\qecho " "\}"
34873 # }
34875 # incr n
34876 # set q1 ""
34877 # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
34878 # append q1 "  FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n"
34879 # append q1 "          $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n"
34880 # append q1 "          $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
34881 # append q1 " WHERE t2.x>0\n"
34882 # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
34884 # echo "\\qecho " "do_execsql_test joinB-$n \{"
34885 # echo "\\qecho X  " $q1
34886 # echo "\\qecho " "\} \{"
34887 # puts $q1
34888 # echo "\\qecho " "\}"
34890 # incr n
34891 # set q1 ""
34892 # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
34893 # append q1 "  FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n"
34894 # append q1 "          $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n"
34895 # append q1 "          $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
34896 # append q1 " WHERE (t2.x>0 OR t2.x IS NULL)\n"
34897 # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
34899 # echo "\\qecho " "do_execsql_test joinB-$n \{"
34900 # echo "\\qecho X  " $q1
34901 # echo "\\qecho " "\} \{"
34902 # puts $q1
34903 # echo "\\qecho " "\}"
34905 # incr n
34906 # set q1 ""
34907 # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
34908 # append q1 "  FROM t1 $j1 JOIN t2 ON true\n"
34909 # append q1 "          $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n"
34910 # append q1 "          $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
34911 # append q1 " WHERE t1.b=t2.b AND t2.x>0\n"
34912 # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
34914 # echo "\\qecho " "do_execsql_test joinB-$n \{"
34915 # echo "\\qecho X  " $q1
34916 # echo "\\qecho " "\} \{"
34917 # puts $q1
34918 # echo "\\qecho " "\}"
34920 # incr n
34921 # set q1 ""
34922 # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
34923 # append q1 "  FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n"
34924 # append q1 "          $j2 JOIN t3 ON t1.c=t3.c\n"
34925 # append q1 "          $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
34926 # append q1 " WHERE t3.y>0\n"
34927 # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
34929 # echo "\\qecho " "do_execsql_test joinB-$n \{"
34930 # echo "\\qecho X  " $q1
34931 # echo "\\qecho " "\} \{"
34932 # puts $q1
34933 # echo "\\qecho " "\}"
34935 # incr n
34936 # set q1 ""
34937 # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
34938 # append q1 "  FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n"
34939 # append q1 "          $j2 JOIN t3 ON t1.c=t3.c\n"
34940 # append q1 "          $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
34941 # append q1 " WHERE t3.y>0 OR t3.y IS NULL\n"
34942 # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
34944 # echo "\\qecho " "do_execsql_test joinB-$n \{"
34945 # echo "\\qecho X  " $q1
34946 # echo "\\qecho " "\} \{"
34947 # puts $q1
34948 # echo "\\qecho " "\}"
34950 # incr n
34951 # set q1 ""
34952 # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
34953 # append q1 "  FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n"
34954 # append q1 "          $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n"
34955 # append q1 "          $j3 JOIN t4 ON t1.d=t4.d\n"
34956 # append q1 " WHERE t4.z>0\n"
34957 # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
34959 # echo "\\qecho " "do_execsql_test joinB-$n \{"
34960 # echo "\\qecho X  " $q1
34961 # echo "\\qecho " "\} \{"
34962 # puts $q1
34963 # echo "\\qecho " "\}"
34965 # incr n
34966 # set q1 ""
34967 # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
34968 # append q1 "  FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n"
34969 # append q1 "          $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n"
34970 # append q1 "          $j3 JOIN t4 ON t1.d=t4.d\n"
34971 # append q1 " WHERE t4.z IS NULL OR t4.z>0\n"
34972 # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
34974 # echo "\\qecho " "do_execsql_test joinB-$n \{"
34975 # echo "\\qecho X  " $q1
34976 # echo "\\qecho " "\} \{"
34977 # puts $q1
34978 # echo "\\qecho " "\}"
34980 # incr n
34981 # set q1 ""
34982 # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
34983 # append q1 "  FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n"
34984 # append q1 "          $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n"
34985 # append q1 "          $j3 JOIN t4 ON t1.d=t4.d\n"
34986 # append q1 " WHERE t2.x>0 AND t4.z>0\n"
34987 # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
34989 # echo "\\qecho " "do_execsql_test joinB-$n \{"
34990 # echo "\\qecho X  " $q1
34991 # echo "\\qecho " "\} \{"
34992 # puts $q1
34993 # echo "\\qecho " "\}"
34995 # incr n
34996 # set q1 ""
34997 # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
34998 # append q1 "  FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n"
34999 # append q1 "          $j2 JOIN t3 ON t1.c=t3.c\n"
35000 # append q1 "          $j3 JOIN t4 ON t1.d=t4.d\n"
35001 # append q1 " WHERE t4.z>0 AND t3.y>0\n"
35002 # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
35004 # echo "\\qecho " "do_execsql_test joinB-$n \{"
35005 # echo "\\qecho X  " $q1
35006 # echo "\\qecho " "\} \{"
35007 # puts $q1
35008 # echo "\\qecho " "\}"
35010 # incr n
35011 # set q1 ""
35012 # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
35013 # append q1 "  FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n"
35014 # append q1 "          $j2 JOIN t3 ON t1.c=t3.c\n"
35015 # append q1 "          $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
35016 # append q1 " WHERE t2.x>0 AND t3.y>0\n"
35017 # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
35019 # echo "\\qecho " "do_execsql_test joinB-$n \{"
35020 # echo "\\qecho X  " $q1
35021 # echo "\\qecho " "\} \{"
35022 # puts $q1
35023 # echo "\\qecho " "\}"
35025 # incr n
35026 # set q1 ""
35027 # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
35028 # append q1 "  FROM t1 $j1 JOIN t2 ON t1.b=t2.b\n"
35029 # append q1 "          $j2 JOIN t3 ON t1.c=t3.c\n"
35030 # append q1 "          $j3 JOIN t4 ON t1.d=t4.d\n"
35031 # append q1 " WHERE t2.x>0 AND t3.y>0 AND t4.z>0\n"
35032 # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
35034 # echo "\\qecho " "do_execsql_test joinB-$n \{"
35035 # echo "\\qecho X  " $q1
35036 # echo "\\qecho " "\} \{"
35037 # puts $q1
35038 # echo "\\qecho " "\}"
35040 # set op1 [expr {$j1=="FULL"?"=":"IS NOT DISTINCT FROM"}]
35041 # set op2 [expr {$j2=="FULL"?"=":"IS NOT DISTINCT FROM"}]
35042 # set op3 [expr {$j3=="FULL"?"=":"IS NOT DISTINCT FROM"}]
35043 # incr n
35044 # set q1 ""
35045 # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
35046 # append q1 "  FROM t1 $j1 JOIN t2 ON t1.b $op1 t2.b AND t2.x>0\n"
35047 # append q1 "          $j2 JOIN t3 ON t1.c $op2 t3.c AND t3.y>0\n"
35048 # append q1 "          $j3 JOIN t4 ON t1.d $op3 t4.d AND t4.z>0\n"
35049 # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
35051 # echo "\\qecho " "do_execsql_test joinB-$n \{"
35052 # echo "\\qecho X  " $q1
35053 # echo "\\qecho " "\} \{"
35054 # puts $q1
35055 # echo "\\qecho " "\}"
35057 # incr n
35058 # set q1 ""
35059 # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
35060 # append q1 "  FROM t1 $j1 JOIN t2 ON t2.x>0\n"
35061 # append q1 "          $j2 JOIN t3 ON t1.c $op2 t3.c AND t3.y>0\n"
35062 # append q1 "          $j3 JOIN t4 ON t1.d $op3 t4.d AND t4.z>0\n"
35063 # append q1 " WHERE t1.b $op1 t2.b\n"
35064 # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
35066 # echo "\\qecho " "do_execsql_test joinB-$n \{"
35067 # echo "\\qecho X  " $q1
35068 # echo "\\qecho " "\} \{"
35069 # puts $q1
35070 # echo "\\qecho " "\}"
35072 # incr n
35073 # set q1 ""
35074 # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
35075 # append q1 "  FROM t1 $j1 JOIN t2 ON t2.x>0\n"
35076 # append q1 "          $j2 JOIN t3 ON t3.y>0\n"
35077 # append q1 "          $j3 JOIN t4 ON t1.d $op3 t4.d AND t4.z>0\n"
35078 # append q1 " WHERE t1.b $op1 t2.b AND t1.c $op2 t3.c\n"
35079 # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
35081 # echo "\\qecho " "do_execsql_test joinB-$n \{"
35082 # echo "\\qecho X  " $q1
35083 # echo "\\qecho " "\} \{"
35084 # puts $q1
35085 # echo "\\qecho " "\}"
35087 # incr n
35088 # set q1 ""
35089 # append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
35090 # append q1 "  FROM t1 $j1 JOIN t2 ON t2.x>0\n"
35091 # append q1 "          $j2 JOIN t3 ON t1.c $op2 t3.c AND t3.y>0\n"
35092 # append q1 "          $j3 JOIN t4 ON t4.z>0\n"
35093 # append q1 " WHERE t1.b $op1 t2.b AND t1.d $op3 t4.d\n"
35094 # append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
35096 # echo "\\qecho " "do_execsql_test joinB-$n \{"
35097 # echo "\\qecho X  " $q1
35098 # echo "\\qecho " "\} \{"
35099 # puts $q1
35100 # echo "\\qecho " "\}"
35102 # if {$j1!="FULL"} {
35103 #   incr n
35104 #   set q1 ""
35105 #   append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
35106 #   append q1 "  FROM t1 $j1 JOIN t2 ON t1.b IN (t2.b,-2,-3) AND t2.x>0\n"
35107 #   append q1 "          $j2 JOIN t3 ON t1.c=t3.c AND t3.y>0\n"
35108 #   append q1 "          $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
35109 #   append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
35111 #   echo "\\qecho " "do_execsql_test joinB-$n \{"
35112 #   echo "\\qecho X  " $q1
35113 #   echo "\\qecho " "\} \{"
35114 #   puts $q1
35115 #   echo "\\qecho " "\}"
35116 # }
35118 # if {$j2!="FULL"} {
35119 #   incr n
35120 #   set q1 ""
35121 #   append q1 "SELECT t1.*, t2.*, t3.*, t4.*\n"
35122 #   append q1 "  FROM t1 $j1 JOIN t2 ON t1.b=t2.b AND t2.x>0\n"
35123 #   append q1 "          $j2 JOIN t3 ON t1.c IN (-4,t3.c,-5) AND t3.y>0\n"
35124 #   append q1 "          $j3 JOIN t4 ON t1.d=t4.d AND t4.z>0\n"
35125 #   append q1 " ORDER BY coalesce(t1.a,t2.b,t3.c,t4.d,0);"
35127 #   echo "\\qecho " "do_execsql_test joinB-$n \{"
35128 #   echo "\\qecho X  " $q1
35129 #   echo "\\qecho " "\} \{"
35130 #   puts $q1
35131 #   echo "\\qecho " "\}"
35132 # }
35133 #     }
35134 #   }
35135 # }