~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/join_nested.test

  • Committer: Brian Aker
  • Date: 2008-07-14 22:40:46 UTC
  • Revision ID: brian@tangent.org-20080714224046-x183907w9wp1txwv
Removed sql_manager. Ever heard of just setting up the OS to sync when you
want it to?

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
--disable_warnings
3
 
DROP TABLE IF EXISTS t0,t1,t2,t3,t4,t5,t6,t7,t8,t9;
4
 
--enable_warnings
5
 
 
6
 
CREATE TABLE t0 (a int, b int, c int);
7
 
CREATE TABLE t1 (a int, b int, c int);
8
 
CREATE TABLE t2 (a int, b int, c int);
9
 
CREATE TABLE t3 (a int, b int, c int);
10
 
CREATE TABLE t4 (a int, b int, c int);
11
 
CREATE TABLE t5 (a int, b int, c int);
12
 
CREATE TABLE t6 (a int, b int, c int);
13
 
CREATE TABLE t7 (a int, b int, c int);
14
 
CREATE TABLE t8 (a int, b int, c int);
15
 
CREATE TABLE t9 (a int, b int, c int);
16
 
 
17
 
INSERT INTO t0 VALUES (1,1,0), (1,2,0), (2,2,0);
18
 
INSERT INTO t1 VALUES (1,3,0), (2,2,0), (3,2,0);
19
 
INSERT INTO t2 VALUES (3,3,0), (4,2,0), (5,3,0);
20
 
INSERT INTO t3 VALUES (1,2,0), (2,2,0);
21
 
INSERT INTO t4 VALUES (3,2,0), (4,2,0);
22
 
INSERT INTO t5 VALUES (3,1,0), (2,2,0), (3,3,0);
23
 
INSERT INTO t6 VALUES (3,2,0), (6,2,0), (6,1,0);
24
 
INSERT INTO t7 VALUES (1,1,0), (2,2,0);
25
 
INSERT INTO t8 VALUES (0,2,0), (1,2,0);
26
 
INSERT INTO t9 VALUES (1,1,0), (1,2,0), (3,3,0);
27
 
 
28
 
 
29
 
SELECT t2.a,t2.b
30
 
  FROM t2;
31
 
 
32
 
SELECT t3.a,t3.b
33
 
  FROM t3;
34
 
 
35
 
SELECT t4.a,t4.b
36
 
  FROM t4;
37
 
 
38
 
SELECT t3.a,t3.b,t4.a,t4.b
39
 
  FROM t3,t4;
40
 
 
41
 
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
42
 
  FROM t2
43
 
       LEFT JOIN              
44
 
       (t3, t4)
45
 
       ON t2.b=t4.b;
46
 
 
47
 
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
48
 
  FROM t2
49
 
       LEFT JOIN              
50
 
       (t3, t4)
51
 
       ON t3.a=1 AND t2.b=t4.b;
52
 
 
53
 
EXPLAIN EXTENDED
54
 
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
55
 
  FROM t2
56
 
       LEFT JOIN              
57
 
       (t3, t4)
58
 
       ON t2.b=t4.b
59
 
    WHERE t3.a=1 OR t3.c IS NULL;
60
 
 
61
 
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
62
 
  FROM t2
63
 
       LEFT JOIN              
64
 
       (t3, t4)
65
 
       ON t2.b=t4.b
66
 
    WHERE t3.a=1 OR t3.c IS NULL;
67
 
 
68
 
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
69
 
  FROM t2
70
 
       LEFT JOIN              
71
 
       (t3, t4)
72
 
       ON t2.b=t4.b
73
 
    WHERE t3.a>1 OR t3.c IS NULL;
74
 
 
75
 
SELECT t5.a,t5.b
76
 
  FROM t5;
77
 
 
78
 
SELECT t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
79
 
  FROM t3,t4,t5;
80
 
 
81
 
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
82
 
  FROM t2
83
 
       LEFT JOIN              
84
 
       (t3, t4, t5)
85
 
       ON t2.b=t4.b;
86
 
 
87
 
EXPLAIN EXTENDED
88
 
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
89
 
  FROM t2
90
 
       LEFT JOIN              
91
 
       (t3, t4, t5)
92
 
       ON t2.b=t4.b
93
 
    WHERE t3.a>1 OR t3.c IS NULL;
94
 
 
95
 
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
96
 
  FROM t2
97
 
       LEFT JOIN              
98
 
       (t3, t4, t5)
99
 
       ON t2.b=t4.b
100
 
    WHERE t3.a>1 OR t3.c IS NULL;
101
 
 
102
 
EXPLAIN EXTENDED
103
 
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
104
 
  FROM t2
105
 
       LEFT JOIN              
106
 
       (t3, t4, t5)
107
 
       ON t2.b=t4.b
108
 
    WHERE (t3.a>1 OR t3.c IS NULL) AND 
109
 
          (t5.a<3 OR t5.c IS NULL);
110
 
 
111
 
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
112
 
  FROM t2
113
 
       LEFT JOIN              
114
 
       (t3, t4, t5)
115
 
       ON t2.b=t4.b
116
 
    WHERE (t3.a>1 OR t3.c IS NULL) AND 
117
 
          (t5.a<3 OR t5.c IS NULL);
118
 
 
119
 
