~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/join_nested.test

  • Committer: Jay Pipes
  • Date: 2008-07-17 18:48:58 UTC
  • mto: This revision was merged to the branch mainline in revision 182.
  • Revision ID: jay@mysql.com-20080717184858-2mbouxl8xi41gcge
Removed DBUG from CSV and Blackhole storage engines

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