~stewart/drizzle/embedded-innodb-create-select-transaction-arrgh

« back to all changes in this revision

Viewing changes to mysql-test/t/join_nested.test

  • Committer: brian
  • Date: 2008-06-25 05:29:13 UTC
  • Revision ID: brian@localhost.localdomain-20080625052913-6upwo0jsrl4lnapl
clean slate

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(11) 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