SELECT t6.a,t6.b
120
 
  FROM t6;
121
 
 
122
 
SELECT t7.a,t7.b
123
 
  FROM t7;
124
 
 
125
 
SELECT t6.a,t6.b,t7.a,t7.b
126
 
  FROM t6,t7;
127
 
 
128
 
SELECT t8.a,t8.b
129
 
  FROM t8;
130
 
 
131
 
EXPLAIN EXTENDED
132
 
SELECT t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
133
 
  FROM (t6, t7)
134
 
       LEFT JOIN 
135
 
       t8
136
 
       ON t7.b=t8.b AND t6.b < 10;
137
 
 
138
 
SELECT t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
139
 
  FROM (t6, t7)
140
 
       LEFT JOIN 
141
 
       t8
142
 
       ON t7.b=t8.b AND t6.b < 10;
143
 
 
144
 
SELECT t5.a,t5.b
145
 
  FROM t5;
146
 
 
147
 
SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
148
 
  FROM t5 
149
 
       LEFT JOIN 
150
 
       ( 
151
 
         (t6, t7)
152
 
         LEFT JOIN 
153
 
         t8
154
 
         ON t7.b=t8.b AND t6.b < 10
155
 
       )
156
 
       ON t6.b >= 2 AND t5.b=t7.b;
157
 
 
158
 
SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
159
 
  FROM t5 
160
 
       LEFT JOIN 
161
 
       ( 
162
 
         (t6, t7)
163
 
         LEFT JOIN 
164
 
         t8
165
 
         ON t7.b=t8.b AND t6.b < 10
166
 
       )
167
 
       ON t6.b >= 2 AND t5.b=t7.b AND
168
 
          (t8.a < 1 OR t8.c IS NULL);
169
 
 
170
 
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
171
 
  FROM t2
172
 
       LEFT JOIN              
173
 
       (t3, t4)
174
 
       ON t3.a=1 AND t2.b=t4.b;
175
 
 
176
 
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
177
 
       t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
178
 
  FROM t2
179
 
       LEFT JOIN              
180
 
       (t3, t4)
181
 
       ON t3.a=1 AND t2.b=t4.b,
182
 
       t5 
183
 
       LEFT JOIN 
184
 
       ( 
185
 
         (t6, t7)
186
 
         LEFT JOIN 
187
 
         t8
188
 
         ON t7.b=t8.b AND t6.b < 10
189
 
       )
190
 
       ON t6.b >= 2 AND t5.b=t7.b; 
191
 
 
192
 
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
193
 
       t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
194
 
  FROM t2
195
 
       LEFT JOIN              
196
 
       (t3, t4)
197
 
       ON t3.a=1 AND t2.b=t4.b,
198
 
       t5 
199
 
       LEFT JOIN 
200
 
       ( 
201
 
         (t6, t7)
202
 
         LEFT JOIN 
203
 
         t8
204
 
         ON t7.b=t8.b AND t6.b < 10
205
 
       )
206
 
       ON t6.b >= 2 AND t5.b=t7.b
207
 
    WHERE t2.a > 3 AND
208
 
          (t6.a < 6 OR t6.c IS NULL);
209
 
 
210
 
SELECT t1.a,t1.b
211
 
  FROM t1;
212
 
 
213
 
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
214
 
       t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
215
 
  FROM t1
216
 
       LEFT JOIN                
217
 
       ( 
218
 
         t2
219
 
         LEFT JOIN              
220
 
         (t3, t4)
221
 
         ON t3.a=1 AND t2.b=t4.b,
222
 
         t5 
223
 
         LEFT JOIN 
224
 
         ( 
225
 
           (t6, t7)
226
 
           LEFT JOIN 
227
 
           t8
228
 
           ON t7.b=t8.b AND t6.b < 10
229
 
         )
230
 
         ON t6.b >= 2 AND t5.b=t7.b 
231
 
       )
232
 
       ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
