~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/join_nested.test

  • Committer: Mark Atwood
  • Date: 2011-06-04 19:48:13 UTC
  • mfrom: (2317.1.4 drizzle-sysbench)
  • Revision ID: me@mark.atwood.name-20110604194813-fq44gkkb5ir6g99o
mergeĀ lp:~patrick-crews/drizzle/drizzle-sysbench

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