1
set optimizer_switch='batched_key_access=on,block_nested_loop=off,mrr_cost_based=off';
2
set optimizer_switch='semijoin=on,materialization=on,firstmatch=on,loosescan=on,index_condition_pushdown=on,mrr=on,mrr_cost_based=off';
3
set @old_opt_switch=@@optimizer_switch;
4
set optimizer_switch='subquery_materialization_cost_based=off';
5
drop table if exists t0, t1, t2, t10, t11, t12;
6
create table t1 (a int not null, b int, primary key (a));
7
create table t2 (a int not null, primary key (a));
8
create table t3 (a int not null, b int, primary key (a));
9
insert into t1 values (1,10), (2,20), (3,30), (4,40);
10
insert into t2 values (2), (3), (4), (5);
11
insert into t3 values (10,3), (20,4), (30,5);
12
select * from t2 where t2.a in (select a from t1);
17
explain extended select * from t2 where t2.a in (select a from t1);
18
id select_type table type possible_keys key key_len ref rows filtered Extra
19
1 SIMPLE t2 index PRIMARY PRIMARY 4 NULL 4 100.00 Using index
20
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 100.00 Using index
22
Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t1` join `test`.`t2` where (`test`.`t1`.`a` = `test`.`t2`.`a`)
23
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
27
explain extended select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
28
id select_type table type possible_keys key key_len ref rows filtered Extra
29
1 SIMPLE t2 index PRIMARY PRIMARY 4 NULL 4 100.00 Using index
30
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 100.00 Using where; Using join buffer (Batched Key Access)
32
Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t1` join `test`.`t2` where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t1`.`b` <> 30))
33
select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
37
explain extended select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
38
id select_type table type possible_keys key key_len ref rows filtered Extra
39
1 SIMPLE t2 index PRIMARY PRIMARY 4 NULL 4 100.00 Using index
40
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 100.00 Using where; Using join buffer (Batched Key Access)
41
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.b 1 100.00 Using index
43
Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t1` join `test`.`t3` join `test`.`t2` where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t3`.`a` = `test`.`t1`.`b`))
44
drop table t1, t2, t3;
45
create table t1 (a int, b int, index a (a,b));
46
create table t2 (a int, index a (a));
47
create table t3 (a int, b int, index a (a));
48
insert into t1 values (1,10), (2,20), (3,30), (4,40);
49
create table t0(a int);
50
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
52
select rand()*100000+200,rand()*100000 from t0 A, t0 B, t0 C, t0 D;
53
insert into t2 values (2), (3), (4), (5);
54
insert into t3 values (10,3), (20,4), (30,5);
55
select * from t2 where t2.a in (select a from t1);
60
explain extended select * from t2 where t2.a in (select a from t1);
61
id select_type table type possible_keys key key_len ref rows filtered Extra
62
1 SIMPLE t2 index a a 5 NULL 4 100.00 Using where; Using index
63
1 SIMPLE t1 ref a a 5 test.t2.a 101 100.00 Using index; FirstMatch(t2)
65
Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) where (`test`.`t1`.`a` = `test`.`t2`.`a`)
66
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
70
explain extended select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
71
id select_type table type possible_keys key key_len ref rows filtered Extra
72
1 SIMPLE t2 index a a 5 NULL 4 100.00 Using where; Using index
73
1 SIMPLE t1 ref a a 5 test.t2.a 101 100.00 Using where; Using index; FirstMatch(t2)
75
Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t1`.`b` <> 30))
76
select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
80
explain extended select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
81
id select_type table type possible_keys key key_len ref rows filtered Extra
82
1 SIMPLE t2 index a a 5 NULL 4 100.00 Using where; Using index
83
1 SIMPLE t3 index a a 5 NULL 3 100.00 Using where; Using index
84
1 SIMPLE t1 ref a a 10 test.t2.a,test.t3.a 116 100.00 Using index; FirstMatch(t2)
86
Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1` join `test`.`t3`) where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t1`.`b` = `test`.`t3`.`a`))
87
insert into t1 values (3,31);
88
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
93
select * from t2 where t2.a in (select a from t1 where t1.b <> 30 and t1.b <> 31);
97
explain extended select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
98
id select_type table type possible_keys key key_len ref rows filtered Extra
99
1 SIMPLE t2 index a a 5 NULL 4 100.00 Using where; Using index
100
1 SIMPLE t1 ref a a 5 test.t2.a 101 100.00 Using where; Using index; FirstMatch(t2)
102
Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t1`.`b` <> 30))
103
drop table t0, t1, t2, t3;
104
create table t0 (a int);
105
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
106
create table t1(a int, b int);
107
insert into t1 values (0,0),(1,1),(2,2);
108
create table t2 as select * from t1;
109
create table t11(a int, b int);
110
create table t10 (pk int, a int, primary key(pk));
111
insert into t10 select a,a from t0;
112
create table t12 like t10;
113
insert into t12 select * from t10;
114
Flattened because of dependency, t10=func(t1)
115
explain select * from t1 where a in (select pk from t10);
116
id select_type table type possible_keys key key_len ref rows Extra
117
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
118
1 SIMPLE t10 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using index
119
select * from t1 where a in (select pk from t10);
124
A confluent case of dependency
125
explain select * from t1 where a in (select a from t10 where pk=12);
126
id select_type table type possible_keys key key_len ref rows Extra
127
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
128
select * from t1 where a in (select a from t10 where pk=12);
130
explain select * from t1 where a in (select a from t10 where pk=9);
131
id select_type table type possible_keys key key_len ref rows Extra
132
1 SIMPLE t10 const PRIMARY PRIMARY 4 const 1 NULL
133
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
134
select * from t1 where a in (select a from t10 where pk=9);
136
An empty table inside
137
explain select * from t1 where a in (select a from t11);
138
id select_type table type possible_keys key key_len ref rows Extra
139
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
140
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
141
2 MATERIALIZED t11 ALL NULL NULL NULL NULL 0 NULL
142
select * from t1 where a in (select a from t11);
144
explain select * from t1 where a in (select pk from t10) and b in (select pk from t10);
145
id select_type table type possible_keys key key_len ref rows Extra
146
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
147
1 SIMPLE t10 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using index
148
1 SIMPLE t10 eq_ref PRIMARY PRIMARY 4 test.t1.b 1 Using index
149
select * from t1 where a in (select pk from t10) and b in (select pk from t10);
154
flattening a nested subquery
155
explain select * from t1 where a in (select pk from t10 where t10.a in (select pk from t12));
156
id select_type table type possible_keys key key_len ref rows Extra
157
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
158
1 SIMPLE t10 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using join buffer (Batched Key Access)
159
1 SIMPLE t12 eq_ref PRIMARY PRIMARY 4 test.t10.a 1 Using index
160
select * from t1 where a in (select pk from t10 where t10.a in (select pk from t12));
165
flattening subquery w/ several tables
166
explain extended select * from t1 where a in (select t10.pk from t10, t12 where t12.pk=t10.a);
167
id select_type table type possible_keys key key_len ref rows filtered Extra
168
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
169
1 SIMPLE t10 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 100.00 Using where; Using join buffer (Batched Key Access)
170
1 SIMPLE t12 eq_ref PRIMARY PRIMARY 4 test.t10.a 1 100.00 Using index
172
Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t10` join `test`.`t12` join `test`.`t1` where ((`test`.`t10`.`pk` = `test`.`t1`.`a`) and (`test`.`t12`.`pk` = `test`.`t10`.`a`))
173
subqueries within outer joins go into ON expr.
175
select * from t1 left join (t2 A, t2 B) on ( A.A= t1.A And B.A in (select pk from t10));
176
id select_type tABle type possiBle_keys key key_len ref rows filtered ExtrA
177
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 NULL
178
1 SIMPLE A ALL NULL NULL NULL NULL 3 100.00 Using where
179
1 SIMPLE B ALL NULL NULL NULL NULL 3 100.00 NULL
180
1 SIMPLE t10 eq_ref PRIMARY PRIMARY 4 test.B.A 1 100.00 Using index
182
Note 1003 /* select#1 */ select `test`.`t1`.`A` AS `A`,`test`.`t1`.`B` AS `B`,`test`.`A`.`A` AS `A`,`test`.`A`.`B` AS `B`,`test`.`B`.`A` AS `A`,`test`.`B`.`B` AS `B` from `test`.`t1` left join (`test`.`t10` join `test`.`t2` `A` join `test`.`t2` `B`) on(((`test`.`A`.`A` = `test`.`t1`.`A`) And 1 And (`test`.`B`.`A` = `test`.`t10`.`pk`))) where 1
183
t2 should be wrapped into OJ-nest, so we have "t1 LJ (t2 J t10)"
185
select * from t1 left join t2 on (t2.A= t1.A And t2.A in (select pk from t10));
186
id select_type tABle type possiBle_keys key key_len ref rows filtered ExtrA
187
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 NULL
188
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
189
1 SIMPLE t10 eq_ref PRIMARY PRIMARY 4 test.t2.A 1 100.00 Using index
191
Note 1003 /* select#1 */ select `test`.`t1`.`A` AS `A`,`test`.`t1`.`B` AS `B`,`test`.`t2`.`A` AS `A`,`test`.`t2`.`B` AS `B` from `test`.`t1` left join (`test`.`t10` join `test`.`t2`) on(((`test`.`t2`.`A` = `test`.`t1`.`A`) And 1 And (`test`.`t2`.`A` = `test`.`t10`.`pk`))) where 1
192
we shouldn't flatten if we're going to get a join of > MAX_TABLES.
193
explain select * from
194
t1 s00, t1 s01, t1 s02, t1 s03, t1 s04,t1 s05,t1 s06,t1 s07,t1 s08,t1 s09,
195
t1 s10, t1 s11, t1 s12, t1 s13, t1 s14,t1 s15,t1 s16,t1 s17,t1 s18,t1 s19,
196
t1 s20, t1 s21, t1 s22, t1 s23, t1 s24,t1 s25,t1 s26,t1 s27,t1 s28,t1 s29,
197
t1 s30, t1 s31, t1 s32, t1 s33, t1 s34,t1 s35,t1 s36,t1 s37,t1 s38,t1 s39,
198
t1 s40, t1 s41, t1 s42, t1 s43, t1 s44,t1 s45,t1 s46,t1 s47,t1 s48,t1 s49
202
t1 m00, t1 m01, t1 m02, t1 m03, t1 m04,t1 m05,t1 m06,t1 m07,t1 m08,t1 m09,
203
t1 m10, t1 m11, t1 m12, t1 m13, t1 m14,t1 m15,t1 m16,t1 m17,t1 m18,t1 m19
205
id select_type table type possible_keys key key_len ref rows Extra
206
1 PRIMARY s00 ALL NULL NULL NULL NULL 3 Using where
207
1 PRIMARY s01 ALL NULL NULL NULL NULL 3 NULL
208
1 PRIMARY s02 ALL NULL NULL NULL NULL 3 NULL
209
1 PRIMARY s03 ALL NULL NULL NULL NULL 3 NULL
210
1 PRIMARY s04 ALL NULL NULL NULL NULL 3 NULL
211
1 PRIMARY s05 ALL NULL NULL NULL NULL 3 NULL
212
1 PRIMARY s06 ALL NULL NULL NULL NULL 3 NULL
213
1 PRIMARY s07 ALL NULL NULL NULL NULL 3 NULL
214
1 PRIMARY s08 ALL NULL NULL NULL NULL 3 NULL
215
1 PRIMARY s09 ALL NULL NULL NULL NULL 3 NULL
216
1 PRIMARY s10 ALL NULL NULL NULL NULL 3 NULL
217
1 PRIMARY s11 ALL NULL NULL NULL NULL 3 NULL
218
1 PRIMARY s12 ALL NULL NULL NULL NULL 3 NULL
219
1 PRIMARY s13 ALL NULL NULL NULL NULL 3 NULL
220
1 PRIMARY s14 ALL NULL NULL NULL NULL 3 NULL
221
1 PRIMARY s15 ALL NULL NULL NULL NULL 3 NULL
222
1 PRIMARY s16 ALL NULL NULL NULL NULL 3 NULL
223
1 PRIMARY s17 ALL NULL NULL NULL NULL 3 NULL
224
1 PRIMARY s18 ALL NULL NULL NULL NULL 3 NULL
225
1 PRIMARY s19 ALL NULL NULL NULL NULL 3 NULL
226
1 PRIMARY s20 ALL NULL NULL NULL NULL 3 NULL
227
1 PRIMARY s21 ALL NULL NULL NULL NULL 3 NULL
228
1 PRIMARY s22 ALL NULL NULL NULL NULL 3 NULL
229
1 PRIMARY s23 ALL NULL NULL NULL NULL 3 NULL
230
1 PRIMARY s24 ALL NULL NULL NULL NULL 3 NULL
231
1 PRIMARY s25 ALL NULL NULL NULL NULL 3 NULL
232
1 PRIMARY s26 ALL NULL NULL NULL NULL 3 NULL
233
1 PRIMARY s27 ALL NULL NULL NULL NULL 3 NULL
234
1 PRIMARY s28 ALL NULL NULL NULL NULL 3 NULL
235
1 PRIMARY s29 ALL NULL NULL NULL NULL 3 NULL
236
1 PRIMARY s30 ALL NULL NULL NULL NULL 3 NULL
237
1 PRIMARY s31 ALL NULL NULL NULL NULL 3 NULL
238
1 PRIMARY s32 ALL NULL NULL NULL NULL 3 NULL
239
1 PRIMARY s33 ALL NULL NULL NULL NULL 3 NULL
240
1 PRIMARY s34 ALL NULL NULL NULL NULL 3 NULL
241
1 PRIMARY s35 ALL NULL NULL NULL NULL 3 NULL
242
1 PRIMARY s36 ALL NULL NULL NULL NULL 3 NULL
243
1 PRIMARY s37 ALL NULL NULL NULL NULL 3 NULL
244
1 PRIMARY s38 ALL NULL NULL NULL NULL 3 NULL
245
1 PRIMARY s39 ALL NULL NULL NULL NULL 3 NULL
246
1 PRIMARY s40 ALL NULL NULL NULL NULL 3 NULL
247
1 PRIMARY s41 ALL NULL NULL NULL NULL 3 NULL
248
1 PRIMARY s42 ALL NULL NULL NULL NULL 3 NULL
249
1 PRIMARY s43 ALL NULL NULL NULL NULL 3 NULL
250
1 PRIMARY s44 ALL NULL NULL NULL NULL 3 NULL
251
1 PRIMARY s45 ALL NULL NULL NULL NULL 3 NULL
252
1 PRIMARY s46 ALL NULL NULL NULL NULL 3 NULL
253
1 PRIMARY s47 ALL NULL NULL NULL NULL 3 NULL
254
1 PRIMARY s48 ALL NULL NULL NULL NULL 3 NULL
255
1 PRIMARY s49 ALL NULL NULL NULL NULL 3 NULL
256
2 SUBQUERY m00 ALL NULL NULL NULL NULL 3 NULL
257
2 SUBQUERY m01 ALL NULL NULL NULL NULL 3 NULL
258
2 SUBQUERY m02 ALL NULL NULL NULL NULL 3 NULL
259
2 SUBQUERY m03 ALL NULL NULL NULL NULL 3 NULL
260
2 SUBQUERY m04 ALL NULL NULL NULL NULL 3 NULL
261
2 SUBQUERY m05 ALL NULL NULL NULL NULL 3 NULL
262
2 SUBQUERY m06 ALL NULL NULL NULL NULL 3 NULL
263
2 SUBQUERY m07 ALL NULL NULL NULL NULL 3 NULL
264
2 SUBQUERY m08 ALL NULL NULL NULL NULL 3 NULL
265
2 SUBQUERY m09 ALL NULL NULL NULL NULL 3 NULL
266
2 SUBQUERY m10 ALL NULL NULL NULL NULL 3 NULL
267
2 SUBQUERY m11 ALL NULL NULL NULL NULL 3 NULL
268
2 SUBQUERY m12 ALL NULL NULL NULL NULL 3 NULL
269
2 SUBQUERY m13 ALL NULL NULL NULL NULL 3 NULL
270
2 SUBQUERY m14 ALL NULL NULL NULL NULL 3 NULL
271
2 SUBQUERY m15 ALL NULL NULL NULL NULL 3 NULL
272
2 SUBQUERY m16 ALL NULL NULL NULL NULL 3 NULL
273
2 SUBQUERY m17 ALL NULL NULL NULL NULL 3 NULL
274
2 SUBQUERY m18 ALL NULL NULL NULL NULL 3 NULL
275
2 SUBQUERY m19 ALL NULL NULL NULL NULL 3 NULL
277
t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10))
285
t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10))
297
insert into t1 select (A.a + 10 * B.a),1 from t0 A, t0 B;
298
explain extended select * from t1 where a in (select pk from t10 where pk<3);
299
id select_type table type possible_keys key key_len ref rows filtered Extra
300
1 SIMPLE t10 range PRIMARY PRIMARY 4 NULL 4 100.00 Using where; Using index
301
1 SIMPLE t1 ALL NULL NULL NULL NULL 103 100.00 Using where
303
Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t10` join `test`.`t1` where ((`test`.`t1`.`a` = `test`.`t10`.`pk`) and (`test`.`t10`.`pk` < 3))
304
drop table t0, t1, t2;
305
drop table t10, t11, t12;
307
# Check that subqueries with outer joins or straight_join work for
308
# different permutations of const and non-const tables. (Ref. Bug#46692)
310
CREATE TABLE t1 (i INTEGER);
311
CREATE TABLE t2 (i INTEGER);
312
CREATE TABLE t3 (i INTEGER);
313
SELECT (SELECT COUNT(*) from t1) AS c1,
314
(SELECT COUNT(*) from t2) AS c2,
315
(SELECT COUNT(*) from t3) AS c3;
318
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
319
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
320
id select_type table type possible_keys key key_len ref rows Extra
321
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
322
SELECT * FROM t1 WHERE (t1.i) IN
323
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
325
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
326
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
331
DEALLOCATE PREPARE stmt;
332
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
333
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
334
id select_type table type possible_keys key key_len ref rows Extra
335
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
336
SELECT * FROM t1 WHERE (t1.i) IN
337
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
339
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
340
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
345
DEALLOCATE PREPARE stmt;
346
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
347
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
348
id select_type table type possible_keys key key_len ref rows Extra
349
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
350
SELECT * FROM t1 WHERE (t1.i) IN
351
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
353
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
354
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
355
id select_type table type possible_keys key key_len ref rows Extra
356
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
357
SELECT * FROM t1 WHERE (t1.i) IN
358
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
360
EXPLAIN SELECT * FROM t1 WHERE (11) IN
361
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
362
id select_type table type possible_keys key key_len ref rows Extra
363
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
364
SELECT * FROM t1 WHERE (11) IN
365
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
367
EXPLAIN SELECT * FROM t1 WHERE (11) IN
368
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
369
id select_type table type possible_keys key key_len ref rows Extra
370
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
371
SELECT * FROM t1 WHERE (11) IN
372
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
374
EXPLAIN SELECT * FROM t1 WHERE (11) IN
375
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
376
id select_type table type possible_keys key key_len ref rows Extra
377
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
378
SELECT * FROM t1 WHERE (11) IN
379
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
381
EXPLAIN SELECT * FROM t1 WHERE (11) IN
382
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
383
id select_type table type possible_keys key key_len ref rows Extra
384
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
385
SELECT * FROM t1 WHERE (11) IN
386
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
388
INSERT INTO t3 VALUES (2);
389
SELECT (SELECT COUNT(*) from t1) AS c1,
390
(SELECT COUNT(*) from t2) AS c2,
391
(SELECT COUNT(*) from t3) AS c3;
394
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
395
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
396
id select_type table type possible_keys key key_len ref rows Extra
397
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
398
SELECT * FROM t1 WHERE (t1.i) IN
399
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
401
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
402
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
407
DEALLOCATE PREPARE stmt;
408
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
409
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
410
id select_type table type possible_keys key key_len ref rows Extra
411
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
412
SELECT * FROM t1 WHERE (t1.i) IN
413
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
415
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
416
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
421
DEALLOCATE PREPARE stmt;
422
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
423
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
424
id select_type table type possible_keys key key_len ref rows Extra
425
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
426
SELECT * FROM t1 WHERE (t1.i) IN
427
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
429
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
430
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
431
id select_type table type possible_keys key key_len ref rows Extra
432
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
433
SELECT * FROM t1 WHERE (t1.i) IN
434
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
436
EXPLAIN SELECT * FROM t1 WHERE (11) IN
437
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
438
id select_type table type possible_keys key key_len ref rows Extra
439
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
440
SELECT * FROM t1 WHERE (11) IN
441
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
443
EXPLAIN SELECT * FROM t1 WHERE (11) IN
444
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
445
id select_type table type possible_keys key key_len ref rows Extra
446
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
447
SELECT * FROM t1 WHERE (11) IN
448
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
450
EXPLAIN SELECT * FROM t1 WHERE (11) IN
451
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
452
id select_type table type possible_keys key key_len ref rows Extra
453
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
454
SELECT * FROM t1 WHERE (11) IN
455
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
457
EXPLAIN SELECT * FROM t1 WHERE (11) IN
458
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
459
id select_type table type possible_keys key key_len ref rows Extra
460
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
461
SELECT * FROM t1 WHERE (11) IN
462
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
464
INSERT INTO t3 VALUES (1);
465
SELECT (SELECT COUNT(*) from t1) AS c1,
466
(SELECT COUNT(*) from t2) AS c2,
467
(SELECT COUNT(*) from t3) AS c3;
470
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
471
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
472
id select_type table type possible_keys key key_len ref rows Extra
473
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
474
SELECT * FROM t1 WHERE (t1.i) IN
475
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
477
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
478
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
483
DEALLOCATE PREPARE stmt;
484
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
485
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
486
id select_type table type possible_keys key key_len ref rows Extra
487
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
488
SELECT * FROM t1 WHERE (t1.i) IN
489
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
491
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
492
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
497
DEALLOCATE PREPARE stmt;
498
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
499
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
500
id select_type table type possible_keys key key_len ref rows Extra
501
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
502
SELECT * FROM t1 WHERE (t1.i) IN
503
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
505
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
506
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
507
id select_type table type possible_keys key key_len ref rows Extra
508
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
509
SELECT * FROM t1 WHERE (t1.i) IN
510
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
512
EXPLAIN SELECT * FROM t1 WHERE (11) IN
513
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
514
id select_type table type possible_keys key key_len ref rows Extra
515
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
516
SELECT * FROM t1 WHERE (11) IN
517
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
519
EXPLAIN SELECT * FROM t1 WHERE (11) IN
520
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
521
id select_type table type possible_keys key key_len ref rows Extra
522
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
523
SELECT * FROM t1 WHERE (11) IN
524
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
526
EXPLAIN SELECT * FROM t1 WHERE (11) IN
527
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
528
id select_type table type possible_keys key key_len ref rows Extra
529
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
530
SELECT * FROM t1 WHERE (11) IN
531
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
533
EXPLAIN SELECT * FROM t1 WHERE (11) IN
534
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
535
id select_type table type possible_keys key key_len ref rows Extra
536
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
537
SELECT * FROM t1 WHERE (11) IN
538
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
540
INSERT INTO t3 VALUES (0);
542
INSERT INTO t2 VALUES (2);
543
SELECT (SELECT COUNT(*) from t1) AS c1,
544
(SELECT COUNT(*) from t2) AS c2,
545
(SELECT COUNT(*) from t3) AS c3;
548
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
549
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
550
id select_type table type possible_keys key key_len ref rows Extra
551
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
552
SELECT * FROM t1 WHERE (t1.i) IN
553
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
555
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
556
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
561
DEALLOCATE PREPARE stmt;
562
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
563
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
564
id select_type table type possible_keys key key_len ref rows Extra
565
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
566
SELECT * FROM t1 WHERE (t1.i) IN
567
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
569
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
570
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
575
DEALLOCATE PREPARE stmt;
576
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
577
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
578
id select_type table type possible_keys key key_len ref rows Extra
579
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
580
SELECT * FROM t1 WHERE (t1.i) IN
581
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
583
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
584
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
585
id select_type table type possible_keys key key_len ref rows Extra
586
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
587
SELECT * FROM t1 WHERE (t1.i) IN
588
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
590
EXPLAIN SELECT * FROM t1 WHERE (11) IN
591
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
592
id select_type table type possible_keys key key_len ref rows Extra
593
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
594
SELECT * FROM t1 WHERE (11) IN
595
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
597
EXPLAIN SELECT * FROM t1 WHERE (11) IN
598
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
599
id select_type table type possible_keys key key_len ref rows Extra
600
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
601
SELECT * FROM t1 WHERE (11) IN
602
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
604
EXPLAIN SELECT * FROM t1 WHERE (11) IN
605
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
606
id select_type table type possible_keys key key_len ref rows Extra
607
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
608
SELECT * FROM t1 WHERE (11) IN
609
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
611
EXPLAIN SELECT * FROM t1 WHERE (11) IN
612
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
613
id select_type table type possible_keys key key_len ref rows Extra
614
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
615
SELECT * FROM t1 WHERE (11) IN
616
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
618
INSERT INTO t3 VALUES (2);
619
SELECT (SELECT COUNT(*) from t1) AS c1,
620
(SELECT COUNT(*) from t2) AS c2,
621
(SELECT COUNT(*) from t3) AS c3;
624
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
625
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
626
id select_type table type possible_keys key key_len ref rows Extra
627
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
628
SELECT * FROM t1 WHERE (t1.i) IN
629
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
631
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
632
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
637
DEALLOCATE PREPARE stmt;
638
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
639
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
640
id select_type table type possible_keys key key_len ref rows Extra
641
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
642
SELECT * FROM t1 WHERE (t1.i) IN
643
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
645
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
646
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
651
DEALLOCATE PREPARE stmt;
652
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
653
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
654
id select_type table type possible_keys key key_len ref rows Extra
655
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
656
SELECT * FROM t1 WHERE (t1.i) IN
657
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
659
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
660
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
661
id select_type table type possible_keys key key_len ref rows Extra
662
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
663
SELECT * FROM t1 WHERE (t1.i) IN
664
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
666
EXPLAIN SELECT * FROM t1 WHERE (11) IN
667
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
668
id select_type table type possible_keys key key_len ref rows Extra
669
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
670
SELECT * FROM t1 WHERE (11) IN
671
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
673
EXPLAIN SELECT * FROM t1 WHERE (11) IN
674
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
675
id select_type table type possible_keys key key_len ref rows Extra
676
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
677
SELECT * FROM t1 WHERE (11) IN
678
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
680
EXPLAIN SELECT * FROM t1 WHERE (11) IN
681
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
682
id select_type table type possible_keys key key_len ref rows Extra
683
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
684
SELECT * FROM t1 WHERE (11) IN
685
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
687
EXPLAIN SELECT * FROM t1 WHERE (11) IN
688
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
689
id select_type table type possible_keys key key_len ref rows Extra
690
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
691
SELECT * FROM t1 WHERE (11) IN
692
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
694
INSERT INTO t3 VALUES (1);
695
SELECT (SELECT COUNT(*) from t1) AS c1,
696
(SELECT COUNT(*) from t2) AS c2,
697
(SELECT COUNT(*) from t3) AS c3;
700
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
701
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
702
id select_type table type possible_keys key key_len ref rows Extra
703
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
704
SELECT * FROM t1 WHERE (t1.i) IN
705
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
707
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
708
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
713
DEALLOCATE PREPARE stmt;
714
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
715
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
716
id select_type table type possible_keys key key_len ref rows Extra
717
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
718
SELECT * FROM t1 WHERE (t1.i) IN
719
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
721
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
722
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
727
DEALLOCATE PREPARE stmt;
728
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
729
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
730
id select_type table type possible_keys key key_len ref rows Extra
731
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
732
SELECT * FROM t1 WHERE (t1.i) IN
733
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
735
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
736
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
737
id select_type table type possible_keys key key_len ref rows Extra
738
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
739
SELECT * FROM t1 WHERE (t1.i) IN
740
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
742
EXPLAIN SELECT * FROM t1 WHERE (11) IN
743
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
744
id select_type table type possible_keys key key_len ref rows Extra
745
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
746
SELECT * FROM t1 WHERE (11) IN
747
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
749
EXPLAIN SELECT * FROM t1 WHERE (11) IN
750
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
751
id select_type table type possible_keys key key_len ref rows Extra
752
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
753
SELECT * FROM t1 WHERE (11) IN
754
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
756
EXPLAIN SELECT * FROM t1 WHERE (11) IN
757
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
758
id select_type table type possible_keys key key_len ref rows Extra
759
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
760
SELECT * FROM t1 WHERE (11) IN
761
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
763
EXPLAIN SELECT * FROM t1 WHERE (11) IN
764
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
765
id select_type table type possible_keys key key_len ref rows Extra
766
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
767
SELECT * FROM t1 WHERE (11) IN
768
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
770
INSERT INTO t3 VALUES (0);
772
INSERT INTO t2 VALUES (1);
773
SELECT (SELECT COUNT(*) from t1) AS c1,
774
(SELECT COUNT(*) from t2) AS c2,
775
(SELECT COUNT(*) from t3) AS c3;
778
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
779
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
780
id select_type table type possible_keys key key_len ref rows Extra
781
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
782
SELECT * FROM t1 WHERE (t1.i) IN
783
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
785
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
786
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
791
DEALLOCATE PREPARE stmt;
792
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
793
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
794
id select_type table type possible_keys key key_len ref rows Extra
795
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
796
SELECT * FROM t1 WHERE (t1.i) IN
797
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
799
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
800
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
805
DEALLOCATE PREPARE stmt;
806
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
807
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
808
id select_type table type possible_keys key key_len ref rows Extra
809
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
810
SELECT * FROM t1 WHERE (t1.i) IN
811
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
813
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
814
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
815
id select_type table type possible_keys key key_len ref rows Extra
816
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
817
SELECT * FROM t1 WHERE (t1.i) IN
818
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
820
EXPLAIN SELECT * FROM t1 WHERE (11) IN
821
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
822
id select_type table type possible_keys key key_len ref rows Extra
823
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
824
SELECT * FROM t1 WHERE (11) IN
825
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
827
EXPLAIN SELECT * FROM t1 WHERE (11) IN
828
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
829
id select_type table type possible_keys key key_len ref rows Extra
830
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
831
SELECT * FROM t1 WHERE (11) IN
832
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
834
EXPLAIN SELECT * FROM t1 WHERE (11) IN
835
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
836
id select_type table type possible_keys key key_len ref rows Extra
837
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
838
SELECT * FROM t1 WHERE (11) IN
839
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
841
EXPLAIN SELECT * FROM t1 WHERE (11) IN
842
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
843
id select_type table type possible_keys key key_len ref rows Extra
844
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
845
SELECT * FROM t1 WHERE (11) IN
846
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
848
INSERT INTO t3 VALUES (2);
849
SELECT (SELECT COUNT(*) from t1) AS c1,
850
(SELECT COUNT(*) from t2) AS c2,
851
(SELECT COUNT(*) from t3) AS c3;
854
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
855
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
856
id select_type table type possible_keys key key_len ref rows Extra
857
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
858
SELECT * FROM t1 WHERE (t1.i) IN
859
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
861
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
862
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
867
DEALLOCATE PREPARE stmt;
868
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
869
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
870
id select_type table type possible_keys key key_len ref rows Extra
871
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
872
SELECT * FROM t1 WHERE (t1.i) IN
873
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
875
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
876
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
881
DEALLOCATE PREPARE stmt;
882
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
883
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
884
id select_type table type possible_keys key key_len ref rows Extra
885
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
886
SELECT * FROM t1 WHERE (t1.i) IN
887
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
889
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
890
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
891
id select_type table type possible_keys key key_len ref rows Extra
892
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
893
SELECT * FROM t1 WHERE (t1.i) IN
894
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
896
EXPLAIN SELECT * FROM t1 WHERE (11) IN
897
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
898
id select_type table type possible_keys key key_len ref rows Extra
899
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
900
SELECT * FROM t1 WHERE (11) IN
901
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
903
EXPLAIN SELECT * FROM t1 WHERE (11) IN
904
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
905
id select_type table type possible_keys key key_len ref rows Extra
906
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
907
SELECT * FROM t1 WHERE (11) IN
908
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
910
EXPLAIN SELECT * FROM t1 WHERE (11) IN
911
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
912
id select_type table type possible_keys key key_len ref rows Extra
913
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
914
SELECT * FROM t1 WHERE (11) IN
915
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
917
EXPLAIN SELECT * FROM t1 WHERE (11) IN
918
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
919
id select_type table type possible_keys key key_len ref rows Extra
920
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
921
SELECT * FROM t1 WHERE (11) IN
922
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
924
INSERT INTO t3 VALUES (1);
925
SELECT (SELECT COUNT(*) from t1) AS c1,
926
(SELECT COUNT(*) from t2) AS c2,
927
(SELECT COUNT(*) from t3) AS c3;
930
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
931
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
932
id select_type table type possible_keys key key_len ref rows Extra
933
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
934
SELECT * FROM t1 WHERE (t1.i) IN
935
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
937
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
938
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
943
DEALLOCATE PREPARE stmt;
944
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
945
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
946
id select_type table type possible_keys key key_len ref rows Extra
947
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
948
SELECT * FROM t1 WHERE (t1.i) IN
949
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
951
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
952
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
957
DEALLOCATE PREPARE stmt;
958
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
959
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
960
id select_type table type possible_keys key key_len ref rows Extra
961
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
962
SELECT * FROM t1 WHERE (t1.i) IN
963
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
965
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
966
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
967
id select_type table type possible_keys key key_len ref rows Extra
968
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
969
SELECT * FROM t1 WHERE (t1.i) IN
970
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
972
EXPLAIN SELECT * FROM t1 WHERE (11) IN
973
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
974
id select_type table type possible_keys key key_len ref rows Extra
975
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
976
SELECT * FROM t1 WHERE (11) IN
977
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
979
EXPLAIN SELECT * FROM t1 WHERE (11) IN
980
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
981
id select_type table type possible_keys key key_len ref rows Extra
982
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
983
SELECT * FROM t1 WHERE (11) IN
984
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
986
EXPLAIN SELECT * FROM t1 WHERE (11) IN
987
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
988
id select_type table type possible_keys key key_len ref rows Extra
989
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
990
SELECT * FROM t1 WHERE (11) IN
991
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
993
EXPLAIN SELECT * FROM t1 WHERE (11) IN
994
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
995
id select_type table type possible_keys key key_len ref rows Extra
996
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
997
SELECT * FROM t1 WHERE (11) IN
998
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1000
INSERT INTO t3 VALUES (0);
1002
INSERT INTO t2 VALUES (0);
1004
INSERT INTO t1 VALUES (2);
1005
SELECT (SELECT COUNT(*) from t1) AS c1,
1006
(SELECT COUNT(*) from t2) AS c2,
1007
(SELECT COUNT(*) from t3) AS c3;
1010
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1011
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1012
id select_type table type possible_keys key key_len ref rows Extra
1013
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1014
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where
1015
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
1016
SELECT * FROM t1 WHERE (t1.i) IN
1017
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1019
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1020
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1025
DEALLOCATE PREPARE stmt;
1026
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1027
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1028
id select_type table type possible_keys key key_len ref rows Extra
1029
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1030
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where
1031
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
1032
SELECT * FROM t1 WHERE (t1.i) IN
1033
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1035
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1036
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1041
DEALLOCATE PREPARE stmt;
1042
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1043
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1044
id select_type table type possible_keys key key_len ref rows Extra
1045
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1046
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where
1047
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
1048
SELECT * FROM t1 WHERE (t1.i) IN
1049
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1051
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1052
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1053
id select_type table type possible_keys key key_len ref rows Extra
1054
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1055
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 NULL
1056
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
1057
SELECT * FROM t1 WHERE (t1.i) IN
1058
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1060
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1061
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1062
id select_type table type possible_keys key key_len ref rows Extra
1063
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1064
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where
1065
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
1066
SELECT * FROM t1 WHERE (11) IN
1067
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1069
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1070
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1071
id select_type table type possible_keys key key_len ref rows Extra
1072
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1073
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where
1074
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
1075
SELECT * FROM t1 WHERE (11) IN
1076
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1078
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1079
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1080
id select_type table type possible_keys key key_len ref rows Extra
1081
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1082
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where
1083
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
1084
SELECT * FROM t1 WHERE (11) IN
1085
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1087
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1088
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1089
id select_type table type possible_keys key key_len ref rows Extra
1090
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1091
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 NULL
1092
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
1093
SELECT * FROM t1 WHERE (11) IN
1094
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1096
INSERT INTO t3 VALUES (2);
1097
SELECT (SELECT COUNT(*) from t1) AS c1,
1098
(SELECT COUNT(*) from t2) AS c2,
1099
(SELECT COUNT(*) from t3) AS c3;
1102
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1103
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1104
id select_type table type possible_keys key key_len ref rows Extra
1105
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1106
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where
1107
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1108
SELECT * FROM t1 WHERE (t1.i) IN
1109
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1111
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1112
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1117
DEALLOCATE PREPARE stmt;
1118
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1119
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1120
id select_type table type possible_keys key key_len ref rows Extra
1121
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1122
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where
1123
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1124
SELECT * FROM t1 WHERE (t1.i) IN
1125
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1127
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1128
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1133
DEALLOCATE PREPARE stmt;
1134
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1135
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1136
id select_type table type possible_keys key key_len ref rows Extra
1137
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1138
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
1139
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
1140
SELECT * FROM t1 WHERE (t1.i) IN
1141
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1144
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1145
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1146
id select_type table type possible_keys key key_len ref rows Extra
1147
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1148
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 NULL
1149
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1150
SELECT * FROM t1 WHERE (t1.i) IN
1151
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1153
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1154
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1155
id select_type table type possible_keys key key_len ref rows Extra
1156
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1157
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where
1158
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1159
SELECT * FROM t1 WHERE (11) IN
1160
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1162
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1163
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1164
id select_type table type possible_keys key key_len ref rows Extra
1165
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1166
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where
1167
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1168
SELECT * FROM t1 WHERE (11) IN
1169
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1171
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1172
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1173
id select_type table type possible_keys key key_len ref rows Extra
1174
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1175
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
1176
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
1177
SELECT * FROM t1 WHERE (11) IN
1178
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1180
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1181
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1182
id select_type table type possible_keys key key_len ref rows Extra
1183
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1184
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 NULL
1185
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1186
SELECT * FROM t1 WHERE (11) IN
1187
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1189
INSERT INTO t3 VALUES (1);
1190
SELECT (SELECT COUNT(*) from t1) AS c1,
1191
(SELECT COUNT(*) from t2) AS c2,
1192
(SELECT COUNT(*) from t3) AS c3;
1195
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1196
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1197
id select_type table type possible_keys key key_len ref rows Extra
1198
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1199
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where
1200
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1201
SELECT * FROM t1 WHERE (t1.i) IN
1202
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1204
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1205
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1210
DEALLOCATE PREPARE stmt;
1211
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1212
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1213
id select_type table type possible_keys key key_len ref rows Extra
1214
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1215
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where
1216
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1217
SELECT * FROM t1 WHERE (t1.i) IN
1218
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1220
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1221
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1226
DEALLOCATE PREPARE stmt;
1227
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1228
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1229
id select_type table type possible_keys key key_len ref rows Extra
1230
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1231
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1232
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
1233
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where
1234
SELECT * FROM t1 WHERE (t1.i) IN
1235
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1238
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1239
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1240
id select_type table type possible_keys key key_len ref rows Extra
1241
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1242
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 NULL
1243
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1244
SELECT * FROM t1 WHERE (t1.i) IN
1245
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1247
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1248
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1249
id select_type table type possible_keys key key_len ref rows Extra
1250
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1251
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where
1252
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1253
SELECT * FROM t1 WHERE (11) IN
1254
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1256
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1257
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1258
id select_type table type possible_keys key key_len ref rows Extra
1259
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1260
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where
1261
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1262
SELECT * FROM t1 WHERE (11) IN
1263
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1265
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1266
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1267
id select_type table type possible_keys key key_len ref rows Extra
1268
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1269
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1270
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
1271
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where
1272
SELECT * FROM t1 WHERE (11) IN
1273
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1275
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1276
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1277
id select_type table type possible_keys key key_len ref rows Extra
1278
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1279
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 NULL
1280
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1281
SELECT * FROM t1 WHERE (11) IN
1282
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1284
INSERT INTO t3 VALUES (0);
1286
INSERT INTO t2 VALUES (2);
1287
SELECT (SELECT COUNT(*) from t1) AS c1,
1288
(SELECT COUNT(*) from t2) AS c2,
1289
(SELECT COUNT(*) from t3) AS c3;
1292
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1293
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1294
id select_type table type possible_keys key key_len ref rows Extra
1295
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1296
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where
1297
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1298
SELECT * FROM t1 WHERE (t1.i) IN
1299
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1301
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1302
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1307
DEALLOCATE PREPARE stmt;
1308
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1309
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1310
id select_type table type possible_keys key key_len ref rows Extra
1311
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1312
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where
1313
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1314
SELECT * FROM t1 WHERE (t1.i) IN
1315
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1317
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1318
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1323
DEALLOCATE PREPARE stmt;
1324
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1325
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1326
id select_type table type possible_keys key key_len ref rows Extra
1327
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1328
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where
1329
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1330
SELECT * FROM t1 WHERE (t1.i) IN
1331
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1333
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1334
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1335
id select_type table type possible_keys key key_len ref rows Extra
1336
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1337
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 NULL
1338
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
1339
SELECT * FROM t1 WHERE (t1.i) IN
1340
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1342
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1343
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1344
id select_type table type possible_keys key key_len ref rows Extra
1345
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1346
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where
1347
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1348
SELECT * FROM t1 WHERE (11) IN
1349
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1351
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1352
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1353
id select_type table type possible_keys key key_len ref rows Extra
1354
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1355
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where
1356
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1357
SELECT * FROM t1 WHERE (11) IN
1358
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1360
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1361
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1362
id select_type table type possible_keys key key_len ref rows Extra
1363
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1364
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where
1365
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1366
SELECT * FROM t1 WHERE (11) IN
1367
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1369
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1370
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1371
id select_type table type possible_keys key key_len ref rows Extra
1372
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1373
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 NULL
1374
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
1375
SELECT * FROM t1 WHERE (11) IN
1376
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1378
INSERT INTO t3 VALUES (2);
1379
SELECT (SELECT COUNT(*) from t1) AS c1,
1380
(SELECT COUNT(*) from t2) AS c2,
1381
(SELECT COUNT(*) from t3) AS c3;
1384
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1385
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1386
id select_type table type possible_keys key key_len ref rows Extra
1387
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1388
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where
1389
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1390
SELECT * FROM t1 WHERE (t1.i) IN
1391
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1394
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1395
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1402
DEALLOCATE PREPARE stmt;
1403
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1404
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1405
id select_type table type possible_keys key key_len ref rows Extra
1406
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1407
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where
1408
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1409
SELECT * FROM t1 WHERE (t1.i) IN
1410
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1413
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1414
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1421
DEALLOCATE PREPARE stmt;
1422
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1423
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1424
id select_type table type possible_keys key key_len ref rows Extra
1425
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1426
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
1427
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1428
SELECT * FROM t1 WHERE (t1.i) IN
1429
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1432
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1433
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1434
id select_type table type possible_keys key key_len ref rows Extra
1435
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1436
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 NULL
1437
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1438
SELECT * FROM t1 WHERE (t1.i) IN
1439
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1442
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1443
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1444
id select_type table type possible_keys key key_len ref rows Extra
1445
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1446
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where
1447
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1448
SELECT * FROM t1 WHERE (11) IN
1449
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1451
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1452
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1453
id select_type table type possible_keys key key_len ref rows Extra
1454
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1455
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where
1456
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1457
SELECT * FROM t1 WHERE (11) IN
1458
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1460
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1461
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1462
id select_type table type possible_keys key key_len ref rows Extra
1463
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1464
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
1465
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1466
SELECT * FROM t1 WHERE (11) IN
1467
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1469
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1470
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1471
id select_type table type possible_keys key key_len ref rows Extra
1472
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1473
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 NULL
1474
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1475
SELECT * FROM t1 WHERE (11) IN
1476
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1478
INSERT INTO t3 VALUES (1);
1479
SELECT (SELECT COUNT(*) from t1) AS c1,
1480
(SELECT COUNT(*) from t2) AS c2,
1481
(SELECT COUNT(*) from t3) AS c3;
1484
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1485
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1486
id select_type table type possible_keys key key_len ref rows Extra
1487
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1488
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where
1489
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1490
SELECT * FROM t1 WHERE (t1.i) IN
1491
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1494
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1495
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1502
DEALLOCATE PREPARE stmt;
1503
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1504
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1505
id select_type table type possible_keys key key_len ref rows Extra
1506
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1507
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where
1508
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1509
SELECT * FROM t1 WHERE (t1.i) IN
1510
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1513
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1514
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1521
DEALLOCATE PREPARE stmt;
1522
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1523
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1524
id select_type table type possible_keys key key_len ref rows Extra
1525
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1526
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where
1527
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1528
SELECT * FROM t1 WHERE (t1.i) IN
1529
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1532
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1533
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1534
id select_type table type possible_keys key key_len ref rows Extra
1535
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1536
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 NULL
1537
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1538
SELECT * FROM t1 WHERE (t1.i) IN
1539
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1542
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1543
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1544
id select_type table type possible_keys key key_len ref rows Extra
1545
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1546
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where
1547
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1548
SELECT * FROM t1 WHERE (11) IN
1549
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1551
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1552
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1553
id select_type table type possible_keys key key_len ref rows Extra
1554
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1555
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where
1556
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1557
SELECT * FROM t1 WHERE (11) IN
1558
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1560
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1561
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1562
id select_type table type possible_keys key key_len ref rows Extra
1563
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1564
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where
1565
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1566
SELECT * FROM t1 WHERE (11) IN
1567
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1569
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1570
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1571
id select_type table type possible_keys key key_len ref rows Extra
1572
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1573
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 NULL
1574
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1575
SELECT * FROM t1 WHERE (11) IN
1576
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1578
INSERT INTO t3 VALUES (0);
1580
INSERT INTO t2 VALUES (1);
1581
SELECT (SELECT COUNT(*) from t1) AS c1,
1582
(SELECT COUNT(*) from t2) AS c2,
1583
(SELECT COUNT(*) from t3) AS c3;
1586
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1587
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1588
id select_type table type possible_keys key key_len ref rows Extra
1589
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1590
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where
1591
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1592
SELECT * FROM t1 WHERE (t1.i) IN
1593
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1595
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1596
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1601
DEALLOCATE PREPARE stmt;
1602
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1603
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1604
id select_type table type possible_keys key key_len ref rows Extra
1605
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1606
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where
1607
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1608
SELECT * FROM t1 WHERE (t1.i) IN
1609
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1611
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1612
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1617
DEALLOCATE PREPARE stmt;
1618
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1619
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1620
id select_type table type possible_keys key key_len ref rows Extra
1621
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1622
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where
1623
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1624
SELECT * FROM t1 WHERE (t1.i) IN
1625
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1627
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1628
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1629
id select_type table type possible_keys key key_len ref rows Extra
1630
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1631
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1632
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
1633
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
1634
SELECT * FROM t1 WHERE (t1.i) IN
1635
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1637
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1638
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1639
id select_type table type possible_keys key key_len ref rows Extra
1640
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1641
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where
1642
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1643
SELECT * FROM t1 WHERE (11) IN
1644
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1646
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1647
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1648
id select_type table type possible_keys key key_len ref rows Extra
1649
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1650
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where
1651
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1652
SELECT * FROM t1 WHERE (11) IN
1653
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1655
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1656
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1657
id select_type table type possible_keys key key_len ref rows Extra
1658
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1659
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where
1660
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1661
SELECT * FROM t1 WHERE (11) IN
1662
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1664
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1665
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1666
id select_type table type possible_keys key key_len ref rows Extra
1667
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1668
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1669
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
1670
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
1671
SELECT * FROM t1 WHERE (11) IN
1672
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1674
INSERT INTO t3 VALUES (2);
1675
SELECT (SELECT COUNT(*) from t1) AS c1,
1676
(SELECT COUNT(*) from t2) AS c2,
1677
(SELECT COUNT(*) from t3) AS c3;
1680
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1681
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1682
id select_type table type possible_keys key key_len ref rows Extra
1683
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1684
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
1685
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1686
SELECT * FROM t1 WHERE (t1.i) IN
1687
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1690
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1691
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1698
DEALLOCATE PREPARE stmt;
1699
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1700
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1701
id select_type table type possible_keys key key_len ref rows Extra
1702
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1703
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
1704
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1705
SELECT * FROM t1 WHERE (t1.i) IN
1706
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1709
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1710
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1717
DEALLOCATE PREPARE stmt;
1718
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1719
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1720
id select_type table type possible_keys key key_len ref rows Extra
1721
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1722
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
1723
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1724
SELECT * FROM t1 WHERE (t1.i) IN
1725
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1728
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1729
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1730
id select_type table type possible_keys key key_len ref rows Extra
1731
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1732
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 NULL
1733
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1734
SELECT * FROM t1 WHERE (t1.i) IN
1735
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1738
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1739
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1740
id select_type table type possible_keys key key_len ref rows Extra
1741
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1742
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
1743
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1744
SELECT * FROM t1 WHERE (11) IN
1745
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1747
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1748
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1749
id select_type table type possible_keys key key_len ref rows Extra
1750
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1751
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
1752
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1753
SELECT * FROM t1 WHERE (11) IN
1754
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1756
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1757
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1758
id select_type table type possible_keys key key_len ref rows Extra
1759
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1760
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
1761
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1762
SELECT * FROM t1 WHERE (11) IN
1763
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1765
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1766
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1767
id select_type table type possible_keys key key_len ref rows Extra
1768
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1769
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 NULL
1770
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
1771
SELECT * FROM t1 WHERE (11) IN
1772
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1774
INSERT INTO t3 VALUES (1);
1775
SELECT (SELECT COUNT(*) from t1) AS c1,
1776
(SELECT COUNT(*) from t2) AS c2,
1777
(SELECT COUNT(*) from t3) AS c3;
1780
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1781
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1782
id select_type table type possible_keys key key_len ref rows Extra
1783
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1784
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
1785
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1786
SELECT * FROM t1 WHERE (t1.i) IN
1787
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1790
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1791
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1798
DEALLOCATE PREPARE stmt;
1799
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1800
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1801
id select_type table type possible_keys key key_len ref rows Extra
1802
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1803
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
1804
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1805
SELECT * FROM t1 WHERE (t1.i) IN
1806
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1809
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1810
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1817
DEALLOCATE PREPARE stmt;
1818
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1819
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1820
id select_type table type possible_keys key key_len ref rows Extra
1821
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1822
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where
1823
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1824
SELECT * FROM t1 WHERE (t1.i) IN
1825
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1828
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1829
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1830
id select_type table type possible_keys key key_len ref rows Extra
1831
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1832
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 NULL
1833
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1834
SELECT * FROM t1 WHERE (t1.i) IN
1835
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1838
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1839
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1840
id select_type table type possible_keys key key_len ref rows Extra
1841
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1842
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
1843
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1844
SELECT * FROM t1 WHERE (11) IN
1845
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1847
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1848
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1849
id select_type table type possible_keys key key_len ref rows Extra
1850
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1851
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
1852
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1853
SELECT * FROM t1 WHERE (11) IN
1854
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1856
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1857
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1858
id select_type table type possible_keys key key_len ref rows Extra
1859
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1860
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where
1861
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1862
SELECT * FROM t1 WHERE (11) IN
1863
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1865
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1866
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1867
id select_type table type possible_keys key key_len ref rows Extra
1868
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1869
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 NULL
1870
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
1871
SELECT * FROM t1 WHERE (11) IN
1872
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1874
INSERT INTO t3 VALUES (0);
1876
INSERT INTO t2 VALUES (0);
1878
INSERT INTO t1 VALUES (1);
1879
SELECT (SELECT COUNT(*) from t1) AS c1,
1880
(SELECT COUNT(*) from t2) AS c2,
1881
(SELECT COUNT(*) from t3) AS c3;
1884
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1885
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1886
id select_type table type possible_keys key key_len ref rows Extra
1887
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
1888
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
1889
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 NULL
1890
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
1891
SELECT * FROM t1 WHERE (t1.i) IN
1892
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1894
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1895
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1900
DEALLOCATE PREPARE stmt;
1901
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1902
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1903
id select_type table type possible_keys key key_len ref rows Extra
1904
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
1905
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
1906
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 NULL
1907
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
1908
SELECT * FROM t1 WHERE (t1.i) IN
1909
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1911
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1912
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1917
DEALLOCATE PREPARE stmt;
1918
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1919
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1920
id select_type table type possible_keys key key_len ref rows Extra
1921
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
1922
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
1923
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 NULL
1924
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where
1925
SELECT * FROM t1 WHERE (t1.i) IN
1926
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1928
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1929
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1930
id select_type table type possible_keys key key_len ref rows Extra
1931
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
1932
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
1933
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 NULL
1934
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 NULL
1935
SELECT * FROM t1 WHERE (t1.i) IN
1936
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1938
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1939
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1940
id select_type table type possible_keys key key_len ref rows Extra
1941
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
1942
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
1943
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
1944
SELECT * FROM t1 WHERE (11) IN
1945
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1947
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1948
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1949
id select_type table type possible_keys key key_len ref rows Extra
1950
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; Start temporary
1951
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where
1952
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
1953
SELECT * FROM t1 WHERE (11) IN
1954
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1956
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1957
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1958
id select_type table type possible_keys key key_len ref rows Extra
1959
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
1960
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
1961
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
1962
SELECT * FROM t1 WHERE (11) IN
1963
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1965
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1966
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1967
id select_type table type possible_keys key key_len ref rows Extra
1968
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 FirstMatch
1969
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
1970
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
1971
SELECT * FROM t1 WHERE (11) IN
1972
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1974
INSERT INTO t3 VALUES (2);
1975
SELECT (SELECT COUNT(*) from t1) AS c1,
1976
(SELECT COUNT(*) from t2) AS c2,
1977
(SELECT COUNT(*) from t3) AS c3;
1980
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1981
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1982
id select_type table type possible_keys key key_len ref rows Extra
1983
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Start temporary
1984
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
1985
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
1986
SELECT * FROM t1 WHERE (t1.i) IN
1987
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1989
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1990
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1995
DEALLOCATE PREPARE stmt;
1996
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1997
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1998
id select_type table type possible_keys key key_len ref rows Extra
1999
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Start temporary
2000
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
2001
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
2002
SELECT * FROM t1 WHERE (t1.i) IN
2003
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2005
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2006
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
2011
DEALLOCATE PREPARE stmt;
2012
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2013
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2014
id select_type table type possible_keys key key_len ref rows Extra
2015
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Start temporary
2016
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where
2017
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
2018
SELECT * FROM t1 WHERE (t1.i) IN
2019
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2022
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2023
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2024
id select_type table type possible_keys key key_len ref rows Extra
2025
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Start temporary
2026
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 NULL
2027
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
2028
SELECT * FROM t1 WHERE (t1.i) IN
2029
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2031
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2032
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2033
id select_type table type possible_keys key key_len ref rows Extra
2034
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
2035
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2036
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
2037
SELECT * FROM t1 WHERE (11) IN
2038
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2040
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2041
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2042
id select_type table type possible_keys key key_len ref rows Extra
2043
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; Start temporary
2044
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
2045
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
2046
SELECT * FROM t1 WHERE (11) IN
2047
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2049
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2050
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2051
id select_type table type possible_keys key key_len ref rows Extra
2052
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
2053
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
2054
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2055
SELECT * FROM t1 WHERE (11) IN
2056
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2058
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2059
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2060
id select_type table type possible_keys key key_len ref rows Extra
2061
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 FirstMatch
2062
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2063
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
2064
SELECT * FROM t1 WHERE (11) IN
2065
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2067
INSERT INTO t3 VALUES (1);
2068
SELECT (SELECT COUNT(*) from t1) AS c1,
2069
(SELECT COUNT(*) from t2) AS c2,
2070
(SELECT COUNT(*) from t3) AS c3;
2073
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2074
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2075
id select_type table type possible_keys key key_len ref rows Extra
2076
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Start temporary
2077
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2078
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
2079
SELECT * FROM t1 WHERE (t1.i) IN
2080
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2082
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2083
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
2088
DEALLOCATE PREPARE stmt;
2089
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2090
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2091
id select_type table type possible_keys key key_len ref rows Extra
2092
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Start temporary
2093
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2094
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
2095
SELECT * FROM t1 WHERE (t1.i) IN
2096
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2098
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2099
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
2104
DEALLOCATE PREPARE stmt;
2105
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2106
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2107
id select_type table type possible_keys key key_len ref rows Extra
2108
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Start temporary
2109
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where
2110
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
2111
SELECT * FROM t1 WHERE (t1.i) IN
2112
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2116
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2117
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2118
id select_type table type possible_keys key key_len ref rows Extra
2119
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Start temporary
2120
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2121
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
2122
SELECT * FROM t1 WHERE (t1.i) IN
2123
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2125
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2126
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2127
id select_type table type possible_keys key key_len ref rows Extra
2128
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
2129
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2130
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
2131
SELECT * FROM t1 WHERE (11) IN
2132
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2134
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2135
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2136
id select_type table type possible_keys key key_len ref rows Extra
2137
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; Start temporary
2138
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2139
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
2140
SELECT * FROM t1 WHERE (11) IN
2141
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2143
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2144
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2145
id select_type table type possible_keys key key_len ref rows Extra
2146
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2147
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2148
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
2149
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where
2150
SELECT * FROM t1 WHERE (11) IN
2151
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2153
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2154
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2155
id select_type table type possible_keys key key_len ref rows Extra
2156
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 FirstMatch
2157
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2158
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
2159
SELECT * FROM t1 WHERE (11) IN
2160
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2162
INSERT INTO t3 VALUES (0);
2164
INSERT INTO t2 VALUES (2);
2165
SELECT (SELECT COUNT(*) from t1) AS c1,
2166
(SELECT COUNT(*) from t2) AS c2,
2167
(SELECT COUNT(*) from t3) AS c3;
2170
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2171
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2172
id select_type table type possible_keys key key_len ref rows Extra
2173
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2174
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2175
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 NULL
2176
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where
2177
SELECT * FROM t1 WHERE (t1.i) IN
2178
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2180
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2181
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
2186
DEALLOCATE PREPARE stmt;
2187
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2188
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2189
id select_type table type possible_keys key key_len ref rows Extra
2190
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2191
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2192
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 NULL
2193
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where
2194
SELECT * FROM t1 WHERE (t1.i) IN
2195
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2197
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2198
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
2203
DEALLOCATE PREPARE stmt;
2204
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2205
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2206
id select_type table type possible_keys key key_len ref rows Extra
2207
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2208
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2209
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 NULL
2210
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where
2211
SELECT * FROM t1 WHERE (t1.i) IN
2212
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2214
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2215
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2216
id select_type table type possible_keys key key_len ref rows Extra
2217
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2218
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2219
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 NULL
2220
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 NULL
2221
SELECT * FROM t1 WHERE (t1.i) IN
2222
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2224
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2225
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2226
id select_type table type possible_keys key key_len ref rows Extra
2227
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
2228
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2229
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
2230
SELECT * FROM t1 WHERE (11) IN
2231
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2233
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2234
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2235
id select_type table type possible_keys key key_len ref rows Extra
2236
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; Start temporary
2237
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where
2238
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
2239
SELECT * FROM t1 WHERE (11) IN
2240
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2242
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2243
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2244
id select_type table type possible_keys key key_len ref rows Extra
2245
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
2246
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2247
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
2248
SELECT * FROM t1 WHERE (11) IN
2249
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2251
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2252
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2253
id select_type table type possible_keys key key_len ref rows Extra
2254
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 NULL
2255
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
2256
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2257
SELECT * FROM t1 WHERE (11) IN
2258
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2260
INSERT INTO t3 VALUES (2);
2261
SELECT (SELECT COUNT(*) from t1) AS c1,
2262
(SELECT COUNT(*) from t2) AS c2,
2263
(SELECT COUNT(*) from t3) AS c3;
2266
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2267
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2268
id select_type table type possible_keys key key_len ref rows Extra
2269
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2270
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2271
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 NULL
2272
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where
2273
SELECT * FROM t1 WHERE (t1.i) IN
2274
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2277
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2278
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
2285
DEALLOCATE PREPARE stmt;
2286
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2287
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2288
id select_type table type possible_keys key key_len ref rows Extra
2289
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2290
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2291
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 NULL
2292
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where
2293
SELECT * FROM t1 WHERE (t1.i) IN
2294
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2297
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2298
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
2305
DEALLOCATE PREPARE stmt;
2306
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2307
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2308
id select_type table type possible_keys key key_len ref rows Extra
2309
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2310
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2311
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 NULL
2312
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where
2313
SELECT * FROM t1 WHERE (t1.i) IN
2314
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2317
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2318
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2319
id select_type table type possible_keys key key_len ref rows Extra
2320
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2321
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2322
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 NULL
2323
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 NULL
2324
SELECT * FROM t1 WHERE (t1.i) IN
2325
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2328
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2329
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2330
id select_type table type possible_keys key key_len ref rows Extra
2331
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where
2332
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
2333
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2334
SELECT * FROM t1 WHERE (11) IN
2335
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2337
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2338
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2339
id select_type table type possible_keys key key_len ref rows Extra
2340
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; Start temporary
2341
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
2342
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
2343
SELECT * FROM t1 WHERE (11) IN
2344
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2346
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2347
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2348
id select_type table type possible_keys key key_len ref rows Extra
2349
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
2350
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
2351
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2352
SELECT * FROM t1 WHERE (11) IN
2353
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2355
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2356
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2357
id select_type table type possible_keys key key_len ref rows Extra
2358
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 NULL
2359
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
2360
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2361
SELECT * FROM t1 WHERE (11) IN
2362
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2364
INSERT INTO t3 VALUES (1);
2365
SELECT (SELECT COUNT(*) from t1) AS c1,
2366
(SELECT COUNT(*) from t2) AS c2,
2367
(SELECT COUNT(*) from t3) AS c3;
2370
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2371
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2372
id select_type table type possible_keys key key_len ref rows Extra
2373
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Start temporary
2374
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2375
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
2376
SELECT * FROM t1 WHERE (t1.i) IN
2377
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2380
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2381
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
2388
DEALLOCATE PREPARE stmt;
2389
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2390
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2391
id select_type table type possible_keys key key_len ref rows Extra
2392
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Start temporary
2393
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2394
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
2395
SELECT * FROM t1 WHERE (t1.i) IN
2396
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2399
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2400
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
2407
DEALLOCATE PREPARE stmt;
2408
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2409
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2410
id select_type table type possible_keys key key_len ref rows Extra
2411
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2412
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2413
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 NULL
2414
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where
2415
SELECT * FROM t1 WHERE (t1.i) IN
2416
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2420
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2421
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2422
id select_type table type possible_keys key key_len ref rows Extra
2423
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Start temporary
2424
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2425
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
2426
SELECT * FROM t1 WHERE (t1.i) IN
2427
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2431
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2432
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2433
id select_type table type possible_keys key key_len ref rows Extra
2434
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where
2435
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
2436
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2437
SELECT * FROM t1 WHERE (11) IN
2438
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2440
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2441
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2442
id select_type table type possible_keys key key_len ref rows Extra
2443
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; Start temporary
2444
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2445
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
2446
SELECT * FROM t1 WHERE (11) IN
2447
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2449
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2450
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2451
id select_type table type possible_keys key key_len ref rows Extra
2452
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where
2453
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
2454
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2455
SELECT * FROM t1 WHERE (11) IN
2456
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2458
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2459
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2460
id select_type table type possible_keys key key_len ref rows Extra
2461
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 NULL
2462
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
2463
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2464
SELECT * FROM t1 WHERE (11) IN
2465
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2467
INSERT INTO t3 VALUES (0);
2469
INSERT INTO t2 VALUES (1);
2470
SELECT (SELECT COUNT(*) from t1) AS c1,
2471
(SELECT COUNT(*) from t2) AS c2,
2472
(SELECT COUNT(*) from t3) AS c3;
2475
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2476
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2477
id select_type table type possible_keys key key_len ref rows Extra
2478
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Start temporary
2479
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2480
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary
2481
SELECT * FROM t1 WHERE (t1.i) IN
2482
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2484
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2485
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
2490
DEALLOCATE PREPARE stmt;
2491
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2492
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2493
id select_type table type possible_keys key key_len ref rows Extra
2494
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Start temporary
2495
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2496
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary
2497
SELECT * FROM t1 WHERE (t1.i) IN
2498
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2500
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2501
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
2506
DEALLOCATE PREPARE stmt;
2507
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2508
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2509
id select_type table type possible_keys key key_len ref rows Extra
2510
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Start temporary
2511
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2512
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary
2513
SELECT * FROM t1 WHERE (t1.i) IN
2514
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2516
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2517
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2518
id select_type table type possible_keys key key_len ref rows Extra
2519
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2520
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2521
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
2522
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 NULL
2523
SELECT * FROM t1 WHERE (t1.i) IN
2524
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2526
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2527
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2528
id select_type table type possible_keys key key_len ref rows Extra
2529
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
2530
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2531
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
2532
SELECT * FROM t1 WHERE (11) IN
2533
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2535
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2536
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2537
id select_type table type possible_keys key key_len ref rows Extra
2538
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; Start temporary
2539
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2540
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary
2541
SELECT * FROM t1 WHERE (11) IN
2542
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2544
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2545
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2546
id select_type table type possible_keys key key_len ref rows Extra
2547
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
2548
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2549
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
2550
SELECT * FROM t1 WHERE (11) IN
2551
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2553
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2554
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2555
id select_type table type possible_keys key key_len ref rows Extra
2556
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2557
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2558
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
2559
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
2560
SELECT * FROM t1 WHERE (11) IN
2561
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2563
INSERT INTO t3 VALUES (2);
2564
SELECT (SELECT COUNT(*) from t1) AS c1,
2565
(SELECT COUNT(*) from t2) AS c2,
2566
(SELECT COUNT(*) from t3) AS c3;
2569
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2570
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2571
id select_type table type possible_keys key key_len ref rows Extra
2572
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Start temporary
2573
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2574
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary
2575
SELECT * FROM t1 WHERE (t1.i) IN
2576
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2579
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2580
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
2587
DEALLOCATE PREPARE stmt;
2588
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2589
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2590
id select_type table type possible_keys key key_len ref rows Extra
2591
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Start temporary
2592
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2593
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary
2594
SELECT * FROM t1 WHERE (t1.i) IN
2595
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2598
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2599
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
2606
DEALLOCATE PREPARE stmt;
2607
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2608
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2609
id select_type table type possible_keys key key_len ref rows Extra
2610
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Start temporary
2611
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2612
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary
2613
SELECT * FROM t1 WHERE (t1.i) IN
2614
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2617
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2618
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2619
id select_type table type possible_keys key key_len ref rows Extra
2620
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2621
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2622
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
2623
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 NULL
2624
SELECT * FROM t1 WHERE (t1.i) IN
2625
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2628
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2629
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2630
id select_type table type possible_keys key key_len ref rows Extra
2631
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
2632
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
2633
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2634
SELECT * FROM t1 WHERE (11) IN
2635
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2637
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2638
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2639
id select_type table type possible_keys key key_len ref rows Extra
2640
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
2641
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2642
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary
2643
SELECT * FROM t1 WHERE (11) IN
2644
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2646
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2647
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2648
id select_type table type possible_keys key key_len ref rows Extra
2649
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
2650
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
2651
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2652
SELECT * FROM t1 WHERE (11) IN
2653
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2655
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2656
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2657
id select_type table type possible_keys key key_len ref rows Extra
2658
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 NULL
2659
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
2660
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2661
SELECT * FROM t1 WHERE (11) IN
2662
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2664
INSERT INTO t3 VALUES (1);
2665
SELECT (SELECT COUNT(*) from t1) AS c1,
2666
(SELECT COUNT(*) from t2) AS c2,
2667
(SELECT COUNT(*) from t3) AS c3;
2670
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2671
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2672
id select_type table type possible_keys key key_len ref rows Extra
2673
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2674
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t1.i 1 NULL
2675
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
2676
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
2677
SELECT * FROM t1 WHERE (t1.i) IN
2678
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2682
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2683
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
2692
DEALLOCATE PREPARE stmt;
2693
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2694
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2695
id select_type table type possible_keys key key_len ref rows Extra
2696
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2697
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t1.i 1 NULL
2698
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
2699
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
2700
SELECT * FROM t1 WHERE (t1.i) IN
2701
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2705
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2706
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
2715
DEALLOCATE PREPARE stmt;
2716
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2717
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2718
id select_type table type possible_keys key key_len ref rows Extra
2719
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2720
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t1.i 1 NULL
2721
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 NULL
2722
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where
2723
SELECT * FROM t1 WHERE (t1.i) IN
2724
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2728
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2729
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2730
id select_type table type possible_keys key key_len ref rows Extra
2731
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2732
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t1.i 1 NULL
2733
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
2734
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 NULL
2735
SELECT * FROM t1 WHERE (t1.i) IN
2736
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2740
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2741
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2742
id select_type table type possible_keys key key_len ref rows Extra
2743
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2744
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2745
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where
2746
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
2747
SELECT * FROM t1 WHERE (11) IN
2748
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2750
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2751
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2752
id select_type table type possible_keys key key_len ref rows Extra
2753
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2754
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
2755
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
2756
SELECT * FROM t1 WHERE (11) IN
2757
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2759
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2760
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2761
id select_type table type possible_keys key key_len ref rows Extra
2762
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2763
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2764
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
2765
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where
2766
SELECT * FROM t1 WHERE (11) IN
2767
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2769
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2770
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2771
id select_type table type possible_keys key key_len ref rows Extra
2772
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2773
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2774
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
2775
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
2776
SELECT * FROM t1 WHERE (11) IN
2777
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2779
INSERT INTO t3 VALUES (0);
2781
INSERT INTO t2 VALUES (0);
2783
INSERT INTO t1 VALUES (0);
2784
DROP TABLE t1, t2, t3;
2785
create table x1(k int primary key, d1 int, d2 int);
2786
create table x2(k int primary key, d1 int, d2 int);
2787
insert into x1 values
2793
insert into x2 values
2800
where (d1, d2) in (select d1, d2
2807
where (d1, d2) in (select d1, d2
2814
where (d1, d2) in (select d1, d2
2820
where (d1, d2) in (select d1, d2
2821
from x2) is unknown;
2827
where d1 in (select d1
2835
where d1 in (select d1
2837
where x1.d2=x2.d2) is true;
2843
where d1 in (select d1
2845
where x1.d2=x2.d2) is false;
2851
where d1 in (select d1
2853
where x1.d2=x2.d2) is unknown;
2858
where 1 in (select 1
2860
where x1.d1=x2.d1 and x1.d2=x2.d2);
2866
where 1 in (select 1
2868
where x1.d1=x2.d1 and x1.d2=x2.d2) is true;
2874
where 1 in (select 1
2876
where x1.d1=x2.d1 and x1.d2=x2.d2) is false;
2883
where 1 in (select 1
2885
where x1.d1=x2.d1 and x1.d2=x2.d2) is unknown;
2889
where exists (select *
2891
where x1.d1=x2.d1 and x1.d2=x2.d2);
2900
c datetime default NULL,
2904
INSERT INTO t1 VALUES
2905
(406989,67,'2006-02-23 17:08:46'), (150078,67,'2005-10-26 11:17:45'),
2906
(406993,67,'2006-02-27 11:20:57'), (245655,67,'2005-12-08 15:59:08'),
2907
(406994,67,'2006-02-27 11:26:46'), (256,67,NULL),
2908
(398341,67,'2006-02-20 04:48:44'), (254,67,NULL),(1120,67,NULL),
2909
(406988,67,'2006-02-23 17:07:22'), (255,67,NULL),
2910
(398340,67,'2006-02-20 04:38:53'),(406631,67,'2006-02-23 10:49:42'),
2911
(245653,67,'2005-12-08 15:59:07'),(406992,67,'2006-02-24 16:47:18'),
2912
(245654,67,'2005-12-08 15:59:08'),(406995,67,'2006-02-28 11:55:00'),
2913
(127261,67,'2005-10-13 12:17:58'),(406991,67,'2006-02-24 16:42:32'),
2914
(245652,67,'2005-12-08 15:58:27'),(398545,67,'2006-02-20 04:53:13'),
2915
(154504,67,'2005-10-28 11:53:01'),(9199,67,NULL),(1,67,'2006-02-23 15:01:35'),
2916
(223456,67,NULL),(4101,67,NULL),(1133,67,NULL),
2917
(406990,67,'2006-02-23 18:01:45'),(148815,67,'2005-10-25 15:34:17'),
2918
(148812,67,'2005-10-25 15:30:01'),(245651,67,'2005-12-08 15:58:27'),
2919
(154503,67,'2005-10-28 11:52:38');
2920
create table t11 select * from t1 where b = 67 AND (c IS NULL OR c > NOW()) order by 3 asc;
2921
create table t12 select * from t1 where b = 67 AND (c IS NULL OR c > NOW()) order by 3 desc;
2922
create table t21 select * from t1 where b = 67 AND (c IS NULL OR c > '2005-12-08') order by 3 asc;
2923
create table t22 select * from t1 where b = 67 AND (c IS NULL OR c > '2005-12-08') order by 3 desc;
2924
update t22 set c = '2005-12-08 15:58:27' where a = 255;
2925
explain select t21.* from t21,t22 where t21.a = t22.a and
2926
t22.a in (select t12.a from t11, t12 where t11.a in(255,256) and t11.a = t12.a and t11.c is null) and t22.c is null order by t21.a;
2927
id select_type table type possible_keys key key_len ref rows Extra
2928
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using temporary; Using filesort
2929
1 SIMPLE t22 ALL NULL NULL NULL NULL 26 Using where
2930
1 SIMPLE t21 ALL NULL NULL NULL NULL 26 Using where
2931
2 MATERIALIZED t11 ALL NULL NULL NULL NULL 8 Using where
2932
2 MATERIALIZED t12 ALL NULL NULL NULL NULL 8 Using where
2933
explain format=json select * from t1 where a in (select a from t11);
2938
"duplicates_removal": {
2939
"using_temporary_table": true,
2943
"table_name": "t11",
2944
"access_type": "ALL",
2952
"access_type": "eq_ref",
2966
"using_join_buffer": "Batched Key Access"
2974
Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` semi join (`test`.`t11`) where (`test`.`t1`.`a` = `test`.`t11`.`a`)
2975
select t21.* from t21,t22 where t21.a = t22.a and
2976
t22.a in (select t12.a from t11, t12 where t11.a in(255,256) and t11.a = t12.a and t11.c is null) and t22.c is null order by t21.a;
2979
drop table t1, t11, t12, t21, t22;
2980
create table t1(a int);
2981
insert into t1 values (0),(1);
2983
select (select max(Y.a) from t1 Y where a in (select a from t1 Z) and a < X.a) as subq from t1 X;
2984
id select_type table type possible_keys key key_len ref rows Extra
2985
1 PRIMARY X ALL NULL NULL NULL NULL 2 NULL
2986
2 DEPENDENT SUBQUERY Y ALL NULL NULL NULL NULL 2 Using where
2987
2 DEPENDENT SUBQUERY Z ALL NULL NULL NULL NULL 2 Using where; FirstMatch(Y)
2988
select (select max(Y.a) from t1 Y where a in (select a from t1 Z) and a < X.a) as subq from t1 X;
2993
create table t0 (a int);
2994
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
2995
create table t1 as select * from t0;
2996
insert into t1 select a+10 from t0;
2997
insert into t0 values(2);
2998
explain select * from t1 where 2 in (select a from t0);
2999
id select_type table type possible_keys key key_len ref rows Extra
3000
1 SIMPLE t0 ALL NULL NULL NULL NULL 11 Using where; FirstMatch
3001
1 SIMPLE t1 ALL NULL NULL NULL NULL 20 NULL
3002
select * from t1 where 2 in (select a from t0);
3024
explain select * from (select a from t0) x where a in (select a from t1);
3025
id select_type table type possible_keys key key_len ref rows Extra
3026
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 11 Using where
3027
1 PRIMARY <subquery3> eq_ref <auto_key> <auto_key> 5 x.a 1 NULL
3028
3 MATERIALIZED t1 ALL NULL NULL NULL NULL 20 NULL
3029
2 DERIVED t0 ALL NULL NULL NULL NULL 11 NULL
3030
explain format=json select * from (select a from t0) x where a in (select a from t1);
3039
"access_type": "ALL",
3042
"attached_condition": "(`x`.`a` is not null)",
3043
"materialized_from_subquery": {
3044
"using_temporary_table": true,
3051
"access_type": "ALL",
3061
"table_name": "<subquery3>",
3062
"access_type": "eq_ref",
3063
"key": "<auto_key>",
3069
"materialized_from_subquery": {
3070
"using_temporary_table": true,
3074
"access_type": "ALL",
3086
Note 1003 /* select#1 */ select `x`.`a` AS `a` from (/* select#2 */ select `test`.`t0`.`a` AS `a` from `test`.`t0`) `x` semi join (`test`.`t1`) where (`<subquery3>`.`a` = `x`.`a`)
3088
create table t0 (a int);
3089
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
3090
create table t1 (kp1 int, kp2 int, c int, filler char(100), key(kp1, kp2));
3091
insert into t1 select A.a+10*(B.a+10*C.a), 0, 0, 'filler' from t0 A, t0 B, t0 C;
3092
insert into t1 select * from t1 where kp1 < 20;
3093
create table t3 (a int);
3094
insert into t3 select A.a + 10*B.a from t0 A, t0 B;
3095
explain select * from t3 where a in (select kp1 from t1 where kp1<20);
3096
id select_type table type possible_keys key key_len ref rows Extra
3097
1 SIMPLE t3 ALL NULL NULL NULL NULL 100 Using where
3098
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t3.a 1 NULL
3099
2 MATERIALIZED t1 range kp1 kp1 5 NULL 48 Using where; Using index
3100
select * from t3 where a in (select kp1 from t1 where kp1<20);
3122
explain select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
3123
id select_type table type possible_keys key key_len ref rows Extra
3124
1 SIMPLE t3 ALL NULL NULL NULL NULL 100 Using where
3125
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t3.a 1 NULL
3126
2 MATERIALIZED t1 range kp1 kp1 5 NULL 48 Using where; Using index
3127
select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
3149
create table t4 (pk int primary key);
3150
insert into t4 select a from t3;
3151
explain select * from t3 where a in
3152
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
3153
id select_type table type possible_keys key key_len ref rows Extra
3154
1 SIMPLE t3 ALL NULL NULL NULL NULL 100 Using where
3155
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t3.a 1 NULL
3156
2 MATERIALIZED t1 range kp1 kp1 5 NULL 48 Using index condition; Using where; Using MRR
3157
2 MATERIALIZED t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index
3158
select * from t3 where a in
3159
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
3181
drop table t1, t3, t4;
3182
create table t1 (a int);
3183
insert into t1 values (0),(0),(0),(1),(1),(1),(2),(2),(2),(3),(3),(3);
3184
set @save_max_heap_table_size=@@max_heap_table_size;
3185
set @@max_heap_table_size= 16384;
3186
# Attempt to make one test that overflows the heap table when a
3187
# non-duplicate row is inserted and one test that overflows the
3188
# heap table when a duplicate record is inserted. Debugging showed
3189
# that these situations occurred with max_heap_table_size=16384
3190
# and optimizer_join_cache_level equals 1 and 0, respectively.
3191
# Finally execute a test that does not overflow the heap table.
3193
select count(*) from t0 A, t0 B, t0 C
3194
where C.a in (select a from t1 D);
3195
id select_type table type possible_keys key key_len ref rows Extra
3196
1 SIMPLE A ALL NULL NULL NULL NULL 10 NULL
3197
1 SIMPLE B ALL NULL NULL NULL NULL 10 NULL
3198
1 SIMPLE C ALL NULL NULL NULL NULL 10 Using where
3199
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.C.a 1 NULL
3200
2 MATERIALIZED D ALL NULL NULL NULL NULL 12 NULL
3202
select count(*) from t0 A, t0 B, t0 C
3203
where C.a in (select a from t1 D);
3206
show status like 'Created_tmp_disk_tables';
3208
Created_tmp_disk_tables 0
3209
set @@max_heap_table_size= @save_max_heap_table_size;
3211
select count(*) from t0 A, t0 B, t0 C
3212
where C.a in (select a from t1 D);
3215
show status like 'Created_tmp_disk_tables';
3217
Created_tmp_disk_tables 0
3219
create table t0 (a int);
3220
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
3221
create table t2(a int);
3222
insert into t2 values (1),(2);
3223
create table t3 ( a int , filler char(100), key(a));
3224
insert into t3 select A.a + 10*B.a, 'filler' from t0 A, t0 B;
3225
explain select * from t3 where a in (select a from t2) and (a > 5 or a < 10);
3226
id select_type table type possible_keys key key_len ref rows Extra
3227
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; Start temporary
3228
1 SIMPLE t3 ref a a 5 test.t2.a 1 End temporary; Using join buffer (Batched Key Access)
3229
select * from t3 where a in (select a from t2);
3233
drop table t0, t2, t3;
3234
create table t1 (a date);
3235
insert into t1 values ('2008-01-01'),('2008-01-01'),('2008-02-01'),('2008-02-01');
3236
create table t2 (a int);
3237
insert into t2 values (1),(2);
3238
create table t3 (a char(10));
3239
insert into t3 select * from t1;
3240
insert into t3 values (1),(2);
3241
explain select * from t2 where a in (select a from t1);
3242
id select_type table type possible_keys key key_len ref rows Extra
3243
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 NULL
3244
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where; FirstMatch(t2)
3245
explain select * from t2 where a in (select a from t2);
3246
id select_type table type possible_keys key key_len ref rows Extra
3247
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 NULL
3248
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t2)
3249
explain select * from t2 where a in (select a from t3);
3250
id select_type table type possible_keys key key_len ref rows Extra
3251
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 NULL
3252
1 SIMPLE t3 ALL NULL NULL NULL NULL 6 Using where; FirstMatch(t2)
3253
explain select * from t1 where a in (select a from t3);
3254
id select_type table type possible_keys key key_len ref rows Extra
3255
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 NULL
3256
1 SIMPLE t3 ALL NULL NULL NULL NULL 6 Using where; FirstMatch(t1)
3257
drop table t1, t2, t3;
3258
create table t1 (a decimal);
3259
insert into t1 values (1),(2);
3260
explain select * from t1 where a in (select a from t1);
3261
id select_type table type possible_keys key key_len ref rows Extra
3262
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
3263
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
3265
create table t1 (a int);
3266
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
3267
create table t2 as select * from t1;
3268
create table t3 (a int, b int, filler char(100), key(a));
3269
insert into t3 select A.a + 10*B.a, A.a + 10*B.a, 'filler' from t1 A, t1 B, t1 C;
3270
explain select * from t1, t3 where t3.a in (select a from t2) and (t3.a < 10 or t3.a >30) and t1.a =3;
3271
id select_type table type possible_keys key key_len ref rows Extra
3272
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 Using where
3273
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where
3274
1 SIMPLE t3 ref a a 5 <subquery2>.a 10 Using join buffer (Batched Key Access)
3275
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 10 NULL
3276
explain format=json select * from t1, t3 where t3.a in (select a from t2) and (t3.a < 10 or t3.a >30) and t1.a =3;
3285
"access_type": "ALL",
3288
"attached_condition": "(`test`.`t1`.`a` = 3)"
3293
"table_name": "<subquery2>",
3294
"access_type": "ALL",
3295
"attached_condition": "(((`<subquery2>`.`a` < 10) or (`<subquery2>`.`a` > 30)) and (`<subquery2>`.`a` is not null))",
3296
"materialized_from_subquery": {
3297
"using_temporary_table": true,
3301
"access_type": "ALL",
3312
"access_type": "ref",
3326
"using_join_buffer": "Batched Key Access"
3333
Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t3`.`filler` AS `filler` from `test`.`t1` semi join (`test`.`t2`) join `test`.`t3` where ((`test`.`t3`.`a` = `<subquery2>`.`a`) and (`test`.`t1`.`a` = 3) and ((`<subquery2>`.`a` < 10) or (`<subquery2>`.`a` > 30)))
3334
explain select straight_join * from t1 A, t1 B where A.a in (select a from t2);
3335
id select_type table type possible_keys key key_len ref rows Extra
3336
1 PRIMARY A ALL NULL NULL NULL NULL 10 Using where
3337
1 PRIMARY B ALL NULL NULL NULL NULL 10 NULL
3338
2 SUBQUERY t2 ALL NULL NULL NULL NULL 10 NULL
3339
explain select * from t2 where a in (select straight_join A.a from t1 A, t1 B);
3340
id select_type table type possible_keys key key_len ref rows Extra
3341
1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Using where
3342
2 SUBQUERY A ALL NULL NULL NULL NULL 10 NULL
3343
2 SUBQUERY B ALL NULL NULL NULL NULL 10 NULL
3344
explain select * from t2 where a in (select straight_join A.a from t1 A, t1 B);
3345
id select_type table type possible_keys key key_len ref rows Extra
3346
1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Using where
3347
2 SUBQUERY A ALL NULL NULL NULL NULL 10 NULL
3348
2 SUBQUERY B ALL NULL NULL NULL NULL 10 NULL
3349
explain select straight_join * from t2 X, t2 Y
3350
where X.a in (select straight_join A.a from t1 A, t1 B);
3351
id select_type table type possible_keys key key_len ref rows Extra
3352
1 PRIMARY X ALL NULL NULL NULL NULL 10 Using where
3353
1 PRIMARY Y ALL NULL NULL NULL NULL 10 NULL
3354
2 SUBQUERY A ALL NULL NULL NULL NULL 10 NULL
3355
2 SUBQUERY B ALL NULL NULL NULL NULL 10 NULL
3356
create table t0 (a int, b int);
3357
insert into t0 values(1,1);
3358
explain select * from t0, t3 where t3.a in (select a from t2) and (t3.a < 10 or t3.a >30);
3359
id select_type table type possible_keys key key_len ref rows Extra
3360
1 SIMPLE t0 system NULL NULL NULL NULL 1 NULL
3361
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where
3362
1 SIMPLE t3 ref a a 5 <subquery2>.a 10 Using join buffer (Batched Key Access)
3363
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 10 NULL
3364
create table t4 as select a as x, a as y from t1;
3365
explain select * from t0, t3 where (t3.a, t3.b) in (select x,y from t4) and (t3.a < 10 or t3.a >30);
3366
id select_type table type possible_keys key key_len ref rows Extra
3367
1 SIMPLE t0 system NULL NULL NULL NULL 1 NULL
3368
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where
3369
1 SIMPLE t3 ref a a 5 <subquery2>.x 10 Using where; Using join buffer (Batched Key Access)
3370
2 MATERIALIZED t4 ALL NULL NULL NULL NULL 10 NULL
3371
drop table t0,t1,t2,t3,t4;
3372
create table t0 (a int);
3373
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
3374
create table t1 (a int, b int, filler char(100), key(a,b));
3375
insert into t1 select A.a, B.a, 'filler' from t0 A, t0 B;
3376
create table t2 as select * from t1;
3377
explain select * from t2 where a in (select b from t1 where a=3);
3378
id select_type table type possible_keys key key_len ref rows Extra
3379
1 SIMPLE t2 ALL NULL NULL NULL NULL 100 Using where
3380
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t2.a 1 NULL
3381
2 MATERIALIZED t1 ref a a 5 const 8 Using index
3382
explain select * from t2 where (b,a) in (select a,b from t1 where a=3);
3383
id select_type table type possible_keys key key_len ref rows Extra
3384
1 SIMPLE t2 ALL NULL NULL NULL NULL 100 Using where
3385
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 10 test.t2.b,test.t2.a 1 Using where
3386
2 MATERIALIZED t1 ref a a 5 const 8 Using index
3388
create table t1 (a int, b int);
3389
insert into t1 select a,a from t0;
3390
create table t2 (a int, b int);
3391
insert into t2 select A.a + 10*B.a, A.a + 10*B.a from t0 A, t0 B;
3392
explain select * from t1 where (a,b) in (select a,b from t2);
3393
id select_type table type possible_keys key key_len ref rows Extra
3394
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 Using where
3395
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 10 test.t1.a,test.t1.b 1 NULL
3396
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 100 NULL
3397
drop table t0, t1, t2;
3398
create table t0 (a decimal(4,2));
3399
insert into t0 values (10.24), (22.11);
3400
create table t1 as select * from t0;
3401
insert into t1 select * from t0;
3402
explain select * from t0 where a in (select a from t1);
3403
id select_type table type possible_keys key key_len ref rows Extra
3404
1 SIMPLE t0 ALL NULL NULL NULL NULL 2 NULL
3405
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where; FirstMatch(t0)
3406
select * from t0 where a in (select a from t1);
3411
create table t0(a date);
3412
insert into t0 values ('2008-01-01'),('2008-02-02');
3413
create table t1 as select * from t0;
3414
insert into t1 select * from t0;
3415
explain select * from t0 where a in (select a from t1);
3416
id select_type table type possible_keys key key_len ref rows Extra
3417
1 SIMPLE t0 ALL NULL NULL NULL NULL 2 NULL
3418
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where; FirstMatch(t0)
3419
select * from t0 where a in (select a from t1);
3424
create table t0(a int);
3425
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
3426
create table t1 as select a as a, a as b, a as c from t0 where a < 3;
3427
create table t2 as select a as a, a as b from t0 where a < 3;
3428
insert into t2 select * from t2;
3429
explain select * from t1 where (a,b,c) in (select X.a, Y.a, Z.a from t2 X, t2 Y, t2 Z where X.b=33);
3430
id select_type table type possible_keys key key_len ref rows Extra
3431
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
3432
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 15 test.t1.a,test.t1.b,test.t1.c 1 NULL
3433
2 MATERIALIZED X ALL NULL NULL NULL NULL 6 Using where
3434
2 MATERIALIZED Y ALL NULL NULL NULL NULL 6 NULL
3435
2 MATERIALIZED Z ALL NULL NULL NULL NULL 6 NULL
3436
drop table t0,t1,t2;
3437
set @save_join_buffer_size = @@join_buffer_size;
3438
set join_buffer_size= 8192;
3439
create table t0 (a int);
3440
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
3441
create table t1 (a int, filler1 binary(200), filler2 binary(200));
3442
insert into t1 select a, 'filler123456', 'filler123456' from t0;
3443
insert into t1 select a+10, 'filler123456', 'filler123456' from t0;
3444
create table t2 as select * from t1;
3445
insert into t1 select a+20, 'filler123456', 'filler123456' from t0;
3446
insert into t1 values (2, 'duplicate ok', 'duplicate ok');
3447
insert into t1 values (18, 'duplicate ok', 'duplicate ok');
3448
insert into t2 values (3, 'duplicate ok', 'duplicate ok');
3449
insert into t2 values (19, 'duplicate ok', 'duplicate ok');
3451
a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z
3452
from t1 ot where a in (select a from t2 it);
3453
id select_type table type possible_keys key key_len ref rows Extra
3454
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
3455
1 SIMPLE ot ALL NULL NULL NULL NULL 32 Using where
3456
2 MATERIALIZED it ALL NULL NULL NULL NULL 22 NULL
3458
a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z
3459
from t1 ot where a in (select a from t2 it);
3460
a mid(filler1, 1,10) Z
3484
a, mid(filler1, 1,10), length(filler1)=length(filler2)
3485
from t2 ot where a in (select a from t1 it);
3486
id select_type table type possible_keys key key_len ref rows Extra
3487
1 SIMPLE ot ALL NULL NULL NULL NULL 22 Using where
3488
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.ot.a 1 NULL
3489
2 MATERIALIZED it ALL NULL NULL NULL NULL 32 NULL
3491
a, mid(filler1, 1,10), length(filler1)=length(filler2)
3492
from t2 ot where a in (select a from t1 it);
3493
a mid(filler1, 1,10) length(filler1)=length(filler2)
3516
insert into t1 select a+20, 'filler123456', 'filler123456' from t0;
3517
insert into t1 select a+20, 'filler123456', 'filler123456' from t0;
3519
a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z
3520
from t1 ot where a in (select a from t2 it);
3521
id select_type table type possible_keys key key_len ref rows Extra
3522
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
3523
1 SIMPLE ot ALL NULL NULL NULL NULL 52 Using where
3524
2 MATERIALIZED it ALL NULL NULL NULL NULL 22 NULL
3526
a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z
3527
from t1 ot where a in (select a from t2 it);
3528
a mid(filler1, 1,10) Z
3552
a, mid(filler1, 1,10), length(filler1)=length(filler2)
3553
from t2 ot where a in (select a from t1 it);
3554
id select_type table type possible_keys key key_len ref rows Extra
3555
1 SIMPLE ot ALL NULL NULL NULL NULL 22 Using where
3556
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.ot.a 1 NULL
3557
2 MATERIALIZED it ALL NULL NULL NULL NULL 52 NULL
3559
a, mid(filler1, 1,10), length(filler1)=length(filler2)
3560
from t2 ot where a in (select a from t1 it);
3561
a mid(filler1, 1,10) length(filler1)=length(filler2)
3584
set @@join_buffer_size = @save_join_buffer_size;
3586
create table t1 (a int, b int, key(a));
3587
create table t2 (a int, b int, key(a));
3588
create table t3 (a int, b int, key(a));
3589
insert into t1 select a,a from t0;
3590
insert into t2 select a,a from t0;
3591
insert into t3 select a,a from t0;
3592
t2 and t3 must be use 'ref', not 'ALL':
3595
(select t2.a+t3.a from t1 left join (t2 join t3) on t2.a=t1.a and t3.a=t1.a);
3596
id select_type table type possible_keys key key_len ref rows Extra
3597
1 SIMPLE t0 ALL NULL NULL NULL NULL 10 Using where
3598
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 9 test.t0.a 1 Using where
3599
2 MATERIALIZED t1 index a a 5 NULL 10 Using index
3600
2 MATERIALIZED t2 ref a a 5 test.t1.a 1 Using index
3601
2 MATERIALIZED t3 ref a a 5 test.t1.a 1 Using index
3602
drop table t0, t1,t2,t3;
3604
Test that neither MaterializeLookup strategy for semijoin,
3605
nor subquery materialization is used when BLOBs are involved
3606
(except when arguments of some functions).
3608
set @prefix_len = 6;
3610
set @suffix_len = @blob_len - @prefix_len;
3611
create table t1_16 (a1 blob(16), a2 blob(16));
3612
create table t2_16 (b1 blob(16), b2 blob(16));
3613
create table t3_16 (c1 blob(16), c2 blob(16));
3614
insert into t1_16 values
3615
(concat('1 - 00', repeat('x', @suffix_len)), concat('2 - 00', repeat('x', @suffix_len)));
3616
insert into t1_16 values
3617
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3618
insert into t1_16 values
3619
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3620
insert into t2_16 values
3621
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3622
insert into t2_16 values
3623
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3624
insert into t2_16 values
3625
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
3626
insert into t3_16 values
3627
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3628
insert into t3_16 values
3629
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3630
insert into t3_16 values
3631
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
3632
insert into t3_16 values
3633
(concat('1 - 04', repeat('x', @suffix_len)), concat('2 - 04', repeat('x', @suffix_len)));
3634
explain extended select left(a1,7), left(a2,7)
3636
where a1 in (select b1 from t2_16 where b1 > '0');
3637
id select_type table type possible_keys key key_len ref rows filtered Extra
3638
1 SIMPLE t1_16 ALL NULL NULL NULL NULL 3 100.00 NULL
3639
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where
3640
2 MATERIALIZED t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where
3642
Note 1003 /* select#1 */ select left(`test`.`t1_16`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_16`.`a2`,7) AS `left(a2,7)` from `test`.`t1_16` semi join (`test`.`t2_16`) where ((`<subquery2>`.`b1` = `test`.`t1_16`.`a1`) and (`test`.`t2_16`.`b1` > '0'))
3643
select left(a1,7), left(a2,7)
3645
where a1 in (select b1 from t2_16 where b1 > '0');
3646
left(a1,7) left(a2,7)
3649
explain extended select left(a1,7), left(a2,7)
3651
where (a1,a2) in (select b1, b2 from t2_16 where b1 > '0');
3652
id select_type table type possible_keys key key_len ref rows filtered Extra
3653
1 SIMPLE t1_16 ALL NULL NULL NULL NULL 3 100.00 NULL
3654
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where
3655
2 MATERIALIZED t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where
3657
Note 1003 /* select#1 */ select left(`test`.`t1_16`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_16`.`a2`,7) AS `left(a2,7)` from `test`.`t1_16` semi join (`test`.`t2_16`) where ((`<subquery2>`.`b2` = `test`.`t1_16`.`a2`) and (`<subquery2>`.`b1` = `test`.`t1_16`.`a1`) and (`test`.`t2_16`.`b1` > '0'))
3658
select left(a1,7), left(a2,7)
3660
where (a1,a2) in (select b1, b2 from t2_16 where b1 > '0');
3661
left(a1,7) left(a2,7)
3664
explain extended select left(a1,7), left(a2,7)
3666
where a1 in (select substring(b1,1,16) from t2_16 where b1 > '0');
3667
id select_type table type possible_keys key key_len ref rows filtered Extra
3668
1 SIMPLE t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where
3669
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 19 test.t1_16.a1 1 100.00 Using where
3670
2 MATERIALIZED t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where
3672
Note 1003 /* select#1 */ select left(`test`.`t1_16`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_16`.`a2`,7) AS `left(a2,7)` from `test`.`t1_16` semi join (`test`.`t2_16`) where ((`test`.`t2_16`.`b1` > '0') and (`test`.`t1_16`.`a1` = `<subquery2>`.`substring(b1,1,16)`))
3673
select left(a1,7), left(a2,7)
3675
where a1 in (select substring(b1,1,16) from t2_16 where b1 > '0');
3676
left(a1,7) left(a2,7)
3679
explain extended select left(a1,7), left(a2,7)
3681
where a1 in (select group_concat(b1) from t2_16 group by b2);
3682
id select_type table type possible_keys key key_len ref rows filtered Extra
3683
1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where
3684
2 DEPENDENT SUBQUERY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using filesort
3686
Note 1003 /* select#1 */ select left(`test`.`t1_16`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_16`.`a2`,7) AS `left(a2,7)` from `test`.`t1_16` where <in_optimizer>(`test`.`t1_16`.`a1`,<exists>(/* select#2 */ select 1 from `test`.`t2_16` group by `test`.`t2_16`.`b2` having (<cache>(`test`.`t1_16`.`a1`) = <ref_null_helper>(group_concat(`test`.`t2_16`.`b1` separator ',')))))
3687
select left(a1,7), left(a2,7)
3689
where a1 in (select group_concat(b1) from t2_16 group by b2);
3690
left(a1,7) left(a2,7)
3693
set @@group_concat_max_len = 256;
3694
explain extended select left(a1,7), left(a2,7)
3696
where a1 in (select group_concat(b1) from t2_16 group by b2);
3697
id select_type table type possible_keys key key_len ref rows filtered Extra
3698
1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where
3699
2 SUBQUERY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using filesort
3701
Note 1003 /* select#1 */ select left(`test`.`t1_16`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_16`.`a2`,7) AS `left(a2,7)` from `test`.`t1_16` where <in_optimizer>(`test`.`t1_16`.`a1`,`test`.`t1_16`.`a1` in ( <materialize> (/* select#2 */ select group_concat(`test`.`t2_16`.`b1` separator ',') from `test`.`t2_16` group by `test`.`t2_16`.`b2` having 1 ), <primary_index_lookup>(`test`.`t1_16`.`a1` in <temporary table> on <auto_key> where ((`test`.`t1_16`.`a1` = `materialized-subquery`.`group_concat(b1)`)))))
3702
select left(a1,7), left(a2,7)
3704
where a1 in (select group_concat(b1) from t2_16 group by b2);
3705
left(a1,7) left(a2,7)
3708
create table t1 (a1 char(8), a2 char(8));
3709
create table t2 (b1 char(8), b2 char(8));
3710
create table t3 (c1 char(8), c2 char(8));
3711
insert into t1 values ('1 - 00', '2 - 00');
3712
insert into t1 values ('1 - 01', '2 - 01');
3713
insert into t1 values ('1 - 02', '2 - 02');
3714
insert into t2 values ('1 - 01', '2 - 01');
3715
insert into t2 values ('1 - 01', '2 - 01');
3716
insert into t2 values ('1 - 02', '2 - 02');
3717
insert into t2 values ('1 - 02', '2 - 02');
3718
insert into t2 values ('1 - 03', '2 - 03');
3719
insert into t3 values ('1 - 01', '2 - 01');
3720
insert into t3 values ('1 - 02', '2 - 02');
3721
insert into t3 values ('1 - 03', '2 - 03');
3722
insert into t3 values ('1 - 04', '2 - 04');
3725
where concat(a1,'x') IN
3726
(select left(a1,8) from t1_16
3728
(select t2_16.b1, t2_16.b2 from t2_16, t2
3729
where t2.b2 = substring(t2_16.b2,1,6) and
3730
t2.b1 IN (select c1 from t3 where c2 > '0')));
3731
id select_type table type possible_keys key key_len ref rows filtered Extra
3732
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 NULL
3733
1 SIMPLE t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where
3734
1 SIMPLE t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where
3735
1 SIMPLE t3 ALL NULL NULL NULL NULL 4 100.00 Using where
3736
1 SIMPLE t2 ALL NULL NULL NULL NULL 5 100.00 Using where; FirstMatch(t1)
3738
Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t3` join `test`.`t2_16` join `test`.`t2` join `test`.`t1_16`) where ((`test`.`t2_16`.`b2` = `test`.`t1_16`.`a2`) and (`test`.`t2_16`.`b1` = `test`.`t1_16`.`a1`) and (`test`.`t2`.`b1` = `test`.`t3`.`c1`) and (`test`.`t2`.`b2` = substr(`test`.`t2_16`.`b2`,1,6)) and (`test`.`t3`.`c2` > '0') and (concat(`test`.`t1`.`a1`,'x') = left(`test`.`t1_16`.`a1`,8)))
3739
drop table t1_16, t2_16, t3_16, t1, t2, t3;
3740
set @blob_len = 512;
3741
set @suffix_len = @blob_len - @prefix_len;
3742
create table t1_512 (a1 blob(512), a2 blob(512));
3743
create table t2_512 (b1 blob(512), b2 blob(512));
3744
create table t3_512 (c1 blob(512), c2 blob(512));
3745
insert into t1_512 values
3746
(concat('1 - 00', repeat('x', @suffix_len)), concat('2 - 00', repeat('x', @suffix_len)));
3747
insert into t1_512 values
3748
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3749
insert into t1_512 values
3750
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3751
insert into t2_512 values
3752
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3753
insert into t2_512 values
3754
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3755
insert into t2_512 values
3756
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
3757
insert into t3_512 values
3758
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3759
insert into t3_512 values
3760
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3761
insert into t3_512 values
3762
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
3763
insert into t3_512 values
3764
(concat('1 - 04', repeat('x', @suffix_len)), concat('2 - 04', repeat('x', @suffix_len)));
3765
explain extended select left(a1,7), left(a2,7)
3767
where a1 in (select b1 from t2_512 where b1 > '0');
3768
id select_type table type possible_keys key key_len ref rows filtered Extra
3769
1 SIMPLE t1_512 ALL NULL NULL NULL NULL 3 100.00 NULL
3770
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where
3771
2 MATERIALIZED t2_512 ALL NULL NULL NULL NULL 3 100.00 Using where
3773
Note 1003 /* select#1 */ select left(`test`.`t1_512`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_512`.`a2`,7) AS `left(a2,7)` from `test`.`t1_512` semi join (`test`.`t2_512`) where ((`<subquery2>`.`b1` = `test`.`t1_512`.`a1`) and (`test`.`t2_512`.`b1` > '0'))
3774
select left(a1,7), left(a2,7)
3776
where a1 in (select b1 from t2_512 where b1 > '0');
3777
left(a1,7) left(a2,7)
3780
explain extended select left(a1,7), left(a2,7)
3782
where (a1,a2) in (select b1, b2 from t2_512 where b1 > '0');
3783
id select_type table type possible_keys key key_len ref rows filtered Extra
3784
1 SIMPLE t1_512 ALL NULL NULL NULL NULL 3 100.00 NULL
3785
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where
3786
2 MATERIALIZED t2_512 ALL NULL NULL NULL NULL 3 100.00 Using where
3788
Note 1003 /* select#1 */ select left(`test`.`t1_512`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_512`.`a2`,7) AS `left(a2,7)` from `test`.`t1_512` semi join (`test`.`t2_512`) where ((`<subquery2>`.`b2` = `test`.`t1_512`.`a2`) and (`<subquery2>`.`b1` = `test`.`t1_512`.`a1`) and (`test`.`t2_512`.`b1` > '0'))
3789
select left(a1,7), left(a2,7)
3791
where (a1,a2) in (select b1, b2 from t2_512 where b1 > '0');
3792
left(a1,7) left(a2,7)
3795
explain extended select left(a1,7), left(a2,7)
3797
where a1 in (select substring(b1,1,512) from t2_512 where b1 > '0');
3798
id select_type table type possible_keys key key_len ref rows filtered Extra
3799
1 SIMPLE t1_512 ALL NULL NULL NULL NULL 3 100.00 Using where
3800
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 515 test.t1_512.a1 1 100.00 Using where
3801
2 MATERIALIZED t2_512 ALL NULL NULL NULL NULL 3 100.00 Using where
3803
Note 1003 /* select#1 */ select left(`test`.`t1_512`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_512`.`a2`,7) AS `left(a2,7)` from `test`.`t1_512` semi join (`test`.`t2_512`) where ((`test`.`t2_512`.`b1` > '0') and (`test`.`t1_512`.`a1` = `<subquery2>`.`substring(b1,1,512)`))
3804
select left(a1,7), left(a2,7)
3806
where a1 in (select substring(b1,1,512) from t2_512 where b1 > '0');
3807
left(a1,7) left(a2,7)
3810
explain extended select left(a1,7), left(a2,7)
3812
where a1 in (select group_concat(b1) from t2_512 group by b2);
3813
id select_type table type possible_keys key key_len ref rows filtered Extra
3814
1 PRIMARY t1_512 ALL NULL NULL NULL NULL 3 100.00 Using where
3815
2 SUBQUERY t2_512 ALL NULL NULL NULL NULL 3 100.00 Using filesort
3817
Note 1003 /* select#1 */ select left(`test`.`t1_512`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_512`.`a2`,7) AS `left(a2,7)` from `test`.`t1_512` where <in_optimizer>(`test`.`t1_512`.`a1`,`test`.`t1_512`.`a1` in ( <materialize> (/* select#2 */ select group_concat(`test`.`t2_512`.`b1` separator ',') from `test`.`t2_512` group by `test`.`t2_512`.`b2` having 1 ), <primary_index_lookup>(`test`.`t1_512`.`a1` in <temporary table> on <auto_key> where ((`test`.`t1_512`.`a1` = `materialized-subquery`.`group_concat(b1)`)))))
3818
select left(a1,7), left(a2,7)
3820
where a1 in (select group_concat(b1) from t2_512 group by b2);
3821
left(a1,7) left(a2,7)
3823
Warning 1260 Row 1 was cut by GROUP_CONCAT()
3824
Warning 1260 Row 2 was cut by GROUP_CONCAT()
3825
Warning 1260 Row 3 was cut by GROUP_CONCAT()
3826
set @@group_concat_max_len = 256;
3827
explain extended select left(a1,7), left(a2,7)
3829
where a1 in (select group_concat(b1) from t2_512 group by b2);
3830
id select_type table type possible_keys key key_len ref rows filtered Extra
3831
1 PRIMARY t1_512 ALL NULL NULL NULL NULL 3 100.00 Using where
3832
2 SUBQUERY t2_512 ALL NULL NULL NULL NULL 3 100.00 Using filesort
3834
Note 1003 /* select#1 */ select left(`test`.`t1_512`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_512`.`a2`,7) AS `left(a2,7)` from `test`.`t1_512` where <in_optimizer>(`test`.`t1_512`.`a1`,`test`.`t1_512`.`a1` in ( <materialize> (/* select#2 */ select group_concat(`test`.`t2_512`.`b1` separator ',') from `test`.`t2_512` group by `test`.`t2_512`.`b2` having 1 ), <primary_index_lookup>(`test`.`t1_512`.`a1` in <temporary table> on <auto_key> where ((`test`.`t1_512`.`a1` = `materialized-subquery`.`group_concat(b1)`)))))
3835
select left(a1,7), left(a2,7)
3837
where a1 in (select group_concat(b1) from t2_512 group by b2);
3838
left(a1,7) left(a2,7)
3840
Warning 1260 Row 1 was cut by GROUP_CONCAT()
3841
Warning 1260 Row 2 was cut by GROUP_CONCAT()
3842
Warning 1260 Row 3 was cut by GROUP_CONCAT()
3843
drop table t1_512, t2_512, t3_512;
3844
set @blob_len = 513;
3845
set @suffix_len = @blob_len - @prefix_len;
3846
create table t1_513 (a1 blob(513), a2 blob(513));
3847
create table t2_513 (b1 blob(513), b2 blob(513));
3848
create table t3_513 (c1 blob(513), c2 blob(513));
3849
insert into t1_513 values
3850
(concat('1 - 00', repeat('x', @suffix_len)), concat('2 - 00', repeat('x', @suffix_len)));
3851
insert into t1_513 values
3852
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3853
insert into t1_513 values
3854
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3855
insert into t2_513 values
3856
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3857
insert into t2_513 values
3858
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3859
insert into t2_513 values
3860
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
3861
insert into t3_513 values
3862
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3863
insert into t3_513 values
3864
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3865
insert into t3_513 values
3866
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
3867
insert into t3_513 values
3868
(concat('1 - 04', repeat('x', @suffix_len)), concat('2 - 04', repeat('x', @suffix_len)));
3869
explain extended select left(a1,7), left(a2,7)
3871
where a1 in (select b1 from t2_513 where b1 > '0');
3872
id select_type table type possible_keys key key_len ref rows filtered Extra
3873
1 SIMPLE t1_513 ALL NULL NULL NULL NULL 3 100.00 NULL
3874
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where
3875
2 MATERIALIZED t2_513 ALL NULL NULL NULL NULL 3 100.00 Using where
3877
Note 1003 /* select#1 */ select left(`test`.`t1_513`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_513`.`a2`,7) AS `left(a2,7)` from `test`.`t1_513` semi join (`test`.`t2_513`) where ((`<subquery2>`.`b1` = `test`.`t1_513`.`a1`) and (`test`.`t2_513`.`b1` > '0'))
3878
select left(a1,7), left(a2,7)
3880
where a1 in (select b1 from t2_513 where b1 > '0');
3881
left(a1,7) left(a2,7)
3884
explain extended select left(a1,7), left(a2,7)
3886
where (a1,a2) in (select b1, b2 from t2_513 where b1 > '0');
3887
id select_type table type possible_keys key key_len ref rows filtered Extra
3888
1 SIMPLE t1_513 ALL NULL NULL NULL NULL 3 100.00 NULL
3889
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where
3890
2 MATERIALIZED t2_513 ALL NULL NULL NULL NULL 3 100.00 Using where
3892
Note 1003 /* select#1 */ select left(`test`.`t1_513`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_513`.`a2`,7) AS `left(a2,7)` from `test`.`t1_513` semi join (`test`.`t2_513`) where ((`<subquery2>`.`b2` = `test`.`t1_513`.`a2`) and (`<subquery2>`.`b1` = `test`.`t1_513`.`a1`) and (`test`.`t2_513`.`b1` > '0'))
3893
select left(a1,7), left(a2,7)
3895
where (a1,a2) in (select b1, b2 from t2_513 where b1 > '0');
3896
left(a1,7) left(a2,7)
3899
explain extended select left(a1,7), left(a2,7)
3901
where a1 in (select substring(b1,1,513) from t2_513 where b1 > '0');
3902
id select_type table type possible_keys key key_len ref rows filtered Extra
3903
1 SIMPLE t1_513 ALL NULL NULL NULL NULL 3 100.00 NULL
3904
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where
3905
2 MATERIALIZED t2_513 ALL NULL NULL NULL NULL 3 100.00 Using where
3907
Note 1003 /* select#1 */ select left(`test`.`t1_513`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_513`.`a2`,7) AS `left(a2,7)` from `test`.`t1_513` semi join (`test`.`t2_513`) where ((`test`.`t2_513`.`b1` > '0') and (`test`.`t1_513`.`a1` = `<subquery2>`.`substring(b1,1,513)`))
3908
select left(a1,7), left(a2,7)
3910
where a1 in (select substring(b1,1,513) from t2_513 where b1 > '0');
3911
left(a1,7) left(a2,7)
3914
explain extended select left(a1,7), left(a2,7)
3916
where a1 in (select group_concat(b1) from t2_513 group by b2);
3917
id select_type table type possible_keys key key_len ref rows filtered Extra
3918
1 PRIMARY t1_513 ALL NULL NULL NULL NULL 3 100.00 Using where
3919
2 SUBQUERY t2_513 ALL NULL NULL NULL NULL 3 100.00 Using filesort
3921
Note 1003 /* select#1 */ select left(`test`.`t1_513`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_513`.`a2`,7) AS `left(a2,7)` from `test`.`t1_513` where <in_optimizer>(`test`.`t1_513`.`a1`,`test`.`t1_513`.`a1` in ( <materialize> (/* select#2 */ select group_concat(`test`.`t2_513`.`b1` separator ',') from `test`.`t2_513` group by `test`.`t2_513`.`b2` having 1 ), <primary_index_lookup>(`test`.`t1_513`.`a1` in <temporary table> on <auto_key> where ((`test`.`t1_513`.`a1` = `materialized-subquery`.`group_concat(b1)`)))))
3922
select left(a1,7), left(a2,7)
3924
where a1 in (select group_concat(b1) from t2_513 group by b2);
3925
left(a1,7) left(a2,7)
3927
Warning 1260 Row 1 was cut by GROUP_CONCAT()
3928
Warning 1260 Row 2 was cut by GROUP_CONCAT()
3929
Warning 1260 Row 3 was cut by GROUP_CONCAT()
3930
drop table t1_513, t2_513, t3_513;
3931
set @blob_len = 1024;
3932
set @suffix_len = @blob_len - @prefix_len;
3933
create table t1_1024 (a1 blob(1024), a2 blob(1024));
3934
create table t2_1024 (b1 blob(1024), b2 blob(1024));
3935
create table t3_1024 (c1 blob(1024), c2 blob(1024));
3936
insert into t1_1024 values
3937
(concat('1 - 00', repeat('x', @suffix_len)), concat('2 - 00', repeat('x', @suffix_len)));
3938
insert into t1_1024 values
3939
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3940
insert into t1_1024 values
3941
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3942
insert into t2_1024 values
3943
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3944
insert into t2_1024 values
3945
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3946
insert into t2_1024 values
3947
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
3948
insert into t3_1024 values
3949
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3950
insert into t3_1024 values
3951
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3952
insert into t3_1024 values
3953
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
3954
insert into t3_1024 values
3955
(concat('1 - 04', repeat('x', @suffix_len)), concat('2 - 04', repeat('x', @suffix_len)));
3956
explain extended select left(a1,7), left(a2,7)
3958
where a1 in (select b1 from t2_1024 where b1 > '0');
3959
id select_type table type possible_keys key key_len ref rows filtered Extra
3960
1 SIMPLE t1_1024 ALL NULL NULL NULL NULL 3 100.00 NULL
3961
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where
3962
2 MATERIALIZED t2_1024 ALL NULL NULL NULL NULL 3 100.00 Using where
3964
Note 1003 /* select#1 */ select left(`test`.`t1_1024`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_1024`.`a2`,7) AS `left(a2,7)` from `test`.`t1_1024` semi join (`test`.`t2_1024`) where ((`<subquery2>`.`b1` = `test`.`t1_1024`.`a1`) and (`test`.`t2_1024`.`b1` > '0'))
3965
select left(a1,7), left(a2,7)
3967
where a1 in (select b1 from t2_1024 where b1 > '0');
3968
left(a1,7) left(a2,7)
3971
explain extended select left(a1,7), left(a2,7)
3973
where (a1,a2) in (select b1, b2 from t2_1024 where b1 > '0');
3974
id select_type table type possible_keys key key_len ref rows filtered Extra
3975
1 SIMPLE t1_1024 ALL NULL NULL NULL NULL 3 100.00 NULL
3976
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where
3977
2 MATERIALIZED t2_1024 ALL NULL NULL NULL NULL 3 100.00 Using where
3979
Note 1003 /* select#1 */ select left(`test`.`t1_1024`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_1024`.`a2`,7) AS `left(a2,7)` from `test`.`t1_1024` semi join (`test`.`t2_1024`) where ((`<subquery2>`.`b2` = `test`.`t1_1024`.`a2`) and (`<subquery2>`.`b1` = `test`.`t1_1024`.`a1`) and (`test`.`t2_1024`.`b1` > '0'))
3980
select left(a1,7), left(a2,7)
3982
where (a1,a2) in (select b1, b2 from t2_1024 where b1 > '0');
3983
left(a1,7) left(a2,7)
3986
explain extended select left(a1,7), left(a2,7)
3988
where a1 in (select substring(b1,1,1024) from t2_1024 where b1 > '0');
3989
id select_type table type possible_keys key key_len ref rows filtered Extra
3990
1 SIMPLE t1_1024 ALL NULL NULL NULL NULL 3 100.00 NULL
3991
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where
3992
2 MATERIALIZED t2_1024 ALL NULL NULL NULL NULL 3 100.00 Using where
3994
Note 1003 /* select#1 */ select left(`test`.`t1_1024`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_1024`.`a2`,7) AS `left(a2,7)` from `test`.`t1_1024` semi join (`test`.`t2_1024`) where ((`test`.`t2_1024`.`b1` > '0') and (`test`.`t1_1024`.`a1` = `<subquery2>`.`substring(b1,1,1024)`))
3995
select left(a1,7), left(a2,7)
3997
where a1 in (select substring(b1,1,1024) from t2_1024 where b1 > '0');
3998
left(a1,7) left(a2,7)
4001
explain extended select left(a1,7), left(a2,7)
4003
where a1 in (select group_concat(b1) from t2_1024 group by b2);
4004
id select_type table type possible_keys key key_len ref rows filtered Extra
4005
1 PRIMARY t1_1024 ALL NULL NULL NULL NULL 3 100.00 Using where
4006
2 SUBQUERY t2_1024 ALL NULL NULL NULL NULL 3 100.00 Using filesort
4008
Note 1003 /* select#1 */ select left(`test`.`t1_1024`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_1024`.`a2`,7) AS `left(a2,7)` from `test`.`t1_1024` where <in_optimizer>(`test`.`t1_1024`.`a1`,`test`.`t1_1024`.`a1` in ( <materialize> (/* select#2 */ select group_concat(`test`.`t2_1024`.`b1` separator ',') from `test`.`t2_1024` group by `test`.`t2_1024`.`b2` having 1 ), <primary_index_lookup>(`test`.`t1_1024`.`a1` in <temporary table> on <auto_key> where ((`test`.`t1_1024`.`a1` = `materialized-subquery`.`group_concat(b1)`)))))
4009
select left(a1,7), left(a2,7)
4011
where a1 in (select group_concat(b1) from t2_1024 group by b2);
4012
left(a1,7) left(a2,7)
4014
Warning 1260 Row 1 was cut by GROUP_CONCAT()
4015
Warning 1260 Row 2 was cut by GROUP_CONCAT()
4016
Warning 1260 Row 3 was cut by GROUP_CONCAT()
4017
set @@group_concat_max_len = 256;
4018
explain extended select left(a1,7), left(a2,7)
4020
where a1 in (select group_concat(b1) from t2_1024 group by b2);
4021
id select_type table type possible_keys key key_len ref rows filtered Extra
4022
1 PRIMARY t1_1024 ALL NULL NULL NULL NULL 3 100.00 Using where
4023
2 SUBQUERY t2_1024 ALL NULL NULL NULL NULL 3 100.00 Using filesort
4025
Note 1003 /* select#1 */ select left(`test`.`t1_1024`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_1024`.`a2`,7) AS `left(a2,7)` from `test`.`t1_1024` where <in_optimizer>(`test`.`t1_1024`.`a1`,`test`.`t1_1024`.`a1` in ( <materialize> (/* select#2 */ select group_concat(`test`.`t2_1024`.`b1` separator ',') from `test`.`t2_1024` group by `test`.`t2_1024`.`b2` having 1 ), <primary_index_lookup>(`test`.`t1_1024`.`a1` in <temporary table> on <auto_key> where ((`test`.`t1_1024`.`a1` = `materialized-subquery`.`group_concat(b1)`)))))
4026
select left(a1,7), left(a2,7)
4028
where a1 in (select group_concat(b1) from t2_1024 group by b2);
4029
left(a1,7) left(a2,7)
4031
Warning 1260 Row 1 was cut by GROUP_CONCAT()
4032
Warning 1260 Row 2 was cut by GROUP_CONCAT()
4033
Warning 1260 Row 3 was cut by GROUP_CONCAT()
4034
drop table t1_1024, t2_1024, t3_1024;
4035
set @blob_len = 1025;
4036
set @suffix_len = @blob_len - @prefix_len;
4037
create table t1_1025 (a1 blob(1025), a2 blob(1025));
4038
create table t2_1025 (b1 blob(1025), b2 blob(1025));
4039
create table t3_1025 (c1 blob(1025), c2 blob(1025));
4040
insert into t1_1025 values
4041
(concat('1 - 00', repeat('x', @suffix_len)), concat('2 - 00', repeat('x', @suffix_len)));
4042
insert into t1_1025 values
4043
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
4044
insert into t1_1025 values
4045
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
4046
insert into t2_1025 values
4047
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
4048
insert into t2_1025 values
4049
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
4050
insert into t2_1025 values
4051
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
4052
insert into t3_1025 values
4053
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
4054
insert into t3_1025 values
4055
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
4056
insert into t3_1025 values
4057
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
4058
insert into t3_1025 values
4059
(concat('1 - 04', repeat('x', @suffix_len)), concat('2 - 04', repeat('x', @suffix_len)));
4060
explain extended select left(a1,7), left(a2,7)
4062
where a1 in (select b1 from t2_1025 where b1 > '0');
4063
id select_type table type possible_keys key key_len ref rows filtered Extra
4064
1 SIMPLE t1_1025 ALL NULL NULL NULL NULL 3 100.00 NULL
4065
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where
4066
2 MATERIALIZED t2_1025 ALL NULL NULL NULL NULL 3 100.00 Using where
4068
Note 1003 /* select#1 */ select left(`test`.`t1_1025`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_1025`.`a2`,7) AS `left(a2,7)` from `test`.`t1_1025` semi join (`test`.`t2_1025`) where ((`<subquery2>`.`b1` = `test`.`t1_1025`.`a1`) and (`test`.`t2_1025`.`b1` > '0'))
4069
select left(a1,7), left(a2,7)
4071
where a1 in (select b1 from t2_1025 where b1 > '0');
4072
left(a1,7) left(a2,7)
4075
explain extended select left(a1,7), left(a2,7)
4077
where (a1,a2) in (select b1, b2 from t2_1025 where b1 > '0');
4078
id select_type table type possible_keys key key_len ref rows filtered Extra
4079
1 SIMPLE t1_1025 ALL NULL NULL NULL NULL 3 100.00 NULL
4080
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where
4081
2 MATERIALIZED t2_1025 ALL NULL NULL NULL NULL 3 100.00 Using where
4083
Note 1003 /* select#1 */ select left(`test`.`t1_1025`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_1025`.`a2`,7) AS `left(a2,7)` from `test`.`t1_1025` semi join (`test`.`t2_1025`) where ((`<subquery2>`.`b2` = `test`.`t1_1025`.`a2`) and (`<subquery2>`.`b1` = `test`.`t1_1025`.`a1`) and (`test`.`t2_1025`.`b1` > '0'))
4084
select left(a1,7), left(a2,7)
4086
where (a1,a2) in (select b1, b2 from t2_1025 where b1 > '0');
4087
left(a1,7) left(a2,7)
4090
explain extended select left(a1,7), left(a2,7)
4092
where a1 in (select substring(b1,1,1025) from t2_1025 where b1 > '0');
4093
id select_type table type possible_keys key key_len ref rows filtered Extra
4094
1 SIMPLE t1_1025 ALL NULL NULL NULL NULL 3 100.00 NULL
4095
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where
4096
2 MATERIALIZED t2_1025 ALL NULL NULL NULL NULL 3 100.00 Using where
4098
Note 1003 /* select#1 */ select left(`test`.`t1_1025`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_1025`.`a2`,7) AS `left(a2,7)` from `test`.`t1_1025` semi join (`test`.`t2_1025`) where ((`test`.`t2_1025`.`b1` > '0') and (`test`.`t1_1025`.`a1` = `<subquery2>`.`substring(b1,1,1025)`))
4099
select left(a1,7), left(a2,7)
4101
where a1 in (select substring(b1,1,1025) from t2_1025 where b1 > '0');
4102
left(a1,7) left(a2,7)
4105
explain extended select left(a1,7), left(a2,7)
4107
where a1 in (select group_concat(b1) from t2_1025 group by b2);
4108
id select_type table type possible_keys key key_len ref rows filtered Extra
4109
1 PRIMARY t1_1025 ALL NULL NULL NULL NULL 3 100.00 Using where
4110
2 SUBQUERY t2_1025 ALL NULL NULL NULL NULL 3 100.00 Using filesort
4112
Note 1003 /* select#1 */ select left(`test`.`t1_1025`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_1025`.`a2`,7) AS `left(a2,7)` from `test`.`t1_1025` where <in_optimizer>(`test`.`t1_1025`.`a1`,`test`.`t1_1025`.`a1` in ( <materialize> (/* select#2 */ select group_concat(`test`.`t2_1025`.`b1` separator ',') from `test`.`t2_1025` group by `test`.`t2_1025`.`b2` having 1 ), <primary_index_lookup>(`test`.`t1_1025`.`a1` in <temporary table> on <auto_key> where ((`test`.`t1_1025`.`a1` = `materialized-subquery`.`group_concat(b1)`)))))
4113
select left(a1,7), left(a2,7)
4115
where a1 in (select group_concat(b1) from t2_1025 group by b2);
4116
left(a1,7) left(a2,7)
4118
Warning 1260 Row 1 was cut by GROUP_CONCAT()
4119
Warning 1260 Row 2 was cut by GROUP_CONCAT()
4120
Warning 1260 Row 3 was cut by GROUP_CONCAT()
4121
set @@group_concat_max_len = 256;
4122
explain extended select left(a1,7), left(a2,7)
4124
where a1 in (select group_concat(b1) from t2_1025 group by b2);
4125
id select_type table type possible_keys key key_len ref rows filtered Extra
4126
1 PRIMARY t1_1025 ALL NULL NULL NULL NULL 3 100.00 Using where
4127
2 SUBQUERY t2_1025 ALL NULL NULL NULL NULL 3 100.00 Using filesort
4129
Note 1003 /* select#1 */ select left(`test`.`t1_1025`.`a1`,7) AS `left(a1,7)`,left(`test`.`t1_1025`.`a2`,7) AS `left(a2,7)` from `test`.`t1_1025` where <in_optimizer>(`test`.`t1_1025`.`a1`,`test`.`t1_1025`.`a1` in ( <materialize> (/* select#2 */ select group_concat(`test`.`t2_1025`.`b1` separator ',') from `test`.`t2_1025` group by `test`.`t2_1025`.`b2` having 1 ), <primary_index_lookup>(`test`.`t1_1025`.`a1` in <temporary table> on <auto_key> where ((`test`.`t1_1025`.`a1` = `materialized-subquery`.`group_concat(b1)`)))))
4130
select left(a1,7), left(a2,7)
4132
where a1 in (select group_concat(b1) from t2_1025 group by b2);
4133
left(a1,7) left(a2,7)
4135
Warning 1260 Row 1 was cut by GROUP_CONCAT()
4136
Warning 1260 Row 2 was cut by GROUP_CONCAT()
4137
Warning 1260 Row 3 was cut by GROUP_CONCAT()
4138
drop table t1_1025, t2_1025, t3_1025;
4140
# WL#5561: Enable semi join transformation with outer join.
4142
CREATE TABLE ot1(a INT);
4143
CREATE TABLE ot2(a INT);
4144
CREATE TABLE ot3(a INT);
4145
CREATE TABLE it1(a INT);
4146
CREATE TABLE it2(a INT);
4147
CREATE TABLE it3(a INT);
4148
INSERT INTO ot1 VALUES(0),(1),(2),(3),(4),(5),(6),(7);
4149
INSERT INTO ot2 VALUES(0),(2),(4),(6);
4150
INSERT INTO ot3 VALUES(0),(3),(6);
4151
INSERT INTO it1 VALUES(0),(1),(2),(3),(4),(5),(6),(7);
4152
INSERT INTO it2 VALUES(0),(2),(4),(6);
4153
INSERT INTO it3 VALUES(0),(3),(6);
4154
# Test cases, Subquery Pattern 1
4157
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4158
WHERE ot1.a IN (SELECT a FROM it3);
4159
id select_type table type possible_keys key key_len ref rows Extra
4160
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
4161
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Using where
4162
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where
4163
2 MATERIALIZED it3 ALL NULL NULL NULL NULL 3 NULL
4165
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4166
WHERE ot1.a IN (SELECT a FROM it3);
4173
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4174
WHERE COALESCE(ot2.a,0) IN (SELECT a FROM it3);
4175
id select_type table type possible_keys key key_len ref rows Extra
4176
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
4177
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 NULL
4178
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where
4179
2 MATERIALIZED it3 ALL NULL NULL NULL NULL 3 NULL
4181
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4182
WHERE COALESCE(ot2.a,0) IN (SELECT a FROM it3);
4192
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4193
WHERE (ot1.a,ot2.a) IN (SELECT a, a FROM it3);
4194
id select_type table type possible_keys key key_len ref rows Extra
4195
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where
4196
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where
4197
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Using where
4198
2 MATERIALIZED it3 ALL NULL NULL NULL NULL 3 NULL
4200
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4201
WHERE (ot1.a,ot2.a) IN (SELECT a, a FROM it3);
4207
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a+0
4208
WHERE ot1.a IN (SELECT a FROM it3);
4214
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a+0
4215
WHERE ot1.a IN (SELECT a+0 FROM it3);
4221
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a+0
4222
WHERE COALESCE(ot2.a,0) IN (SELECT a FROM it3);
4231
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4232
WHERE COALESCE(ot2.a,0) IN (SELECT a+0 FROM it3);
4241
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a+0
4242
WHERE (ot1.a,ot2.a) IN (SELECT a, a FROM it3);
4247
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4248
LEFT JOIN ot3 ON ot1.a=ot3.a
4249
WHERE ot1.a IN (SELECT a FROM it3);
4255
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4256
LEFT JOIN ot3 ON ot1.a=ot3.a
4257
WHERE COALESCE(ot2.a,0) IN (SELECT a FROM it3);
4266
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4267
LEFT JOIN ot3 ON ot1.a=ot3.a
4268
WHERE COALESCE(ot3.a,0) IN (SELECT a FROM it3);
4279
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4280
LEFT JOIN ot3 ON ot2.a=ot3.a
4281
WHERE ot1.a IN (SELECT a FROM it3);
4287
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4288
LEFT JOIN ot3 ON ot2.a=ot3.a
4289
WHERE COALESCE(ot2.a,0) IN (SELECT a FROM it3);
4298
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4299
LEFT JOIN ot3 ON ot2.a=ot3.a
4300
WHERE COALESCE(ot3.a,0) IN (SELECT a FROM it3);
4310
# Test cases, Subquery Pattern 2
4313
FROM ot1 JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it3);
4314
id select_type table type possible_keys key key_len ref rows Extra
4315
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
4316
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Using where
4317
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where
4318
2 MATERIALIZED it3 ALL NULL NULL NULL NULL 3 NULL
4320
FROM ot1 JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it3);
4326
FROM ot1 JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it2)
4327
AND ot2.a IN (SELECT a FROM it3);
4328
id select_type table type possible_keys key key_len ref rows Extra
4329
1 SIMPLE <subquery3> ALL NULL NULL NULL NULL NULL NULL
4330
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where
4331
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where
4332
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Using where
4333
3 MATERIALIZED it3 ALL NULL NULL NULL NULL 3 NULL
4334
2 MATERIALIZED it2 ALL NULL NULL NULL NULL 4 NULL
4336
FROM ot1 JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it2)
4337
AND ot2.a IN (SELECT a FROM it3);
4343
FROM ot1 JOIN ot2 ON ot1.a=ot2.a+0 AND ot1.a IN (SELECT a FROM it3);
4348
FROM ot1 JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a+0 FROM it3);
4353
FROM ot1 JOIN ot2 ON ot1.a=ot2.a+0 AND ot2.a IN (SELECT a FROM it3);
4358
FROM ot1 JOIN ot2 ON ot1.a=ot2.a AND ot2.a IN (SELECT a+0 FROM it3);
4363
FROM ot1 JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a+0 FROM it2)
4364
AND ot2.a IN (SELECT a+0 FROM it3);
4369
FROM ot1 JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it3)
4370
JOIN ot3 ON ot2.a=ot3.a AND ot3.a IN (SELECT a FROM it3);
4374
# Test cases, Subquery Pattern 3
4377
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it3);
4378
id select_type table type possible_keys key key_len ref rows Extra
4379
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 NULL
4380
1 SIMPLE it3 ALL NULL NULL NULL NULL 3 Using where; FirstMatch(ot1)
4381
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where
4383
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it3);
4395
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND ot2.a IN (SELECT a FROM it2);
4396
id select_type table type possible_keys key key_len ref rows Extra
4397
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 NULL
4398
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where
4399
1 SIMPLE it2 ALL NULL NULL NULL NULL 4 Using where; FirstMatch(ot2)
4401
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND ot2.a IN (SELECT a FROM it2);
4413
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1)
4414
AND ot2.a IN (SELECT a FROM it2);
4415
id select_type table type possible_keys key key_len ref rows Extra
4416
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 NULL
4417
1 SIMPLE it1 ALL NULL NULL NULL NULL 8 Using where; FirstMatch(ot1)
4418
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where
4419
1 SIMPLE it2 ALL NULL NULL NULL NULL 4 Using where; FirstMatch(ot2)
4421
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1)
4422
AND ot2.a IN (SELECT a FROM it2);
4434
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND
4435
(ot1.a, ot2.a) IN (SELECT it1.a, it2.a
4436
FROM it1 JOIN it2 ON it1.a=it2.a);
4437
id select_type table type possible_keys key key_len ref rows Extra
4438
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 NULL
4439
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where
4440
1 SIMPLE it2 ALL NULL NULL NULL NULL 4 Using where
4441
1 SIMPLE it1 ALL NULL NULL NULL NULL 8 Using where; FirstMatch(ot2)
4443
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND
4444
(ot1.a, ot2.a) IN (SELECT it1.a, it2.a
4445
FROM it1 JOIN it2 ON it1.a=it2.a);
4457
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a+0 AND ot1.a IN (SELECT a FROM it3);
4468
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a+0 FROM it3);
4479
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a+0 AND ot2.a IN (SELECT a FROM it2);
4490
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND ot2.a IN (SELECT a+0 FROM it2);
4501
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a+0 AND ot1.a IN (SELECT a+0 FROM it1)
4502
AND ot2.a IN (SELECT a+0 FROM it2);
4513
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a+0 AND
4514
(ot1.a, ot2.a) IN (SELECT it1.a+0, it2.a+0
4515
FROM it1 JOIN it2 ON it1.a=it2.a);
4526
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it3)
4527
LEFT JOIN ot3 ON ot2.a=ot3.a AND ot3.a IN (SELECT a FROM it3);
4538
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a+0 AND ot1.a IN (SELECT a FROM it3)
4539
LEFT JOIN ot3 ON ot2.a=ot3.a+0 AND ot3.a IN (SELECT a FROM it3);
4549
# Test cases, Subquery Pattern 4
4554
(ot2 JOIN ot3 ON ot2.a=ot3.a)
4555
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4556
id select_type table type possible_keys key key_len ref rows Extra
4557
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 NULL
4558
1 SIMPLE it1 ALL NULL NULL NULL NULL 8 Using where; FirstMatch(ot1)
4559
1 SIMPLE ot3 ALL NULL NULL NULL NULL 3 NULL
4560
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where
4564
(ot2 JOIN ot3 ON ot2.a=ot3.a)
4565
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4579
(ot2 JOIN ot3 ON ot2.a=ot3.a)
4580
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4581
id select_type table type possible_keys key key_len ref rows Extra
4582
1 SIMPLE ot3 ALL NULL NULL NULL NULL 3 Using where
4583
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where
4584
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Using where
4585
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.ot3.a 1 NULL
4586
2 MATERIALIZED it1 ALL NULL NULL NULL NULL 8 NULL
4590
(ot2 JOIN ot3 ON ot2.a=ot3.a)
4591
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4599
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a)
4600
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4601
id select_type table type possible_keys key key_len ref rows Extra
4602
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where
4603
1 SIMPLE ot3 ALL NULL NULL NULL NULL 3 Using where
4604
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Using where
4605
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.ot2.a 1 NULL
4606
2 MATERIALIZED it1 ALL NULL NULL NULL NULL 8 NULL
4610
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a)
4611
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4621
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a)
4622
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4623
id select_type table type possible_keys key key_len ref rows Extra
4624
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 NULL
4625
1 SIMPLE it1 ALL NULL NULL NULL NULL 8 Using where; FirstMatch(ot1)
4626
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where
4627
1 SIMPLE ot3 ALL NULL NULL NULL NULL 3 Using where
4631
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a)
4632
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4646
(ot2 JOIN ot3 ON ot2.a=ot3.a+0)
4647
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4660
(ot2 JOIN ot3 ON ot2.a=ot3.a)
4661
ON ot1.a=ot2.a+0 AND ot1.a IN (SELECT a FROM it1);
4674
(ot2 JOIN ot3 ON ot2.a=ot3.a)
4675
ON ot1.a=ot2.a AND ot1.a IN (SELECT a+0 FROM it1);
4688
(ot2 JOIN ot3 ON ot2.a=ot3.a+0)
4689
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4696
(ot2 JOIN ot3 ON ot2.a=ot3.a)
4697
ON ot1.a=ot2.a+0 AND ot1.a IN (SELECT a FROM it1);
4704
(ot2 JOIN ot3 ON ot2.a=ot3.a)
4705
ON ot1.a=ot2.a AND ot1.a IN (SELECT a+0 FROM it1);
4712
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a+0)
4713
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4722
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a)
4723
ON ot1.a=ot2.a+0 AND ot1.a IN (SELECT a FROM it1);
4732
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a)
4733
ON ot1.a=ot2.a AND ot1.a IN (SELECT a+0 FROM it1);
4742
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a+0)
4743
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4756
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a)
4757
ON ot1.a=ot2.a+0 AND ot1.a IN (SELECT a FROM it1);
4770
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a)
4771
ON ot1.a=ot2.a AND ot1.a IN (SELECT a+0 FROM it1);
4784
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a)
4785
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1)
4801
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a
4802
LEFT JOIN ot1 AS ot4 ON ot3.a=ot4.a)
4803
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4813
DROP TABLE ot1,ot2,ot3,it1,it2,it3;
4815
a INTEGER DEFAULT NULL
4817
INSERT INTO t VALUES (1);
4819
a INTEGER DEFAULT NULL
4821
INSERT INTO t2 VALUES (1),(1);
4823
a INTEGER DEFAULT NULL
4825
INSERT INTO t4 VALUES (1),(1);
4827
a INTEGER DEFAULT NULL
4829
INSERT INTO v VALUES (1),(1);
4835
ON t3.a IN (SELECT a FROM t AS it)
4840
WHERE t1.a IN (SELECT * FROM v AS it2);
4841
id select_type table type possible_keys key key_len ref rows Extra
4842
1 SIMPLE t1 ALL NULL NULL NULL NULL 1 NULL
4843
1 SIMPLE it2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
4844
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
4845
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where
4846
1 SIMPLE it ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t3)
4847
1 SIMPLE t4 ALL NULL NULL NULL NULL 2 Using where
4853
ON t3.a IN (SELECT a FROM t AS it)
4858
WHERE t1.a IN (SELECT * FROM v AS it2);
4861
DROP TABLE t,t2,t4,v;
4864
# Bug#48868: Left outer join in subquery causes segmentation fault in
4867
CREATE TABLE t1 (i INTEGER);
4868
INSERT INTO t1 VALUES (1);
4869
INSERT INTO t1 VALUES (2);
4870
CREATE TABLE t2 (i INTEGER);
4871
INSERT INTO t2 VALUES(1);
4872
CREATE TABLE t3 (i INTEGER);
4873
INSERT INTO t3 VALUES (1);
4874
INSERT INTO t3 VALUES (2);
4875
SELECT * FROM t1 WHERE (t1.i) IN
4876
(SELECT t2.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
4879
DROP TABLE t1, t2, t3;
4881
Bug#37899: Wrongly checked optimization prerequisite caused failed
4886
`varchar_nokey` varchar(5)
4888
INSERT INTO t1 VALUES
4889
(1,'qk'),(2,'j'),(3,'aew');
4892
WHERE varchar_nokey IN (
4904
# BUG#41842: Semi-join materialization strategy crashes when the upper query has HAVING
4907
pk int(11) NOT NULL AUTO_INCREMENT,
4908
int_nokey int(11) NOT NULL,
4909
time_key time NOT NULL,
4910
datetime_key datetime NOT NULL,
4911
datetime_nokey datetime NOT NULL,
4912
varchar_key varchar(1) NOT NULL,
4913
varchar_nokey varchar(1) NOT NULL,
4915
KEY time_key (time_key),
4916
KEY datetime_key (datetime_key),
4917
KEY varchar_key (varchar_key)
4919
INSERT INTO t1 VALUES
4920
(1,0, '00:16:10','2008-09-03 14:25:40','2008-09-03 14:25:40','h','h'),
4921
(2,7, '00:00:00','2001-01-13 00:00:00','2001-01-13 00:00:00','',''),
4922
(3,0, '00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','x','x'),
4923
(4,2, '16:29:24','2000-10-16 01:39:08','2000-10-16 01:39:08','w','w'),
4924
(5,1, '09:23:32','0000-00-00 00:00:00','0000-00-00 00:00:00','p','p'),
4925
(6,3, '00:00:00','2007-12-02 00:00:00','2007-12-02 00:00:00','o','o'),
4926
(7,3, '00:00:00','2008-09-11 00:00:00','2008-09-11 00:00:00','',''),
4927
(8,0, '13:59:04','0000-00-00 00:00:00','0000-00-00 00:00:00','s','s'),
4928
(9,7, '09:01:06','0000-00-00 00:00:00','0000-00-00 00:00:00','d','d'),
4929
(10,5,'00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','n','n'),
4930
(11,0,'21:06:46','0000-00-00 00:00:00','0000-00-00 00:00:00','o','o'),
4931
(12,2,'00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','',''),
4932
(13,6,'14:45:34','2003-07-28 02:34:08','2003-07-28 02:34:08','w','w'),
4933
(14,1,'15:04:12','0000-00-00 00:00:00','0000-00-00 00:00:00','o','o'),
4934
(15,0,'00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','x','x'),
4935
(16,0,'15:55:23','2004-03-17 00:32:27','2004-03-17 00:32:27','p','p'),
4936
(17,1,'16:30:00','2004-12-27 19:20:00','2004-12-27 19:20:00','d','d'),
4937
(18,0,'00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','h','h'),
4938
(19,0,'14:13:26','2008-11-09 05:53:48','2008-11-09 05:53:48','o','o'),
4939
(20,0,'00:00:00','2009-10-11 06:58:04','2009-10-11 06:58:04','k','k');
4941
pk int(11) NOT NULL AUTO_INCREMENT,
4942
int_nokey int(11) NOT NULL,
4943
time_key time NOT NULL,
4944
datetime_key datetime NOT NULL,
4945
datetime_nokey datetime NOT NULL,
4946
varchar_key varchar(1) NOT NULL,
4947
varchar_nokey varchar(1) NOT NULL,
4949
KEY time_key (time_key),
4950
KEY datetime_key (datetime_key),
4951
KEY varchar_key (varchar_key)
4953
INSERT INTO t2 VALUES
4954
(10,0,'19:39:13','0000-00-00 00:00:00','0000-00-00 00:00:00','g','g'),
4955
(11,8,'03:43:53','0000-00-00 00:00:00','0000-00-00 00:00:00','b','b');
4956
SELECT OUTR.datetime_nokey AS X FROM t1 AS OUTR
4958
OUTR.varchar_nokey IN (SELECT
4959
INNR . varchar_nokey AS Y
4962
INNR . datetime_key >= INNR . time_key OR
4963
INNR . pk = INNR . int_nokey
4965
AND OUTR . varchar_nokey <= 'w'
4966
HAVING X > '2012-12-12';
4970
Bug#46797 "Crash in fix_semijoin_strategies_for_picked_join_order
4974
varchar_key varchar(1) DEFAULT NULL,
4975
KEY varchar_key (varchar_key)
4978
varchar_key varchar(1) DEFAULT NULL,
4979
KEY varchar_key (varchar_key)
4981
INSERT INTO t2 VALUES
4982
(NULL),(NULL),(NULL),(NULL),('a'),('a'),('a'),('b'),('b'),('b'),('b'),('c'),
4983
('c'),('c'),('c'),('c'),('c'),('c'),('d'),('d'),('d'),('d'),('d'),('d'),('e'),
4984
('e'),('e'),('e'),('e'),('e'),('f'),('f'),('f'),('g'),('g'),('h'),('h'),('h'),
4985
('h'),('i'),('j'),('j'),('j'),('k'),('k'),('l'),('l'),('m'),('m'),('m'),('m'),
4986
('n'),('n'),('n'),('o'),('o'),('o'),('p'),('p'),('p'),('q'),('q'),('q'),('r'),
4987
('r'),('r'),('r'),('s'),('s'),('s'),('s'),('t'),('t'),('t'),('t'),('u'),('u'),
4988
('u'),('u'),('v'),('v'),('v'),('v'),('w'),('w'),('w'),('w'),('w'),('w'),('x'),
4989
('x'),('x'),('y'),('y'),('y'),('y'),('z'),('z'),('z'),('z');
4991
varchar_key varchar(1) DEFAULT NULL,
4992
KEY varchar_key (varchar_key)
4993
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
4994
INSERT INTO t3 VALUES
4995
(NULL),('c'),('d'),('e'),('f'),('h'),('j'),('k'),('k'),('m'),('m'),('m'),
4996
('n'),('o'),('r'),('t'),('t'),('u'),('w'),('y');
4997
SELECT varchar_key FROM t3
4998
WHERE (SELECT varchar_key FROM t3
4999
WHERE (varchar_key,varchar_key)
5000
IN (SELECT t1.varchar_key, t2 .varchar_key
5001
FROM t1 RIGHT JOIN t2 ON t1.varchar_key
5005
DROP TABLE t1, t2, t3;
5007
# Bug#46556 Returning incorrect, empty results for some IN subqueries
5018
VALUES (1,'g','g'), (2,'v','v'), (3,'t','t'), (4,'u','u'), (5,'n','n');
5019
EXPLAIN EXTENDED SELECT vkey FROM t0 WHERE pk IN
5020
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
5021
id select_type table type possible_keys key key_len ref rows filtered Extra
5022
1 SIMPLE t0 ALL PRIMARY NULL NULL NULL 5 100.00 NULL
5023
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00 Using where; Using join buffer (Batched Key Access)
5024
1 SIMPLE t2 ref vkey vkey 4 test.t1.vnokey 2 100.00 Using index; FirstMatch(t1)
5026
Note 1003 /* select#1 */ select `test`.`t0`.`vkey` AS `vkey` from `test`.`t0` `t1` semi join (`test`.`t0` `t2`) join `test`.`t0` where ((`test`.`t2`.`vkey` = `test`.`t1`.`vnokey`) and (`test`.`t1`.`pk` = `test`.`t0`.`pk`))
5027
SELECT vkey FROM t0 WHERE pk IN
5028
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
5038
Bug#48834: Procedure with view + subquery + semijoin=on
5039
crashes on second call.
5041
CREATE TABLE t1 ( t1field integer, primary key (t1field));
5042
CREATE TABLE t2 ( t2field integer, primary key (t2field));
5044
SELECT t1field as v1field
5046
WHERE A.t1field IN (SELECT t1field FROM t2 );
5048
SELECT t2field as v2field
5050
WHERE A.t2field IN (SELECT t2field FROM t2 );
5051
CREATE PROCEDURE p1 ()
5055
WHERE v1field IN ( SELECT v2field as vf_inner FROM v2 );
5057
INSERT INTO t1 VALUES (1),(2),(3);
5058
INSERT INTO t2 VALUES (2),(3),(4);
5072
# Bug#46692 "Crash occurring on queries with nested FROM subqueries
5073
# using materialization."
5076
pk INTEGER PRIMARY KEY,
5078
KEY int_key(int_key)
5080
INSERT INTO t1 VALUES (10,186),(11,NULL),(12,2),(13,3),(14,0),(15,133),(16,1);
5082
pk INTEGER PRIMARY KEY,
5084
KEY int_key(int_key)
5086
INSERT INTO t2 VALUES (1,7),(2,2);
5087
SELECT * FROM t1 WHERE (140, 4) IN
5088
(SELECT t2.int_key, t2 .pk FROM t2 STRAIGHT_JOIN t1 ON t2.int_key);
5092
# Bug#42353 "SELECT ... WHERE oe IN (SELECT w/ LEFT JOIN) query
5096
pk INTEGER PRIMARY KEY,
5100
datetime_nokey DATETIME,
5101
varchar_nokey VARCHAR(1)
5107
pk INTEGER PRIMARY KEY,
5110
varchar_key VARCHAR(1),
5111
varchar_nokey VARCHAR(1),
5112
KEY date_key (date_key)
5114
SELECT date_key FROM t1
5115
WHERE (int_key, int_nokey)
5116
IN (SELECT t3.int_nokey, t3.pk
5117
FROM t2 LEFT JOIN t3 ON (t2.date_nokey < t3.date_key)
5118
WHERE t3.varchar_key <= t3.varchar_nokey OR t3.int_nokey <= t3.pk
5120
AND (varchar_nokey <> 'f' OR NOT int_key < 7);
5123
# Bug#45933 "Crash in optimize_semijoin_nests on JOIN in subquery
5124
# + AND in outer query".
5126
INSERT INTO t1 VALUES (10,7,5,'2009-06-16','2002-04-10 14:25:30','w'),
5127
(11,7,0,'0000-00-00','0000-00-00 00:00:00','s'),
5128
(12,4,0,'2003-07-14','2006-09-14 04:01:02','y'),
5129
(13,0,4,'2002-07-25','0000-00-00 00:00:00','c'),
5130
(14,1,8,'2007-07-03','0000-00-00 00:00:00','q'),
5131
(15,6,5,'2001-11-12','0000-00-00 00:00:00',''),
5132
(16,2,9,'0000-00-00','0000-00-00 00:00:00','j'),
5133
(29,9,1,'0000-00-00','2003-08-11 00:00:00','m');
5134
INSERT INTO t3 VALUES (1,9,'0000-00-00','b','b'),
5135
(2,2,'2002-09-17','h','h');
5136
SELECT t1.varchar_nokey FROM t1 JOIN t3 ON t1.datetime_nokey
5137
WHERE t1.varchar_nokey
5138
IN (SELECT varchar_nokey FROM t1
5140
IN (SELECT t3.int_nokey
5141
FROM t3 LEFT JOIN t1 ON t1.varchar_nokey
5142
WHERE t3.date_key BETWEEN '2008-06-07' AND '2006-06-26'
5146
DROP TABLE t1, t2, t3;
5148
# Bug#45219 "Crash on SELECT DISTINCT query containing a
5149
# LEFT JOIN in subquery"
5152
pk INTEGER NOT NULL,
5153
int_nokey INTEGER NOT NULL,
5154
datetime_key DATETIME NOT NULL,
5155
varchar_key VARCHAR(1) NOT NULL,
5157
KEY datetime_key (datetime_key),
5158
KEY varchar_key (varchar_key)
5160
INSERT INTO t1 VALUES
5161
(1,9,'0000-00-00 00:00:00','p'),(2,0,'2002-02-09 07:38:13','v'),
5162
(3,8,'2001-05-03 12:08:14','t'),(4,3,'0000-00-00 00:00:00','u'),
5163
(5,7,'2009-07-28 03:43:30','n'),(6,0,'2009-08-04 00:00:00','l'),
5164
(7,1,'0000-00-00 00:00:00','h'),(8,9,'0000-00-00 00:00:00','u'),
5165
(9,0,'2005-08-02 17:16:54','n'),(10,9,'2002-12-21 00:00:00','j'),
5166
(11,0,'2005-08-15 12:37:35','k'),(12,5,'0000-00-00 00:00:00','e'),
5167
(13,0,'2006-03-10 00:00:00','i'),(14,8,'2005-05-16 11:02:36','u'),
5168
(15,8,'2008-11-02 00:00:00','n'),(16,5,'2006-03-15 00:00:00','b'),
5169
(17,1,'0000-00-00 00:00:00','x'),(18,7,'0000-00-00 00:00:00',''),
5170
(19,0,'2008-12-17 20:15:40','q'),(20,9,'0000-00-00 00:00:00','u');
5171
CREATE TABLE t2 LIKE t1;
5172
INSERT INTO t2 VALUES
5173
(10,0,'2006-07-07 07:26:28','q'),(11,5,'2002-09-23 00:00:00','m'),
5174
(12,7,'0000-00-00 00:00:00','j'),(13,1,'2006-06-07 00:00:00','z'),
5175
(14,8,'2000-09-16 12:15:34','a'),(15,2,'2007-08-05 15:47:52',''),
5176
(16,1,'0000-00-00 00:00:00','e'),(17,8,'2005-12-02 19:34:26','t'),
5177
(18,5,'0000-00-00 00:00:00','q'),(19,4,'0000-00-00 00:00:00','b'),
5178
(20,5,'2007-12-28 00:00:00','w'),(21,3,'2004-08-02 11:48:43','m'),
5179
(22,0,'0000-00-00 00:00:00','x'),(23,8,'2004-04-19 12:18:43',''),
5180
(24,0,'2009-04-27 00:00:00','w'),(25,4,'2006-10-20 14:52:15','x'),
5181
(26,0,'0000-00-00 00:00:00','e'),(27,0,'2002-03-22 11:48:37','e'),
5182
(28,2,'0000-00-00 00:00:00','p'),(29,0,'2001-01-04 03:55:07','x');
5183
CREATE TABLE t3 LIKE t1;
5184
INSERT INTO t3 VALUES
5185
(10,8,'2007-08-19 08:08:38','i'),(11,0,'2000-05-21 03:51:51','');
5186
SELECT DISTINCT datetime_key FROM t1
5187
WHERE (int_nokey, pk)
5188
IN (SELECT t3.pk, t3.pk FROM t2 LEFT JOIN t3 ON t3.varchar_key)
5191
DROP TABLE t1, t2, t3;
5193
# Bug#46550 Azalea returning duplicate results for some IN subqueries
5196
DROP TABLE IF EXISTS t0, t1, t2;
5198
int_key int(11) DEFAULT NULL,
5199
varchar_key varchar(1) DEFAULT NULL,
5200
varchar_nokey varchar(1) DEFAULT NULL,
5201
KEY int_key (int_key),
5202
KEY varchar_key (varchar_key,int_key)
5204
INSERT INTO t0 VALUES
5226
int_key int(11) DEFAULT NULL,
5227
varchar_key varchar(1) DEFAULT NULL,
5228
varchar_nokey varchar(1) DEFAULT NULL,
5229
KEY int_key (int_key),
5230
KEY varchar_key (varchar_key,int_key)
5232
INSERT INTO t1 VALUES (7,NULL,NULL),(4,'x','x');
5234
int_key int(11) DEFAULT NULL,
5235
varchar_key varchar(1) DEFAULT NULL,
5236
varchar_nokey varchar(1) DEFAULT NULL,
5237
KEY int_key (int_key),
5238
KEY varchar_key (varchar_key,int_key)
5240
INSERT INTO t2 VALUES (123,NULL,NULL);
5243
WHERE varchar_nokey IN (
5244
SELECT t1 .varchar_key from t1
5251
WHERE t0.varchar_nokey IN (
5252
SELECT t1_1 .varchar_key
5253
FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1 .int_key
5261
WHERE t0.varchar_nokey IN (
5262
SELECT t1_1 .varchar_key
5263
FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1 .int_key
5265
id select_type table type possible_keys key key_len ref rows Extra
5266
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
5267
1 SIMPLE t0 ALL NULL NULL NULL NULL 20 Using where
5268
2 MATERIALIZED t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index
5269
2 MATERIALIZED t1_2 index NULL int_key 5 NULL 2 Using index
5272
WHERE t0.varchar_nokey IN (
5273
SELECT t1_1 .varchar_key
5274
FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1 .int_key
5282
WHERE t0.varchar_nokey IN (
5283
SELECT t1_1 .varchar_key
5284
FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1 .int_key
5286
id select_type table type possible_keys key key_len ref rows Extra
5287
1 SIMPLE t2 system NULL NULL NULL NULL 1 NULL
5288
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
5289
1 SIMPLE t0 ALL NULL NULL NULL NULL 20 Using where
5290
2 MATERIALIZED t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index
5291
2 MATERIALIZED t1_2 index NULL int_key 5 NULL 2 Using index
5292
DROP TABLE t0, t1, t2;
5295
Bug #48073 Subquery on char columns from view crashes Mysql
5297
DROP TABLE IF EXISTS t1, t2;
5298
DROP VIEW IF EXISTS v1;
5300
city VARCHAR(50) NOT NULL,
5301
country_id SMALLINT UNSIGNED NOT NULL
5303
INSERT INTO t1 VALUES
5310
country_id SMALLINT UNSIGNED NOT NULL,
5311
country VARCHAR(50) NOT NULL
5313
INSERT INTO t2 VALUES
5315
(3,'American Samoa') ;
5317
SELECT country_id, country
5319
WHERE LEFT(country,1) = "A"
5321
SELECT city, country_id
5326
WHERE LEFT(country, 1) = "A"
5330
SELECT city, country_id
5342
Bug#49097 subquery with view generates wrong result with
5343
non-prepared statement
5345
DROP TABLE IF EXISTS t1, t2;
5346
DROP VIEW IF EXISTS v1;
5348
city VARCHAR(50) NOT NULL,
5349
country_id SMALLINT UNSIGNED NOT NULL
5351
INSERT INTO t1 VALUES
5358
country_id SMALLINT UNSIGNED NOT NULL,
5359
country VARCHAR(50) NOT NULL
5361
INSERT INTO t2 VALUES
5363
(3,'XAmerican Samoa') ;
5365
SELECT country_id, country
5367
WHERE LEFT(country,1) = "A"
5369
SELECT city, country_id
5371
WHERE country_id IN (
5374
WHERE LEFT(country,1) = "A"
5381
SELECT city, country_id
5383
WHERE country_id IN (
5394
SELECT city, country_id
5396
WHERE country_id IN (
5407
deallocate prepare stmt;
5412
# Bug#49198 Wrong result for second call of procedure
5413
# with view in subselect.
5415
CREATE TABLE t1 (t1field integer, primary key (t1field));
5416
CREATE TABLE t2 (t2field integer, primary key (t2field));
5417
CREATE TABLE t3 (t3field integer, primary key (t3field));
5418
CREATE VIEW v2 AS SELECT * FROM t2;
5419
CREATE VIEW v3 AS SELECT * FROM t3;
5420
INSERT INTO t1 VALUES(1),(2);
5421
INSERT INTO t2 VALUES(1),(2);
5422
INSERT INTO t3 VALUES(1),(2);
5427
WHERE t1field IN (SELECT * FROM v2);
5442
WHERE t1field IN (SELECT * FROM v2)
5443
AND t1field IN (SELECT * FROM v3)
5446
id select_type table type possible_keys key key_len ref rows Extra
5447
1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 2 Using index
5448
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.t1field 1 Using index
5449
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.t1field 1 Using index
5451
id select_type table type possible_keys key key_len ref rows Extra
5452
1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 2 Using index
5453
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.t1field 1 Using index
5454
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.t1field 1 Using index
5455
DROP TABLE t1, t2, t3;
5459
# Bug#48623 Multiple subqueries are optimized incorrectly
5461
CREATE TABLE ot(val VARCHAR(10));
5462
CREATE TABLE it1(val VARCHAR(10));
5463
CREATE TABLE it2(val VARCHAR(10));
5464
INSERT INTO ot VALUES('aaa'), ('bbb'), ('eee'), ('mmm'), ('ppp');
5465
INSERT INTO it1 VALUES('aaa'), ('aaa'), ('bbb'), ('eee'), ('mmm'), ('ppp');
5466
INSERT INTO it2 VALUES('aaa'), ('bbb'), ('eee'), ('mmm'), ('ppp');
5470
WHERE ot.val IN (SELECT it1.val FROM it1
5471
WHERE it1.val LIKE 'a%' OR it1.val LIKE 'e%')
5472
AND ot.val IN (SELECT it2.val FROM it2
5473
WHERE it2.val LIKE 'a%' OR it2.val LIKE 'e%');
5474
id select_type table type possible_keys key key_len ref rows Extra
5475
1 SIMPLE ot ALL NULL NULL NULL NULL 5 Using where
5476
1 SIMPLE <subquery3> eq_ref <auto_key> <auto_key> 13 test.ot.val 1 NULL
5477
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 13 test.ot.val 1 NULL
5478
3 MATERIALIZED it2 ALL NULL NULL NULL NULL 5 Using where
5479
2 MATERIALIZED it1 ALL NULL NULL NULL NULL 6 Using where
5482
WHERE ot.val IN (SELECT it1.val FROM it1
5483
WHERE it1.val LIKE 'a%' OR it1.val LIKE 'e%')
5484
AND ot.val IN (SELECT it2.val FROM it2
5485
WHERE it2.val LIKE 'a%' OR it2.val LIKE 'e%');
5494
# Bug #51487 Assertion failure when semi-join flattening occurs
5495
# for a subquery in HAVING
5497
CREATE TABLE t1 (a INT, b INT);
5498
INSERT INTO t1 VALUES (1,10),(2,11),(1,13);
5499
CREATE TABLE t2 AS SELECT * FROM t1;
5500
CREATE TABLE t3 AS SELECT * FROM t1;
5501
SELECT COUNT(*) FROM t1
5503
HAVING t1.a IN (SELECT t3.a FROM t3
5504
WHERE t3.b IN (SELECT b FROM t2 WHERE t2.a=t1.a));
5508
DROP TABLE t1, t2, t3;
5511
# BUG#38075: Wrong result: rows matching a subquery with outer join not returned
5513
DROP TABLE IF EXISTS ot1, it1, it2;
5515
int_key int(11) NOT NULL,
5516
datetime_key datetime NOT NULL,
5517
KEY int_key (int_key),
5518
KEY datetime_key (datetime_key)
5520
INSERT INTO it2 VALUES
5521
(5,'2002-04-10 14:25:30'), (0,'0000-00-00 00:00:00'),
5522
(0,'2006-09-14 04:01:02'), (4,'0000-00-00 00:00:00'),
5523
(8,'0000-00-00 00:00:00'), (5,'0000-00-00 00:00:00'),
5524
(9,'0000-00-00 00:00:00'), (8,'2007-04-01 11:04:17'),
5525
(1,'0000-00-00 00:00:00'), (7,'2009-01-12 00:00:00'),
5526
(0,'2009-06-05 00:00:00'), (3,'2006-02-14 18:06:35'),
5527
(5,'2006-02-21 07:08:16'), (0,'0000-00-00 00:00:00'),
5528
(7,'0000-00-00 00:00:00'), (0,'0000-00-00 00:00:00'),
5529
(0,'2007-02-13 00:00:00'), (1,'0000-00-00 00:00:00'),
5530
(0,'0000-00-00 00:00:00'), (1,'2003-08-11 00:00:00');
5532
int_nokey int(11) NOT NULL,
5533
int_key int(11) NOT NULL,
5534
KEY int_key (int_key)
5536
INSERT INTO ot1 VALUES
5537
(5,0), (3,0), (0,2), (3,0), (1,3), (0,0), (1,7), (7,0), (1,7), (0,7),
5538
(0,9), (8,2), (4,4), (9,3), (0,9), (2,5), (0,5), (8,0), (5,8), (1,5);
5540
int_nokey int(11) NOT NULL,
5541
int_key int(11) NOT NULL,
5542
KEY int_key (int_key)
5544
INSERT INTO it1 VALUES
5546
SELECT int_key FROM ot1
5547
WHERE int_nokey IN (SELECT it2.int_key
5548
FROM it1 LEFT JOIN it2 ON it2.datetime_key);
5568
SELECT int_key FROM ot1
5569
WHERE int_nokey IN (SELECT it2.int_key
5570
FROM it1 LEFT JOIN it2 ON it2.datetime_key);
5571
id select_type table type possible_keys key key_len ref rows Extra
5572
1 SIMPLE it1 index NULL int_key 4 NULL 2 Using index; Start temporary
5573
1 SIMPLE ot1 ALL NULL NULL NULL NULL 20 NULL
5574
1 SIMPLE it2 ref int_key int_key 4 test.ot1.int_nokey 2 Using where; End temporary; Using join buffer (Batched Key Access)
5575
DROP TABLE ot1, it1, it2;
5578
# BUG#50089: Second call of procedure with view in subselect crashes server
5580
CREATE TABLE t1(t1field INTEGER, PRIMARY KEY(t1field));
5582
SELECT t1field AS v1field
5584
WHERE a.t1field IN (SELECT t1field FROM t1);
5585
INSERT INTO t1 VALUES(1),(2);
5588
WHERE t1field IN (SELECT v1field FROM v1);
5595
WHERE t1field IN (SELECT v1field FROM v1);
5596
id select_type table type possible_keys key key_len ref rows Extra
5597
1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 2 Using index
5598
1 SIMPLE a eq_ref PRIMARY PRIMARY 4 test.t1.t1field 1 Using index
5599
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t1.t1field 1 Using index
5601
FROM t1 LEFT JOIN t1 AS t2 ON t1.t1field IN (SELECT v1field FROM v1);
5610
WHERE t1field IN (SELECT v1field FROM v1);
5611
id select_type table type possible_keys key key_len ref rows Extra
5612
1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 2 Using index
5613
1 SIMPLE a eq_ref PRIMARY PRIMARY 4 test.t1.t1field 1 Using index
5614
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t1.t1field 1 Using index
5615
CREATE PROCEDURE p1()
5619
WHERE t1field IN (SELECT v1field FROM v1);
5633
WHERE t1field IN (SELECT v1field FROM v1);
5648
# Bug#45191: Incorrectly initialized semi-join led to a wrong result.
5650
CREATE TABLE STAFF (EMPNUM CHAR(3) NOT NULL,
5651
EMPNAME CHAR(20), GRADE DECIMAL(4), CITY CHAR(15));
5652
CREATE TABLE PROJ (PNUM CHAR(3) NOT NULL,
5653
PNAME CHAR(20), PTYPE CHAR(6),
5656
CREATE TABLE WORKS (EMPNUM CHAR(3) NOT NULL,
5657
PNUM CHAR(3) NOT NULL, HOURS DECIMAL(5));
5658
INSERT INTO STAFF VALUES ('E1','Alice',12,'Deale');
5659
INSERT INTO STAFF VALUES ('E2','Betty',10,'Vienna');
5660
INSERT INTO STAFF VALUES ('E3','Carmen',13,'Vienna');
5661
INSERT INTO STAFF VALUES ('E4','Don',12,'Deale');
5662
INSERT INTO STAFF VALUES ('E5','Ed',13,'Akron');
5663
INSERT INTO PROJ VALUES ('P1','MXSS','Design',10000,'Deale');
5664
INSERT INTO PROJ VALUES ('P2','CALM','Code',30000,'Vienna');
5665
INSERT INTO PROJ VALUES ('P3','SDP','Test',30000,'Tampa');
5666
INSERT INTO PROJ VALUES ('P4','SDP','Design',20000,'Deale');
5667
INSERT INTO PROJ VALUES ('P5','IRM','Test',10000,'Vienna');
5668
INSERT INTO PROJ VALUES ('P6','PAYR','Design',50000,'Deale');
5669
INSERT INTO WORKS VALUES ('E1','P1',40);
5670
INSERT INTO WORKS VALUES ('E1','P2',20);
5671
INSERT INTO WORKS VALUES ('E1','P3',80);
5672
INSERT INTO WORKS VALUES ('E1','P4',20);
5673
INSERT INTO WORKS VALUES ('E1','P5',12);
5674
INSERT INTO WORKS VALUES ('E1','P6',12);
5675
INSERT INTO WORKS VALUES ('E2','P1',40);
5676
INSERT INTO WORKS VALUES ('E2','P2',80);
5677
INSERT INTO WORKS VALUES ('E3','P2',20);
5678
INSERT INTO WORKS VALUES ('E4','P2',20);
5679
INSERT INTO WORKS VALUES ('E4','P4',40);
5680
INSERT INTO WORKS VALUES ('E4','P5',80);
5681
explain SELECT EMPNUM, EMPNAME
5684
(SELECT EMPNUM FROM WORKS
5686
(SELECT PNUM FROM PROJ));
5687
id select_type table type possible_keys key key_len ref rows Extra
5688
1 SIMPLE STAFF ALL NULL NULL NULL NULL 5 Using where
5689
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.STAFF.EMPNUM 1 NULL
5690
2 MATERIALIZED PROJ ALL NULL NULL NULL NULL 6 NULL
5691
2 MATERIALIZED WORKS ALL NULL NULL NULL NULL 12 Using where
5692
SELECT EMPNUM, EMPNAME
5695
(SELECT EMPNUM FROM WORKS
5697
(SELECT PNUM FROM PROJ));
5703
drop table STAFF,WORKS,PROJ;
5706
# BUG#36896: Server crash on SELECT FROM DUAL
5708
create table t1 (a int);
5709
select 1 as res from dual where (1) in (select * from t1);
5713
BUG#40118 Crash when running Batched Key Access and requiring one match for each key
5715
create table t0(a int);
5716
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
5717
create table t1 (a int, key(a));
5718
insert into t1 select * from t0;
5719
alter table t1 add b int not null, add filler char(200);
5720
insert into t1 select * from t1;
5721
insert into t1 select * from t1;
5722
select * from t0 where t0.a in (select t1.a from t1 where t1.b=0);
5736
# BUG#32665 Query with dependent subquery is too slow
5739
idIndividual int primary key
5741
insert into t1 values (1),(2);
5743
idContact int primary key,
5747
insert into t2 values (1,1,1),(2,2,2),(3,3,3);
5749
idAddress int primary key,
5751
postalStripped varchar(100)
5753
insert into t3 values (1,1, 'foo'), (2,2,'bar');
5754
The following must be converted to a semi-join:
5755
explain extended SELECT a.idIndividual FROM t1 a
5756
WHERE a.idIndividual IN
5757
( SELECT c.idObj FROM t3 cona
5758
INNER JOIN t2 c ON c.idContact=cona.idContact
5759
WHERE cona.postalStripped='T2H3B2'
5761
id select_type table type possible_keys key key_len ref rows filtered Extra
5762
1 SIMPLE cona ALL NULL NULL NULL NULL 2 100.00 Using where; Start temporary
5763
1 SIMPLE c eq_ref PRIMARY PRIMARY 4 test.cona.idContact 1 100.00 Using where; Using join buffer (Batched Key Access)
5764
1 SIMPLE a eq_ref PRIMARY PRIMARY 4 test.c.idObj 1 100.00 Using index; End temporary
5766
Note 1003 /* select#1 */ select `test`.`a`.`idIndividual` AS `idIndividual` from `test`.`t1` `a` semi join (`test`.`t3` `cona` join `test`.`t2` `c`) where ((`test`.`c`.`idContact` = `test`.`cona`.`idContact`) and (`test`.`a`.`idIndividual` = `test`.`c`.`idObj`) and (`test`.`cona`.`postalStripped` = 'T2H3B2'))
5767
drop table t1,t2,t3;
5768
CREATE TABLE t1 (one int, two int, flag char(1));
5769
CREATE TABLE t2 (one int, two int, flag char(1));
5770
INSERT INTO t1 VALUES(1,2,'Y'),(2,3,'Y'),(3,4,'Y'),(5,6,'N'),(7,8,'N');
5771
INSERT INTO t2 VALUES(1,2,'Y'),(2,3,'Y'),(3,4,'Y'),(5,6,'N'),(7,8,'N');
5773
WHERE ROW(one,two) IN (SELECT DISTINCT one,two FROM t2 WHERE flag = 'N');
5778
WHERE ROW(one,two) IN (SELECT DISTINCT one,two FROM t1 WHERE flag = 'N');
5782
insert into t2 values (null,null,'N');
5783
insert into t2 values (null,3,'0');
5784
insert into t2 values (null,5,'0');
5785
insert into t2 values (10,null,'0');
5786
insert into t1 values (10,3,'0');
5787
insert into t1 values (10,5,'0');
5788
insert into t1 values (10,10,'0');
5789
SELECT one,two,ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = 'N') as 'test' from t1;
5799
SELECT one,two from t1 where ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = 'N');
5803
SELECT one,two,ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = 'N' group by one,two) as 'test' from t1;
5813
SELECT one,two,ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = '0') as 'test' from t1;
5823
SELECT one,two,ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = '0' group by one,two) as 'test' from t1;
5833
explain extended SELECT one,two,ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = '0') as 'test' from t1;
5834
id select_type table type possible_keys key key_len ref rows filtered Extra
5835
1 PRIMARY t1 ALL NULL NULL NULL NULL 8 100.00 NULL
5836
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 9 100.00 Using where
5838
Note 1003 /* select#1 */ select `test`.`t1`.`one` AS `one`,`test`.`t1`.`two` AS `two`,<in_optimizer>((`test`.`t1`.`one`,`test`.`t1`.`two`),<exists>(/* select#2 */ select 1,1 from `test`.`t2` where ((`test`.`t2`.`flag` = '0') and <if>(outer_field_is_not_null, ((<cache>(`test`.`t1`.`one`) = `test`.`t2`.`one`) or isnull(`test`.`t2`.`one`)), true) and <if>(outer_field_is_not_null, ((<cache>(`test`.`t1`.`two`) = `test`.`t2`.`two`) or isnull(`test`.`t2`.`two`)), true)) having (<if>(outer_field_is_not_null, <is_not_null_test>(`test`.`t2`.`one`), true) and <if>(outer_field_is_not_null, <is_not_null_test>(`test`.`t2`.`two`), true)))) AS `test` from `test`.`t1`
5839
explain extended SELECT one,two from t1 where ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = 'N');
5840
id select_type table type possible_keys key key_len ref rows filtered Extra
5841
1 SIMPLE t1 ALL NULL NULL NULL NULL 8 100.00 Using where
5842
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 10 test.t1.one,test.t1.two 1 100.00 NULL
5843
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 9 100.00 Using where
5845
Note 1003 /* select#1 */ select `test`.`t1`.`one` AS `one`,`test`.`t1`.`two` AS `two` from `test`.`t1` semi join (`test`.`t2`) where ((`<subquery2>`.`two` = `test`.`t1`.`two`) and (`<subquery2>`.`one` = `test`.`t1`.`one`) and (`test`.`t2`.`flag` = 'N'))
5846
explain extended SELECT one,two,ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = '0' group by one,two) as 'test' from t1;
5847
id select_type table type possible_keys key key_len ref rows filtered Extra
5848
1 PRIMARY t1 ALL NULL NULL NULL NULL 8 100.00 NULL
5849
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 9 100.00 Using where
5851
Note 1003 /* select#1 */ select `test`.`t1`.`one` AS `one`,`test`.`t1`.`two` AS `two`,<in_optimizer>((`test`.`t1`.`one`,`test`.`t1`.`two`),<exists>(/* select#2 */ select 1,1 from `test`.`t2` where ((`test`.`t2`.`flag` = '0') and <if>(outer_field_is_not_null, ((<cache>(`test`.`t1`.`one`) = `test`.`t2`.`one`) or isnull(`test`.`t2`.`one`)), true) and <if>(outer_field_is_not_null, ((<cache>(`test`.`t1`.`two`) = `test`.`t2`.`two`) or isnull(`test`.`t2`.`two`)), true)) having (<if>(outer_field_is_not_null, <is_not_null_test>(`test`.`t2`.`one`), true) and <if>(outer_field_is_not_null, <is_not_null_test>(`test`.`t2`.`two`), true)))) AS `test` from `test`.`t1`
5853
CREATE TABLE t1 (a char(5), b char(5));
5854
INSERT INTO t1 VALUES (NULL,'aaa'), ('aaa','aaa');
5855
SELECT * FROM t1 WHERE (a,b) IN (('aaa','aaa'), ('aaa','bbb'));
5859
CREATE TABLE t1 (a CHAR(1), b VARCHAR(10));
5860
INSERT INTO t1 VALUES ('a', 'aa');
5861
INSERT INTO t1 VALUES ('a', 'aaa');
5862
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
5864
CREATE INDEX I1 ON t1 (a);
5865
CREATE INDEX I2 ON t1 (b);
5866
EXPLAIN SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
5867
id select_type table type possible_keys key key_len ref rows Extra
5868
1 SIMPLE t1 ALL I2 NULL NULL NULL 2 Using where
5869
1 SIMPLE t1 ref I1 I1 2 test.t1.b 2 Using where; Using index; FirstMatch(t1)
5870
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
5872
CREATE TABLE t2 (a VARCHAR(1), b VARCHAR(10));
5873
INSERT INTO t2 SELECT * FROM t1;
5874
CREATE INDEX I1 ON t2 (a);
5875
CREATE INDEX I2 ON t2 (b);
5876
EXPLAIN SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
5877
id select_type table type possible_keys key key_len ref rows Extra
5878
1 SIMPLE t2 ALL I2 NULL NULL NULL 2 Using where
5879
1 SIMPLE t2 ref I1 I1 4 test.t2.b 2 Using where; Using index; FirstMatch(t2)
5880
SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
5883
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
5884
id select_type table type possible_keys key key_len ref rows Extra
5885
1 SIMPLE t1 ALL I2 NULL NULL NULL 2 Using where
5886
1 SIMPLE t1 ref I1 I1 2 test.t1.b 2 Using where; Using index; FirstMatch(t1)
5887
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
5891
# BUG#45928 "Differing query results depending on MRR and
5892
# engine_condition_pushdown settings"
5895
`pk` int(11) NOT NULL AUTO_INCREMENT,
5896
`time_nokey` time NOT NULL,
5897
`varchar_key` varchar(1) NOT NULL,
5898
`varchar_nokey` varchar(1) NOT NULL,
5900
KEY `varchar_key` (`varchar_key`)
5901
) AUTO_INCREMENT=12 DEFAULT CHARSET=latin1;
5902
INSERT INTO `t1` VALUES (10,'00:00:00','i','i'),(11,'00:00:00','','');
5903
SELECT `time_nokey` G1 FROM t1 WHERE ( `varchar_nokey` , `varchar_key` ) IN (
5904
SELECT `varchar_nokey` , `varchar_nokey` ) AND `varchar_key` >= 'c' HAVING G1 ORDER
5909
# BUG#45863 "Assertion failed: (fixed == 0), function fix_fields(),
5910
# file item.cc, line 4448"
5912
DROP TABLE IF EXISTS C, BB;
5914
varchar_nokey varchar(1) NOT NULL
5916
INSERT INTO C VALUES
5917
('k'),('a'),(''),('u'),('e'),('v'),('i'),
5918
('t'),('u'),('f'),('u'),('m'),('j'),('f'),
5919
('v'),('j'),('g'),('e'),('h'),('z');
5921
varchar_nokey varchar(1) NOT NULL
5923
INSERT INTO BB VALUES ('i'),('t');
5924
SELECT varchar_nokey FROM C
5925
WHERE (varchar_nokey, OUTR) IN (SELECT varchar_nokey
5927
ERROR 42S22: Unknown column 'OUTR' in 'IN/ALL/ANY subquery'
5928
SELECT varchar_nokey FROM C
5929
WHERE (varchar_nokey, OUTR) IN (SELECT varchar_nokey, varchar_nokey
5931
ERROR 42S22: Unknown column 'OUTR' in 'IN/ALL/ANY subquery'
5934
# During work with BUG#45863 I had problems with a query that was
5935
# optimized differently in regular and prepared mode.
5936
# Because there was a bug in one of the selected strategies, I became
5937
# aware of the problem. Adding an EXPLAIN query to catch this.
5938
DROP TABLE IF EXISTS t1, t2, t3;
5940
(EMPNUM CHAR(3) NOT NULL,
5945
(PNUM CHAR(3) NOT NULL,
5951
(EMPNUM CHAR(3) NOT NULL,
5952
PNUM CHAR(3) NOT NULL,
5954
INSERT INTO t1 VALUES ('E1','Alice',12,'Deale');
5955
INSERT INTO t1 VALUES ('E2','Betty',10,'Vienna');
5956
INSERT INTO t1 VALUES ('E3','Carmen',13,'Vienna');
5957
INSERT INTO t1 VALUES ('E4','Don',12,'Deale');
5958
INSERT INTO t1 VALUES ('E5','Ed',13,'Akron');
5959
INSERT INTO t2 VALUES ('P1','MXSS','Design',10000,'Deale');
5960
INSERT INTO t2 VALUES ('P2','CALM','Code',30000,'Vienna');
5961
INSERT INTO t2 VALUES ('P3','SDP','Test',30000,'Tampa');
5962
INSERT INTO t2 VALUES ('P4','SDP','Design',20000,'Deale');
5963
INSERT INTO t2 VALUES ('P5','IRM','Test',10000,'Vienna');
5964
INSERT INTO t2 VALUES ('P6','PAYR','Design',50000,'Deale');
5965
INSERT INTO t3 VALUES ('E1','P1',40);
5966
INSERT INTO t3 VALUES ('E1','P2',20);
5967
INSERT INTO t3 VALUES ('E1','P3',80);
5968
INSERT INTO t3 VALUES ('E1','P4',20);
5969
INSERT INTO t3 VALUES ('E1','P5',12);
5970
INSERT INTO t3 VALUES ('E1','P6',12);
5971
INSERT INTO t3 VALUES ('E2','P1',40);
5972
INSERT INTO t3 VALUES ('E2','P2',80);
5973
INSERT INTO t3 VALUES ('E3','P2',20);
5974
INSERT INTO t3 VALUES ('E4','P2',20);
5975
INSERT INTO t3 VALUES ('E4','P4',40);
5976
INSERT INTO t3 VALUES ('E4','P5',80);
5977
CREATE UNIQUE INDEX t1_IDX ON t1(EMPNUM);
5978
EXPLAIN SELECT EMPNAME
5986
WHERE PTYPE = 'Design'));
5987
id select_type table type possible_keys key key_len ref rows Extra
5988
1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5 Using where
5989
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.t1.EMPNUM 1 NULL
5990
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 6 Using where
5991
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 12 Using where
5992
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
6000
WHERE PTYPE = 'Design'))";
6002
id select_type table type possible_keys key key_len ref rows Extra
6003
1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5 Using where
6004
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.t1.EMPNUM 1 NULL
6005
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 6 Using where
6006
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 12 Using where
6008
id select_type table type possible_keys key key_len ref rows Extra
6009
1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5 Using where
6010
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.t1.EMPNUM 1 NULL
6011
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 6 Using where
6012
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 12 Using where
6013
DEALLOCATE PREPARE stmt;
6014
DROP INDEX t1_IDX ON t1;
6015
CREATE INDEX t1_IDX ON t1(EMPNUM);
6016
EXPLAIN SELECT EMPNAME
6024
WHERE PTYPE = 'Design'));
6025
id select_type table type possible_keys key key_len ref rows Extra
6026
1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5 Using where
6027
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.t1.EMPNUM 1 NULL
6028
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 6 Using where
6029
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 12 Using where
6030
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
6038
WHERE PTYPE = 'Design'))";
6040
id select_type table type possible_keys key key_len ref rows Extra
6041
1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5 Using where
6042
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.t1.EMPNUM 1 NULL
6043
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 6 Using where
6044
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 12 Using where
6046
id select_type table type possible_keys key key_len ref rows Extra
6047
1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5 Using where
6048
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.t1.EMPNUM 1 NULL
6049
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 6 Using where
6050
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 12 Using where
6051
DEALLOCATE PREPARE stmt;
6052
DROP INDEX t1_IDX ON t1;
6053
EXPLAIN SELECT EMPNAME
6061
WHERE PTYPE = 'Design'));
6062
id select_type table type possible_keys key key_len ref rows Extra
6063
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
6064
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.t1.EMPNUM 1 NULL
6065
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 6 Using where
6066
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 12 Using where
6067
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
6075
WHERE PTYPE = 'Design'))";
6077
id select_type table type possible_keys key key_len ref rows Extra
6078
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
6079
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.t1.EMPNUM 1 NULL
6080
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 6 Using where
6081
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 12 Using where
6083
id select_type table type possible_keys key key_len ref rows Extra
6084
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
6085
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.t1.EMPNUM 1 NULL
6086
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 6 Using where
6087
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 12 Using where
6088
DEALLOCATE PREPARE stmt;
6089
DROP TABLE t1, t2, t3;
6091
# BUG#45221 Query SELECT pk FROM C WHERE pk IN (SELECT int_key) failing
6097
KEY i1_index (i1_key)
6099
INSERT INTO t1 VALUES (9,1,2), (9,2,1);
6105
INSERT INTO t2 VALUES (9,1);
6112
WHERE t1.i2 < t1.i3 XOR t2.i1 > 1
6113
ORDER BY t1.i2 desc);
6117
# BUG#50361 Doublenested noncorrelated subquery with FirstMatch and join cache wrong result
6122
INSERT INTO t1 VALUES(10),(20);
6123
create table t2 select * from t1;
6124
create table t3 select * from t1;
6134
explain extended SELECT *
6140
id select_type table type possible_keys key key_len ref rows filtered Extra
6141
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6142
1 SIMPLE <subquery2> const <auto_key> <auto_key> 4 const 1 100.00 NULL
6143
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 100.00 NULL
6144
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 100.00 NULL
6146
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id` from `test`.`t1` semi join (`test`.`t3` join `test`.`t2`) where 1
6149
INSERT INTO t1 VALUES(30),(40),(50),(60),(70),(80),(90);
6150
insert into t2 select * from t1;
6151
insert into t3 select * from t1;
6152
create table t4 select * from t1;
6179
id select_type table type possible_keys key key_len ref rows Extra
6180
1 SIMPLE t1 ALL NULL NULL NULL NULL 9 NULL
6181
1 SIMPLE <subquery2> const <auto_key> <auto_key> 4 const 1 NULL
6182
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 9 NULL
6183
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 9 NULL
6184
2 MATERIALIZED t4 ALL NULL NULL NULL NULL 9 NULL
6203
drop table t1,t2,t3,t4;
6205
# Bug#53236 Segfault in DTCollation::set(DTCollation&)
6208
pk INTEGER AUTO_INCREMENT,
6209
col_varchar VARCHAR(1),
6213
INSERT INTO t1 (col_varchar)
6219
FROM ( t1 AS table1 JOIN t1 AS table2 ON (table1.col_varchar =
6220
table2.col_varchar) )
6221
WHERE ( 1, 2 ) IN ( SELECT SUBQUERY1_t1.pk AS SUBQUERY1_field1,
6222
SUBQUERY1_t1.pk AS SUBQUERY1_field2
6223
FROM ( t1 AS SUBQUERY1_t1 JOIN t1 AS SUBQUERY1_t2
6224
ON (SUBQUERY1_t2.col_varchar =
6225
SUBQUERY1_t1.col_varchar) ) )
6230
# BUG#53298 "wrong result with semijoin (no semijoin strategy chosen)"
6232
create table t1 (uid int, fid int);
6233
insert into t1 values (1,1), (3,1);
6234
create table t2 (uid int, name varchar(128));
6235
insert into t2 values (1, "A"), (2, "B");
6236
create table t3 (uid int, fid int, index(uid));
6237
insert into t3 values (1,3), (1,3);
6238
create table t4 (uid int);
6239
insert into t4 values (3);
6240
explain select t2.uid from t2, t1
6241
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
6243
id select_type table type possible_keys key key_len ref rows Extra
6244
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
6245
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 NULL
6246
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
6247
2 MATERIALIZED t4 ALL NULL NULL NULL NULL 1 NULL
6248
2 MATERIALIZED t3 ref uid uid 5 const 1 Using where; Using join buffer (Batched Key Access)
6249
select t2.uid from t2, t1
6250
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
6254
drop table t1,t2,t3,t4;
6263
INSERT INTO t1 VALUES (1,'o','ffff','ffff','ffoo'),(2,'f','ffff','ffff','ffff');
6264
CREATE TABLE t2 LIKE t1;
6265
INSERT INTO t2 VALUES (1,'i','iiii','iiii','iiii'),(2,'f','ffff','ffff','ffff');
6266
EXPLAIN SELECT pk FROM t1 WHERE (a) IN (SELECT a FROM t2 WHERE pk > 0);
6267
id select_type table type possible_keys key key_len ref rows Extra
6268
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
6269
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Using where; Using MRR; FirstMatch(t1)
6270
SELECT pk FROM t1 WHERE (a) IN (SELECT a FROM t2 WHERE pk > 0);
6273
SELECT pk FROM t1 WHERE (b,c,d) IN (SELECT b,c,d FROM t2 WHERE pk > 0);
6277
CREATE TABLE t1 (f1 INT, f2 DECIMAL(5,3)) ENGINE=MyISAM;
6278
INSERT INTO t1 (f1, f2) VALUES (1, 1.789);
6279
INSERT INTO t1 (f1, f2) VALUES (13, 1.454);
6280
INSERT INTO t1 (f1, f2) VALUES (10, 1.668);
6281
CREATE TABLE t2 LIKE t1;
6282
INSERT INTO t2 VALUES (1, 1.789);
6283
INSERT INTO t2 VALUES (13, 1.454);
6284
EXPLAIN SELECT COUNT(*) FROM t1 WHERE (f1,f2) IN (SELECT f1,f2 FROM t2);
6285
id select_type table type possible_keys key key_len ref rows Extra
6286
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
6287
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
6288
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
6289
SELECT COUNT(*) FROM t1 WHERE (f1,f2) IN (SELECT f1,f2 FROM t2);
6294
ID int(11) NOT NULL auto_increment,
6295
Name char(35) NOT NULL default '',
6296
Country char(3) NOT NULL default '',
6297
Population int(11) NOT NULL default '0',
6303
Code char(3) NOT NULL default '',
6304
Name char(52) NOT NULL default '',
6305
SurfaceArea float(10,2) NOT NULL default '0.00',
6306
Population int(11) NOT NULL default '0',
6307
Capital int(11) default NULL,
6309
UNIQUE INDEX (Name),
6313
Country char(3) NOT NULL default '',
6314
Language char(30) NOT NULL default '',
6315
Percentage float(3,1) NOT NULL default '0.0',
6316
PRIMARY KEY (Country, Language),
6319
EXPLAIN SELECT Name FROM t2
6320
WHERE t2.Code IN (SELECT Country FROM t1 WHERE Population > 5000000)
6322
t2.Code IN (SELECT Country FROM t3
6323
WHERE Language='English' AND Percentage > 10 AND
6324
t2.Population > 100000);
6325
id select_type table type possible_keys key key_len ref rows Extra
6326
1 SIMPLE t1 range Population,Country Population 4 NULL 1 Using index condition; Using MRR; Start temporary
6327
1 SIMPLE t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where; End temporary; Using join buffer (Batched Key Access)
6328
1 SIMPLE t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t1.Country,const 1 Using index condition; Using where; Using join buffer (Batched Key Access)
6329
EXPLAIN FORMAT=JSON SELECT Name FROM t2
6330
WHERE t2.Code IN (SELECT Country FROM t1 WHERE Population > 5000000)
6332
t2.Code IN (SELECT Country FROM t3
6333
WHERE Language='English' AND Percentage > 10 AND
6334
t2.Population > 100000);
6341
"duplicates_removal": {
6342
"using_temporary_table": true,
6347
"access_type": "range",
6352
"key": "Population",
6359
"index_condition": "(`test`.`t1`.`Population` > 5000000)",
6366
"access_type": "eq_ref",
6381
"using_join_buffer": "Batched Key Access",
6382
"attached_condition": "(`test`.`t2`.`Population` > 100000)"
6391
"access_type": "eq_ref",
6408
"index_condition": "(`test`.`t3`.`Language` = 'English')",
6409
"using_join_buffer": "Batched Key Access",
6410
"attached_condition": "(`test`.`t3`.`Percentage` > 10)"
6417
Note 1276 Field or reference 'test.t2.Population' of SELECT #3 was resolved in SELECT #1
6418
Note 1003 /* select#1 */ select `test`.`t2`.`Name` AS `Name` from `test`.`t3` semi join (`test`.`t1`) join `test`.`t2` where ((`test`.`t2`.`Code` = `test`.`t1`.`Country`) and (`test`.`t3`.`Country` = `test`.`t1`.`Country`) and (`test`.`t3`.`Language` = 'English') and (`test`.`t3`.`Percentage` > 10) and (`test`.`t2`.`Population` > 100000) and (`test`.`t1`.`Population` > 5000000))
6419
DROP TABLE t1,t2,t3;
6421
Code char(3) NOT NULL DEFAULT '',
6422
Name char(52) NOT NULL DEFAULT '',
6423
Continent enum('Asia','Europe','North America','Africa','Oceania','Antarctica','South America') NOT NULL DEFAULT 'Asia',
6424
Region char(26) NOT NULL DEFAULT '',
6425
SurfaceArea float(10,2) NOT NULL DEFAULT '0.00',
6426
IndepYear smallint(6) DEFAULT NULL,
6427
Population int(11) NOT NULL DEFAULT '0',
6428
LifeExpectancy float(3,1) DEFAULT NULL,
6429
GNP float(10,2) DEFAULT NULL,
6430
GNPOld float(10,2) DEFAULT NULL,
6431
LocalName char(45) NOT NULL DEFAULT '',
6432
GovernmentForm char(45) NOT NULL DEFAULT '',
6433
HeadOfState char(60) DEFAULT NULL,
6434
Capital int(11) DEFAULT NULL,
6435
Code2 char(2) NOT NULL DEFAULT '',
6439
ID int(11) NOT NULL AUTO_INCREMENT,
6440
Name char(35) NOT NULL DEFAULT '',
6441
CountryCode char(3) NOT NULL DEFAULT '',
6442
District char(20) NOT NULL DEFAULT '',
6443
Population int(11) NOT NULL DEFAULT '0',
6445
KEY CountryCode (CountryCode)
6447
Fill the table with test data
6448
This must not use LooseScan:
6449
EXPLAIN SELECT Name FROM t1
6451
SELECT t2.CountryCode FROM t2 WHERE Population > 5000000);
6452
id select_type table type possible_keys key key_len ref rows Extra
6453
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 31 Using where
6454
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.t1.Code 1 NULL
6455
2 MATERIALIZED t2 ALL CountryCode NULL NULL NULL 545 Using where
6458
SELECT t2.CountryCode FROM t2 WHERE Population > 5000000);
6465
create table t0 (a int);
6466
insert into t0 values (0),(1),(2),(3),(4);
6467
create table t1 (a int, b int, key(a));
6468
insert into t1 select a,a from t0;
6469
create table t2 (a int, b int, primary key(a));
6470
insert into t2 select * from t1;
6471
Table t2, unlike table t1, should be displayed as pulled out
6472
explain extended select * from t0
6473
where t0.a in ( select t1.a from t1,t2 where t2.a=t0.a and
6475
id select_type table type possible_keys key key_len ref rows filtered Extra
6476
1 SIMPLE t0 ALL NULL NULL NULL NULL 5 100.00 Using where; Start temporary
6477
1 SIMPLE t1 ref a a 5 test.t0.a 1 100.00 Using join buffer (Batched Key Access)
6478
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 100.00 Using where; End temporary; Using join buffer (Batched Key Access)
6480
Note 1276 Field or reference 'test.t0.a' of SELECT #2 was resolved in SELECT #1
6481
Note 1003 /* select#1 */ select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t1`.`a` = `test`.`t0`.`a`) and (`test`.`t2`.`a` = `test`.`t0`.`a`))
6482
update t1 set a=3, b=11 where a=4;
6483
update t2 set b=11 where a=3;
6484
create temporary table tmp select * from t0 where t0.a in
6485
(select t1.a from t1, t2 where t2.a=t0.a and t1.b=t2.b);
6486
create temporary table tmp_as_ref (a int);
6487
insert into tmp_as_ref values(0),(1),(2),(3);
6494
drop table t0, t1, t2, tmp, tmp_as_ref;
6496
id int(11) NOT NULL,
6499
id int(11) NOT NULL,
6500
fid int(11) NOT NULL,
6502
insert into t1 values(1);
6503
insert into t2 values(1,7503),(2,1);
6504
explain select count(*)
6506
where fid IN (select fid from t2 where (id between 7502 and 8420) order by fid );
6507
ERROR 42S22: Unknown column 'fid' in 'IN/ALL/ANY subquery'
6509
create table t1 (a int, b int, key (a), key (b));
6510
insert into t1 values (2,4),(2,4),(2,4);
6513
t1.a in (select 1 from t1 where t1.a in (select 1 from t1) group by t1.a);
6516
create table t1(a int,b int,key(a),key(b));
6517
insert into t1 values (1,1),(2,2),(3,3);
6519
where t1.a not in (select 1 from t1
6520
where t1.a in (select 1 from t1)
6527
(EMPNUM CHAR(3) NOT NULL,
6532
(PNUM CHAR(3) NOT NULL,
6538
(EMPNUM CHAR(3) NOT NULL,
6539
PNUM CHAR(3) NOT NULL,
6541
INSERT INTO t1 VALUES ('E1','Alice',12,'Deale');
6542
INSERT INTO t1 VALUES ('E2','Betty',10,'Vienna');
6543
INSERT INTO t1 VALUES ('E3','Carmen',13,'Vienna');
6544
INSERT INTO t1 VALUES ('E4','Don',12,'Deale');
6545
INSERT INTO t1 VALUES ('E5','Ed',13,'Akron');
6546
INSERT INTO t2 VALUES ('P1','MXSS','Design',10000,'Deale');
6547
INSERT INTO t2 VALUES ('P2','CALM','Code',30000,'Vienna');
6548
INSERT INTO t2 VALUES ('P3','SDP','Test',30000,'Tampa');
6549
INSERT INTO t2 VALUES ('P4','SDP','Design',20000,'Deale');
6550
INSERT INTO t2 VALUES ('P5','IRM','Test',10000,'Vienna');
6551
INSERT INTO t2 VALUES ('P6','PAYR','Design',50000,'Deale');
6552
INSERT INTO t3 VALUES ('E1','P1',40);
6553
INSERT INTO t3 VALUES ('E1','P2',20);
6554
INSERT INTO t3 VALUES ('E1','P3',80);
6555
INSERT INTO t3 VALUES ('E1','P4',20);
6556
INSERT INTO t3 VALUES ('E1','P5',12);
6557
INSERT INTO t3 VALUES ('E1','P6',12);
6558
INSERT INTO t3 VALUES ('E2','P1',40);
6559
INSERT INTO t3 VALUES ('E2','P2',80);
6560
INSERT INTO t3 VALUES ('E3','P2',20);
6561
INSERT INTO t3 VALUES ('E4','P2',20);
6562
INSERT INTO t3 VALUES ('E4','P4',40);
6563
INSERT INTO t3 VALUES ('E4','P5',80);
6565
EMPNUM EMPNAME GRADE CITY
6571
CREATE UNIQUE INDEX t1_IDX ON t1(EMPNUM);
6580
WHERE PTYPE = 'Design'));
6585
DROP INDEX t1_IDX ON t1;
6586
CREATE INDEX t1_IDX ON t1(EMPNUM);
6595
WHERE PTYPE = 'Design'));
6600
DROP INDEX t1_IDX ON t1;
6609
WHERE PTYPE = 'Design'));
6614
DROP TABLE t1, t2, t3;
6615
CREATE TABLE t1 (f1 INT NOT NULL);
6616
CREATE VIEW v1 (a) AS SELECT f1 IN (SELECT f1 FROM t1) FROM t1;
6621
create table t0 (a int);
6622
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
6623
create table t1(a int, b int);
6624
insert into t1 values (0,0),(1,1),(2,2);
6625
create table t2 as select * from t1;
6626
create table t3 (pk int, a int, primary key(pk));
6627
insert into t3 select a,a from t0;
6629
select * from t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t3));
6630
id select_type table type possible_keys key key_len ref rows Extra
6631
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 NULL
6632
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
6633
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using index
6634
drop table t0, t1, t2, t3;
6635
create table t0 (a int);
6636
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
6637
create table t1 (a int) as select A.a + 10 *(B.a + 10*C.a) as a from t0 A, t0 B, t0 C;
6638
create table t2 (id int, a int, primary key(id), key(a)) as select a as id, a as a from t1;
6639
show create table t2;
6641
t2 CREATE TABLE `t2` (
6642
`id` int(11) NOT NULL DEFAULT '0',
6643
`a` int(11) DEFAULT NULL,
6646
) ENGINE=MyISAM DEFAULT CHARSET=latin1
6648
create table t3 as select * from t2 limit 0;
6649
insert into t3 select @a:=@a+1, t2.a from t2, t0;
6650
insert into t3 select @a:=@a+1, t2.a from t2, t0;
6651
insert into t3 select @a:=@a+1, t2.a from t2, t0;
6652
alter table t3 add primary key(id), add key(a);
6653
The following must use loose index scan over t3, key a:
6654
explain select count(a) from t2 where a in ( SELECT a FROM t3);
6655
id select_type table type possible_keys key key_len ref rows Extra
6656
1 SIMPLE t2 index a a 5 NULL 1000 Using where; Using index
6657
1 SIMPLE t3 ref a a 5 test.t2.a 30 Using index; FirstMatch(t2)
6658
select count(a) from t2 where a in ( SELECT a FROM t3);
6661
drop table t0,t1,t2,t3;
6663
# Bug#33062: subquery in stored routine cause crash
6665
CREATE TABLE t1(a INT);
6666
CREATE TABLE t2(c INT);
6667
CREATE PROCEDURE p1(v1 int)
6669
SELECT 1 FROM t1 WHERE a = v1 AND a IN (SELECT c FROM t2);
6672
CREATE PROCEDURE p2(v1 int)
6674
SELECT 1 FROM t1 WHERE a IN (SELECT c FROM t2);
6677
CREATE PROCEDURE p3(v1 int)
6681
t1 t01,t1 t02,t1 t03,t1 t04,t1 t05,t1 t06,t1 t07,t1 t08,
6682
t1 t09,t1 t10,t1 t11,t1 t12,t1 t13,t1 t14,t1 t15,t1 t16,
6683
t1 t17,t1 t18,t1 t19,t1 t20,t1 t21,t1 t22,t1 t23,t1 t24,
6684
t1 t25,t1 t26,t1 t27,t1 t28,t1 t29,t1 t30,t1 t31,t1 t32,
6685
t1 t33,t1 t34,t1 t35,t1 t36,t1 t37,t1 t38,t1 t39,t1 t40,
6686
t1 t41,t1 t42,t1 t43,t1 t44,t1 t45,t1 t46,t1 t47,t1 t48,
6687
t1 t49,t1 t50,t1 t51,t1 t52,t1 t53,t1 t54,t1 t55,t1 t56,
6688
t1 t57,t1 t58,t1 t59,t1 t60
6689
WHERE t01.a IN (SELECT c FROM t2);
6692
CREATE PROCEDURE p4(v1 int)
6696
t1 t01,t1 t02,t1 t03,t1 t04,t1 t05,t1 t06,t1 t07,t1 t08,
6697
t1 t09,t1 t10,t1 t11,t1 t12,t1 t13,t1 t14,t1 t15,t1 t16,
6698
t1 t17,t1 t18,t1 t19,t1 t20,t1 t21,t1 t22,t1 t23,t1 t24,
6699
t1 t25,t1 t26,t1 t27,t1 t28,t1 t29,t1 t30,t1 t31,t1 t32,
6700
t1 t33,t1 t34,t1 t35,t1 t36,t1 t37,t1 t38,t1 t39,t1 t40,
6701
t1 t41,t1 t42,t1 t43,t1 t44,t1 t45,t1 t46,t1 t47,t1 t48,
6702
t1 t49,t1 t50,t1 t51,t1 t52,t1 t53,t1 t54,t1 t55,t1 t56,
6703
t1 t57,t1 t58,t1 t59,t1 t60
6704
WHERE t01.a = v1 AND t01.a IN (SELECT c FROM t2);
6721
# Bug#48213 Materialized subselect crashes if using GEOMETRY type
6738
INSERT INTO t1 VALUES (1,'o','ffff','ffff','ffoo','ffff','ffff','ffff','ffff','ffff','ffff',GeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))')), (2,'f','ffff','ffff','ffff', 'ffff','ffff','ffff','ffff','ffff','ffff',GeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))'));
6739
CREATE TABLE t2 LIKE t1;
6740
INSERT INTO t2 VALUES (1,'i','iiii','iiii','iiii','iiii','ffff','ffff','ffff','ffff','ffff',GeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))')), (2,'f','ffff','ffff','ffff','ffff','ffff','ffff','ffff','ffff','ffff',GeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))'));
6741
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (a, b) IN (SELECT a, b FROM t2 WHERE pk > 0);
6742
id select_type table type possible_keys key key_len ref rows filtered Extra
6743
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6744
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
6746
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`a` = `test`.`t1`.`a`) and (`test`.`t2`.`pk` > 0))
6747
SELECT pk FROM t1 WHERE (a, b) IN (SELECT a, b FROM t2 WHERE pk > 0);
6750
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, c) IN (SELECT b, c FROM t2 WHERE pk > 0);
6751
id select_type table type possible_keys key key_len ref rows filtered Extra
6752
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6753
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
6755
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`c` = `test`.`t1`.`c`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
6756
SELECT pk FROM t1 WHERE (b, c) IN (SELECT b, c FROM t2 WHERE pk > 0);
6760
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, d) IN (SELECT b, d FROM t2 WHERE pk > 0);
6761
id select_type table type possible_keys key key_len ref rows filtered Extra
6762
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6763
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
6765
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`d` = `test`.`t1`.`d`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
6766
SELECT pk FROM t1 WHERE (b, d) IN (SELECT b, d FROM t2 WHERE pk > 0);
6769
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, e) IN (SELECT b, e FROM t2 WHERE pk > 0);
6770
id select_type table type possible_keys key key_len ref rows filtered Extra
6771
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6772
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
6774
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`e` = `test`.`t1`.`e`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
6775
SELECT pk FROM t1 WHERE (b, e) IN (SELECT b, e FROM t2 WHERE pk > 0);
6779
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, f) IN (SELECT b, f FROM t2 WHERE pk > 0);
6780
id select_type table type possible_keys key key_len ref rows filtered Extra
6781
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6782
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
6784
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`f` = `test`.`t1`.`f`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
6785
SELECT pk FROM t1 WHERE (b, f) IN (SELECT b, f FROM t2 WHERE pk > 0);
6789
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, g) IN (SELECT b, g FROM t2 WHERE pk > 0);
6790
id select_type table type possible_keys key key_len ref rows filtered Extra
6791
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6792
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
6794
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`g` = `test`.`t1`.`g`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
6795
SELECT pk FROM t1 WHERE (b, g) IN (SELECT b, g FROM t2 WHERE pk > 0);
6799
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, h) IN (SELECT b, h FROM t2 WHERE pk > 0);
6800
id select_type table type possible_keys key key_len ref rows filtered Extra
6801
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6802
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
6804
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`h` = `test`.`t1`.`h`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
6805
SELECT pk FROM t1 WHERE (b, h) IN (SELECT b, h FROM t2 WHERE pk > 0);
6809
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, i) IN (SELECT b, i FROM t2 WHERE pk > 0);
6810
id select_type table type possible_keys key key_len ref rows filtered Extra
6811
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6812
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
6814
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`i` = `test`.`t1`.`i`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
6815
SELECT pk FROM t1 WHERE (b, i) IN (SELECT b, i FROM t2 WHERE pk > 0);
6819
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, j) IN (SELECT b, j FROM t2 WHERE pk > 0);
6820
id select_type table type possible_keys key key_len ref rows filtered Extra
6821
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6822
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
6824
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`j` = `test`.`t1`.`j`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
6825
SELECT pk FROM t1 WHERE (b, j) IN (SELECT b, j FROM t2 WHERE pk > 0);
6829
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, k) IN (SELECT b, k FROM t2 WHERE pk > 0);
6830
id select_type table type possible_keys key key_len ref rows filtered Extra
6831
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6832
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
6834
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`k` = `test`.`t1`.`k`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
6835
SELECT pk FROM t1 WHERE (b, k) IN (SELECT b, k FROM t2 WHERE pk > 0);
6842
# BUG#53060: LooseScan semijoin strategy does not return all rows
6844
CREATE TABLE t1 (i INTEGER);
6845
INSERT INTO t1 VALUES (1), (2), (3), (4), (5);
6846
CREATE TABLE t2 (i INTEGER, j INTEGER, KEY k(i, j));
6847
INSERT INTO t2 VALUES (1, 0), (1, 1), (2, 0), (2, 1);
6849
SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0);
6850
id select_type table type possible_keys key key_len ref rows Extra
6851
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
6852
1 SIMPLE t2 ref k k 5 test.t1.i 1 Using where; Using index; FirstMatch(t1)
6853
SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0);
6860
# Bug#53305 "Duplicate weedout + join buffer (join cache --level=7,8) loses rows"
6862
create table t1 (uid int, fid int, index(uid));
6863
insert into t1 values
6864
(1,1), (1,2), (1,3), (1,4),
6865
(2,5), (2,6), (2,7), (2,8),
6866
(3,1), (3,2), (3,9);
6867
create table t2 (uid int primary key, name varchar(128), index(name));
6868
insert into t2 values
6869
(1, "A"), (2, "B"), (3, "C"), (4, "D"), (5, "E"),
6870
(6, "F"), (7, "G"), (8, "H"), (9, "I");
6871
create table t3 (uid int, fid int, index(uid));
6872
insert into t3 values
6873
(1,1), (1,2), (1,3),(1,4),
6874
(2,5), (2,6), (2,7), (2,8),
6875
(3,1), (3,2), (3,9);
6876
create table t4 (uid int primary key, name varchar(128), index(name));
6877
insert into t4 values
6878
(1, "A"), (2, "B"), (3, "C"), (4, "D"), (5, "E"),
6879
(6, "F"), (7, "G"), (8, "H"), (9, "I");
6880
explain select name from t2, t1
6881
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
6883
id select_type table type possible_keys key key_len ref rows Extra
6884
1 SIMPLE t3 ref uid uid 5 const 4 Using where; Start temporary
6885
1 SIMPLE t4 eq_ref PRIMARY PRIMARY 4 test.t3.fid 1 Using index
6886
1 SIMPLE t1 ref uid uid 5 test.t3.fid 2 End temporary; Using join buffer (Batched Key Access)
6887
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 9 Using where
6888
select name from t2, t1
6889
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
6903
drop table t1,t2,t3,t4;
6905
# Bug#43768 Prepared query with nested subqueries core dump on second execution
6909
partner_id VARCHAR(35)
6911
INSERT INTO t1 VALUES
6912
(1, 'partner1'), (2, 'partner2'),
6913
(3, 'partner3'), (4, 'partner4');
6917
article_id VARCHAR(20),
6918
PRIMARY KEY(id, t1_line_id)
6920
INSERT INTO t2 VALUES
6921
(1, 1, 'sup'), (2, 1, 'sup'),
6922
(2, 2, 'sup'), (2, 3, 'sup'),
6923
(2, 4, 'imp'), (3, 1, 'sup'),
6926
user_id VARCHAR(50),
6927
article_id VARCHAR(20) NOT NULL,
6928
PRIMARY KEY(user_id)
6930
INSERT INTO t3 VALUES('nicke', 'imp');
6932
SELECT t1.partner_id
6937
WHERE article_id IN (
6938
SELECT article_id FROM t3
6939
WHERE user_id = 'nicke'
6942
id select_type table type possible_keys key key_len ref rows Extra
6943
1 SIMPLE t3 system PRIMARY NULL NULL NULL 1 NULL
6944
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 4 NULL
6945
1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.id 1 Using where; FirstMatch(t1); Using join buffer (Batched Key Access)
6946
SELECT t1.partner_id
6951
WHERE article_id IN (
6952
SELECT article_id FROM t3
6953
WHERE user_id = 'nicke'
6959
'EXPLAIN SELECT t1.partner_id
6964
WHERE article_id IN (
6965
SELECT article_id FROM t3
6966
WHERE user_id = \'nicke\'
6970
id select_type table type possible_keys key key_len ref rows Extra
6971
1 SIMPLE t3 system PRIMARY NULL NULL NULL 1 NULL
6972
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 4 NULL
6973
1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.id 1 Using where; FirstMatch(t1); Using join buffer (Batched Key Access)
6975
id select_type table type possible_keys key key_len ref rows Extra
6976
1 SIMPLE t3 system PRIMARY NULL NULL NULL 1 NULL
6977
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 4 NULL
6978
1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.id 1 Using where; FirstMatch(t1); Using join buffer (Batched Key Access)
6980
'SELECT t1.partner_id
6985
WHERE article_id IN (
6986
SELECT article_id FROM t3
6987
WHERE user_id = \'nicke\'
6996
DROP TABLE t1,t2,t3;
6999
# Bug#53058 - semijoin execution of subquery with outerjoin yields wrong result
7001
CREATE TABLE t1 (i INTEGER);
7002
CREATE TABLE t2 (i INTEGER);
7003
CREATE TABLE t3 (i INTEGER);
7004
INSERT INTO t1 VALUES (1), (2);
7005
INSERT INTO t2 VALUES (6);
7006
INSERT INTO t3 VALUES (1), (2);
7007
explain extended SELECT * FROM t1 WHERE (t1.i) IN
7008
(SELECT t3.i FROM t3 LEFT JOIN t2 ON t2.i=t3.i);
7009
id select_type table type possible_keys key key_len ref rows filtered Extra
7010
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 NULL
7011
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
7012
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 100.00 NULL
7013
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 100.00 Using where
7015
Note 1003 /* select#1 */ select `test`.`t1`.`i` AS `i` from `test`.`t1` semi join (`test`.`t3` left join `test`.`t2` on((`test`.`t2`.`i` = `test`.`t3`.`i`))) where (`test`.`t1`.`i` = `<subquery2>`.`i`)
7016
SELECT * FROM t1 WHERE (t1.i) IN
7017
(SELECT t3.i FROM t3 LEFT JOIN t2 ON t2.i=t3.i);
7021
drop table t1,t2,t3;
7023
# BUG#49453: re-execution of prepared statement with view
7024
# and semijoin crashes
7026
CREATE TABLE t1 (city VARCHAR(50), country_id INT);
7027
CREATE TABLE t2 (country_id INT, country VARCHAR(50));
7028
INSERT INTO t1 VALUES
7029
('Batna',2),('Bchar',2),('Skikda',2),('Tafuna',3),('Algeria',2) ;
7030
INSERT INTO t2 VALUES (2,'Algeria'),(2,'AlgeriaDup'),(3,'XAmerican Samoa');
7032
SELECT country_id as vf_country_id
7034
WHERE LEFT(country,1) = "A";
7036
SELECT city, country_id
7038
WHERE country_id IN (SELECT vf_country_id FROM v1);
7056
# Bug#54437 Extra rows with LEFT JOIN + semijoin (firstmatch
7057
# and duplicates weedout)
7059
create table t1 (a int);
7060
create table t2 (a int);
7061
create table t3 (a int);
7062
insert into t1 values(1),(1);
7063
insert into t2 values(1),(1),(1),(1);
7064
insert into t3 values(2),(2);
7065
explain select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
7066
id select_type table type possible_keys key key_len ref rows Extra
7067
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
7068
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t1.a 1 NULL
7069
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 4 NULL
7070
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
7071
select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
7075
drop table t1,t2,t3;
7077
# Bug#55955: crash in MEMORY engine with IN(LEFT JOIN (JOIN))
7079
CREATE TABLE t1 (a INT);
7080
CREATE TABLE t2 (a INT);
7081
CREATE TABLE t3 (a INT);
7082
INSERT INTO t1 VALUES(1),(1);
7083
INSERT INTO t2 VALUES(1),(1);
7084
INSERT INTO t3 VALUES(2),(2);
7085
explain SELECT * FROM t1
7086
WHERE t1.a IN (SELECT t2.a
7087
FROM t2 LEFT JOIN (t2 AS t2inner, t3) ON t2.a=t3.a);
7088
id select_type table type possible_keys key key_len ref rows Extra
7089
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
7090
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t1.a 1 NULL
7091
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
7092
2 MATERIALIZED t2inner ALL NULL NULL NULL NULL 2 NULL
7093
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
7095
WHERE t1.a IN (SELECT t2.a
7096
FROM t2 LEFT JOIN (t2 AS t2inner, t3) ON t2.a=t3.a);
7100
DROP TABLE t1,t2,t3;
7102
# BUG#52329 - Wrong result: subquery materialization, IN,
7103
# non-null field followed by nullable
7105
CREATE TABLE t1 (a1 CHAR(8) NOT NULL, a2 char(8) NOT NULL);
7106
CREATE TABLE t2a (b1 char(8), b2 char(8));
7107
CREATE TABLE t2b (b1 CHAR(8), b2 char(8) NOT NULL);
7108
CREATE TABLE t2c (b1 CHAR(8) NOT NULL, b2 char(8));
7109
INSERT INTO t1 VALUES ('1 - 12', '2 - 22');
7110
INSERT INTO t2a VALUES ('1 - 11', '2 - 21'),
7111
('1 - 11', '2 - 21'),
7112
('1 - 12', '2 - 22'),
7113
('1 - 12', '2 - 22'),
7114
('1 - 13', '2 - 23');
7115
INSERT INTO t2b SELECT * FROM t2a;
7116
INSERT INTO t2c SELECT * FROM t2a;
7119
SELECT b1, b2 FROM t2c WHERE b1 > '0' GROUP BY b1, b2);
7124
SELECT b1, b2 FROM t2a WHERE b1 > '0');
7129
SELECT b1, b2 FROM t2b WHERE b1 > '0');
7134
SELECT b1, b2 FROM t2c WHERE b1 > '0');
7137
DROP TABLE t1,t2a,t2b,t2c;
7140
# Bug#45174: Incorrectly applied equality propagation caused wrong
7141
# result on a query with a materialized semi-join.
7144
varchar_nokey varchar(1) NOT NULL
7146
INSERT INTO t1 VALUES
7147
('v'), ('u'), ('n'), ('l'), ('h'), ('u'), ('n'), ('j'), ('k'),
7148
('e'), ('i'), ('u'), ('n'), ('b'), ('x'), (''), ('q'), ('u');
7151
varchar_key varchar(1) NOT NULL,
7152
varchar_nokey varchar(1) NOT NULL,
7154
KEY varchar_key(varchar_key)
7156
INSERT INTO t2 VALUES
7157
(11,'m','m'), (12,'j','j'), (13,'z','z'), (14,'a','a'), (15,'',''),
7158
(16,'e','e'), (17,'t','t'), (19,'b','b'), (20,'w','w'), (21,'m','m'),
7159
(23,'',''), (24,'w','w'), (26,'e','e'), (27,'e','e'), (28,'p','p');
7160
SELECT varchar_nokey
7162
WHERE (varchar_nokey, varchar_nokey) IN (SELECT varchar_key, varchar_nokey
7164
WHERE varchar_nokey < 'n' XOR pk);
7166
explain SELECT varchar_nokey
7168
WHERE (varchar_nokey, varchar_nokey) IN (SELECT varchar_key, varchar_nokey
7170
WHERE varchar_nokey < 'n' XOR pk);
7171
id select_type table type possible_keys key key_len ref rows Extra
7172
1 SIMPLE t1 ALL NULL NULL NULL NULL 18 Using where
7173
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 6 test.t1.varchar_nokey,test.t1.varchar_nokey 1 NULL
7174
2 MATERIALIZED t2 ALL varchar_key NULL NULL NULL 15 Using where
7176
# End of the test for bug#45174.
7178
# Bug#50019: Wrong result for IN-query with materialization
7180
CREATE TABLE t1(i INT);
7181
INSERT INTO t1 VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
7182
CREATE TABLE t2(i INT);
7183
INSERT INTO t2 VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
7184
CREATE TABLE t3(i INT);
7185
INSERT INTO t3 VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
7186
SELECT * FROM t1 WHERE t1.i IN (SELECT t2.i
7188
WHERE t2.i + t3.i = 5);
7194
explain SELECT * FROM t1 WHERE t1.i IN (SELECT t2.i
7196
WHERE t2.i + t3.i = 5);
7197
id select_type table type possible_keys key key_len ref rows Extra
7198
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 Using where
7199
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t1.i 1 NULL
7200
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 10 NULL
7201
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 10 Using where
7202
DROP TABLE t1,t2,t3;
7203
# End of the test for bug#50019.
7205
# Bug#52068: Optimizer generates invalid semijoin materialization plan
7207
CREATE TABLE ot1(a INTEGER);
7208
INSERT INTO ot1 VALUES(5), (8);
7209
CREATE TABLE it2(a INTEGER);
7210
INSERT INTO it2 VALUES(9), (5), (1), (8);
7211
CREATE TABLE it3(a INTEGER);
7212
INSERT INTO it3 VALUES(7), (1), (0), (5), (1), (4);
7213
CREATE TABLE ot4(a INTEGER);
7214
INSERT INTO ot4 VALUES(1), (3), (5), (7), (9), (7), (3), (1);
7215
SELECT * FROM ot1,ot4
7216
WHERE (ot1.a,ot4.a) IN (SELECT it2.a,it3.a
7229
explain SELECT * FROM ot1,ot4
7230
WHERE (ot1.a,ot4.a) IN (SELECT it2.a,it3.a
7232
id select_type table type possible_keys key key_len ref rows Extra
7233
1 SIMPLE ot1 ALL NULL NULL NULL NULL 2 NULL
7234
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where
7235
1 SIMPLE ot4 ALL NULL NULL NULL NULL 8 Using where
7236
2 MATERIALIZED it2 ALL NULL NULL NULL NULL 4 NULL
7237
2 MATERIALIZED it3 ALL NULL NULL NULL NULL 6 NULL
7238
DROP TABLE IF EXISTS ot1, ot4, it2, it3;
7239
# End of the test for bug#52068.
7241
# Bug#57623: subquery within before insert trigger causes crash (sj=on)
7243
CREATE TABLE ot1(a INT);
7244
CREATE TABLE ot2(a INT);
7245
CREATE TABLE ot3(a INT);
7246
CREATE TABLE it1(a INT);
7247
INSERT INTO ot1 VALUES(0),(1),(2),(3),(4),(5),(6),(7);
7248
INSERT INTO ot2 VALUES(0),(2),(4),(6);
7249
INSERT INTO ot3 VALUES(0),(3),(6);
7250
INSERT INTO it1 VALUES(0),(1),(2),(3),(4),(5),(6),(7);
7254
(ot2 JOIN ot3 on ot2.a=ot3.a)
7255
ON ot1.a=ot2.a AND ot1.a IN (SELECT a from it1);
7256
id select_type table type possible_keys key key_len ref rows Extra
7257
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 NULL
7258
1 SIMPLE it1 ALL NULL NULL NULL NULL 8 Using where; FirstMatch(ot1)
7259
1 SIMPLE ot3 ALL NULL NULL NULL NULL 3 NULL
7260
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where
7264
(ot2 JOIN ot3 on ot2.a=ot3.a)
7265
ON ot1.a=ot2.a AND ot1.a IN (SELECT a from it1);
7275
prepare s from 'SELECT *
7278
(ot2 JOIN ot3 on ot2.a=ot3.a)
7279
ON ot1.a=ot2.a AND ot1.a IN (SELECT a from it1)';
7300
deallocate prepare s;
7301
DROP TABLE ot1, ot2, ot3, it1;
7302
# End of the test for bug#57623.
7304
# Bug#11766739: Crash in tmp_table_param::init() with semijoin=on
7306
CREATE TABLE t1 (f1 INTEGER) ENGINE=MyISAM;
7307
CREATE TABLE t2 (f1 INTEGER, f2 INTEGER) ENGINE=MyISAM;
7308
INSERT INTO t1 VALUES (1);
7309
INSERT INTO t2 VALUES (1,1), (2,1);
7310
EXPLAIN SELECT * FROM t2
7311
WHERE f2 IN (SELECT t1.f1
7312
FROM t1 LEFT OUTER JOIN (t2 AS b1 JOIN t2 AS b2 ON TRUE) ON TRUE);
7313
id select_type table type possible_keys key key_len ref rows Extra
7314
1 SIMPLE t1 ALL NULL NULL NULL NULL 1 Start temporary
7315
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
7316
1 SIMPLE b1 ALL NULL NULL NULL NULL 2 Using where
7317
1 SIMPLE b2 ALL NULL NULL NULL NULL 2 End temporary
7319
WHERE f2 IN (SELECT t1.f1
7320
FROM t1 LEFT OUTER JOIN (t2 AS b1 JOIN t2 AS b2 ON TRUE) ON TRUE);
7325
# End of the test for bug#11766739.
7327
# Bug#11766642: crash in Item_field::register_field_in_read_map with view
7329
CREATE TABLE t1(a INT);
7330
CREATE VIEW v1 AS SELECT a FROM t1;
7331
INSERT INTO t1 VALUES (0),(1),(2);
7332
SELECT a FROM t1 WHERE a IN
7333
(SELECT a XOR a FROM v1)
7340
# Bug#12546542 MISSING ROW WHEN USING OPTIMIZER_JOIN_CACHE_LEVEL>=3
7345
INSERT INTO t1 VALUES ('v'),('we');
7347
col_varchar_1024_utf8 varchar(1024) CHARACTER SET utf8 DEFAULT NULL,
7351
INSERT INTO t2 VALUES ('we',4,NULL),('v',1305673728,6);
7356
INSERT INTO t3 VALUES (4,4);
7359
WHERE f2 IN (SELECT a1.col_varchar_1024_utf8 AS f2
7360
FROM t2 AS a1 LEFT JOIN t3 AS a2
7361
ON a1.col_int_key = a2.col_int_key
7362
WHERE a1.col_int BETWEEN 1 AND 10 OR a2.col_int IS NOT NULL);
7366
DROP TABLE t1,t2,t3;
7368
# BUG#12616344 - JCL: DIFFERENT RESULT SET AND DIFFERENT AMOUNT
7369
# OF ROWS WHEN JCL>=3
7371
CREATE TABLE t1 (col_int_nokey int, col_int_key int, col_varchar_key varchar(1));
7372
INSERT INTO t1 VALUES (0,4,'c'),(1,6,'u');
7373
CREATE TABLE t2 (pk int, col_int_nokey int, col_varchar_nokey varchar(1));
7374
INSERT INTO t2 VALUES (1,4,'b'),(94,6,'u');
7375
CREATE TABLE t3 (pk int, col_int_nokey int, col_varchar_key varchar(1));
7376
INSERT INTO t3 VALUES (1,4,'j'),(2,6,'v');
7377
SELECT table2.col_int_key
7378
from t3 as table1 join t1 as table2 on table2.col_int_nokey
7379
where table1.col_int_nokey in
7381
select subquery2_t2.col_int_nokey
7382
from t3 as subquery2_t1
7385
join t1 as subquery2_t3
7386
on subquery2_t3.col_int_key = subquery2_t2.col_int_nokey
7387
on subquery2_t3.col_varchar_key = subquery2_t2.col_varchar_nokey
7388
where subquery2_t1.col_varchar_key != table1.col_varchar_key
7389
or subquery2_t2.pk <= table1.pk
7394
DROP TABLE t1,t2,t3;
7396
# Bug#12608157: ASSERT IN FIELD_LONG::VAL_INT WHEN USING MEMORY ENGINE
7398
CREATE TABLE t1 (i1 int);
7399
INSERT INTO t1 VALUES (1);
7400
CREATE TABLE t2 (i1 int, i2 int) ENGINE=memory;
7401
INSERT INTO t2 VALUES (1, 2),(7, 3);
7402
SELECT GRANDPARENT1.i1
7403
FROM t2 AS GRANDPARENT1
7404
WHERE GRANDPARENT1.i2
7405
IN ( SELECT PARENT1.i2
7406
FROM t2 AS PARENT1 JOIN t1 AS PARENT2 ON (PARENT1.i1 = PARENT2.i1)
7408
GRANDPARENT1.i1 IN ( SELECT CHILD1.i1 FROM t2 AS CHILD1 )
7409
ORDER BY PARENT1.i1)
7410
ORDER BY GRANDPARENT1.i2 ;
7415
# Bug#12640083: Same query executed as WHERE subquery gives different
7416
# results on IN() compare
7420
col_varchar_1024_utf8_key varchar(1024) CHARACTER SET utf8 DEFAULT NULL,
7421
col_varchar_10_latin1_key varchar(10) DEFAULT NULL,
7423
KEY col_varchar_1024_utf8_key(col_varchar_1024_utf8_key(333)),
7424
KEY col_varchar_10_latin1_key(col_varchar_10_latin1_key)
7426
INSERT INTO t1 VALUES
7430
(4, 'abcd', 'abcd');
7432
pk int NOT NULL AUTO_INCREMENT,
7436
SELECT alias1.col_varchar_10_latin1_key
7438
LEFT JOIN t1 AS alias2
7440
ON alias2.col_varchar_10_latin1_key
7441
ON alias1.col_varchar_1024_utf8_key
7442
WHERE alias1.pk AND alias1.pk < 3 OR alias1.pk AND alias3.pk;
7445
WHERE col_varchar_10_latin1_key IN (
7446
SELECT alias1.col_varchar_10_latin1_key
7448
LEFT JOIN t1 AS alias2
7450
ON alias2.col_varchar_10_latin1_key
7451
ON alias1.col_varchar_1024_utf8_key
7452
WHERE alias1.pk AND alias1.pk < 3 OR alias1.pk AND alias3.pk);
7453
id select_type table type possible_keys key key_len ref rows Extra
7454
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where
7455
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 13 test.t3.col_varchar_10_latin1_key 1 NULL
7456
2 MATERIALIZED alias1 ALL NULL NULL NULL NULL 4 Using where
7457
2 MATERIALIZED alias3 index NULL PRIMARY 4 NULL 1 Using where; Using index
7458
2 MATERIALIZED alias2 index NULL col_varchar_10_latin1_key 13 NULL 4 Using where; Using index
7461
WHERE col_varchar_10_latin1_key IN (
7462
SELECT alias1.col_varchar_10_latin1_key
7464
LEFT JOIN t1 AS alias2
7466
ON alias2.col_varchar_10_latin1_key
7467
ON alias1.col_varchar_1024_utf8_key
7468
WHERE alias1.pk AND alias1.pk < 3 OR alias1.pk AND alias3.pk);
7469
col_varchar_10_latin1_key
7472
DROP TABLE t1, t2, t3;
7473
# End of the test for bug#12640083.
7475
# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output
7479
col_int_key int NOT NULL,
7480
col_varchar_nokey varchar(1) NOT NULL,
7481
col_varchar_key varchar(1) NOT NULL,
7483
KEY col_int_key(col_int_key),
7484
KEY col_varchar_key(col_varchar_key, col_int_key)
7486
INSERT INTO t1 VALUES
7505
col_int_key int NOT NULL,
7506
col_varchar_key varchar(1) NOT NULL,
7508
KEY col_varchar_key(col_varchar_key, col_int_key)
7510
INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES
7531
EXPLAIN SELECT outr.col_varchar_key AS x, outr.pk AS y
7533
WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key
7535
WHERE innr.col_varchar_key = 'a' OR innr.pk = 8)
7536
AND outr.col_varchar_nokey < 't'
7537
ORDER BY outr.col_varchar_key, outr.pk;
7538
id select_type table type possible_keys key key_len ref rows Extra
7539
1 SIMPLE innr index_merge PRIMARY,col_varchar_key col_varchar_key,PRIMARY 3,4 NULL 2 Using sort_union(col_varchar_key,PRIMARY); Using where; Using temporary; Using filesort; Start temporary
7540
1 SIMPLE outr ref col_varchar_key col_varchar_key 3 test.innr.col_varchar_key 1 Using where; End temporary; Using join buffer (Batched Key Access)
7541
SELECT outr.col_varchar_key AS x, outr.pk AS y
7543
WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key
7545
WHERE innr.col_varchar_key = 'a' OR innr.pk = 8)
7546
AND outr.col_varchar_nokey < 't'
7547
ORDER BY outr.col_varchar_key, outr.pk;
7554
# End of bug#12603200
7556
# Bug#12603183: Segfault in hp_movelink
7559
col_varchar_key varchar(1) ,
7560
col_varchar_nokey varchar(1) ,
7561
KEY col_varchar_key(col_varchar_key)
7563
INSERT INTO t1 VALUES
7580
col_varchar_nokey varchar(1)
7582
INSERT INTO t2 VALUES
7584
EXPLAIN SELECT grandparent1.col_varchar_nokey
7585
FROM t1 AS grandparent1 LEFT JOIN t2 AS grandparent2 USING (col_varchar_nokey)
7586
WHERE (grandparent1.col_varchar_key) IN
7587
(SELECT parent1.col_varchar_nokey
7589
WHERE parent1.col_varchar_key IN
7590
(SELECT child1.col_varchar_nokey AS c1
7591
FROM t1 AS child1 LEFT JOIN t2 AS child2
7592
ON (child1.col_varchar_key > child2.col_varchar_nokey)));
7593
id select_type table type possible_keys key key_len ref rows Extra
7594
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where
7595
1 SIMPLE grandparent1 ref col_varchar_key col_varchar_key 4 <subquery2>.col_varchar_nokey 2 Using join buffer (Batched Key Access)
7596
1 SIMPLE grandparent2 ALL NULL NULL NULL NULL 1 Using where
7597
2 MATERIALIZED child1 ALL NULL NULL NULL NULL 15 Using where
7598
2 MATERIALIZED child2 ALL NULL NULL NULL NULL 1 Using where
7599
2 MATERIALIZED parent1 ref col_varchar_key col_varchar_key 4 test.child1.col_varchar_nokey 2 Using join buffer (Batched Key Access)
7600
SELECT grandparent1.col_varchar_nokey
7601
FROM t1 AS grandparent1 LEFT JOIN t2 AS grandparent2 USING (col_varchar_nokey)
7602
WHERE (grandparent1.col_varchar_key) IN
7603
(SELECT parent1.col_varchar_nokey
7605
WHERE parent1.col_varchar_key IN
7606
(SELECT child1.col_varchar_nokey AS c1
7607
FROM t1 AS child1 LEFT JOIN t2 AS child2
7608
ON (child1.col_varchar_key > child2.col_varchar_nokey)));
7626
# End of test for bug#12603183.
7628
# Bug#12818569: Diff nr of rows returned when using IN/ALL+subquery
7631
col_int_key INT NOT NULL,
7632
col_datetime_key DATETIME NOT NULL,
7633
col_varchar_key VARCHAR(1) NOT NULL,
7634
KEY col_int_key (col_int_key),
7635
KEY col_datetime_key(col_datetime_key),
7636
KEY col_varchar_key (col_varchar_key,col_int_key)
7638
INSERT INTO t1 VALUES
7639
(7,'2004-06-06 04:22:12','v'), (0,'2005-11-13 01:12:31','s'),
7640
(9,'2002-05-04 01:50:00','l'), (3,'2004-10-27 10:28:45','y'),
7641
(4,'2006-07-22 05:24:23','c'), (2,'2002-05-16 21:34:03','i'),
7642
(5,'2008-04-17 10:45:30','h'), (3,'2009-04-21 02:58:02','q'),
7643
(1,'2008-01-11 11:01:51','a'), (3,'1900-01-01 00:00:00','v'),
7644
(6,'2007-05-17 18:24:57','u'), (7,'2007-08-07 00:00:00','s'),
7645
(5,'2001-08-28 00:00:00','y'), (1,'2004-04-16 00:27:28','z'),
7646
(204,'2005-05-03 07:06:22','h'), (224,'2009-03-11 17:09:50','p'),
7647
(9,'2007-12-08 01:54:28','e'), (5,'2009-07-28 18:19:54','i'),
7648
(0,'2008-06-08 00:00:00','y'), (3,'2005-02-09 09:20:26','w');
7650
col_varchar_nokey VARCHAR(1) NOT NULL
7652
INSERT INTO t2 VALUES ('v'), ('y'), ('j'), ('c'), ('d'), ('r');
7653
explain SELECT col_varchar_key
7655
WHERE col_varchar_key IN (SELECT col_varchar_nokey
7657
ORDER BY col_datetime_key LIMIT 4;
7658
id select_type table type possible_keys key key_len ref rows Extra
7659
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using temporary; Using filesort; Start temporary
7660
1 SIMPLE t1 ref col_varchar_key col_varchar_key 3 test.t2.col_varchar_nokey 1 End temporary; Using join buffer (Batched Key Access)
7661
SELECT col_varchar_key
7663
WHERE col_varchar_key IN (SELECT col_varchar_nokey
7665
ORDER BY col_datetime_key LIMIT 4;
7672
# End of test for bug#12818569.
7674
# Bug#12803439: Assert in replace_subcondition() on update query
7676
CREATE TABLE t1(a INTEGER);
7677
INSERT INTO t1 values(1), (2);
7678
CREATE TABLE t2(a INTEGER);
7679
INSERT INTO t2 VALUES(1), (3);
7682
WHERE a IN (SELECT a
7684
HAVING a IN (SELECT a
7687
HAVING a IN (SELECT a
7692
# End of test for bug#12803439.
7694
# Bug#12797534: Segfault in hp_movelink still exists
7697
g1 VARCHAR(1) NOT NULL
7699
INSERT INTO t1 VALUES ('d'), ('s');
7702
col_int_key INT NOT NULL,
7703
col_varchar_key VARCHAR(1) NOT NULL,
7704
col_varchar_nokey VARCHAR(1) NOT NULL,
7706
KEY col_varchar_key(col_varchar_key, col_int_key)
7708
INSERT INTO t2 VALUES
7709
(1,4,'j','j'), (2,6,'v','v'), (3,3,'c','c'), (4,5,'m','m'),
7710
(5,3,'d','d'), (6,246,'d','d'), (7,2,'y','y'), (8,9,'t','t'),
7711
(9,3,'d','d'), (10,8,'s','s'), (11,1,'r','r'), (12,8,'m','m'),
7712
(13,8,'b','b'), (14,5,'x','x'), (15,7,'g','g'), (16,5,'p','p'),
7713
(17,1,'q','q'), (18,6,'w','w'), (19,2,'d','d'), (20,9,'e','e');
7715
pk INTEGER NOT NULL,
7718
INSERT INTO t3 VALUES (10);
7722
(SELECT grandparent1.col_varchar_nokey AS g1
7723
FROM t2 AS grandparent1
7724
WHERE grandparent1.col_varchar_key IN
7725
(SELECT parent1.col_varchar_nokey AS p1
7726
FROM t2 AS parent1 LEFT JOIN t3 AS parent2 USING (pk)
7728
AND grandparent1.col_varchar_key IS NOT NULL
7730
id select_type table type possible_keys key key_len ref rows Extra
7731
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
7732
2 SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start temporary
7733
2 SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index
7734
2 SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using index condition; End temporary; Using join buffer (Batched Key Access)
7738
(SELECT grandparent1.col_varchar_nokey AS g1
7739
FROM t2 AS grandparent1
7740
WHERE grandparent1.col_varchar_key IN
7741
(SELECT parent1.col_varchar_nokey AS p1
7742
FROM t2 AS parent1 LEFT JOIN t3 AS parent2 USING (pk)
7744
AND grandparent1.col_varchar_key IS NOT NULL
7747
DROP TABLE t1, t2, t3;
7749
pk INTEGER AUTO_INCREMENT,
7750
col_int_key INTEGER ,
7751
col_varchar_key VARCHAR(1) ,
7752
col_varchar_nokey VARCHAR(1) ,
7754
KEY (col_varchar_key,col_int_key)
7756
INSERT INTO t1 (col_int_key,col_varchar_key,col_varchar_nokey) VALUES
7757
(0,'x','x'), (1,'j','j'), (1,'r','r'), (9,'v','v'), (5,'r','r');
7759
pk INTEGER AUTO_INCREMENT,
7760
col_int_key INTEGER ,
7761
col_varchar_key VARCHAR(1) ,
7762
col_varchar_nokey VARCHAR(1) ,
7765
KEY (col_varchar_key,col_int_key)
7766
) AUTO_INCREMENT=10 ENGINE=INNODB;
7767
INSERT INTO t2 (col_int_key, col_varchar_key, col_varchar_nokey) VALUES
7768
(NULL,'x','x'), (NULL,'j','j'), (8,'c','c');
7770
SELECT outr.col_varchar_nokey AS x
7772
WHERE outr.col_varchar_nokey IN
7773
(SELECT innr.col_varchar_nokey AS y
7775
WHERE innr.col_int_key IS NULL)
7776
AND outr.col_varchar_nokey IS NOT NULL
7777
AND NOT col_varchar_key IS NULL;
7781
(SELECT outr.col_varchar_nokey AS x
7783
WHERE outr.col_varchar_nokey IN
7784
(SELECT innr.col_varchar_nokey AS y
7786
WHERE innr.col_int_key IS NULL)
7787
AND outr.col_varchar_nokey IS NOT NULL
7788
AND NOT col_varchar_key IS NULL);
7790
DROP TABLE t1, t2, t3;
7791
# End of test for bug#12797534.
7793
# Bug#12714094: Assert in optimize_semijoin_nests()
7797
col_varchar VARCHAR(10) DEFAULT NULL,
7800
INSERT INTO it VALUES (1, 'g');
7802
SELECT alias1.pk AS field1
7804
LEFT JOIN it AS alias2
7805
ON alias1.col_varchar = alias2.col_varchar
7812
LEFT JOIN it AS alias2
7813
ON alias1.col_varchar = alias2.col_varchar
7818
# End of test for bug#12714094
7820
# Bug#12867557: Valgrind: conditional jump/move at key_cmp
7823
pk INTEGER AUTO_INCREMENT,
7824
col_int_key INTEGER,
7827
) AUTO_INCREMENT=10;
7828
INSERT INTO t1 (col_int_key) VALUES (8);
7830
pk INTEGER AUTO_INCREMENT,
7831
col_int_key INTEGER,
7836
) AUTO_INCREMENT=10;
7837
INSERT INTO t2 (col_int_key, col_time_key)
7839
(8, '22:55:23.019225'), (7, '10:19:31.050677'), (1, '14:40:36.038608'),
7840
(7, '04:37:47.062416'), (9, '19:34:06.054514'), (NULL,'20:35:33.022996'),
7841
(1, NULL), (9, '14:43:37.057393'), (2, '02:23:09.043438'),
7842
(9, '01:22:45.041064'), (2, '00:00:00'), (4, '00:13:25.038482'),
7843
(0, '03:47:16.042671'), (4, '01:41:48.007423'), (8, '00:00:00'),
7844
(NULL, '22:32:04.047407'), (NULL, '16:44:14.028443'), (0, '17:38:37.059754'),
7845
(NULL, '08:46:48.042388'), (8, '14:11:27.044095');
7847
SELECT DISTINCT grandparent1.col_time_key AS g1
7848
FROM t2 AS grandparent1
7849
WHERE grandparent1.col_int_key IN
7850
(SELECT parent1.col_int_key AS p1
7852
AND grandparent1.pk > 9;
7856
(SELECT grandparent1.col_time_key AS g1
7857
FROM t2 AS grandparent1
7858
WHERE grandparent1.col_int_key IN
7859
(SELECT parent1.col_int_key AS p1
7861
AND grandparent1.pk > 9);
7862
DROP TABLE t0, t1, t2;
7863
# End of test for bug#12867557
7865
# Bug#12711441: crash in fix_after_pullout
7869
col_int_nokey int DEFAULT NULL,
7870
col_int_key int DEFAULT NULL,
7871
col_time_key time DEFAULT NULL,
7872
col_varchar_key varchar(1) DEFAULT NULL,
7875
CREATE VIEW v1 AS SELECT * FROM t1;
7877
col_int_key int DEFAULT NULL,
7878
col_varchar_key varchar(1) DEFAULT NULL,
7879
col_varchar_nokey varchar(1) DEFAULT NULL,
7880
KEY col_varchar_key(col_varchar_key, col_int_key)
7884
col_int_key INT DEFAULT NULL,
7888
col_int_nokey INT DEFAULT NULL,
7889
col_varchar_key varchar(1) DEFAULT NULL,
7890
col_varchar_nokey varchar(1) DEFAULT NULL,
7891
KEY col_varchar_key(col_varchar_key)
7894
SELECT alias1.col_time_key AS field1
7896
RIGHT JOIN t3 AS alias2
7897
ON alias2.col_int_key = alias1.col_int_nokey
7898
WHERE alias1.pk >= SOME(
7899
SELECT SQ1_alias1.pk AS SQ1_field1
7900
FROM t3 AS SQ1_alias1
7901
INNER JOIN (t2 AS SQ1_alias2
7902
INNER JOIN t4 AS SQ1_alias3
7903
ON SQ1_alias3.col_varchar_key = SQ1_alias2.col_varchar_nokey)
7904
ON SQ1_alias3.col_int_nokey = SQ1_alias2.col_int_key
7905
WHERE SQ1_alias2.col_varchar_key <= alias1.col_varchar_key
7906
AND SQ1_alias3.col_varchar_nokey <> alias1.col_varchar_key)
7908
SELECT * FROM ts WHERE field1 IN (
7909
SELECT alias1.col_time_key AS field1
7911
RIGHT JOIN t3 AS alias2
7912
ON alias2.col_int_key = alias1.col_int_nokey
7913
WHERE alias1.pk >= SOME(
7914
SELECT SQ1_alias1.pk AS SQ1_field1
7915
FROM t3 AS SQ1_alias1
7916
INNER JOIN (t2 AS SQ1_alias2
7917
INNER JOIN t4 AS SQ1_alias3
7918
ON SQ1_alias3.col_varchar_key = SQ1_alias2.col_varchar_nokey)
7919
ON SQ1_alias3.col_int_nokey = SQ1_alias2.col_int_key
7920
WHERE SQ1_alias2.col_varchar_key <= alias1.col_varchar_key
7921
AND SQ1_alias3.col_varchar_nokey <> alias1.col_varchar_key)
7924
DROP TABLE t1, t2, t3, t4, ts;
7926
# End of test for bug#12711441.
7928
# Bug#12664936: Same query executed as where subquery ...
7931
col_varchar_key VARCHAR(1),
7932
KEY col_varchar_key (col_varchar_key)
7934
INSERT INTO t1 VALUES
7935
('o'), ('w'), ('m'), ('q'),
7936
('f'), ('p'), ('j'), ('c');
7938
col_int_nokey INTEGER,
7939
col_int_key INTEGER,
7940
col_varchar_key varchar(1),
7941
KEY col_int_key (col_int_key)
7943
INSERT INTO t2 VALUES
7944
(8,5,'u'),(4,5,'p'),(8,1,'o'),(NULL,7,'v'),
7945
(1,2,'g'),(2,1,'q'),(NULL,7,'l'),(3,1,'n');
7947
SELECT t2.col_int_nokey, t2.col_varchar_key
7948
FROM t1 JOIN t2 ON t2.col_varchar_key = t1.col_varchar_key
7949
WHERE t2.col_int_key = 1;
7952
WHERE (col_int_nokey, col_varchar_key) IN
7953
(SELECT t2.col_int_nokey, t2.col_varchar_key
7954
FROM t1 JOIN t2 ON t2.col_varchar_key = t1.col_varchar_key
7955
WHERE t2.col_int_key = 1
7957
id select_type table type possible_keys key key_len ref rows Extra
7958
1 SIMPLE t4 ALL NULL NULL NULL NULL 2 Using where
7959
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 9 test.t4.col_int_nokey,test.t4.col_varchar_key 1 NULL
7960
2 MATERIALIZED t2 ref col_int_key col_int_key 5 const 3 Using where
7961
2 MATERIALIZED t1 ref col_varchar_key col_varchar_key 4 test.t2.col_varchar_key 2 Using index
7964
WHERE (col_int_nokey, col_varchar_key) IN
7965
(SELECT t2.col_int_nokey, t2.col_varchar_key
7966
FROM t1 JOIN t2 ON t2.col_varchar_key = t1.col_varchar_key
7967
WHERE t2.col_int_key = 1
7969
col_int_nokey col_varchar_key
7972
DROP TABLE t1, t2, t4;
7973
# End of test for bug#12664936.
7975
# Bug#13340270: assertion table->sort.record_pointers == __null
7979
col_int_key int DEFAULT NULL,
7980
col_varchar_key varchar(1) DEFAULT NULL,
7981
col_varchar_nokey varchar(1) DEFAULT NULL,
7983
KEY col_int_key (col_int_key),
7984
KEY col_varchar_key (col_varchar_key, col_int_key)
7986
INSERT INTO t1 VALUES
8000
SELECT alias1.col_varchar_nokey AS field1
8001
FROM t1 AS alias1 JOIN t1 AS alias2
8002
ON alias2.col_int_key = alias1.pk OR
8003
alias2.col_int_key = alias1.col_int_key
8004
WHERE alias1.pk = 58 OR alias1.col_varchar_key = 'o'
8009
WHERE (field1) IN (SELECT alias1.col_varchar_nokey AS field1
8010
FROM t1 AS alias1 JOIN t1 AS alias2
8011
ON alias2.col_int_key = alias1.pk OR
8012
alias2.col_int_key = alias1.col_int_key
8013
WHERE alias1.pk = 58 OR alias1.col_varchar_key = 'o'
8015
id select_type table type possible_keys key key_len ref rows Extra
8016
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
8017
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 4 test.t2.field1 1 NULL
8018
2 MATERIALIZED alias1 index_merge PRIMARY,col_int_key,col_varchar_key col_varchar_key,PRIMARY 4,4 NULL 2 Using sort_union(col_varchar_key,PRIMARY); Using where
8019
2 MATERIALIZED alias2 ALL col_int_key NULL NULL NULL 12 Range checked for each record (index map: 0x2)
8022
WHERE (field1) IN (SELECT alias1.col_varchar_nokey AS field1
8023
FROM t1 AS alias1 JOIN t1 AS alias2
8024
ON alias2.col_int_key = alias1.pk OR
8025
alias2.col_int_key = alias1.col_int_key
8026
WHERE alias1.pk = 58 OR alias1.col_varchar_key = 'o'
8032
# End of test for bug#13340270.
8034
# Bug#13335319: Seg fault when analyzing FirstMatch semi-join strategy
8036
CREATE TABLE ot1(a INTEGER);
8037
INSERT INTO ot1 VALUES(1), (2), (3);
8038
CREATE TABLE ot2(a INTEGER);
8039
INSERT INTO ot2 VALUES(1), (2), (4), (6), (8), (10);
8040
CREATE TABLE it1(a INTEGER);
8041
INSERT INTO it1 VALUES(1), (3), (5), (7);
8042
CREATE TABLE it2(a INTEGER);
8043
INSERT INTO it2 VALUES(1), (3), (5), (7), (9);
8044
explain SELECT ot1.a, ot2.a
8046
WHERE ot1.a IN (SELECT a FROM it1) AND
8047
ot2.a IN (SELECT a FROM it2);
8048
id select_type table type possible_keys key key_len ref rows Extra
8049
1 SIMPLE ot1 ALL NULL NULL NULL NULL 3 Using where
8050
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.ot1.a 1 NULL
8051
1 SIMPLE <subquery3> ALL NULL NULL NULL NULL NULL NULL
8052
1 SIMPLE ot2 ALL NULL NULL NULL NULL 6 Using where
8053
2 MATERIALIZED it1 ALL NULL NULL NULL NULL 4 NULL
8054
3 MATERIALIZED it2 ALL NULL NULL NULL NULL 5 NULL
8057
WHERE ot1.a IN (SELECT a FROM it1) AND
8058
ot2.a IN (SELECT a FROM it2);
8062
DROP TABLE ot1, ot2, it1, it2;
8063
# End of test for bug#13335319.
8065
# Bug#13334882: Assertion keypart_map failed in MyIsam function
8069
col_int_nokey INT NOT NULL,
8070
col_int_key INT NOT NULL,
8072
KEY col_int_key (col_int_key)
8074
INSERT INTO t1 VALUES
8088
col_int_nokey int NOT NULL,
8089
col_int_key int NOT NULL,
8091
KEY col_int_key (col_int_key)
8093
INSERT INTO t2 VALUES
8096
SELECT grandparent1.col_int_nokey AS g1
8097
FROM t1 AS grandparent1
8098
WHERE (grandparent1.col_int_nokey, grandparent1.col_int_key) IN
8099
(SELECT parent1.col_int_key AS p1,
8100
parent1.col_int_key AS p2
8102
LEFT JOIN t2 AS parent2
8103
ON parent1.col_int_nokey = parent2.col_int_key
8105
AND grandparent1.col_int_key <> 3
8107
explain SELECT * FROM t3
8109
(SELECT grandparent1.col_int_nokey AS g1
8110
FROM t1 AS grandparent1
8111
WHERE (grandparent1.col_int_nokey, grandparent1.col_int_key) IN
8112
(SELECT parent1.col_int_key AS p1,
8113
parent1.col_int_key AS p2
8115
LEFT JOIN t2 AS parent2
8116
ON parent1.col_int_nokey = parent2.col_int_key
8118
AND grandparent1.col_int_key <> 3
8120
id select_type table type possible_keys key key_len ref rows Extra
8121
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
8122
2 DEPENDENT SUBQUERY grandparent1 ref col_int_key col_int_key 4 func 2 Using index condition; Using where
8123
2 DEPENDENT SUBQUERY <subquery3> eq_ref <auto_key> <auto_key> 8 test.grandparent1.col_int_nokey,test.grandparent1.col_int_nokey 1 NULL
8124
3 MATERIALIZED parent1 ref col_int_key col_int_key 4 func 2 NULL
8125
3 MATERIALIZED parent2 ref col_int_key col_int_key 4 test.parent1.col_int_nokey 2 Using index
8126
explain format=json SELECT * FROM t3
8128
(SELECT grandparent1.col_int_nokey AS g1
8129
FROM t1 AS grandparent1
8130
WHERE (grandparent1.col_int_nokey, grandparent1.col_int_key) IN
8131
(SELECT parent1.col_int_key AS p1,
8132
parent1.col_int_key AS p2
8134
LEFT JOIN t2 AS parent2
8135
ON parent1.col_int_nokey = parent2.col_int_key
8137
AND grandparent1.col_int_key <> 3
8144
"message": "Impossible WHERE noticed after reading const tables",
8145
"attached_subqueries": [
8154
"table_name": "grandparent1",
8155
"access_type": "ref",
8159
"key": "col_int_key",
8169
"index_condition": "(`test`.`grandparent1`.`col_int_key` <> 3)",
8170
"attached_condition": "(((`test`.`grandparent1`.`col_int_key` = `test`.`grandparent1`.`col_int_nokey`) and (<cache>('8') = `test`.`grandparent1`.`col_int_nokey`)) and ((`test`.`grandparent1`.`col_int_nokey` is not null) and (`test`.`grandparent1`.`col_int_nokey` is not null)))"
8175
"table_name": "<subquery3>",
8176
"access_type": "eq_ref",
8177
"key": "<auto_key>",
8180
"test.grandparent1.col_int_nokey",
8181
"test.grandparent1.col_int_nokey"
8184
"materialized_from_subquery": {
8185
"using_temporary_table": true,
8190
"table_name": "parent1",
8191
"access_type": "ref",
8195
"key": "col_int_key",
8209
"table_name": "parent2",
8210
"access_type": "ref",
8214
"key": "col_int_key",
8220
"test.parent1.col_int_nokey"
8240
Note 1003 /* select#1 */ select '8' AS `g1` from dual where (not(<in_optimizer>('8',<exists>(/* select#2 */ select 1 from `test`.`t1` `grandparent1` semi join (`test`.`t1` `parent1` left join `test`.`t2` `parent2` on((`test`.`parent1`.`col_int_nokey` = `test`.`parent2`.`col_int_key`))) where ((`test`.`grandparent1`.`col_int_key` = `test`.`grandparent1`.`col_int_nokey`) and (`<subquery3>`.`p1` = `test`.`grandparent1`.`col_int_nokey`) and (`<subquery3>`.`p2` = `test`.`grandparent1`.`col_int_nokey`) and (`test`.`grandparent1`.`col_int_key` <> 3) and (<cache>('8') = `test`.`grandparent1`.`col_int_nokey`))))))
8243
(SELECT grandparent1.col_int_nokey AS g1
8244
FROM t1 AS grandparent1
8245
WHERE (grandparent1.col_int_nokey, grandparent1.col_int_key) IN
8246
(SELECT parent1.col_int_key AS p1,
8247
parent1.col_int_key AS p2
8249
LEFT JOIN t2 AS parent2
8250
ON parent1.col_int_nokey = parent2.col_int_key
8252
AND grandparent1.col_int_key <> 3
8255
DROP TABLE t1, t2, t3;
8256
# End of test for bug#13334882.
8258
# Bug#13339643: Assertion on JOIN::flatten_subqueries on second execution
8262
col_varchar_nokey VARCHAR(1)
8264
INSERT INTO t1 VALUES
8267
CREATE TABLE t2 LIKE t1;
8268
INSERT INTO t2 VALUES
8271
CREATE VIEW v_t2 AS SELECT * FROM t2;
8272
CREATE TABLE t3 LIKE t1;
8273
INSERT INTO t3 VALUES
8276
explain SELECT alias1.col_varchar_nokey
8278
INNER JOIN v_t2 AS alias2
8279
ON alias2.col_int_nokey = alias1.col_int_nokey AND
8280
'o' IN (SELECT col_varchar_nokey
8282
id select_type table type possible_keys key key_len ref rows Extra
8283
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
8284
1 SIMPLE alias1 ALL NULL NULL NULL NULL 2 NULL
8285
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
8286
SELECT alias1.col_varchar_nokey
8288
INNER JOIN v_t2 AS alias2
8289
ON alias2.col_int_nokey = alias1.col_int_nokey AND
8290
'o' IN (SELECT col_varchar_nokey
8294
PREPARE stmt FROM "SELECT alias1.col_varchar_nokey
8296
INNER JOIN v_t2 AS alias2
8297
ON alias2.col_int_nokey = alias1.col_int_nokey AND
8298
'o' IN (SELECT col_varchar_nokey
8304
DROP TABLE t1, t2, t3;
8305
# End of test for bug#13339643.
8307
# Bug#13424134: Wrong result on JOIN + nested WHERE ... IN clauses
8311
col_int_nokey int NOT NULL,
8312
col_int_key int NOT NULL,
8314
KEY col_int_key (col_int_key)
8316
INSERT INTO t1 VALUES
8317
(10,1,7), (13,7,3), (18,0,1), (23,8,1);
8320
col_int_key int NOT NULL,
8322
KEY col_int_key (col_int_key)
8324
INSERT INTO t2 VALUES (1,7);
8325
EXPLAIN SELECT t1a.*
8327
JOIN t1 AS t1b USING ( col_int_nokey )
8328
WHERE t1a.col_int_key IN (
8331
WHERE col_int_key IN (
8332
SELECT col_int_nokey
8336
id select_type table type possible_keys key key_len ref rows Extra
8337
1 SIMPLE t2 system PRIMARY,col_int_key NULL NULL NULL 1 NULL
8338
1 SIMPLE t1a ref col_int_key col_int_key 4 const 1 NULL
8339
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where; FirstMatch(t1a)
8340
1 SIMPLE t1b ALL NULL NULL NULL NULL 4 Using where
8343
JOIN t1 AS t1b USING ( col_int_nokey )
8344
WHERE t1a.col_int_key IN (
8347
WHERE col_int_key IN (
8348
SELECT col_int_nokey
8352
pk col_int_nokey col_int_key
8355
ALTER TABLE t1 ENGINE=Innodb;
8356
ALTER TABLE t2 ENGINE=Innodb;
8359
JOIN t1 AS t1b USING ( col_int_nokey )
8360
WHERE t1a.col_int_key IN (
8363
WHERE col_int_key IN (
8364
SELECT col_int_nokey
8368
pk col_int_nokey col_int_key
8372
# End of test for bug#13424134.
8374
# Bug#13414014: Extra rows in result on semijoin query with where ...
8383
INSERT INTO t1 VALUES
8384
(NULL,8,'x','x'), (7,4,'q','q'), (6,8,'c','c');
8389
INSERT INTO t2 VALUES
8390
('c'), (NULL), ('x'), ('q');
8396
WHERE it.a = 'x' OR it.c > it.d
8399
id select_type table type possible_keys key key_len ref rows Extra
8400
1 SIMPLE ot index a a 4 NULL 4 Using where; Using index
8401
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 8 test.ot.a,test.ot.a 1 NULL
8402
2 MATERIALIZED it ALL a NULL NULL NULL 3 Using where
8408
WHERE it.a = 'x' OR it.c > it.d
8415
# End of test for bug#13414014.
8417
# Bug#13545215: Missing rows on nested in-subquery with materialization
8421
col_varchar_key varchar(1),
8422
col_varchar_nokey varchar(1),
8423
KEY col_int_key (col_int_key),
8424
KEY col_varchar_key (col_varchar_key,col_int_key)
8426
INSERT INTO t1 VALUES
8427
(8,'x','x'), (0,'p','p'), (8,'c','c');
8430
col_varchar_key varchar(1),
8431
col_varchar_nokey varchar(1),
8433
KEY col_varchar_key (col_varchar_key)
8435
INSERT INTO t2 VALUES
8436
(1,'v','v'), (2,'v','v'), (3,'c','c'), (4,NULL,NULL),
8437
(5,'x','x'), (6,'i','i'), (7,'e','e'), (8,'p','p');
8441
INSERT INTO t3 VALUES (7);
8442
explain SELECT grandparent1.col_varchar_nokey
8443
FROM t1 AS grandparent1 JOIN t1 AS grandparent2 USING (col_int_key)
8444
WHERE grandparent1.col_varchar_key IN (
8445
SELECT col_varchar_nokey
8447
WHERE col_varchar_key IN (
8448
SELECT child1.col_varchar_nokey
8449
FROM t2 AS child1 LEFT JOIN t3 AS child2
8450
ON child1.pk < child2.col_int_nokey
8453
id select_type table type possible_keys key key_len ref rows Extra
8454
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where
8455
1 SIMPLE grandparent1 ref col_int_key,col_varchar_key col_varchar_key 4 <subquery2>.col_varchar_nokey 1 Using index condition; Using join buffer (Batched Key Access)
8456
1 SIMPLE grandparent2 ref col_int_key col_int_key 5 test.grandparent1.col_int_key 2 Using index
8457
2 MATERIALIZED child1 ALL NULL NULL NULL NULL 8 Using where
8458
2 MATERIALIZED child2 ALL NULL NULL NULL NULL 1 Using where
8459
2 MATERIALIZED parent1 ref col_varchar_key col_varchar_key 4 test.child1.col_varchar_nokey 2 Using join buffer (Batched Key Access)
8460
SELECT grandparent1.col_varchar_nokey
8461
FROM t1 AS grandparent1 JOIN t1 AS grandparent2 USING (col_int_key)
8462
WHERE grandparent1.col_varchar_key IN (
8463
SELECT col_varchar_nokey
8465
WHERE col_varchar_key IN (
8466
SELECT child1.col_varchar_nokey
8467
FROM t2 AS child1 LEFT JOIN t3 AS child2
8468
ON child1.pk < child2.col_int_nokey
8477
DROP TABLE t1, t2, t3;
8478
# End of test for bug#13545215.
8480
# BUG#13553211 - MISSING ROWS ON SELECT WITH IN-SUBQUERY AND
8481
# MATERIALIZATION + SEMIJOIN ON
8484
col_int_key int(11) DEFAULT NULL,
8485
col_varchar_key varchar(1) DEFAULT NULL,
8486
col_varchar_nokey varchar(1) DEFAULT NULL,
8487
KEY col_int_key (col_int_key),
8488
KEY col_varchar_key (col_varchar_key,col_int_key)
8490
INSERT INTO t1 VALUES (4,'v','v');
8491
INSERT INTO t1 VALUES (62,'v','v');
8492
INSERT INTO t1 VALUES (7,'c','c');
8493
INSERT INTO t1 VALUES (1,NULL,NULL);
8495
alias1.col_varchar_nokey AS a1_nokey,
8496
alias1.col_varchar_key AS a1_key,
8497
alias2.col_varchar_nokey AS a2_nokey
8499
t1 AS alias1, t1 AS alias2
8501
(alias1.col_varchar_nokey,alias2.col_varchar_nokey)
8505
SQ2_alias2.col_varchar_nokey, SQ2_alias1.col_varchar_key
8507
t1 AS SQ2_alias1, t1 AS SQ2_alias2
8510
id select_type table type possible_keys key key_len ref rows Extra
8511
1 SIMPLE alias1 ALL NULL NULL NULL NULL 4 Using where
8512
1 SIMPLE alias2 ALL NULL NULL NULL NULL 4 Using where
8513
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 8 test.alias1.col_varchar_nokey,test.alias2.col_varchar_nokey 1 NULL
8514
2 MATERIALIZED SQ2_alias1 index col_varchar_key col_varchar_key 9 NULL 4 Using index
8515
2 MATERIALIZED SQ2_alias2 ALL NULL NULL NULL NULL 4 NULL
8517
alias1.col_varchar_nokey AS a1_nokey,
8518
alias1.col_varchar_key AS a1_key,
8519
alias2.col_varchar_nokey AS a2_nokey
8521
t1 AS alias1, t1 AS alias2
8523
(alias1.col_varchar_nokey,alias2.col_varchar_nokey)
8527
SQ2_alias2.col_varchar_nokey, SQ2_alias1.col_varchar_key
8529
t1 AS SQ2_alias1, t1 AS SQ2_alias2
8532
a1_nokey a1_key a2_nokey
8544
# Bug#13541406: Wrong result with loosescan on select .. where .. in
8547
col_int_key INT NOT NULL,
8548
col_varchar_nokey VARCHAR(1) NOT NULL,
8549
KEY col_int_key (col_int_key)
8551
INSERT INTO t1 VALUES
8552
(7,'v'), (0,'s'), (9,'l'), (3,'y'), (4,'c'), (2,'i'), (5,'h'), (3,'q'),
8553
(1,'a'), (3,'v'), (6,'u'), (7,'s'), (5,'y'), (1,'z'), (204,'h'), (224,'p'),
8554
(9,'e'), (5,'i'), (0,'y'), (3,'w');
8557
col_int_key INT NOT NULL,
8558
col_varchar_key VARCHAR(1) NOT NULL,
8559
col_varchar_nokey VARCHAR(1) NOT NULL,
8561
KEY col_int_key (col_int_key),
8562
KEY col_varchar_key (col_varchar_key,col_int_key)
8564
INSERT INTO t2 VALUES
8565
(1,0,'j','j'), (2,8,'v','v'), (3,1,'c','c'), (4,8,'m','m'),
8566
(5,9,'d','d'), (6,24,'d','d'), (7,6,'y','y'), (8,1,'t','t'),
8567
(9,6,'d','d'), (10,2,'s','s'), (11,4,'r','r'), (12,8,'m','m'),
8568
(13,4,'b','b'), (14,4,'x','x'), (15,7,'g','g'), (16,4,'p','p'),
8569
(17,1,'q','q'), (18,9,'w','w'), (19,4,'d','d'), (20,8,'e','e');
8570
# This query should never use a LooseScan strategy
8571
explain SELECT ot1.col_int_key AS field1
8572
FROM t2 AS ot1, t2 AS ot2
8573
WHERE (ot1.col_varchar_key, ot2.col_varchar_nokey) IN (
8574
SELECT it2.col_varchar_nokey, it1.col_varchar_key
8575
FROM t2 AS it1 JOIN t1 AS it2 ON it2.col_int_key = it1.pk);
8576
id select_type table type possible_keys key key_len ref rows Extra
8577
1 SIMPLE ot2 ALL NULL NULL NULL NULL 20 Start temporary
8578
1 SIMPLE it1 ref PRIMARY,col_varchar_key col_varchar_key 3 test.ot2.col_varchar_nokey 1 Using index
8579
1 SIMPLE it2 ref col_int_key col_int_key 4 test.it1.pk 1 Using join buffer (Batched Key Access)
8580
1 SIMPLE ot1 ref col_varchar_key col_varchar_key 3 test.it2.col_varchar_nokey 1 Using index; End temporary
8581
SELECT ot1.col_int_key AS field1
8582
FROM t2 AS ot1, t2 AS ot2
8583
WHERE (ot1.col_varchar_key, ot2.col_varchar_nokey) IN (
8584
SELECT it2.col_varchar_nokey, it1.col_varchar_key
8585
FROM t2 AS it1 JOIN t1 AS it2 ON it2.col_int_key = it1.pk);
8604
# End of test for bug#13541406.
8606
# Bug#13576391: Missing rows on select with in-subquery and
8607
# batched-key-access=on and semijoin
8610
col_int_nokey int NOT NULL,
8611
col_varchar_key varchar(1) NOT NULL,
8612
KEY col_varchar_key (col_varchar_key)
8614
INSERT INTO t1 VALUES
8615
(1,'v'), (7,'s'), (4,'l'), (7,'y'), (0,'c'), (2,'i'), (9,'h'), (4,'q'),
8616
(0,'a'), (9,'v'), (1,'u'), (3,'s'), (8,'y'), (8,'z'), (18,'h'), (84,'p'),
8617
(6,'e'), (3,'i'), (6,'y'), (6,'w');
8619
col_int_nokey int NOT NULL,
8620
col_varchar_nokey varchar(1) NOT NULL
8622
INSERT INTO t2 VALUES
8623
(4,'j'), (6,'v'), (3,'c'), (5,'m'), (3,'d'), (246,'d'), (2,'y'), (9,'t'),
8624
(3,'d'), (8,'s'), (1,'r'), (8,'m'), (8,'b'), (5,'x'), (7,'g'), (5,'p'),
8625
(1,'q'), (6,'w'), (2,'d'), (9,'e');
8626
explain SELECT col_varchar_nokey
8628
WHERE col_varchar_nokey IN (
8629
SELECT col_varchar_key
8631
WHERE it.col_int_nokey <= it.col_int_nokey
8632
AND NOT ot.col_int_nokey < 2
8634
ORDER BY col_varchar_nokey;
8635
id select_type table type possible_keys key key_len ref rows Extra
8636
1 SIMPLE ot ALL NULL NULL NULL NULL 20 Using where; Using temporary; Using filesort
8637
1 SIMPLE it ref col_varchar_key col_varchar_key 3 test.ot.col_varchar_nokey 1 FirstMatch(ot); Using join buffer (Batched Key Access)
8638
SELECT col_varchar_nokey
8640
WHERE col_varchar_nokey IN (
8641
SELECT col_varchar_key
8643
WHERE it.col_int_nokey <= it.col_int_nokey
8644
AND NOT ot.col_int_nokey < 2
8646
ORDER BY col_varchar_nokey;
8655
ALTER TABLE t1 ENGINE=MyISAM;
8656
ALTER TABLE t2 ENGINE=MyISAM;
8657
explain SELECT col_varchar_nokey
8659
WHERE col_varchar_nokey IN (
8660
SELECT col_varchar_key
8662
WHERE it.col_int_nokey <= it.col_int_nokey
8663
AND NOT ot.col_int_nokey < 2
8665
ORDER BY col_varchar_nokey;
8666
id select_type table type possible_keys key key_len ref rows Extra
8667
1 SIMPLE ot ALL NULL NULL NULL NULL 20 Using where; Using temporary; Using filesort
8668
1 SIMPLE it ref col_varchar_key col_varchar_key 3 test.ot.col_varchar_nokey 2 FirstMatch(ot); Using join buffer (Batched Key Access)
8669
SELECT col_varchar_nokey
8671
WHERE col_varchar_nokey IN (
8672
SELECT col_varchar_key
8674
WHERE it.col_int_nokey <= it.col_int_nokey
8675
AND NOT ot.col_int_nokey < 2
8677
ORDER BY col_varchar_nokey;
8686
ALTER TABLE t1 ENGINE=Memory;
8687
ALTER TABLE t2 ENGINE=Memory;
8688
explain SELECT col_varchar_nokey
8690
WHERE col_varchar_nokey IN (
8691
SELECT col_varchar_key
8693
WHERE it.col_int_nokey <= it.col_int_nokey
8694
AND NOT ot.col_int_nokey < 2
8696
ORDER BY col_varchar_nokey;
8697
id select_type table type possible_keys key key_len ref rows Extra
8698
1 SIMPLE ot ALL NULL NULL NULL NULL 20 Using where; Using filesort
8699
1 SIMPLE it ref col_varchar_key col_varchar_key 3 test.ot.col_varchar_nokey 2 FirstMatch(ot)
8700
SELECT col_varchar_nokey
8702
WHERE col_varchar_nokey IN (
8703
SELECT col_varchar_key
8705
WHERE it.col_int_nokey <= it.col_int_nokey
8706
AND NOT ot.col_int_nokey < 2
8708
ORDER BY col_varchar_nokey;
8718
# End of test for bug#13576391.
8720
# Bug #13589848 "MISSING ROW ON SELECT WITH NESTED IN CLAUSES WHEN LOOSESCAN=ON"
8724
col_varchar_key VARCHAR(1),
8725
col_varchar_nokey VARCHAR(1),
8726
KEY (col_varchar_key)
8728
INSERT INTO t1 VALUES (100,'m','m'),
8729
(200,'b','b'), (300,'x','x');
8731
col_varchar_key VARCHAR(1),
8732
col_varchar_nokey VARCHAR(1),
8733
KEY (col_varchar_key)
8735
INSERT INTO t2 VALUES ('b','b');
8737
col_varchar_key VARCHAR(1),
8738
col_varchar_nokey VARCHAR(1),
8739
KEY (col_varchar_key)
8741
INSERT INTO t3 VALUES ('k','k');
8742
EXPLAIN SELECT GP1.id
8743
FROM t1 AS GP1 JOIN t3 AS GP2
8744
ON GP2.col_varchar_key <> GP1.col_varchar_nokey
8745
WHERE (GP1.col_varchar_nokey, GP1.col_varchar_nokey)
8747
SELECT col_varchar_nokey, col_varchar_nokey
8749
WHERE col_varchar_nokey
8750
IN ( SELECT col_varchar_key
8751
FROM t2 LEFT JOIN t3 USING (col_varchar_key) )
8754
id select_type table type possible_keys key key_len ref rows Extra
8755
1 SIMPLE GP2 system NULL NULL NULL NULL 1 NULL
8756
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where
8757
1 SIMPLE GP1 ALL NULL NULL NULL NULL 3 Using where
8758
2 MATERIALIZED t2 index col_varchar_key col_varchar_key 4 NULL 1 Using index
8759
2 MATERIALIZED t3 ref col_varchar_key col_varchar_key 4 test.t2.col_varchar_key 2 Using index
8760
2 MATERIALIZED t1 ALL NULL NULL NULL NULL 3 Using where
8762
FROM t1 AS GP1 JOIN t3 AS GP2
8763
ON GP2.col_varchar_key <> GP1.col_varchar_nokey
8764
WHERE (GP1.col_varchar_nokey, GP1.col_varchar_nokey)
8766
SELECT col_varchar_nokey, col_varchar_nokey
8768
WHERE col_varchar_nokey
8769
IN ( SELECT col_varchar_key
8770
FROM t2 LEFT JOIN t3 USING (col_varchar_key) )
8775
DROP TABLE t1,t2,t3;
8777
# Bug #13596176: Missing row on select with nested in clause when
8778
# matr=on and bnl=off + MyISAM
8781
int_key int DEFAULT NULL,
8782
vc_key varchar(1) DEFAULT NULL,
8783
vc_nokey varchar(1) DEFAULT NULL,
8784
KEY int_key (int_key),
8785
KEY vc_key (vc_key, int_key)
8787
INSERT INTO t1 VALUES
8788
(8,'x','x'), (7,'d','d'), (1,'r','r'), (7,'f','f'),
8789
(9,'y','y'), (NULL,'u','u'), (1,'m','m'), (9,NULL,NULL),
8790
(2,'o','o'), (9,'w','w'), (2,'m','m'), (4,'q','q'),
8791
(0,NULL,NULL), (4,'d','d'), (8,'g','g'), (NULL,'x','x'),
8792
(NULL,'f','f'), (0,'p','p'), (NULL,'j','j'), (8,'c','c');
8794
int_key int DEFAULT NULL,
8795
vc_key varchar(1) DEFAULT NULL,
8796
KEY int_key (int_key),
8797
KEY vc_key (vc_key, int_key)
8799
INSERT INTO t2 VALUES (8,'g');
8800
explain SELECT vc_key
8802
WHERE (vc_nokey, vc_key ) IN
8803
(SELECT vc_nokey, vc_nokey
8806
(SELECT child1.vc_key
8807
FROM t2 AS child1 JOIN t1 AS child2 USING (int_key)
8810
id select_type table type possible_keys key key_len ref rows Extra
8811
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where
8812
1 SIMPLE outr ref vc_key vc_key 4 <subquery2>.vc_nokey 3 Using where; Using join buffer (Batched Key Access)
8813
2 MATERIALIZED child1 index int_key,vc_key vc_key 9 NULL 1 Using where; Using index
8814
2 MATERIALIZED child2 ref int_key int_key 5 test.child1.int_key 3 Using index
8815
2 MATERIALIZED middle ALL NULL NULL NULL NULL 20 Using where
8818
WHERE (vc_nokey, vc_key ) IN
8819
(SELECT vc_nokey, vc_nokey
8822
(SELECT child1.vc_key
8823
FROM t2 AS child1 JOIN t1 AS child2 USING (int_key)
8829
# End of test for bug#13596176.
8831
# BUG#11754478: MAX/MIN + SUBQUERY + AND FAILS TO RETURN ANY ROWS
8832
# BUG#13599013: MAX/MIN + SUBQUERY IN WHERE CLAUSE MATCHING NO
8833
# ROWS + INDEX DOES NOT RETURN NULL
8836
pk int(11) PRIMARY KEY,
8838
KEY int_key (int_key)
8840
INSERT INTO t1 VALUES (1,0),(2,0),(3,2),(4,0),(5,3),(6,0);
8841
SELECT MIN(int_key) FROM t1 WHERE (4, 4) IN (SELECT 1, 2);
8844
SELECT MIN(int_key) FROM t1 WHERE (4, 4) IN (SELECT 4, 4);
8847
SELECT MIN(pk) FROM t1 WHERE pk IN (SELECT int_key FROM t1) AND pk = 6;
8851
# BUG#13726217: Crash in Item_ident::fix_after_pullout()
8852
CREATE TABLE t1(a INTEGER) engine=innodb;
8853
INSERT INTO t1 VALUES (0);
8860
(SELECT elt(a, 0) AS b
8868
# End of test for bug#13726217.
8869
# BUG#13773979: Missing rows on second execution of prepared statement
8873
col_varchar_key VARCHAR(1)
8875
INSERT INTO t1 VALUES
8876
(1,7,'v'), (7,0,'s'), (4,9,'l'), (7,3,'y'),
8877
(2,2,'i'), (9,5,'h'), (0,1,'a'), (9,3,'v');
8878
CREATE VIEW v1 AS SELECT * FROM t1;
8881
WHERE col_int_key IN (
8882
SELECT alias1.col_int_nokey AS field1
8884
WHERE alias1.col_varchar_key < 'v'
8886
col_int_nokey col_int_key col_varchar_key
8891
prepare stmt FROM "SELECT *
8893
WHERE col_int_key IN (
8894
SELECT alias1.col_int_nokey AS field1
8896
WHERE alias1.col_varchar_key < 'v'
8899
col_int_nokey col_int_key col_varchar_key
8905
col_int_nokey col_int_key col_varchar_key
8910
DEALLOCATE PREPARE stmt;
8913
# End of test for bug#13773979.
8915
# BUG#13685026 ASSERTION CUR_SJ_INNER_TABLES == 0 IN
8916
# --OPTIMIZE_TABLE_ORDER::CHOOSE_TABLE_ORDER
8919
col_int_key INT(11) NOT NULL,
8920
col_datetime_key DATETIME NOT NULL,
8921
col_varchar_key VARCHAR(1) NOT NULL,
8922
col_varchar_nokey VARCHAR(1) NOT NULL,
8923
KEY col_int_key (col_int_key),
8924
KEY col_datetime_key (col_datetime_key),
8925
KEY col_varchar_key (col_varchar_key,col_int_key)
8927
INSERT INTO t1 VALUES (0,'2002-02-13 17:30:06','j','j');
8928
INSERT INTO t1 VALUES (8,'2008-09-27 00:34:58','v','v');
8930
col_int_key INT(11) NOT NULL,
8931
col_datetime_key DATETIME NOT NULL,
8932
col_varchar_key VARCHAR(1) NOT NULL,
8933
col_varchar_nokey VARCHAR(1) NOT NULL,
8934
KEY col_int_key (col_int_key),
8935
KEY col_datetime_key (col_datetime_key),
8936
KEY col_varchar_key (col_varchar_key,col_int_key)
8938
INSERT INTO t2 VALUES (7,'2003-08-21 00:00:00','b','b');
8939
SET @old_depth=@@optimizer_search_depth;
8940
SET optimizer_search_depth=4;
8941
EXPLAIN SELECT col_datetime_key
8943
WHERE col_datetime_key IN (
8944
SELECT alias1.col_datetime_key
8946
LEFT JOIN t1 as alias3
8947
STRAIGHT_JOIN ( t2 AS alias4
8949
ON alias5.col_varchar_key <= alias4.col_varchar_nokey )
8950
ON alias5.col_int_key < alias4.col_int_key
8951
ON alias5.col_varchar_key = alias4.col_varchar_key
8953
id select_type table type possible_keys key key_len ref rows Extra
8954
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where
8955
1 SIMPLE outr ref col_datetime_key col_datetime_key 5 <subquery2>.col_datetime_key 2 Using index
8956
2 MATERIALIZED alias1 index NULL col_datetime_key 5 NULL 2 Using index
8957
2 MATERIALIZED alias4 ALL col_int_key,col_varchar_key NULL NULL NULL 1 NULL
8958
2 MATERIALIZED alias5 ref col_int_key,col_varchar_key col_varchar_key 3 test.alias4.col_varchar_key 1 Using where; Using index
8959
2 MATERIALIZED alias3 index NULL col_int_key 4 NULL 2 Using index
8960
SELECT col_datetime_key
8962
WHERE col_datetime_key IN (
8963
SELECT alias1.col_datetime_key
8965
LEFT JOIN t1 as alias3
8966
STRAIGHT_JOIN ( t2 AS alias4
8968
ON alias5.col_varchar_key <= alias4.col_varchar_nokey )
8969
ON alias5.col_int_key < alias4.col_int_key
8970
ON alias5.col_varchar_key = alias4.col_varchar_key
8976
SET @@optimizer_search_depth=@old_depth;
8978
# BUG#13848789: SEGFAULT IN JOIN_READ_NEXT_SAME AT
8979
# SQL/SQL_EXECUTOR.CC ON HAVING...IN...JOIN
8983
col_varchar_key VARCHAR(1),
8984
KEY col_int_key (col_int_key),
8985
KEY col_varchar_key (col_varchar_key)
8987
INSERT INTO t1 VALUES (8,'x');
8989
col_varchar_key VARCHAR(1),
8990
KEY col_varchar_key (col_varchar_key)
8992
INSERT INTO t2 VALUES ('x'), ('y');
8993
explain SELECT MIN(col_int_key)
8996
SELECT t1_inner.col_int_key, MAX(t1_inner.col_int_key)
8997
FROM t1 as t1_inner JOIN t2
8998
ON t2.col_varchar_key = t1_inner.col_varchar_key
9000
id select_type table type possible_keys key key_len ref rows Extra
9001
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
9002
2 SUBQUERY t1_inner system col_varchar_key NULL NULL NULL 1 NULL
9003
2 SUBQUERY t2 ref col_varchar_key col_varchar_key 4 const 1 Using index
9004
SELECT MIN(col_int_key)
9007
SELECT t1_inner.col_int_key, MAX(t1_inner.col_int_key)
9008
FROM t1 as t1_inner JOIN t2
9009
ON t2.col_varchar_key = t1_inner.col_varchar_key
9013
# Bug#13838810: Segfault in evaluate_null_complemented_join_record
9016
col_int_nokey int DEFAULT NULL,
9017
col_int_key int DEFAULT NULL,
9018
col_varchar_key varchar(1) DEFAULT NULL,
9020
KEY col_int_key (col_int_key),
9021
KEY col_varchar_key (col_varchar_key,col_int_key)
9023
INSERT INTO t1 VALUES (10,NULL,8,'x');
9026
col_varchar_nokey varchar(1) DEFAULT NULL,
9029
INSERT INTO t2 VALUES (1,'x');
9032
col_varchar_key varchar(1) DEFAULT NULL,
9033
col_varchar_nokey varchar(1) DEFAULT NULL,
9035
KEY col_varchar_key (col_varchar_key)
9037
INSERT INTO t3 VALUES
9038
(1,'v','v'), (2,'v','v'), (3,'c','c'), (4,NULL,NULL);
9039
EXPLAIN SELECT table1.pk,table2.pk, table3.pk
9041
LEFT JOIN t1 AS table2
9042
LEFT JOIN t1 AS table3
9043
ON table3.col_int_key = table2.col_int_key
9044
ON table3.pk = table2.col_int_nokey AND
9045
table1.col_varchar_nokey IN (
9046
SELECT subquery3_t1.col_varchar_nokey
9047
FROM t3 AS subquery3_t1
9048
LEFT JOIN t1 AS subquery3_t2
9049
ON subquery3_t2.col_varchar_key = subquery3_t1.col_varchar_key
9050
WHERE subquery3_t2.col_int_nokey <> 9
9053
id select_type table type possible_keys key key_len ref rows Extra
9054
1 SIMPLE table1 ALL NULL NULL NULL NULL 1 NULL
9055
1 SIMPLE table2 ALL col_int_key NULL NULL NULL 1 Using where
9056
1 SIMPLE table3 eq_ref PRIMARY,col_int_key PRIMARY 4 test.table2.col_int_nokey 1 Using where
9057
1 SIMPLE subquery3_t2 ALL col_varchar_key NULL NULL NULL 1 Using where
9058
1 SIMPLE subquery3_t1 ref col_varchar_key col_varchar_key 4 test.subquery3_t2.col_varchar_key 1 Using where; FirstMatch(table3)
9059
SELECT table1.pk,table2.pk, table3.pk
9061
LEFT JOIN t1 AS table2
9062
LEFT JOIN t1 AS table3
9063
ON table3.col_int_key = table2.col_int_key
9064
ON table3.pk = table2.col_int_nokey AND
9065
table1.col_varchar_nokey IN (
9066
SELECT subquery3_t1.col_varchar_nokey
9067
FROM t3 AS subquery3_t1
9068
LEFT JOIN t1 AS subquery3_t2
9069
ON subquery3_t2.col_varchar_key = subquery3_t1.col_varchar_key
9070
WHERE subquery3_t2.col_int_nokey <> 9
9075
DROP TABLE t1, t2, t3;
9076
Extra test case for specific code coverage
9077
CREATE TABLE t1(pk INTEGER);
9078
INSERT INTO t1 VALUES(1), (2);
9080
FROM t1 AS ot1 LEFT JOIN t1 AS ot2
9081
ON ot1.pk=ot2.pk AND
9084
FROM t1 AS it1 LEFT JOIN t1 AS it2 ON it1.pk=it2.pk);
9085
id select_type table type possible_keys key key_len ref rows Extra
9086
1 SIMPLE ot1 ALL NULL NULL NULL NULL 2 NULL
9087
1 SIMPLE ot2 ALL NULL NULL NULL NULL 2 Using where
9088
1 SIMPLE it1 ALL NULL NULL NULL NULL 2 Using where
9089
1 SIMPLE it2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(ot2)
9091
FROM t1 AS ot1 LEFT JOIN t1 AS ot2
9092
ON ot1.pk=ot2.pk AND
9095
FROM t1 AS it1 LEFT JOIN t1 AS it2 ON it1.pk=it2.pk);
9100
# End of test for bug#13838810.
9102
# BUG#13685026 ASSERTION CUR_SJ_INNER_TABLES == 0 IN
9103
# --OPTIMIZE_TABLE_ORDER::CHOOSE_TABLE_ORDER
9106
col_int_key INT(11) NOT NULL,
9107
col_datetime_key DATETIME NOT NULL,
9108
col_varchar_key VARCHAR(1) NOT NULL,
9109
col_varchar_nokey VARCHAR(1) NOT NULL,
9110
KEY col_int_key (col_int_key),
9111
KEY col_datetime_key (col_datetime_key),
9112
KEY col_varchar_key (col_varchar_key,col_int_key)
9114
INSERT INTO t1 VALUES (0,'2002-02-13 17:30:06','j','j');
9115
INSERT INTO t1 VALUES (8,'2008-09-27 00:34:58','v','v');
9117
col_int_key INT(11) NOT NULL,
9118
col_datetime_key DATETIME NOT NULL,
9119
col_varchar_key VARCHAR(1) NOT NULL,
9120
col_varchar_nokey VARCHAR(1) NOT NULL,
9121
KEY col_int_key (col_int_key),
9122
KEY col_datetime_key (col_datetime_key),
9123
KEY col_varchar_key (col_varchar_key,col_int_key)
9125
INSERT INTO t2 VALUES (7,'2003-08-21 00:00:00','b','b');
9126
SET @old_depth=@@optimizer_search_depth;
9127
SET optimizer_search_depth=4;
9128
EXPLAIN SELECT col_datetime_key
9130
WHERE col_datetime_key IN (
9131
SELECT alias1.col_datetime_key
9133
LEFT JOIN t1 as alias3
9134
STRAIGHT_JOIN ( t2 AS alias4
9136
ON alias5.col_varchar_key <= alias4.col_varchar_nokey )
9137
ON alias5.col_int_key < alias4.col_int_key
9138
ON alias5.col_varchar_key = alias4.col_varchar_key
9140
id select_type table type possible_keys key key_len ref rows Extra
9141
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where
9142
1 SIMPLE outr ref col_datetime_key col_datetime_key 5 <subquery2>.col_datetime_key 2 Using index
9143
2 MATERIALIZED alias1 index NULL col_datetime_key 5 NULL 2 Using index
9144
2 MATERIALIZED alias4 ALL col_int_key,col_varchar_key NULL NULL NULL 1 NULL
9145
2 MATERIALIZED alias5 ref col_int_key,col_varchar_key col_varchar_key 3 test.alias4.col_varchar_key 1 Using where; Using index
9146
2 MATERIALIZED alias3 index NULL col_int_key 4 NULL 2 Using index
9147
SELECT col_datetime_key
9149
WHERE col_datetime_key IN (
9150
SELECT alias1.col_datetime_key
9152
LEFT JOIN t1 as alias3
9153
STRAIGHT_JOIN ( t2 AS alias4
9155
ON alias5.col_varchar_key <= alias4.col_varchar_nokey )
9156
ON alias5.col_int_key < alias4.col_int_key
9157
ON alias5.col_varchar_key = alias4.col_varchar_key
9163
SET @@optimizer_search_depth=@old_depth;
9165
# Bug#13845930: Segfault in st_join_table::and_with_condition
9171
col_varchar_1 VARCHAR(1),
9172
col_varchar_2 VARCHAR(1)
9174
INSERT INTO t2 VALUES ('x','x'), ('c','c');
9176
SELECT alias2.col_varchar_2 AS field1
9180
LEFT JOIN t2 AS alias3
9182
(SELECT sq1_alias1.col_int,
9184
FROM t1 AS sq1_alias1 JOIN t1 AS sq1_alias2
9187
ON alias3.col_varchar_1 = alias2.col_varchar_2
9193
DEALLOCATE prepare stmt;
9195
# End of test for bug#13845930.
9197
# Bug#13855925: Assert 'prebuilt->search_tuple->n_fields > 0'
9198
# in ha_innobase::index_read
9201
pk INTEGER AUTO_INCREMENT,
9204
col_varchar_key VARCHAR(1),
9205
col_varchar_nokey VARCHAR(1),
9207
KEY (col_varchar_key)
9210
col_int_key, col_int_nokey,
9211
col_varchar_key, col_varchar_nokey
9213
(4, 2, 'v','v'), (62, 150, 'v','v'), (7, NULL, 'c','c'), (1, 2, NULL, NULL),
9214
(0, 5, 'x','x'), (7, 3, 'i','i'), (7, 1, 'e','e'), (1, 4, 'p','p'),
9215
(7, NULL, 's','s'), (1, 2, 'j','j'), (5, 6, 'z','z'), (2, 6, 'c','c'),
9216
(0, 8, 'a','a'), (1, 2, 'q','q'), (8, 6, 'y','y'), (1, 8, NULL, NULL),
9217
(1, 3, 'r','r'), (9, 3, 'v','v'), (1, 9, NULL, NULL), (5, 6, 'r','r');
9219
pk INT AUTO_INCREMENT,
9224
) AUTO_INCREMENT=10 ENGINE=INNODB;
9225
INSERT INTO t2 (col_int_key, col_int_nokey) VALUES
9226
(8, NULL), (7, 8), (1, 1), (7, 9), (9, 4), (NULL, 3), (1, 2), (9, NULL),
9227
(2, 2), (9, NULL), (2, 6), (4, 7), (0, 2), (4, 5), (8, 7), (NULL, 6),
9228
(NULL, 6), (0, 2), (NULL, 9), (8, 6);
9230
pk INT AUTO_INCREMENT,
9231
col_varchar_key VARCHAR(1),
9233
KEY (col_varchar_key)
9235
INSERT INTO t3 (col_varchar_key) VALUES
9236
('c'), ('c'), ('q'), ('g'), ('e'), ('l'), (NULL), ('c'), ('h'), ('d'),
9237
('c'), ('i'), ('t'), ('g'), ('q'), ('l'), ('n'), ('z'), ('n'), ('r'), ('p');
9239
SELECT table2.col_varchar_nokey AS field1
9241
INNER JOIN (t1 AS table2
9242
STRAIGHT_JOIN t2 AS table3
9243
ON table3.col_int_key = table2.pk AND
9244
table3.col_int_nokey = ANY
9245
(SELECT subquery1_t2.col_int_nokey AS subquery1_field1
9246
FROM t2 AS subquery1_t1
9247
RIGHT OUTER JOIN t1 AS subquery1_t2
9248
INNER JOIN t1 AS subquery1_t3
9249
ON subquery1_t3.col_int_key = subquery1_t2.pk
9250
ON subquery1_t3.col_varchar_key=subquery1_t2.col_varchar_nokey
9251
WHERE subquery1_t1.pk > 1
9254
ON table3.col_int_key IN
9255
(SELECT subquery2_t1.col_int_key AS subquery2_field1
9256
FROM t2 AS subquery2_t1
9257
RIGHT OUTER JOIN t3 AS subquery2_t2
9258
LEFT OUTER JOIN t1 AS subquery2_t3
9259
ON subquery2_t3.col_varchar_key = subquery2_t2.col_varchar_key
9260
ON subquery2_t3.pk = subquery2_t2.pk
9263
explain SELECT * FROM v1;
9264
id select_type table type possible_keys key key_len ref rows Extra
9265
1 SIMPLE table1 index NULL col_int_key 5 NULL 20 Using index
9266
1 SIMPLE <subquery3> ALL NULL NULL NULL NULL NULL NULL
9267
1 SIMPLE table2 ALL PRIMARY NULL NULL NULL 20 Using where
9268
1 SIMPLE table3 ref col_int_key col_int_key 5 test.table2.pk 1 Using where; Using join buffer (Batched Key Access)
9269
1 SIMPLE <subquery4> eq_ref <auto_key> <auto_key> 5 test.table2.pk 1 NULL
9270
3 MATERIALIZED subquery1_t2 ALL PRIMARY NULL NULL NULL 20 Using where
9271
3 MATERIALIZED subquery1_t3 ref col_varchar_key col_varchar_key 4 test.subquery1_t2.col_varchar_nokey 1 Using where; Using join buffer (Batched Key Access)
9272
3 MATERIALIZED subquery1_t1 index PRIMARY col_int_key 5 NULL 20 Using where; Using index
9273
4 MATERIALIZED subquery2_t3 index PRIMARY,col_varchar_key col_varchar_key 4 NULL 20 Using where; Using index
9274
4 MATERIALIZED subquery2_t2 eq_ref PRIMARY,col_varchar_key PRIMARY 4 test.subquery2_t3.pk 1 Using where
9275
4 MATERIALIZED subquery2_t1 index col_int_key col_int_key 5 NULL 20 Using index
9299
DROP TABLE t1,t2,t3;
9300
# End of test for bug#13855925.
9302
# Bug#13897959: Segfault in setup_semijoin_dups_elimination()
9305
col_datetime_key DATETIME DEFAULT NULL,
9306
KEY col_datetime_key (col_datetime_key)
9308
INSERT INTO t1 VALUES
9309
('2001-04-18 00:00:00'), ('2008-12-18 19:39:55'),
9310
('2000-08-01 12:19:39'), ('2004-09-25 21:29:06'),
9311
('2009-09-20 09:11:48'), ('2004-03-27 09:32:04');
9313
col_date_nokey date DEFAULT NULL,
9314
col_time_key time DEFAULT NULL,
9315
col_datetime_key datetime DEFAULT NULL,
9316
col_varchar_key varchar(1) DEFAULT NULL,
9317
col_varchar_nokey varchar(1) DEFAULT NULL,
9318
KEY col_time_key (col_time_key),
9319
KEY col_datetime_key (col_datetime_key),
9320
KEY col_varchar_key(col_varchar_key)
9322
INSERT INTO t2 VALUES ('1900-01-01',NULL,'2001-11-04 19:07:55','x','x');
9323
SELECT grandparent1.col_varchar_nokey
9324
FROM t2 AS grandparent1 LEFT JOIN t1 USING (col_datetime_key)
9325
WHERE grandparent1.col_varchar_nokey IN (
9326
SELECT col_varchar_nokey
9328
WHERE parent1.col_time_key > grandparent1.col_date_nokey
9332
# End of test for bug#13897959.
9334
# Bug#13898625 ASSERT `(REMAINING_TABLES_AFTER != 0) ...' IN
9335
# BEST_EXTENSION_BY_LIMITED_SEARCH
9338
pk int(11) NOT NULL,
9341
col_varchar_key VARCHAR(1),
9342
col_varchar_nokey VARCHAR(1),
9344
KEY col_int_key (col_int_key),
9345
KEY col_varchar_key (col_varchar_key,col_int_key)
9347
INSERT INTO t1 VALUES (26,6,NULL,'f','f');
9348
INSERT INTO t1 VALUES (29,6,8,'c','c');
9353
col_varchar_key VARCHAR(1),
9354
col_varchar_nokey VARCHAR(1),
9356
KEY col_int_key (col_int_key),
9357
KEY col_varchar_key (col_varchar_key,col_int_key)
9359
INSERT INTO t2 VALUES (1,2,4,'v','v');
9360
INSERT INTO t2 VALUES (2,150,62,'v','v');
9361
INSERT INTO t2 VALUES (5,5,0,'x','x');
9362
INSERT INTO t2 VALUES (6,3,7,'i','i');
9363
INSERT INTO t2 VALUES (7,1,7,'e','e');
9364
CREATE VIEW view_c AS SELECT * FROM t2;
9365
PREPARE prep_stmt_7430 FROM 'SELECT SUM( alias1.col_varchar_key ) AS field1
9367
RIGHT JOIN t2 AS alias2
9368
INNER JOIN t1 AS alias3
9369
ON (alias3.col_varchar_key = alias2.col_varchar_key )
9371
SELECT sq1_alias1.col_varchar_nokey AS sq1_field1
9372
FROM t1 AS sq1_alias1
9374
WHERE alias3.pk IN (
9375
SELECT sq2_alias1.col_int_key AS sq2_field1
9376
FROM ( view_c AS sq2_alias1, t1 AS sq2_alias2 )
9379
EXECUTE prep_stmt_7430;
9382
EXECUTE prep_stmt_7430;
9385
EXPLAIN SELECT SUM( alias1.col_varchar_key ) AS field1
9387
RIGHT JOIN t2 AS alias2
9388
INNER JOIN t1 AS alias3
9389
ON (alias3.col_varchar_key = alias2.col_varchar_key )
9391
SELECT sq1_alias1.col_varchar_nokey AS sq1_field1
9392
FROM t1 AS sq1_alias1
9394
WHERE alias3.pk IN (
9395
SELECT sq2_alias1.col_int_key AS sq2_field1
9396
FROM ( view_c AS sq2_alias1, t1 AS sq2_alias2 )
9399
id select_type table type possible_keys key key_len ref rows Extra
9400
1 SIMPLE alias3 ALL PRIMARY,col_varchar_key NULL NULL NULL 2 Using where
9401
1 SIMPLE sq2_alias2 index NULL PRIMARY 4 NULL 2 Using index
9402
1 SIMPLE t2 ref col_int_key col_int_key 5 test.alias3.pk 2 Using index; FirstMatch(alias3)
9403
1 SIMPLE alias2 ref col_varchar_key col_varchar_key 4 test.alias3.col_varchar_key 1 Using index
9404
1 SIMPLE sq1_alias1 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(alias2)
9405
1 SIMPLE alias1 index NULL col_varchar_key 9 NULL 2 Using index
9406
PREPARE prep_stmt_7430 FROM 'SELECT SUM( alias1.col_varchar_key ) AS field1
9408
RIGHT JOIN t2 AS alias2
9409
INNER JOIN t1 AS alias3
9410
ON (alias3.col_varchar_key = alias2.col_varchar_key )
9412
SELECT sq1_alias1.col_varchar_nokey AS sq1_field1
9413
FROM t1 AS sq1_alias1
9415
WHERE alias3.pk IN (
9416
SELECT sq2_alias1.col_int_key AS sq2_field1
9417
FROM ( view_c AS sq2_alias1 , t1 AS sq2_alias2 )
9418
WHERE sq2_alias1.col_varchar_nokey <> alias2.col_varchar_key
9419
AND sq2_alias1.col_varchar_key < "l"
9422
EXECUTE prep_stmt_7430;
9425
EXECUTE prep_stmt_7430;
9428
EXPLAIN SELECT SUM( alias1.col_varchar_key ) AS field1
9430
RIGHT JOIN t2 AS alias2
9431
INNER JOIN t1 AS alias3
9432
ON (alias3.col_varchar_key = alias2.col_varchar_key )
9434
SELECT sq1_alias1.col_varchar_nokey AS sq1_field1
9435
FROM t1 AS sq1_alias1
9437
WHERE alias3.pk IN (
9438
SELECT sq2_alias1.col_int_key AS sq2_field1
9439
FROM ( view_c AS sq2_alias1 , t1 AS sq2_alias2 )
9440
WHERE sq2_alias1.col_varchar_nokey <> alias2.col_varchar_key
9441
AND sq2_alias1.col_varchar_key < "l"
9444
id select_type table type possible_keys key key_len ref rows Extra
9445
1 SIMPLE t2 range col_int_key,col_varchar_key col_varchar_key 4 NULL 2 Using index condition; Using MRR; Start temporary
9446
1 SIMPLE alias3 eq_ref PRIMARY,col_varchar_key PRIMARY 4 test.t2.col_int_key 1 Using where; Using join buffer (Batched Key Access)
9447
1 SIMPLE alias2 ref col_varchar_key col_varchar_key 4 test.alias3.col_varchar_key 1 Using index
9448
1 SIMPLE sq2_alias2 index NULL PRIMARY 4 NULL 2 Using index; End temporary
9449
1 SIMPLE sq1_alias1 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(sq2_alias2)
9450
1 SIMPLE alias1 index NULL col_varchar_key 9 NULL 2 Using index
9454
# Bug#13902463 SEGFAULT IN BITMAP<64U>::MERGE OR ADD_KEY_FIELD
9455
# ON SECOND EXEC OF PREP STMT
9461
col_varchar_key VARCHAR(1),
9462
col_varchar_nokey VARCHAR(1),
9463
KEY col_varchar_key (col_varchar_key)
9465
CREATE VIEW view_b AS SELECT * FROM t1;
9466
PREPARE prep_stmt_20421 FROM 'SELECT alias2.col_varchar_nokey AS field1
9468
INNER JOIN t1 AS alias2
9469
ON (alias1.col_varchar_key = alias2.col_varchar_nokey
9470
AND ( alias1.col_int_key ) IN (
9471
SELECT t1.col_int_nokey
9475
WHERE alias1.col_varchar_key IN (
9476
SELECT sq2_alias2.col_varchar_nokey AS sq2_field1
9477
FROM view_b AS sq2_alias1
9478
INNER JOIN t1 AS sq2_alias2
9479
ON (sq2_alias2.col_varchar_key = sq2_alias1.col_varchar_key )
9480
WHERE sq2_alias1.pk > alias2.pk
9483
EXECUTE prep_stmt_20421;
9485
EXECUTE prep_stmt_20421;
9487
EXPLAIN SELECT alias2.col_varchar_nokey AS field1
9489
INNER JOIN t1 AS alias2
9490
ON (alias1.col_varchar_key = alias2.col_varchar_nokey
9491
AND ( alias1.col_int_key ) IN (
9492
SELECT t1.col_int_nokey
9496
WHERE alias1.col_varchar_key IN (
9497
SELECT sq2_alias2.col_varchar_nokey AS sq2_field1
9498
FROM view_b AS sq2_alias1
9499
INNER JOIN t1 AS sq2_alias2
9500
ON (sq2_alias2.col_varchar_key = sq2_alias1.col_varchar_key )
9501
WHERE sq2_alias1.pk > alias2.pk
9504
id select_type table type possible_keys key key_len ref rows Extra
9505
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
9506
ALTER TABLE t1 DROP INDEX col_varchar_key;
9507
PREPARE prep_stmt_20421 FROM 'SELECT alias2.col_varchar_nokey AS field1
9509
INNER JOIN t1 AS alias2
9510
ON (alias1.col_varchar_key = alias2.col_varchar_nokey
9511
AND ( alias1.col_int_key ) IN (
9512
SELECT t1.col_int_nokey
9516
WHERE alias1.col_varchar_key IN (
9517
SELECT sq2_alias2.col_varchar_nokey AS sq2_field1
9518
FROM view_b AS sq2_alias1
9519
INNER JOIN t1 AS sq2_alias2
9520
ON (sq2_alias2.col_varchar_key = sq2_alias1.col_varchar_key )
9521
WHERE sq2_alias1.pk > alias2.pk
9524
EXECUTE prep_stmt_20421;
9526
EXECUTE prep_stmt_20421;
9528
EXPLAIN SELECT alias2.col_varchar_nokey AS field1
9530
INNER JOIN t1 AS alias2
9531
ON (alias1.col_varchar_key = alias2.col_varchar_nokey
9532
AND ( alias1.col_int_key ) IN (
9533
SELECT t1.col_int_nokey
9537
WHERE alias1.col_varchar_key IN (
9538
SELECT sq2_alias2.col_varchar_nokey AS sq2_field1
9539
FROM view_b AS sq2_alias1
9540
INNER JOIN t1 AS sq2_alias2
9541
ON (sq2_alias2.col_varchar_key = sq2_alias1.col_varchar_key )
9542
WHERE sq2_alias1.pk > alias2.pk
9545
id select_type table type possible_keys key key_len ref rows Extra
9546
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
9550
# Bug#13907277: Segfault in evaluate_null_complemented_join_record
9554
col_varchar_nokey VARCHAR(1),
9555
col_varchar_key VARCHAR(1),
9558
INSERT INTO t1 VALUES (1, 'x', 'x');
9563
INSERT INTO t2 VALUES (1);
9566
col_int_nokey INTEGER,
9567
col_int_key INTEGER,
9568
col_varchar_nokey VARCHAR(1),
9571
INSERT INTO t3 VALUES (1, 6, 5, 'r');
9572
explain SELECT outer_t1.pk, outer_t2.pk
9574
RIGHT JOIN t2 AS outer_t2
9575
ON outer_t1.col_int_nokey IN
9576
(SELECT inner_t1.col_int_nokey
9578
LEFT JOIN t1 AS inner_t2
9579
INNER JOIN t1 AS inner_t3
9580
ON inner_t3.pk = inner_t2.pk
9581
ON inner_t3.col_varchar_nokey = inner_t2.col_varchar_key
9583
id select_type table type possible_keys key key_len ref rows Extra
9584
1 SIMPLE outer_t2 system NULL NULL NULL NULL 1 NULL
9585
1 SIMPLE outer_t1 ALL NULL NULL NULL NULL 1 Using where
9586
1 SIMPLE inner_t1 ALL NULL NULL NULL NULL 1 Using where
9587
1 SIMPLE inner_t2 ALL PRIMARY NULL NULL NULL 1 NULL
9588
1 SIMPLE inner_t3 eq_ref PRIMARY PRIMARY 4 test.inner_t2.pk 1 Using where; FirstMatch(outer_t1)
9589
SELECT outer_t1.pk, outer_t2.pk
9591
RIGHT JOIN t2 AS outer_t2
9592
ON outer_t1.col_int_nokey IN
9593
(SELECT inner_t1.col_int_nokey
9595
LEFT JOIN t1 AS inner_t2
9596
INNER JOIN t1 AS inner_t3
9597
ON inner_t3.pk = inner_t2.pk
9598
ON inner_t3.col_varchar_nokey = inner_t2.col_varchar_key
9602
DROP TABLE t1, t2, t3;
9603
# End of test for bug#13907277.
9605
# Bug#13955713: Assert 'JOIN->best_read < ...' on second execution
9609
col_varchar_key VARCHAR(1),
9610
col_varchar_nokey VARCHAR(1)
9613
SELECT MIN(alias2.col_varchar_key) AS field1
9615
INNER JOIN (t1 AS alias2
9616
INNER JOIN t1 AS alias3
9618
(SELECT sq1_alias1.pk AS sq1_field2
9619
FROM t1 AS sq1_alias1
9621
(SELECT SUM(t1_sq1_alias1.pk) AS t1_sq1_field2
9622
FROM t1 AS t1_sq1_alias1
9626
ON alias3.col_varchar_nokey = alias2.col_varchar_key
9628
(SELECT sq2_alias1.pk AS sq2_field1
9629
FROM t1 AS sq2_alias1
9630
WHERE sq2_alias1.col_varchar_key < alias1.col_varchar_nokey
9639
DEALLOCATE PREPARE stmt;
9641
# End of test for bug#13955713.
9643
# Bug#13956813: Segfault in memcpy from Join_cache::write_record_data()
9647
col_varchar_key VARCHAR(1),
9648
col_varchar_nokey VARCHAR(1)
9652
col_varchar_key VARCHAR(1),
9653
col_varchar_nokey VARCHAR(1)
9655
INSERT INTO t2 VALUES
9656
(10,'j','j'), (11,'z','z'), (12,'c','c'), (13,'a','a'),
9657
(14,'q','q'), (15,'y','y'), (16,NULL,NULL), (17,'r','r'),
9658
(18,'v','v'), (19,NULL,NULL), (20,'r','r');
9662
col_varchar_key VARCHAR(1),
9663
KEY col_int_key (col_int_key)
9665
INSERT INTO t3 VALUES
9666
(15,NULL,'u'), (16,1,'m'), (17,9,NULL), (18,2,'o'),
9667
(19,9,'w'), (20,2,'m'), (21,4,'q'), (22,0,NULL),
9668
(23,4,'d'), (24,8,'g'), (25,NULL,'x'), (26,NULL,'f'),
9669
(27,0,'p'), (28,NULL,'j'), (29,8,'c');
9670
CREATE VIEW view_inline_0 AS
9672
FROM t1 INNER JOIN t3
9674
CREATE VIEW view_inline_1 AS
9675
SELECT sq2_alias2.col_varchar_key AS sq2_field1,
9676
sq2_alias1.col_varchar_key AS sq2_field2
9677
FROM t3 AS sq2_alias1 LEFT OUTER JOIN t3 AS sq2_alias2
9678
ON sq2_alias1.pk = sq2_alias2.col_int_key;
9679
CREATE VIEW view_inline_2 AS
9680
SELECT 'p', 'p' UNION SELECT 'k', 's';
9681
explain SELECT SUM(alias1.col_varchar_nokey) AS field2
9683
LEFT JOIN (SELECT * FROM view_inline_0) AS alias1
9684
ON alias2.col_varchar_key = alias1.col_varchar_key AND
9685
(alias2.col_varchar_nokey, alias2.col_varchar_key) IN
9686
(SELECT * FROM view_inline_1
9688
WHERE (alias1.col_varchar_key, alias1.col_varchar_nokey) IN
9689
(SELECT * FROM view_inline_2
9691
id select_type table type possible_keys key key_len ref rows Extra
9692
1 PRIMARY alias2 ALL NULL NULL NULL NULL 11 Using where
9693
1 PRIMARY <subquery3> eq_ref <auto_key> <auto_key> 8 test.alias2.col_varchar_nokey,test.alias2.col_varchar_key 1 NULL
9694
1 PRIMARY <subquery4> ALL NULL NULL NULL NULL NULL Using where
9695
1 PRIMARY <derived2> ref <auto_key0> <auto_key0> 8 test.alias2.col_varchar_key,<subquery4>.My_exp_p 2 NULL
9696
3 MATERIALIZED sq2_alias1 ALL NULL NULL NULL NULL 15 NULL
9697
3 MATERIALIZED sq2_alias2 ref col_int_key col_int_key 5 test.sq2_alias1.pk 2 Using join buffer (Batched Key Access)
9698
4 MATERIALIZED <derived7> ALL NULL NULL NULL NULL 2 NULL
9699
7 DERIVED NULL NULL NULL NULL NULL NULL NULL No tables used
9700
8 UNION NULL NULL NULL NULL NULL NULL NULL No tables used
9701
NULL UNION RESULT <union7,8> ALL NULL NULL NULL NULL NULL Using temporary
9702
2 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
9703
SELECT SUM(alias1.col_varchar_nokey) AS field2
9705
LEFT JOIN (SELECT * FROM view_inline_0) AS alias1
9706
ON alias2.col_varchar_key = alias1.col_varchar_key AND
9707
(alias2.col_varchar_nokey, alias2.col_varchar_key) IN
9708
(SELECT * FROM view_inline_1
9710
WHERE (alias1.col_varchar_key, alias1.col_varchar_nokey) IN
9711
(SELECT * FROM view_inline_2
9715
DROP VIEW view_inline_0, view_inline_1, view_inline_2;
9716
DROP TABLE t1, t2, t3;
9717
# End of test for bug#13956813.
9719
# Bug#13974177: Assert !(tab->table->regginfo.not_exists_optimize...
9722
pk INTEGER AUTO_INCREMENT,
9723
col_int_nokey INTEGER,
9724
col_int_key INTEGER,
9725
col_varchar_key VARCHAR(1),
9726
col_varchar_nokey VARCHAR(1),
9729
KEY (col_varchar_key, col_int_key)
9731
INSERT INTO t1(col_int_key, col_int_nokey, col_varchar_key, col_varchar_nokey)
9733
(0, 4, 'j', 'j'), (8, 6, 'v', 'v'), (1, 3, 'c', 'c'), (8, 5, 'm', 'm'),
9734
(9, 3, 'd', 'd'), (24, 246, 'd', 'd'), (6, 2, 'y', 'y'), (1, 9, 't', 't'),
9735
(6, 3, 'd', 'd'), (2, 8, 's', 's'), (4, 1, 'r', 'r'), (8, 8, 'm', 'm'),
9736
(4, 8, 'b', 'b'), (4, 5, 'x', 'x'), (7, 7, 'g', 'g'), (4, 5, 'p', 'p'),
9737
(1, 1, 'q', 'q'), (9, 6, 'w', 'w'), (4, 2, 'd', 'd'), (8, 9, 'e', 'e');
9739
pk INTEGER AUTO_INCREMENT,
9740
col_int_nokey INTEGER NOT NULL,
9741
col_time_key TIME NOT NULL,
9742
col_time_nokey TIME NOT NULL,
9746
INSERT INTO t2 (col_int_nokey, col_time_key, col_time_nokey) VALUES
9747
(7, '00:00:00', '00:00:00'), (0, '00:00:00', '00:00:00'),
9748
(9, '06:35:17', '06:35:17'), (3, '18:07:14', '18:07:14'),
9749
(4, '20:36:52', '20:36:52'), (2, '21:29:07', '21:29:07'),
9750
(5, '23:45:57', '23:45:57'), (3, '22:54:57', '22:54:57'),
9751
(1, '18:45:09', '18:45:09'), (3, '14:30:46', '14:30:46'),
9752
(6, '19:23:43', '19:23:43'), (7, '03:39:30', '03:39:30'),
9753
(5, '23:37:52', '23:37:52'), (1, '16:59:30', '16:59:30'),
9754
(204, '22:21:15', '22:21:15'), (224, '12:24:37', '12:24:37'),
9755
(9, '15:02:08', '15:02:08'), (5, '23:59:59', '23:59:59'),
9756
(0, '08:23:30', '08:23:30'), (3, '08:32:22', '08:32:22');
9757
explain SELECT ot1.col_int_key AS x
9760
ON ot2.col_varchar_nokey > ot1.col_varchar_key
9761
WHERE (ot1.col_int_nokey, ot1.pk) IN
9762
(SELECT it1.pk AS x,
9763
it1.col_int_nokey AS y
9766
ON it2.col_time_nokey = it1.col_time_key
9767
) AND ot1.pk IS NULL
9769
id select_type table type possible_keys key key_len ref rows Extra
9770
1 SIMPLE ot1 const PRIMARY,col_varchar_key PRIMARY 4 const 1 Using where
9771
1 SIMPLE it1 eq_ref PRIMARY,col_time_key PRIMARY 4 test.ot1.col_int_nokey 1 Using where
9772
1 SIMPLE it2 ALL NULL NULL NULL NULL 20 Using where; FirstMatch(it1)
9773
1 SIMPLE ot2 ALL NULL NULL NULL NULL 20 Using where
9774
SELECT ot1.col_int_key AS x
9777
ON ot2.col_varchar_nokey > ot1.col_varchar_key
9778
WHERE (ot1.col_int_nokey, ot1.pk) IN
9779
(SELECT it1.pk AS x,
9780
it1.col_int_nokey AS y
9783
ON it2.col_time_nokey = it1.col_time_key
9784
) AND ot1.pk IS NULL
9788
# End of test for bug#13974177.
9790
# Bug#13971022: Assert 'keyparts > 0' failed in create_ref_for_key...
9795
col_varchar_key VARCHAR(1),
9797
KEY col_varchar_key (col_varchar_key,col_int_key)
9802
col_varchar_key VARCHAR(1),
9803
col_varchar_nokey VARCHAR(1),
9809
explain SELECT table1.pk AS field1
9810
FROM ( SELECT subquery1_t1. *
9811
FROM t2 AS subquery1_t1
9812
JOIN t2 AS subquery1_t2
9813
ON subquery1_t2.pk = subquery1_t1.pk) AS table1
9814
STRAIGHT_JOIN t2 AS table2
9815
ON table1.col_int_key IN (SELECT 7 FROM t3)
9816
WHERE table1.col_varchar_nokey IN
9817
(SELECT subquery3_t1.col_varchar_key AS subquery3_field1
9818
FROM t1 AS subquery3_t1
9821
id select_type table type possible_keys key key_len ref rows Extra
9822
1 PRIMARY subquery3_t1 index col_varchar_key col_varchar_key 9 NULL 0 Using where; Using index
9823
1 PRIMARY <subquery3> ALL NULL NULL NULL NULL NULL NULL
9824
1 PRIMARY <derived2> ref <auto_key0> <auto_key0> 9 <subquery3>.7,test.subquery3_t1.col_varchar_key 2 Using where
9825
1 PRIMARY table2 index NULL PRIMARY 4 NULL 1 Using index
9826
3 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 NULL
9827
2 DERIVED subquery1_t1 ALL PRIMARY NULL NULL NULL 1 NULL
9828
2 DERIVED subquery1_t2 eq_ref PRIMARY PRIMARY 4 test.subquery1_t1.pk 1 Using index
9829
SELECT table1.pk AS field1
9830
FROM ( SELECT subquery1_t1. *
9831
FROM t2 AS subquery1_t1
9832
JOIN t2 AS subquery1_t2
9833
ON subquery1_t2.pk = subquery1_t1.pk) AS table1
9834
STRAIGHT_JOIN t2 AS table2
9835
ON table1.col_int_key IN (SELECT 7 FROM t3)
9836
WHERE table1.col_varchar_nokey IN
9837
(SELECT subquery3_t1.col_varchar_key AS subquery3_field1
9838
FROM t1 AS subquery3_t1
9842
DROP TABLE t1, t2, t3;
9843
# End of test for bug#13971022.
9845
# Bug#13623473 "MISSING ROWS ON SELECT AND JOIN WITH
9846
# TIME/DATETIME COMPARE" - Subquery part of test.
9848
SET TIMESTAMP=UNIX_TIMESTAMP('2012-01-31 10:14:35');
9852
col_int_key INT NOT NULL,
9854
KEY col_int_key (col_int_key)
9856
INSERT INTO t1 VALUES (10,1,7), (11,7,0), (12,4,9), (13,7,3),
9857
(14,0,4), (15,2,2), (16,9,5), (17,4,3), (18,0,1), (19,9,3), (20,1,6),
9858
(21,3,7), (22,8,5), (23,8,1), (24,18,204), (25,84,224), (26,6,9),
9859
(27,3,5), (28,6,0), (29,6,3);
9861
col_int_nokey INT NOT NULL,
9862
col_datetime_key DATETIME NOT NULL,
9863
col_varchar_key VARCHAR(1) NOT NULL,
9864
KEY col_datetime_key (col_datetime_key),
9865
KEY col_varchar_key (col_varchar_key)
9867
INSERT INTO t2 VALUES (1,'2001-11-04 19:07:55','k');
9870
KEY col_time_key (col_time_key)
9872
INSERT INTO t3 VALUES ('21:22:34'), ('10:50:38'), ('00:21:38'),
9873
('04:08:02'), ('16:25:11'), ('10:14:58'), ('19:47:59'), ('11:14:24'),
9874
('00:00:00'), ('00:00:00'), ('15:57:25'), ('07:05:51'), ('19:22:21'),
9875
('03:53:16'), ('09:16:38'), ('15:37:26'), ('00:00:00'), ('05:03:03'),
9876
('02:59:24'), ('00:01:58');
9877
EXPLAIN EXTENDED SELECT outr.col_int_nokey
9879
STRAIGHT_JOIN t3 AS outr2
9880
ON outr2.col_time_key > outr.col_datetime_key
9881
WHERE outr.col_int_nokey IN (
9884
WHERE innr.pk >= innr.col_int_nokey
9886
outr.col_int_nokey <= 6
9888
outr.col_varchar_key IS NULL
9890
id select_type table type possible_keys key key_len ref rows filtered Extra
9891
1 SIMPLE outr ALL col_datetime_key NULL NULL NULL 1 100.00 Using where
9892
1 SIMPLE innr ref col_int_key col_int_key 4 test.outr.col_int_nokey 1 100.00 Using where; FirstMatch(outr); Using join buffer (Batched Key Access)
9893
1 SIMPLE outr2 ALL col_time_key NULL NULL NULL 20 100.00 Range checked for each record (index map: 0x1)
9895
Note 1003 /* select#1 */ select `test`.`outr`.`col_int_nokey` AS `col_int_nokey` from `test`.`t2` `outr` semi join (`test`.`t1` `innr`) straight_join `test`.`t3` `outr2` where ((`test`.`innr`.`col_int_key` = `test`.`outr`.`col_int_nokey`) and (`test`.`outr`.`col_int_nokey` <= 6) and (`test`.`innr`.`pk` >= `test`.`innr`.`col_int_nokey`) and (`test`.`outr2`.`col_time_key` > `test`.`outr`.`col_datetime_key`))
9896
SELECT outr.col_int_nokey
9898
STRAIGHT_JOIN t3 AS outr2
9899
ON outr2.col_time_key > outr.col_datetime_key
9900
WHERE outr.col_int_nokey IN (
9903
WHERE innr.pk >= innr.col_int_nokey
9905
outr.col_int_nokey <= 6
9907
outr.col_varchar_key IS NULL
9930
DROP TABLE t1,t2,t3;
9931
SET TIMESTAMP = DEFAULT;
9932
# End of test for bug#13623473.
9934
# Bug#13980954: Missing data on left join + null value + where..in
9940
INSERT INTO t1 VALUES (8, 'x'), (NULL, 'x');
9945
INSERT INTO t2 VALUES
9946
(0, 'x'), (7, 'i'), (7, 'e'), (1, 'p'), (7, 's'), (1, 'j');
9947
explain format=json SELECT t2.vc, t2.ik AS t2_ik, t1.ik AS t1_ik
9948
FROM t2 LEFT JOIN t1 ON t2.vc=t1.vc
9949
WHERE t2.vc IN (SELECT vc FROM t2 AS t3);
9958
"access_type": "ALL",
9961
"attached_condition": "(`test`.`t2`.`vc` is not null)"
9966
"table_name": "<subquery2>",
9967
"access_type": "eq_ref",
9968
"key": "<auto_key>",
9974
"materialized_from_subquery": {
9975
"using_temporary_table": true,
9979
"access_type": "ALL",
9990
"access_type": "ALL",
9993
"attached_condition": "<if>(is_not_null_compl(t1), (`test`.`t1`.`vc` = `test`.`t2`.`vc`), true)"
10000
Note 1003 /* select#1 */ select `test`.`t2`.`vc` AS `vc`,`test`.`t2`.`ik` AS `t2_ik`,`test`.`t1`.`ik` AS `t1_ik` from `test`.`t2` semi join (`test`.`t2` `t3`) left join `test`.`t1` on((`test`.`t1`.`vc` = `test`.`t2`.`vc`)) where (`<subquery2>`.`vc` = `test`.`t2`.`vc`)
10001
SELECT t2.vc, t2.ik AS t2_ik, t1.ik AS t1_ik
10002
FROM t2 LEFT JOIN t1 ON t2.vc=t1.vc
10003
WHERE t2.vc IN (SELECT vc FROM t2 AS t3);
10013
# End of test for bug#13980954.
10015
# Bug#14048292: Segfault in Item_field::result_type on 2nd execution
10016
# of prep stmt with join of view
10021
INSERT INTO t1 VALUES (0), (1);
10022
CREATE VIEW view_t1 AS SELECT * FROM t1;
10023
explain SELECT alias1.col_int
10025
LEFT JOIN view_t1 AS alias2
10026
ON alias1.col_int IN
10027
(SELECT sq1_alias1.col_int
10028
FROM t1 AS sq1_alias1
10030
id select_type table type possible_keys key key_len ref rows Extra
10031
1 SIMPLE alias1 ALL NULL NULL NULL NULL 2 NULL
10032
1 SIMPLE sq1_alias1 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(alias1)
10033
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
10034
PREPARE stmt FROM "SELECT alias1.col_int
10036
LEFT JOIN view_t1 AS alias2
10037
ON alias1.col_int IN
10038
(SELECT sq1_alias1.col_int
10039
FROM t1 AS sq1_alias1
10053
DEALLOCATE PREPARE stmt;
10056
# End of test for bug#14048292.
10058
# Bug#14064201: Missing data on join of derived table + WHERE .. IN
10059
# with two operands
10062
col_varchar_nokey VARCHAR(1)
10064
INSERT INTO t1 VALUES
10065
('v'), ('s'), ('l'), ('y'), ('c'), ('i'), ('h'), ('q'), ('a'), ('v'),
10066
('u'), ('s'), ('y'), ('z'), ('h'), ('p'), ('e'), ('i'), ('y'), ('w');
10068
col_varchar_key VARCHAR(1),
10069
col_varchar_nokey VARCHAR(1),
10070
KEY col_varchar_key(col_varchar_key)
10072
INSERT INTO t2 VALUES
10073
('j','j'), ('v','v'), ('c','c'), ('m','m'), ('d','d'), ('d','d'), ('y','y');
10074
explain format=json SELECT *
10075
FROM (SELECT * FROM t2) AS derived1
10077
USING (col_varchar_nokey)
10078
WHERE (col_varchar_nokey, col_varchar_nokey) IN
10079
(SELECT col_varchar_nokey, col_varchar_key
10080
FROM t2 AS derived2
10089
"table_name": "<subquery3>",
10090
"access_type": "ALL",
10091
"attached_condition": "((`<subquery3>`.`col_varchar_key` = `<subquery3>`.`col_varchar_nokey`) and (`<subquery3>`.`col_varchar_nokey` is not null))",
10092
"materialized_from_subquery": {
10093
"using_temporary_table": true,
10096
"table_name": "derived2",
10097
"access_type": "ALL",
10103
"attached_condition": "(`test`.`derived2`.`col_varchar_key` = `test`.`derived2`.`col_varchar_nokey`)"
10111
"table_name": "derived1",
10112
"access_type": "ref",
10116
"key": "<auto_key0>",
10117
"used_key_parts": [
10118
"col_varchar_nokey"
10122
"<subquery3>.col_varchar_nokey"
10126
"materialized_from_subquery": {
10127
"using_temporary_table": true,
10128
"dependent": false,
10133
"table_name": "t2",
10134
"access_type": "ALL",
10144
"table_name": "t1",
10145
"access_type": "ALL",
10148
"attached_condition": "<if>(is_not_null_compl(t1), (`test`.`t1`.`col_varchar_nokey` = `derived1`.`col_varchar_nokey`), true)"
10155
Note 1003 /* select#1 */ select `derived1`.`col_varchar_nokey` AS `col_varchar_nokey`,`derived1`.`col_varchar_key` AS `col_varchar_key` from (/* select#2 */ select `test`.`t2`.`col_varchar_key` AS `col_varchar_key`,`test`.`t2`.`col_varchar_nokey` AS `col_varchar_nokey` from `test`.`t2`) `derived1` semi join (`test`.`t2` `derived2`) left join `test`.`t1` on(((`test`.`t1`.`col_varchar_nokey` = `derived1`.`col_varchar_nokey`) and (`test`.`derived2`.`col_varchar_nokey` = `test`.`derived2`.`col_varchar_key`))) where ((`<subquery3>`.`col_varchar_key` = `<subquery3>`.`col_varchar_nokey`) and (`derived1`.`col_varchar_nokey` = `<subquery3>`.`col_varchar_nokey`) and (`test`.`derived2`.`col_varchar_key` = `test`.`derived2`.`col_varchar_nokey`))
10157
FROM (SELECT * FROM t2) AS derived1
10159
USING (col_varchar_nokey)
10160
WHERE (col_varchar_nokey, col_varchar_nokey) IN
10161
(SELECT col_varchar_nokey, col_varchar_key
10162
FROM t2 AS derived2
10164
col_varchar_nokey col_varchar_key
10177
col_int_nokey int NOT NULL,
10178
col_int_key int NOT NULL,
10179
KEY col_int_key (col_int_key)
10181
INSERT INTO t1 VALUES
10182
(1,7), (7,0), (4,9), (7,3), (0,4), (2,2), (9,5), (4,3), (0,1), (9,3),
10183
(1,6), (3,7), (8,5), (8,1), (18,204), (84,224), (6,9), (3,5), (6,0), (6,3);
10185
col_int_nokey int NOT NULL,
10186
col_int_key int NOT NULL,
10187
KEY col_int_key (col_int_key)
10189
INSERT INTO t2 VALUES
10190
(4,0), (6,8), (3,1), (5,8), (3,9), (246,24), (2,6), (9,1), (3,6), (8,2),
10191
(1,4), (8,8), (8,4), (5,4), (7,7), (5,4), (1,1), (6,9), (2,4), (9,8);
10192
explain format=json SELECT grandparent1.*
10193
FROM t1 AS grandparent1
10194
LEFT JOIN t1 USING (col_int_nokey)
10195
WHERE (col_int_nokey, col_int_nokey) IN
10196
(SELECT col_int_nokey, col_int_key
10206
"table_name": "grandparent1",
10207
"access_type": "ALL",
10210
"attached_condition": "((`test`.`grandparent1`.`col_int_nokey` is not null) and (`test`.`grandparent1`.`col_int_nokey` is not null))"
10215
"table_name": "<subquery2>",
10216
"access_type": "eq_ref",
10217
"key": "<auto_key>",
10220
"test.grandparent1.col_int_nokey",
10221
"test.grandparent1.col_int_nokey"
10224
"materialized_from_subquery": {
10225
"using_temporary_table": true,
10228
"table_name": "t2",
10229
"access_type": "ALL",
10235
"attached_condition": "(`test`.`t2`.`col_int_key` = `test`.`t2`.`col_int_nokey`)"
10243
"table_name": "t1",
10244
"access_type": "ALL",
10247
"attached_condition": "<if>(is_not_null_compl(t1), (`test`.`t1`.`col_int_nokey` = `test`.`grandparent1`.`col_int_nokey`), true)"
10254
Note 1003 /* select#1 */ select `test`.`grandparent1`.`col_int_nokey` AS `col_int_nokey`,`test`.`grandparent1`.`col_int_key` AS `col_int_key` from `test`.`t1` `grandparent1` semi join (`test`.`t2`) left join `test`.`t1` on(((`test`.`t1`.`col_int_nokey` = `test`.`grandparent1`.`col_int_nokey`) and (`test`.`t2`.`col_int_nokey` = `test`.`t2`.`col_int_key`))) where ((`<subquery2>`.`col_int_nokey` = `test`.`grandparent1`.`col_int_nokey`) and (`<subquery2>`.`col_int_key` = `test`.`grandparent1`.`col_int_nokey`) and (`test`.`t2`.`col_int_key` = `test`.`t2`.`col_int_nokey`))
10255
SELECT grandparent1.*
10256
FROM t1 AS grandparent1
10257
LEFT JOIN t1 USING (col_int_nokey)
10258
WHERE (col_int_nokey, col_int_nokey) IN
10259
(SELECT col_int_nokey, col_int_key
10262
col_int_nokey col_int_key
10279
col_datetime_key datetime,
10280
col_varchar_key varchar(1),
10281
col_varchar_nokey varchar(1),
10283
KEY col_int_key (col_int_key),
10284
KEY col_datetime_key (col_datetime_key),
10285
KEY col_varchar_key (col_varchar_key,col_int_key)
10287
INSERT INTO t1 VALUES
10288
(10,7,'2004-06-06 04:22:12','v','v'), (11,0,'2005-11-13 01:12:31','s','s'),
10289
(12,9,'2002-05-04 01:50:00','l','l'), (13,3,'2004-10-27 10:28:45','y','y'),
10290
(14,4,'2006-07-22 05:24:23','c','c'), (15,2,'2002-05-16 21:34:03','i','i'),
10291
(16,5,'2008-04-17 10:45:30','h','h'), (17,3,'2009-04-21 02:58:02','q','q'),
10292
(18,1,'2008-01-11 11:01:51','a','a'), (19,3,'1900-01-01 00:00:00','v','v'),
10293
(20,6,'2007-05-17 18:24:57','u','u'), (21,7,'2007-08-07 00:00:00','s','s'),
10294
(22,5,'2001-08-28 00:00:00','y','y'), (23,1,'2004-04-16 00:27:28','z','z'),
10295
(24,204,'2005-05-03 07:06:22','h','h'), (25,224,'2009-03-11 17:09:50','p','p'),
10296
(26,9,'2007-12-08 01:54:28','e','e'), (27,5,'2009-07-28 18:19:54','i','i'),
10297
(28,0,'2008-06-08 00:00:00','y','y'), (29,3,'2005-02-09 09:20:26','w','w');
10301
col_datetime_key datetime,
10302
col_varchar_key varchar(1),
10303
col_varchar_nokey varchar(1),
10305
KEY col_int_key (col_int_key),
10306
KEY col_datetime_key (col_datetime_key),
10307
KEY col_varchar_key (col_varchar_key,col_int_key)
10309
INSERT INTO t2 VALUES
10310
(1,0,'2002-02-13 17:30:06','j','j'), (2,8,'2008-09-27 00:34:58','v','v'),
10311
(3,1,'2007-05-28 00:00:00','c','c'), (4,8,'2009-07-25 09:21:20','m','m'),
10312
(5,9,'2002-01-16 00:00:00','d','d'), (6,24,'2006-10-12 04:32:53','d','d'),
10313
(7,6,'2001-02-15 03:08:38','y','y'), (8,1,'2004-10-02 20:31:15','t','t'),
10314
(9,6,'2002-08-20 22:48:00','d','d'), (10,2,'1900-01-01 00:00:00','s','s'),
10315
(11,4,'2005-08-15 00:00:00','r','r'), (12,8,'1900-01-01 00:00:00','m','m'),
10316
(13,4,'2008-05-16 08:09:06','b','b'), (14,4,'2001-01-20 12:47:23','x','x'),
10317
(15,7,'2008-07-02 00:00:00','g','g'), (16,4,'1900-01-01 00:00:00','p','p'),
10318
(17,1,'2002-12-08 11:34:58','q','q'), (18,9,'1900-01-01 00:00:00','w','w'),
10319
(19,4,'1900-01-01 00:00:00','d','d'), (20,8,'2002-08-25 20:35:06','e','e');
10320
SELECT alias1.col_datetime_key
10322
RIGHT JOIN t2 AS alias2
10324
ON alias3.pk = alias2.pk
10325
ON alias3.col_varchar_nokey = alias2.col_varchar_key OR
10326
alias2.col_varchar_nokey
10327
WHERE (alias2.col_varchar_key, alias2.col_varchar_key) IN
10328
(SELECT sq2_alias2.col_varchar_key, sq2_alias1.col_varchar_nokey
10329
FROM t1 AS sq2_alias1, t1 AS sq2_alias2
10330
WHERE sq2_alias2.col_int_key < 2);
10332
1900-01-01 00:00:00
10333
1900-01-01 00:00:00
10334
1900-01-01 00:00:00
10335
1900-01-01 00:00:00
10336
1900-01-01 00:00:00
10337
2001-01-20 12:47:23
10338
2001-02-15 03:08:38
10339
2002-01-16 00:00:00
10340
2002-02-13 17:30:06
10341
2002-08-20 22:48:00
10342
2002-08-25 20:35:06
10343
2002-12-08 11:34:58
10344
2004-10-02 20:31:15
10345
2005-08-15 00:00:00
10346
2006-10-12 04:32:53
10347
2007-05-28 00:00:00
10348
2008-05-16 08:09:06
10349
2008-07-02 00:00:00
10350
2008-09-27 00:34:58
10351
2009-07-25 09:21:20
10352
1900-01-01 00:00:00
10353
1900-01-01 00:00:00
10354
1900-01-01 00:00:00
10355
1900-01-01 00:00:00
10356
1900-01-01 00:00:00
10357
2001-01-20 12:47:23
10358
2001-02-15 03:08:38
10359
2002-01-16 00:00:00
10360
2002-02-13 17:30:06
10361
2002-08-20 22:48:00
10362
2002-08-25 20:35:06
10363
2002-12-08 11:34:58
10364
2004-10-02 20:31:15
10365
2005-08-15 00:00:00
10366
2006-10-12 04:32:53
10367
2007-05-28 00:00:00
10368
2008-05-16 08:09:06
10369
2008-07-02 00:00:00
10370
2008-09-27 00:34:58
10371
2009-07-25 09:21:20
10372
ALTER TABLE t1 DISABLE KEYS;
10373
ALTER TABLE t2 DISABLE KEYS;
10374
explain format=json SELECT alias1.col_datetime_key
10376
RIGHT JOIN t2 AS alias2
10378
ON alias3.pk = alias2.pk
10379
ON alias3.col_varchar_nokey = alias2.col_varchar_key OR
10380
alias2.col_varchar_nokey
10381
WHERE (alias2.col_varchar_key, alias2.col_varchar_key) IN
10382
(SELECT sq2_alias2.col_varchar_key, sq2_alias1.col_varchar_nokey
10383
FROM t1 AS sq2_alias1, t1 AS sq2_alias2
10384
WHERE sq2_alias2.col_int_key < 2);
10392
"table_name": "<subquery2>",
10393
"access_type": "ALL",
10394
"attached_condition": "(`<subquery2>`.`col_varchar_nokey` = `<subquery2>`.`col_varchar_key`)",
10395
"materialized_from_subquery": {
10396
"using_temporary_table": true,
10401
"table_name": "sq2_alias1",
10402
"access_type": "ALL",
10409
"table_name": "sq2_alias2",
10410
"access_type": "ALL",
10413
"attached_condition": "((`test`.`sq2_alias2`.`col_varchar_key` = `test`.`sq2_alias1`.`col_varchar_nokey`) and (`test`.`sq2_alias2`.`col_int_key` < 2))"
10423
"table_name": "alias2",
10424
"access_type": "ALL",
10430
"attached_condition": "(`test`.`alias2`.`col_varchar_key` = `<subquery2>`.`col_varchar_key`)"
10435
"table_name": "alias3",
10436
"access_type": "eq_ref",
10441
"used_key_parts": [
10450
"using_join_buffer": "Batched Key Access"
10455
"table_name": "alias1",
10456
"access_type": "ALL",
10459
"attached_condition": "<if>(is_not_null_compl(alias1), ((`test`.`alias3`.`col_varchar_nokey` = `test`.`alias2`.`col_varchar_key`) or `test`.`alias2`.`col_varchar_nokey`), true)"
10466
Note 1003 /* select#1 */ select `test`.`alias1`.`col_datetime_key` AS `col_datetime_key` from `test`.`t2` `alias2` semi join (`test`.`t1` `sq2_alias1` join `test`.`t1` `sq2_alias2`) join `test`.`t2` `alias3` left join `test`.`t2` `alias1` on((((`test`.`alias3`.`col_varchar_nokey` = `test`.`alias2`.`col_varchar_key`) and (`test`.`sq2_alias2`.`col_varchar_key` = `test`.`sq2_alias1`.`col_varchar_nokey`)) or `test`.`alias2`.`col_varchar_nokey`)) where ((`test`.`alias3`.`pk` = `test`.`alias2`.`pk`) and (`<subquery2>`.`col_varchar_nokey` = `<subquery2>`.`col_varchar_key`) and (`test`.`alias2`.`col_varchar_key` = `<subquery2>`.`col_varchar_key`) and (`test`.`sq2_alias2`.`col_varchar_key` = `test`.`sq2_alias1`.`col_varchar_nokey`) and (`test`.`sq2_alias2`.`col_int_key` < 2))
10467
SELECT alias1.col_datetime_key
10469
RIGHT JOIN t2 AS alias2
10471
ON alias3.pk = alias2.pk
10472
ON alias3.col_varchar_nokey = alias2.col_varchar_key OR
10473
alias2.col_varchar_nokey
10474
WHERE (alias2.col_varchar_key, alias2.col_varchar_key) IN
10475
(SELECT sq2_alias2.col_varchar_key, sq2_alias1.col_varchar_nokey
10476
FROM t1 AS sq2_alias1, t1 AS sq2_alias2
10477
WHERE sq2_alias2.col_int_key < 2);
10479
2002-02-13 17:30:06
10480
2008-09-27 00:34:58
10481
2007-05-28 00:00:00
10482
2009-07-25 09:21:20
10483
2002-01-16 00:00:00
10484
2006-10-12 04:32:53
10485
2001-02-15 03:08:38
10486
2004-10-02 20:31:15
10487
2002-08-20 22:48:00
10488
1900-01-01 00:00:00
10489
2005-08-15 00:00:00
10490
1900-01-01 00:00:00
10491
2008-05-16 08:09:06
10492
2001-01-20 12:47:23
10493
2008-07-02 00:00:00
10494
1900-01-01 00:00:00
10495
2002-12-08 11:34:58
10496
1900-01-01 00:00:00
10497
1900-01-01 00:00:00
10498
2002-08-25 20:35:06
10499
2002-02-13 17:30:06
10500
2008-09-27 00:34:58
10501
2007-05-28 00:00:00
10502
2009-07-25 09:21:20
10503
2002-01-16 00:00:00
10504
2006-10-12 04:32:53
10505
2001-02-15 03:08:38
10506
2004-10-02 20:31:15
10507
2002-08-20 22:48:00
10508
1900-01-01 00:00:00
10509
2005-08-15 00:00:00
10510
1900-01-01 00:00:00
10511
2008-05-16 08:09:06
10512
2001-01-20 12:47:23
10513
2008-07-02 00:00:00
10514
1900-01-01 00:00:00
10515
2002-12-08 11:34:58
10516
1900-01-01 00:00:00
10517
1900-01-01 00:00:00
10518
2002-08-25 20:35:06
10520
# End of test for bug#14064201.
10521
set @@optimizer_switch=@old_opt_switch;
10523
set optimizer_switch=default;
10524
set optimizer_switch=default;