233
 
          (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
234
 
          (t1.a != 2);
235
 
 
236
 
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
237
 
       t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
238
 
  FROM t1
239
 
       LEFT JOIN                
240
 
       ( 
241
 
         t2
242
 
         LEFT JOIN              
243
 
         (t3, t4)
244
 
         ON t3.a=1 AND t2.b=t4.b,
245
 
         t5 
246
 
         LEFT JOIN 
247
 
         ( 
248
 
           (t6, t7)
249
 
           LEFT JOIN 
250
 
           t8
251
 
           ON t7.b=t8.b AND t6.b < 10
252
 
         )
253
 
         ON t6.b >= 2 AND t5.b=t7.b 
254
 
       )
255
 
       ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
256
 
          (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
257
 
          (t1.a != 2)
258
 
    WHERE (t2.a >= 4 OR t2.c IS NULL);
259
 
   
260
 
SELECT t0.a,t0.b
261
 
  FROM t0;
262
 
 
263
 
EXPLAIN EXTENDED
264
 
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
265
 
       t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
266
 
  FROM t0,t1
267
 
       LEFT JOIN                
268
 
       ( 
269
 
         t2
270
 
         LEFT JOIN              
271
 
         (t3, t4)
272
 
         ON t3.a=1 AND t2.b=t4.b,
273
 
         t5 
274
 
         LEFT JOIN 
275
 
         ( 
276
 
           (t6, t7)
277
 
           LEFT JOIN 
278
 
           t8
279
 
           ON t7.b=t8.b AND t6.b < 10
280
 
         )
281
 
         ON t6.b >= 2 AND t5.b=t7.b 
282
 
       )
283
 
       ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
284
 
          (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
285
 
          (t1.a != 2)
286
 
    WHERE t0.a=1 AND
287
 
          t0.b=t1.b AND          
288
 
          (t2.a >= 4 OR t2.c IS NULL); 
289
 
 
290
 
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
291
 
       t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
292
 
  FROM t0,t1
293
 
       LEFT JOIN                
294
 
       ( 
295
 
         t2
296
 
         LEFT JOIN              
297
 
         (t3, t4)
298
 
         ON t3.a=1 AND t2.b=t4.b,
299
 
         t5 
300
 
         LEFT JOIN 
301
 
         ( 
302
 
           (t6, t7)
303
 
           LEFT JOIN 
304
 
           t8
305
 
           ON t7.b=t8.b AND t6.b < 10
306
 
         )
307
 
         ON t6.b >= 2 AND t5.b=t7.b 
308
 
       )
309
 
       ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
310
 
          (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
311
 
          (t1.a != 2)
312
 
    WHERE t0.a=1 AND
313
 
          t0.b=t1.b AND          
314
 
          (t2.a >= 4 OR t2.c IS NULL); 
315
 
 
316
 
EXPLAIN EXTENDED
317
 
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
318
 
       t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
319
 
  FROM t0,t1
320
 
       LEFT JOIN                
321
 
       ( 
322
 
         t2
323
 
         LEFT JOIN              
324
 
         (t3, t4)
325
 
         ON t3.a=1 AND t2.b=t4.b,
326
 
         t5 
327
 
         LEFT JOIN 
328
 
         ( 
329
 
           (t6, t7)
330
 
           LEFT JOIN 
331
 
           t8
332
 
           ON t7.b=t8.b AND t6.b < 10
333
 
         )
334
 
         ON t6.b >= 2 AND t5.b=t7.b 
335
 
       )
336
 
       ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
337
 
          (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
338
 
          (t1.a != 2),
339
 
       t9
340
 
     WHERE t0.a=1 AND
341
 
           t0.b=t1.b AND          
342
 
           (t2.a >= 4 OR t2.c IS NULL) AND
343
 
           (t3.a < 5 OR t3.c IS NULL) AND
344
 
           (t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
345
 
           (t5.a >=2 OR t5.c IS NULL) AND
346
 
           (t6.a >=4 OR t6.c IS NULL) AND
347
 
           (t7.a <= 2 OR t7.c IS NULL) AND
348
 
           (t8.a < 1 OR t8.c IS NULL) AND
349
 
           (t8.b=t9.b OR t8.c IS NULL) AND
350
 
           (t9.a=1); 
351
 
 
352
 
SELECT t9.a,t9.b
353
 
  FROM t9;
354
 
 
355
 
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
356
 
       t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
357
 
  FROM t0,t1
358
 
       LEFT JOIN                
359
 
       ( 
360
 
         t2
361
 
         LEFT JOIN              
362
 
         (t3, t4)
363
 
         ON t3.a=1 AND t2.b=t4.b,
364
 
         t5 
365
 
         LEFT JOIN 
366
 
         ( 
367
 
           (t6, t7)
368
 
           LEFT JOIN 
369
 
           t8
370
 
           ON t7.b=t8.b AND t6.b < 10
371
 
         )
372
 
         ON t6.b >= 2 AND t5.b=t7.b 
373
 
       )
374
 
       ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
375
 
          (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
376
 
          (t1.a != 2),
377
 
       t9
378
 
     WHERE t0.a=1 AND
379
 
           t0.b=t1.b AND          
380
 
           (t2.a >= 4 OR t2.c IS NULL) AND
381
 
           (t3.a < 5 OR t3.c IS NULL) AND
382
 
           (t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
383
 
           (t5.a >=2 OR t5.c IS NULL) AND
384
 
           (t6.a >=4 OR t6.c IS NULL) AND
385
 
           (t7.a <= 2 OR t7.c IS NULL) AND
386
 
           (t8.a < 1 OR t8.c IS NULL) AND
387
 
           (t8.b=t9.b OR t8.c IS NULL) AND
388
 
           (t9.a=1); 
389
 
 
390
 
SELECT t1.a,t1.b
391
 
  FROM t1;
392
 
 
393
 
SELECT t2.a,t2.b
394
 
  FROM t2;
395
 
 
396
 
SELECT t3.a,t3.b
397
 
  FROM t3;
398
 
 
399
 
SELECT t2.a,t2.b,t3.a,t3.b
400
 
  FROM t2 
401
 
       LEFT JOIN              
402
 
       t3
403
 
       ON t2.b=t3.b;
404
 
 
405
 
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b
406
 
  FROM t1, t2 
407
 
       LEFT JOIN              
408
 
       t3
409
 
       ON t2.b=t3.b
410
 
    WHERE t1.a <= 2;
411
 
 
412
 
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b
413
 
  FROM t1, t3 
414
 
       RIGHT JOIN              
415
 
       t2
416
 
       ON t2.b=t3.b
417
 
    WHERE t1.a <= 2;
418
 
 
419
 
SELECT t3.a,t3.b,t4.a,t4.b
420
 
  FROM t3,t4;
421
 
 
422
 
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
423
 
  FROM t2 
424
 
       LEFT JOIN              
425
 
       (t3, t4)
426
 
       ON t3.a=1 AND t2.b=t4.b;
427
 
 
428
 
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
429
 
  FROM t1, t2 
430
 
       LEFT JOIN              
431
 
       (t3, t4)
432
 
       ON t3.a=1 AND t2.b=t4.b
433
 
    WHERE t1.a <= 2;
434
 
 
435
 
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
436
 
  FROM t1, (t3, t4) 
437
 
       RIGHT JOIN              
438
 
       t2
439
 
       ON t3.a=1 AND t2.b=t4.b
440
 
    WHERE t1.a <= 2;
441
 
 
442
 
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
443
 
  FROM t1, (t3, t4)
444
 
       RIGHT JOIN              
445
 
       t2
446
 
       ON t3.a=1 AND t2.b=t4.b
447
 
    WHERE t1.a <= 2;
448
 
 
449
 
EXPLAIN EXTENDED
450
 
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
451
 
  FROM t1, (t3, t4)
452
 
       RIGHT JOIN
453
 
       t2
454
 
       ON t3.a=1 AND t2.b=t4.b
455
 
    WHERE t1.a <= 2;
456
 
 
457
 
CREATE INDEX idx_b ON t2(b);
458
 
 
459
 
EXPLAIN EXTENDED
460
 
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
461
 
  FROM (t3,t4)
462
 
       LEFT JOIN              
463
 
       (t1,t2)
464
 
       ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
465
 
 
466
 
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
467
 
  FROM (t3,t4)
468
 
       LEFT JOIN              
469
 
       (t1,t2)
470
 
       ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
471
 
 
472
 
EXPLAIN EXTENDED
473
 
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
474
 
       t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
475
 
  FROM t0,t1
476
 
       LEFT JOIN                
477
 
       ( 
478
 
         t2
479
 
         LEFT JOIN              
480
 
         (t3, t4)
481
 
         ON t3.a=1 AND t2.b=t4.b,
482
 
         t5 
483
 
         LEFT JOIN 
484
 
         ( 
485
 
           (t6, t7)
486
 
           LEFT JOIN 
487
 
           t8
488
 
           ON t7.b=t8.b AND t6.b < 10
489
 
         )
490
 
         ON t6.b >= 2 AND t5.b=t7.b 
491
 
       )
492
 
       ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
493
 
          (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
494
 
          (t1.a != 2),
495
 
       t9
496
 
     WHERE t0.a=1 AND
497
 
           t0.b=t1.b AND          
498
 
           (t2.a >= 4 OR t2.c IS NULL) AND
499
 
           (t3.a < 5 OR t3.c IS NULL) AND
500
 
           (t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
501
 
           (t5.a >=2 OR t5.c IS NULL) AND
502
 
           (t6.a >=4 OR t6.c IS NULL) AND
503
 
           (t7.a <= 2 OR t7.c IS NULL) AND
504
 
           (t8.a < 1 OR t8.c IS NULL) AND
505
 
           (t8.b=t9.b OR t8.c IS NULL) AND
506
 
           (t9.a=1); 
507
 
 
508
 
CREATE INDEX idx_b ON t4(b);
509
 
CREATE INDEX idx_b ON t5(b);
510
 
 
511
 
EXPLAIN EXTENDED
512
 
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
513
 
       t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
514
 
  FROM t0,t1
515
 
       LEFT JOIN                
516
 
       ( 
517
 
         t2
518
 
         LEFT JOIN              
519
 
         (t3, t4)
520
 
         ON t3.a=1 AND t2.b=t4.b,
521
 
         t5 
522
 
         LEFT JOIN 
523
 
         ( 
524
 
           (t6, t7)
525
 
           LEFT JOIN 
526
 
           t8
527
 
           ON t7.b=t8.b AND t6.b < 10
528
 
         )
529
 
         ON t6.b >= 2 AND t5.b=t7.b 
530
 
       )
531
 
       ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
532
 
          (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
533
 
          (t1.a != 2),
534
 
       t9
535
 
     WHERE t0.a=1 AND
536
 
           t0.b=t1.b AND          
537
 
           (t2.a >= 4 OR t2.c IS NULL) AND
538
 
           (t3.a < 5 OR t3.c IS NULL) AND
539
 
           (t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
540
 
           (t5.a >=2 OR t5.c IS NULL) AND
541
 
           (t6.a >=4 OR t6.c IS NULL) AND
542
 
           (t7.a <= 2 OR t7.c IS NULL) AND
543
 
           (t8.a < 1 OR t8.c IS NULL) AND
544
 
           (t8.b=t9.b OR t8.c IS NULL) AND
545
 
           (t9.a=1); 
546
 
 
547
 
CREATE INDEX idx_b ON t8(b);
548
 
 
549
 
EXPLAIN EXTENDED
550
 
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
551
 
       t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
552
 
  FROM t0,t1
553
 
       LEFT JOIN                
554
 
       ( 
555
 
         t2
556
 
         LEFT JOIN              
557
 
         (t3, t4)
558
 
         ON t3.a=1 AND t2.b=t4.b,
559
 
         t5 
560
 
         LEFT JOIN 
561
 
         ( 
562
 
           (t6, t7)
563
 
           LEFT JOIN 
564
 
           t8
565
 
           ON t7.b=t8.b AND t6.b < 10
566
 
         )
567
 
         ON t6.b >= 2 AND t5.b=t7.b 
568
 
       )
569
 
       ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
570
 
          (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
571
 
          (t1.a != 2),
572
 
       t9
573
 
     WHERE t0.a=1 AND
574
 
           t0.b=t1.b AND          
575
 
           (t2.a >= 4 OR t2.c IS NULL) AND
576
 
           (t3.a < 5 OR t3.c IS NULL) AND
577
 
           (t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
578
 
           (t5.a >=2 OR t5.c IS NULL) AND
579
 
           (t6.a >=4 OR t6.c IS NULL) AND
580
 
           (t7.a <= 2 OR t7.c IS NULL) AND
581
 
           (t8.a < 1 OR t8.c IS NULL) AND
582
 
           (t8.b=t9.b OR t8.c IS NULL) AND
583
 
           (t9.a=1); 
584
 
 
585
 
CREATE INDEX idx_b ON t1(b);
586
 
CREATE INDEX idx_a ON t0(a);
587
 
 
588
 
EXPLAIN EXTENDED
589
 
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
590
 
       t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
591
 
  FROM t0,t1
592
 
       LEFT JOIN                
593
 
       ( 
594
 
         t2
595
 
         LEFT JOIN              
596
 
         (t3, t4)
597
 
         ON t3.a=1 AND t2.b=t4.b,
598
 
         t5 
599
 
         LEFT JOIN 
600
 
         ( 
601
 
           (t6, t7)
602
 
           LEFT JOIN 
603
 
           t8
604
 
           ON t7.b=t8.b AND t6.b < 10
605
 
         )
606
 
         ON t6.b >= 2 AND t5.b=t7.b 
607
 
       )
608
 
       ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
609
 
          (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
610
 
          (t1.a != 2),
611
 
       t9
612
 
     WHERE t0.a=1 AND
613
 
           t0.b=t1.b AND          
614
 
           (t2.a >= 4 OR t2.c IS NULL) AND
615
 
           (t3.a < 5 OR t3.c IS NULL) AND
616
 
           (t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
617
 
           (t5.a >=2 OR t5.c IS NULL) AND
618
 
           (t6.a >=4 OR t6.c IS NULL) AND
619
 
           (t7.a <= 2 OR t7.c IS NULL) AND
620
 
           (t8.a < 1 OR t8.c IS NULL) AND
621
 
           (t8.b=t9.b OR t8.c IS NULL) AND
622
 
           (t9.a=1); 
623
 
 
624
 
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
625
 
       t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
626
 
  FROM t0,t1
627
 
       LEFT JOIN                
628
 
       ( 
629
 
         t2
630
 
         LEFT JOIN              
631
 
         (t3, t4)
632
 
         ON t3.a=1 AND t2.b=t4.b,
633
 
         t5 
634
 
         LEFT JOIN 
635
 
         ( 
636
 
           (t6, t7)
637
 
           LEFT JOIN 
638
 
           t8
639
 
           ON t7.b=t8.b AND t6.b < 10
640
 
         )
641
 
         ON t6.b >= 2 AND t5.b=t7.b 
642
 
       )
643
 
       ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
644
 
          (t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
645
 
          (t1.a != 2),
646
 
       t9
647
 
     WHERE t0.a=1 AND
648
 
           t0.b=t1.b AND          
649
 
           (t2.a >= 4 OR t2.c IS NULL) AND
650
 
           (t3.a < 5 OR t3.c IS NULL) AND
651
 
           (t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
652
 
           (t5.a >=2 OR t5.c IS NULL) AND
653
 
           (t6.a >=4 OR t6.c IS NULL) AND
654
 
           (t7.a <= 2 OR t7.c IS NULL) AND
655
 
           (t8.a < 1 OR t8.c IS NULL) AND
656
 
           (t8.b=t9.b OR t8.c IS NULL) AND
657
 
           (t9.a=1); 
658
 
 
659
 
SELECT t2.a,t2.b
660
 
  FROM t2;
661
 
 
662
 
SELECT t3.a,t3.b
663
 
  FROM t3;
664
 
 
665
 
SELECT t2.a,t2.b,t3.a,t3.b
666
 
  FROM t2 LEFT JOIN t3 ON t2.b=t3.b
667
 
    WHERE t2.a = 4 OR (t2.a > 4 AND t3.a IS NULL);
668
 
 
669
 
SELECT t2.a,t2.b,t3.a,t3.b
670
 
  FROM t2 LEFT JOIN (t3) ON t2.b=t3.b
671
 
    WHERE t2.a = 4 OR (t2.a > 4 AND t3.a IS NULL);
672
 
 
673
 
ALTER TABLE t3
674
 
  CHANGE COLUMN a a1 int,
675
 
  CHANGE COLUMN c c1 int; 
676
 
 
677
 
SELECT t2.a,t2.b,t3.a1,t3.b
678
 
  FROM t2 LEFT JOIN t3 ON t2.b=t3.b
679
 
    WHERE t2.a = 4 OR (t2.a > 4 AND t3.a1 IS NULL);
680
 
 
681
 
SELECT t2.a,t2.b,t3.a1,t3.b
682
 
  FROM t2 NATURAL LEFT JOIN t3
683
 
    WHERE t2.a = 4 OR (t2.a > 4 AND t3.a1 IS NULL);
684
 
 
685
 
DROP TABLE t0,t1,t2,t3,t4,t5,t6,t7,t8,t9;
686
 
 
687
 
CREATE TABLE t1 (a int);
688
 
CREATE TABLE t2 (a int);
689
 
CREATE TABLE t3 (a int);
690
 
 
691
 
INSERT INTO t1 VALUES (1);
692
 
INSERT INTO t2 VALUES (2);
693
 
INSERT INTO t3 VALUES (2);
694
 
INSERT INTO t1 VALUES (2);
695
 
 
696
 
#check proper syntax for nested outer joins
697
 
 
698
 
SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON t2.a=t3.a) ON t1.a=t3.a;
699
 
 
700
 
#must be equivalent to:
701
 
 
702
 
SELECT * FROM t1 LEFT JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.a=t3.a;
703
 
 
704
 
#check that everything is al right when all tables contain not more than 1 row
705
 
#(bug #4922)
706
 
 
707
 
DELETE FROM t1 WHERE a=2;
708
 
SELECT * FROM t1 LEFT JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.a=t3.a;
709
 
DELETE FROM t2;
710
 
SELECT * FROM t1 LEFT JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.a=t3.a;
711
 
 
712
 
DROP TABLE t1,t2,t3;
713
 
 
714
 
#on expression for a nested outer join does not depend on the outer table
715
 
#bug #4976
716
 
 
717
 
CREATE TABLE t1(a int, key (a));                                              
718
 
CREATE TABLE t2(b int, key (b));                                               
719
 
CREATE TABLE t3(c int, key (c));                                               
720
 
 
721
 
INSERT INTO t1 VALUES (NULL), (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
722
 
(10), (11), (12), (13), (14), (15), (16), (17), (18), (19);
723
 
 
724
 
INSERT INTO t2 VALUES (NULL), (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
725
 
(10), (11), (12), (13), (14), (15), (16), (17), (18), (19);
726
 
 
727
 
INSERT INTO t3 VALUES (0), (1), (2), (3), (4), (5);
728
 
 
729
 
EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON c < 3 and b = c;
730
 
EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
731
 
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
732
 
 
733
 
DELETE FROM t3;
734
 
EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
735
 
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
736
 
 
737
 
DROP TABLE t1,t2,t3;
738
 
 
739
 
#
740
 
# Test for bug #11284: empty table in a nested left join
741
 
742
 
 
743
 
CREATE TABLE t1 (c11 int);
744
 
CREATE TABLE t2 (c21 int);
745
 
CREATE TABLE t3 (c31 int);
746
 
 
747
 
INSERT INTO t1 VALUES (4), (5);
748
 
 
749
 
SELECT * FROM t1 LEFT JOIN t2 ON c11=c21;
750
 
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON c11=c21;
751
 
 
752
 
SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON c21=c31) ON c11=c21;
753
 
EXPLAIN SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON c21=c31) ON c11=c21;
754
 
 
755
 
DROP TABLE t1,t2,t3;
756
 
 
757
 
# BUG#16393
758
 
create table t1 (a int);
759
 
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
760
 
create table t2 (a int, filler char(100), key(a));
761
 
insert into t2 select A.a + 10*B.a, '' from t1 A, t1 B;
762
 
create table t3 like t2;
763
 
insert into t3 select * from t2;
764
 
 
765
 
explain select * from t1 left join 
766
 
  (t2 left join t3 on (t2.a = t3.a)) 
767
 
  on (t1.a = t2.a);
768
 
drop table t1, t2, t3;
769
 
 
770
 
#
771
 
# Test for bug #24345: crash with nested left outer join when outer table is substituted
772
 
#                      for a row that happens to have a null value for the join attribute.
773
 
#
774
 
 
775
 
CREATE TABLE t1 (
776
 
  id int NOT NULL PRIMARY KEY,
777
 
  ct int DEFAULT NULL,
778
 
  pc int DEFAULT NULL,
779
 
  INDEX idx_ct (ct),
780
 
  INDEX idx_pc (pc)
781
 
);
782
 
INSERT INTO t1 VALUES  
783
 
 (1,NULL,NULL),(2,NULL,NULL),(3,NULL,NULL),(4,NULL,NULL),(5,NULL,NULL);
784
 
 
785
 
CREATE TABLE t2 (
786
 
  id int NOT NULL PRIMARY KEY,
787
 
  sr int NOT NULL,
788
 
  nm varchar(255) NOT NULL,
789
 
  INDEX idx_sr (sr)
790
 
);
791
 
INSERT INTO t2 VALUES
792
 
  (2441905,4308,'LesAbymes'),(2441906,4308,'Anse-Bertrand');
793
 
 
794
 
CREATE TABLE t3 (
795
 
  id int NOT NULL PRIMARY KEY,
796
 
  ct int NOT NULL,
797
 
  ln int NOT NULL,
798
 
  INDEX idx_ct (ct),
799
 
  INDEX idx_ln (ln)
800
 
);
801
 
 
802
 
CREATE TABLE t4 (
803
 
  id int NOT NULL PRIMARY KEY,
804
 
  nm varchar(255) NOT NULL
805
 
);
806
 
 
807
 
INSERT INTO t4 VALUES (4308,'Guadeloupe'),(4309,'Martinique');
808
 
 
809
 
SELECT t1.*
810
 
  FROM t1 LEFT JOIN
811
 
       (t2 LEFT JOIN t3 ON t3.ct=t2.id AND t3.ln='5') ON t1.ct=t2.id
812
 
    WHERE t1.id='5';
813
 
 
814
 
SELECT t1.*, t4.nm
815
 
  FROM t1 LEFT JOIN
816
 
      (t2 LEFT JOIN t3 ON t3.ct=t2.id AND t3.ln='5') ON t1.ct=t2.id
817
 
          LEFT JOIN t4 ON t2.sr=t4.id
818
 
    WHERE t1.id='5';
819
 
 
820
 
DROP TABLE t1,t2,t3,t4;
821
 
 
822
 
#
823
 
# BUG#25575: ERROR 1052 (Column in from clause is ambiguous) with sub-join
824
 
#
825
 
CREATE TABLE t1 (a INT, b INT);
826
 
CREATE TABLE t2 (a INT);
827
 
CREATE TABLE t3 (a INT, c INT);
828
 
CREATE TABLE t4 (a INT, c INT);
829
 
CREATE TABLE t5 (a INT, c INT);
830
 
 
831
 
SELECT b FROM t1 JOIN (t2 LEFT JOIN t3 USING (a) LEFT JOIN t4 USING (a)
832
 
LEFT JOIN t5 USING (a)) USING (a);
833
 
 
834
 
--error ER_NON_UNIQ_ERROR
835
 
SELECT c FROM t1 JOIN (t2 LEFT JOIN t3 USING (a) LEFT JOIN t4 USING (a)
836
 
LEFT JOIN t5 USING (a)) USING (a);
837
 
 
838
 
SELECT b FROM t1 JOIN (t2 JOIN t3 USING (a) JOIN t4 USING (a)
839
 
JOIN t5 USING (a)) USING (a);
840
 
 
841
 
--error ER_NON_UNIQ_ERROR
842
 
SELECT c FROM t1 JOIN (t2 JOIN t3 USING (a) JOIN t4 USING (a)
843
 
JOIN t5 USING (a)) USING (a);
844
 
 
845
 
DROP TABLE t1,t2,t3,t4,t5;
846
 
CREATE TABLE t1 (a INT, b INT);
847
 
CREATE TABLE t2 (a INT, b INT);
848
 
CREATE TABLE t3 (a INT, b INT);
849
 
 
850
 
INSERT INTO t1 VALUES (1,1);
851
 
INSERT INTO t2 VALUES (1,1);
852
 
INSERT INTO t3 VALUES (1,1);
853
 
 
854
 
--error ER_NON_UNIQ_ERROR
855
 
SELECT * FROM t1 JOIN (t2 JOIN t3 USING (b)) USING (a);
856
 
 
857
 
DROP TABLE t1,t2,t3;
858
 
 
859
 
#
860
 
# BUG#29604: inner nest of left join interleaves with outer tables
861
 
#
862
 
 
863
 
CREATE TABLE t1 (
864
 
  carrier char(2) default NULL,
865
 
  id int NOT NULL auto_increment PRIMARY KEY
866
 
);
867
 
INSERT INTO t1 VALUES
868
 
  ('CO',235371754),('CO',235376554),('CO',235376884),('CO',235377874),
869
 
  ('CO',231060394),('CO',231059224),('CO',231059314),('CO',231060484),
870
 
  ('CO',231060274),('CO',231060124),('CO',231060244),('CO',231058594),
871
 
  ('CO',231058924),('CO',231058504),('CO',231059344),('CO',231060424),
872
 
  ('CO',231059554),('CO',231060304),('CO',231059644),('CO',231059464),
873
 
  ('CO',231059764),('CO',231058294),('CO',231058624),('CO',231058864),
874
 
  ('CO',231059374),('CO',231059584),('CO',231059734),('CO',231059014),
875
 
  ('CO',231059854),('CO',231059494),('CO',231059794),('CO',231058534),
876
 
  ('CO',231058324),('CO',231058684),('CO',231059524),('CO',231059974);
877
 
 
878
 
CREATE TABLE t2 (
879
 
  scan_date date default NULL,
880
 
  package_id int default NULL,
881
 
  INDEX scan_date(scan_date),
882
 
  INDEX package_id(package_id)
883
 
);
884
 
INSERT INTO t2 VALUES
885
 
  ('2008-12-29',231062944),('2008-12-29',231065764),('2008-12-29',231066124),
886
 
  ('2008-12-29',231060094),('2008-12-29',231061054),('2008-12-29',231065644),
887
 
  ('2008-12-29',231064384),('2008-12-29',231064444),('2008-12-29',231073774),
888
 
  ('2008-12-29',231058594),('2008-12-29',231059374),('2008-12-29',231066004),
889
 
  ('2008-12-29',231068494),('2008-12-29',231070174),('2008-12-29',231071884),
890
 
  ('2008-12-29',231063274),('2008-12-29',231063754),('2008-12-29',231064144),
891
 
  ('2008-12-29',231069424),('2008-12-29',231073714),('2008-12-29',231058414),
892
 
  ('2008-12-29',231060994),('2008-12-29',231069154),('2008-12-29',231068614),
893
 
  ('2008-12-29',231071464),('2008-12-29',231074014),('2008-12-29',231059614),
894
 
  ('2008-12-29',231059074),('2008-12-29',231059464),('2008-12-29',231069094),
895
 
  ('2008-12-29',231067294),('2008-12-29',231070144),('2008-12-29',231073804),
896
 
  ('2008-12-29',231072634),('2008-12-29',231058294),('2008-12-29',231065344),
897
 
  ('2008-12-29',231066094),('2008-12-29',231069034),('2008-12-29',231058594),
898
 
  ('2008-12-29',231059854),('2008-12-29',231059884),('2008-12-29',231059914),
899
 
  ('2008-12-29',231063664),('2008-12-29',231063814),('2008-12-29',231063904);
900
 
 
901
 
CREATE TABLE t3 (
902
 
  package_id int default NULL,
903
 
  INDEX package_id(package_id)
904
 
);
905
 
INSERT INTO t3 VALUES
906
 
  (231058294),(231058324),(231058354),(231058384),(231058414),(231058444),
907
 
  (231058474),(231058504),(231058534),(231058564),(231058594),(231058624),
908
 
  (231058684),(231058744),(231058804),(231058864),(231058924),(231058954),
909
 
  (231059014),(231059074),(231059104),(231059134),(231059164),(231059194),
910
 
  (231059224),(231059254),(231059284),(231059314),(231059344),(231059374),
911
 
  (231059404),(231059434),(231059464),(231059494),(231059524),(231059554),
912
 
  (231059584),(231059614),(231059644),(231059674),(231059704),(231059734),
913
 
  (231059764),(231059794),(231059824),(231059854),(231059884),(231059914),
914
 
  (231059944),(231059974),(231060004),(231060034),(231060064),(231060094),
915
 
  (231060124),(231060154),(231060184),(231060214),(231060244),(231060274),
916
 
  (231060304),(231060334),(231060364),(231060394),(231060424),(231060454),
917
 
  (231060484),(231060514),(231060544),(231060574),(231060604),(231060634),
918
 
  (231060664),(231060694),(231060724),(231060754),(231060784),(231060814),
919
 
  (231060844),(231060874),(231060904),(231060934),(231060964),(231060994),
920
 
  (231061024),(231061054),(231061084),(231061144),(231061174),(231061204),
921
 
  (231061234),(231061294),(231061354),(231061384),(231061414),(231061474),
922
 
  (231061564),(231061594),(231061624),(231061684),(231061714),(231061774),
923
 
  (231061804),(231061894),(231061984),(231062074),(231062134),(231062224),
924
 
  (231062254),(231062314),(231062374),(231062434),(231062494),(231062554),
925
 
  (231062584),(231062614),(231062644),(231062704),(231062734),(231062794),
926
 
  (231062854),(231062884),(231062944),(231063004),(231063034),(231063064),
927
 
  (231063124),(231063154),(231063184),(231063214),(231063274),(231063334),
928
 
  (231063394),(231063424),(231063454),(231063514),(231063574),(231063664);
929
 
 
930
 
CREATE TABLE t4 (
931
 
  carrier char(2) NOT NULL default '' PRIMARY KEY,
932
 
  id int default NULL,
933
 
  INDEX id(id)
934
 
);
935
 
INSERT INTO t4 VALUES
936
 
  ('99',6),('SK',456),('UA',486),('AI',1081),('OS',1111),('VS',1510);
937
 
 
938
 
CREATE TABLE t5 (
939
 
  carrier_id int default NULL,
940
 
  INDEX carrier_id(carrier_id)
941
 
);
942
 
INSERT INTO t5 VALUES
943
 
  (6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
944
 
  (6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
945
 
  (6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
946
 
  (6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
947
 
  (6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
948
 
  (6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(456),(456),(456),
949
 
  (456),(456),(456),(456),(456),(456),(456),(456),(456),(456),(456),(456),
950
 
  (456),(486),(1081),(1111),(1111),(1111),(1111),(1510);
951
 
 
952
 
SELECT COUNT(*) 
953
 
  FROM((t2 JOIN t1 ON t2.package_id = t1.id) 
954
 
        JOIN t3 ON t3.package_id = t1.id);
955
 
 
956
 
EXPLAIN
957
 
SELECT COUNT(*) 
958
 
  FROM ((t2 JOIN t1 ON t2.package_id = t1.id) 
959
 
         JOIN t3 ON t3.package_id = t1.id)
960
 
       LEFT JOIN 
961
 
       (t5 JOIN t4 ON t5.carrier_id = t4.id)
962
 
       ON t4.carrier = t1.carrier;
963
 
SELECT COUNT(*) 
964
 
  FROM ((t2 JOIN t1 ON t2.package_id = t1.id) 
965
 
        JOIN t3 ON t3.package_id = t1.id)
966
 
       LEFT JOIN 
967
 
       (t5 JOIN t4 ON t5.carrier_id = t4.id)
968
 
       ON t4.carrier = t1.carrier;
969
 
 
970
 
DROP TABLE t1,t2,t3,t4,t5;
971
 
 
972
 
--echo End of 5.0 tests
973