1
set optimizer_switch='batched_key_access=on,mrr_cost_based=off';
2
set optimizer_switch='semijoin=on,materialization=on';
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 index PRIMARY PRIMARY 4 NULL 4 75.00 Using where; Using index; Using join buffer (Block Nested Loop)
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 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer (Block Nested Loop)
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 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer (Block Nested Loop)
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; Start temporary
63
1 SIMPLE t1 ref a a 5 test.t2.a 101 100.00 Using index; End temporary
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; Start temporary
73
1 SIMPLE t1 ref a a 5 test.t2.a 101 100.00 Using where; Using index; End temporary
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; Start temporary
83
1 SIMPLE t1 ref a a 5 test.t2.a 101 100.00 Using index
84
1 SIMPLE t3 index a a 5 NULL 3 100.00 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
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`.`t3`.`a` = `test`.`t1`.`b`))
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; Start temporary
100
1 SIMPLE t1 ref a a 5 test.t2.a 101 100.00 Using where; Using index; End temporary
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; Using join buffer (Block Nested Loop)
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
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
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 Using join buffer (Block Nested Loop)
208
1 PRIMARY s02 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
209
1 PRIMARY s03 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
210
1 PRIMARY s04 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
211
1 PRIMARY s05 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
212
1 PRIMARY s06 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
213
1 PRIMARY s07 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
214
1 PRIMARY s08 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
215
1 PRIMARY s09 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
216
1 PRIMARY s10 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
217
1 PRIMARY s11 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
218
1 PRIMARY s12 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
219
1 PRIMARY s13 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
220
1 PRIMARY s14 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
221
1 PRIMARY s15 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
222
1 PRIMARY s16 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
223
1 PRIMARY s17 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
224
1 PRIMARY s18 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
225
1 PRIMARY s19 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
226
1 PRIMARY s20 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
227
1 PRIMARY s21 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
228
1 PRIMARY s22 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
229
1 PRIMARY s23 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
230
1 PRIMARY s24 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
231
1 PRIMARY s25 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
232
1 PRIMARY s26 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
233
1 PRIMARY s27 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
234
1 PRIMARY s28 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
235
1 PRIMARY s29 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
236
1 PRIMARY s30 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
237
1 PRIMARY s31 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
238
1 PRIMARY s32 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
239
1 PRIMARY s33 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
240
1 PRIMARY s34 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
241
1 PRIMARY s35 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
242
1 PRIMARY s36 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
243
1 PRIMARY s37 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
244
1 PRIMARY s38 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
245
1 PRIMARY s39 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
246
1 PRIMARY s40 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
247
1 PRIMARY s41 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
248
1 PRIMARY s42 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
249
1 PRIMARY s43 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
250
1 PRIMARY s44 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
251
1 PRIMARY s45 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
252
1 PRIMARY s46 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
253
1 PRIMARY s47 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
254
1 PRIMARY s48 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
255
1 PRIMARY s49 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
256
2 SUBQUERY m00 ALL NULL NULL NULL NULL 3 NULL
257
2 SUBQUERY m01 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
258
2 SUBQUERY m02 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
259
2 SUBQUERY m03 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
260
2 SUBQUERY m04 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
261
2 SUBQUERY m05 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
262
2 SUBQUERY m06 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
263
2 SUBQUERY m07 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
264
2 SUBQUERY m08 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
265
2 SUBQUERY m09 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
266
2 SUBQUERY m10 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
267
2 SUBQUERY m11 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
268
2 SUBQUERY m12 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
269
2 SUBQUERY m13 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
270
2 SUBQUERY m14 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
271
2 SUBQUERY m15 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
272
2 SUBQUERY m16 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
273
2 SUBQUERY m17 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
274
2 SUBQUERY m18 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
275
2 SUBQUERY m19 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
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; Using join buffer (Block Nested Loop)
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 <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1015
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where
1016
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1017
SELECT * FROM t1 WHERE (t1.i) IN
1018
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1020
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1021
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1026
DEALLOCATE PREPARE stmt;
1027
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1028
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1029
id select_type table type possible_keys key key_len ref rows Extra
1030
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1031
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1032
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where
1033
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1034
SELECT * FROM t1 WHERE (t1.i) IN
1035
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1037
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1038
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1043
DEALLOCATE PREPARE stmt;
1044
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1045
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1046
id select_type table type possible_keys key key_len ref rows Extra
1047
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1048
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1049
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
1050
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1051
SELECT * FROM t1 WHERE (t1.i) IN
1052
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1054
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1055
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1056
id select_type table type possible_keys key key_len ref rows Extra
1057
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1058
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1059
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 NULL
1060
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1061
SELECT * FROM t1 WHERE (t1.i) IN
1062
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1064
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1065
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1066
id select_type table type possible_keys key key_len ref rows Extra
1067
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1068
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1069
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where
1070
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1071
SELECT * FROM t1 WHERE (11) IN
1072
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1074
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1075
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1076
id select_type table type possible_keys key key_len ref rows Extra
1077
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1078
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; Start temporary
1079
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; End temporary; Using join buffer (Block Nested Loop)
1080
SELECT * FROM t1 WHERE (11) IN
1081
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1083
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1084
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1085
id select_type table type possible_keys key key_len ref rows Extra
1086
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1087
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1088
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
1089
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1090
SELECT * FROM t1 WHERE (11) IN
1091
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1093
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1094
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1095
id select_type table type possible_keys key key_len ref rows Extra
1096
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1097
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1098
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 NULL
1099
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1100
SELECT * FROM t1 WHERE (11) IN
1101
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1103
INSERT INTO t3 VALUES (2);
1104
SELECT (SELECT COUNT(*) from t1) AS c1,
1105
(SELECT COUNT(*) from t2) AS c2,
1106
(SELECT COUNT(*) from t3) AS c3;
1109
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1110
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1111
id select_type table type possible_keys key key_len ref rows Extra
1112
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1113
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1114
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where
1115
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1116
SELECT * FROM t1 WHERE (t1.i) IN
1117
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1119
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1120
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1125
DEALLOCATE PREPARE stmt;
1126
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1127
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1128
id select_type table type possible_keys key key_len ref rows Extra
1129
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1130
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1131
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where
1132
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1133
SELECT * FROM t1 WHERE (t1.i) IN
1134
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1136
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1137
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1142
DEALLOCATE PREPARE stmt;
1143
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1144
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1145
id select_type table type possible_keys key key_len ref rows Extra
1146
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1147
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1148
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where
1149
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1150
SELECT * FROM t1 WHERE (t1.i) IN
1151
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1154
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1155
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1156
id select_type table type possible_keys key key_len ref rows Extra
1157
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1158
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1159
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 NULL
1160
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1161
SELECT * FROM t1 WHERE (t1.i) IN
1162
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1164
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1165
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1166
id select_type table type possible_keys key key_len ref rows Extra
1167
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1168
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1169
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where
1170
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1171
SELECT * FROM t1 WHERE (11) IN
1172
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1174
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1175
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1176
id select_type table type possible_keys key key_len ref rows Extra
1177
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1178
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; Start temporary
1179
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
1180
SELECT * FROM t1 WHERE (11) IN
1181
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1183
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1184
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1185
id select_type table type possible_keys key key_len ref rows Extra
1186
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1187
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1188
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where
1189
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1190
SELECT * FROM t1 WHERE (11) IN
1191
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1193
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1194
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1195
id select_type table type possible_keys key key_len ref rows Extra
1196
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1197
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1198
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 NULL
1199
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1200
SELECT * FROM t1 WHERE (11) IN
1201
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1203
INSERT INTO t3 VALUES (1);
1204
SELECT (SELECT COUNT(*) from t1) AS c1,
1205
(SELECT COUNT(*) from t2) AS c2,
1206
(SELECT COUNT(*) from t3) AS c3;
1209
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1210
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1211
id select_type table type possible_keys key key_len ref rows Extra
1212
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1213
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1214
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where
1215
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1216
SELECT * FROM t1 WHERE (t1.i) IN
1217
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1219
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1220
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1225
DEALLOCATE PREPARE stmt;
1226
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1227
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1228
id select_type table type possible_keys key key_len ref rows Extra
1229
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1230
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1231
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where
1232
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1233
SELECT * FROM t1 WHERE (t1.i) IN
1234
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1236
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1237
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1242
DEALLOCATE PREPARE stmt;
1243
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1244
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1245
id select_type table type possible_keys key key_len ref rows Extra
1246
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1247
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1248
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
1249
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1250
SELECT * FROM t1 WHERE (t1.i) IN
1251
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1254
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1255
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1256
id select_type table type possible_keys key key_len ref rows Extra
1257
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1258
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1259
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 NULL
1260
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1261
SELECT * FROM t1 WHERE (t1.i) IN
1262
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1264
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1265
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1266
id select_type table type possible_keys key key_len ref rows Extra
1267
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1268
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1269
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where
1270
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1271
SELECT * FROM t1 WHERE (11) IN
1272
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1274
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1275
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1276
id select_type table type possible_keys key key_len ref rows Extra
1277
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1278
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; Start temporary
1279
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
1280
SELECT * FROM t1 WHERE (11) IN
1281
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1283
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1284
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1285
id select_type table type possible_keys key key_len ref rows Extra
1286
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1287
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1288
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
1289
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1290
SELECT * FROM t1 WHERE (11) IN
1291
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1293
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1294
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1295
id select_type table type possible_keys key key_len ref rows Extra
1296
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1297
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1298
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 NULL
1299
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1300
SELECT * FROM t1 WHERE (11) IN
1301
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1303
INSERT INTO t3 VALUES (0);
1305
INSERT INTO t2 VALUES (2);
1306
SELECT (SELECT COUNT(*) from t1) AS c1,
1307
(SELECT COUNT(*) from t2) AS c2,
1308
(SELECT COUNT(*) from t3) AS c3;
1311
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1312
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1313
id select_type table type possible_keys key key_len ref rows Extra
1314
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1315
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1316
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
1317
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1318
SELECT * FROM t1 WHERE (t1.i) IN
1319
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1321
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1322
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1327
DEALLOCATE PREPARE stmt;
1328
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1329
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1330
id select_type table type possible_keys key key_len ref rows Extra
1331
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1332
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1333
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
1334
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1335
SELECT * FROM t1 WHERE (t1.i) IN
1336
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1338
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1339
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1344
DEALLOCATE PREPARE stmt;
1345
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1346
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1347
id select_type table type possible_keys key key_len ref rows Extra
1348
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1349
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1350
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
1351
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1352
SELECT * FROM t1 WHERE (t1.i) IN
1353
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1355
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1356
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1357
id select_type table type possible_keys key key_len ref rows Extra
1358
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1359
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1360
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 NULL
1361
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1362
SELECT * FROM t1 WHERE (t1.i) IN
1363
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1365
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1366
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1367
id select_type table type possible_keys key key_len ref rows Extra
1368
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1369
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1370
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
1371
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1372
SELECT * FROM t1 WHERE (11) IN
1373
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1375
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1376
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1377
id select_type table type possible_keys key key_len ref rows Extra
1378
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1379
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; Start temporary
1380
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
1381
SELECT * FROM t1 WHERE (11) IN
1382
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1384
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1385
(SELECT t3.i FROM t2 RIGHT 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 <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1389
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
1390
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1391
SELECT * FROM t1 WHERE (11) IN
1392
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1394
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1395
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1396
id select_type table type possible_keys key key_len ref rows Extra
1397
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1398
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1399
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 NULL
1400
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1401
SELECT * FROM t1 WHERE (11) IN
1402
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1404
INSERT INTO t3 VALUES (2);
1405
SELECT (SELECT COUNT(*) from t1) AS c1,
1406
(SELECT COUNT(*) from t2) AS c2,
1407
(SELECT COUNT(*) from t3) AS c3;
1410
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1411
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1412
id select_type table type possible_keys key key_len ref rows Extra
1413
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1414
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1415
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where
1416
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1417
SELECT * FROM t1 WHERE (t1.i) IN
1418
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1421
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1422
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1429
DEALLOCATE PREPARE stmt;
1430
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1431
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1432
id select_type table type possible_keys key key_len ref rows Extra
1433
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1434
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1435
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where
1436
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1437
SELECT * FROM t1 WHERE (t1.i) IN
1438
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1441
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1442
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1449
DEALLOCATE PREPARE stmt;
1450
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1451
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1452
id select_type table type possible_keys key key_len ref rows Extra
1453
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1454
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1455
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where
1456
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1457
SELECT * FROM t1 WHERE (t1.i) IN
1458
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1461
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1462
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1463
id select_type table type possible_keys key key_len ref rows Extra
1464
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1465
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1466
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 NULL
1467
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1468
SELECT * FROM t1 WHERE (t1.i) IN
1469
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1472
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1473
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1474
id select_type table type possible_keys key key_len ref rows Extra
1475
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1476
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1477
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where
1478
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1479
SELECT * FROM t1 WHERE (11) IN
1480
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1482
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1483
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1484
id select_type table type possible_keys key key_len ref rows Extra
1485
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1486
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; Start temporary
1487
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
1488
SELECT * FROM t1 WHERE (11) IN
1489
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1491
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1492
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1493
id select_type table type possible_keys key key_len ref rows Extra
1494
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1495
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1496
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where
1497
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1498
SELECT * FROM t1 WHERE (11) IN
1499
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1501
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1502
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1503
id select_type table type possible_keys key key_len ref rows Extra
1504
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1505
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1506
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 NULL
1507
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1508
SELECT * FROM t1 WHERE (11) IN
1509
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1511
INSERT INTO t3 VALUES (1);
1512
SELECT (SELECT COUNT(*) from t1) AS c1,
1513
(SELECT COUNT(*) from t2) AS c2,
1514
(SELECT COUNT(*) from t3) AS c3;
1517
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1518
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1519
id select_type table type possible_keys key key_len ref rows Extra
1520
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1521
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; Start temporary
1522
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
1523
SELECT * FROM t1 WHERE (t1.i) IN
1524
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1527
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1528
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1535
DEALLOCATE PREPARE stmt;
1536
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1537
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1538
id select_type table type possible_keys key key_len ref rows Extra
1539
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1540
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; Start temporary
1541
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
1542
SELECT * FROM t1 WHERE (t1.i) IN
1543
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1546
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1547
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1554
DEALLOCATE PREPARE stmt;
1555
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1556
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1557
id select_type table type possible_keys key key_len ref rows Extra
1558
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1559
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1560
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
1561
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1562
SELECT * FROM t1 WHERE (t1.i) IN
1563
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1566
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1567
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1568
id select_type table type possible_keys key key_len ref rows Extra
1569
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1570
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Start temporary
1571
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
1572
SELECT * FROM t1 WHERE (t1.i) IN
1573
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1576
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1577
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1578
id select_type table type possible_keys key key_len ref rows Extra
1579
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1580
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; Start temporary
1581
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
1582
SELECT * FROM t1 WHERE (11) IN
1583
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1585
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1586
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1587
id select_type table type possible_keys key key_len ref rows Extra
1588
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1589
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; Start temporary
1590
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
1591
SELECT * FROM t1 WHERE (11) IN
1592
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1594
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1595
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1596
id select_type table type possible_keys key key_len ref rows Extra
1597
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1598
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1599
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
1600
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1601
SELECT * FROM t1 WHERE (11) IN
1602
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1604
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1605
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1606
id select_type table type possible_keys key key_len ref rows Extra
1607
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1608
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Start temporary
1609
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
1610
SELECT * FROM t1 WHERE (11) IN
1611
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1613
INSERT INTO t3 VALUES (0);
1615
INSERT INTO t2 VALUES (1);
1616
SELECT (SELECT COUNT(*) from t1) AS c1,
1617
(SELECT COUNT(*) from t2) AS c2,
1618
(SELECT COUNT(*) from t3) AS c3;
1621
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1622
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1623
id select_type table type possible_keys key key_len ref rows Extra
1624
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1625
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1626
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
1627
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1628
SELECT * FROM t1 WHERE (t1.i) IN
1629
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1631
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1632
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1637
DEALLOCATE PREPARE stmt;
1638
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1639
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1640
id select_type table type possible_keys key key_len ref rows Extra
1641
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1642
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1643
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
1644
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1645
SELECT * FROM t1 WHERE (t1.i) IN
1646
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1648
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1649
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1654
DEALLOCATE PREPARE stmt;
1655
EXPLAIN SELECT * FROM t1 WHERE (t1.i) 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 <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1660
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
1661
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1662
SELECT * FROM t1 WHERE (t1.i) IN
1663
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1665
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1666
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1667
id select_type table type possible_keys key key_len ref rows Extra
1668
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1669
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1670
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
1671
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1672
SELECT * FROM t1 WHERE (t1.i) IN
1673
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1675
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1676
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1677
id select_type table type possible_keys key key_len ref rows Extra
1678
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1679
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1680
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
1681
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1682
SELECT * FROM t1 WHERE (11) IN
1683
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1685
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1686
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1687
id select_type table type possible_keys key key_len ref rows Extra
1688
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1689
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; Start temporary
1690
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
1691
SELECT * FROM t1 WHERE (11) IN
1692
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1694
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1695
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1696
id select_type table type possible_keys key key_len ref rows Extra
1697
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1698
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1699
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
1700
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1701
SELECT * FROM t1 WHERE (11) IN
1702
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1704
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1705
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1706
id select_type table type possible_keys key key_len ref rows Extra
1707
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1708
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1709
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
1710
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1711
SELECT * FROM t1 WHERE (11) IN
1712
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1714
INSERT INTO t3 VALUES (2);
1715
SELECT (SELECT COUNT(*) from t1) AS c1,
1716
(SELECT COUNT(*) from t2) AS c2,
1717
(SELECT COUNT(*) from t3) AS c3;
1720
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1721
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1722
id select_type table type possible_keys key key_len ref rows Extra
1723
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1724
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
1725
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
1726
SELECT * FROM t1 WHERE (t1.i) IN
1727
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1730
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1731
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1738
DEALLOCATE PREPARE stmt;
1739
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1740
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1741
id select_type table type possible_keys key key_len ref rows Extra
1742
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1743
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
1744
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
1745
SELECT * FROM t1 WHERE (t1.i) IN
1746
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1749
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1750
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1757
DEALLOCATE PREPARE stmt;
1758
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1759
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1760
id select_type table type possible_keys key key_len ref rows Extra
1761
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1762
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
1763
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
1764
SELECT * FROM t1 WHERE (t1.i) IN
1765
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1768
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1769
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1770
id select_type table type possible_keys key key_len ref rows Extra
1771
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1772
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1773
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
1774
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1775
SELECT * FROM t1 WHERE (t1.i) IN
1776
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1779
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1780
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1781
id select_type table type possible_keys key key_len ref rows Extra
1782
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1783
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
1784
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
1785
SELECT * FROM t1 WHERE (11) IN
1786
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1788
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1789
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1790
id select_type table type possible_keys key key_len ref rows Extra
1791
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1792
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
1793
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
1794
SELECT * FROM t1 WHERE (11) IN
1795
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1797
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1798
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1799
id select_type table type possible_keys key key_len ref rows Extra
1800
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1801
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
1802
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
1803
SELECT * FROM t1 WHERE (11) IN
1804
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1806
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1807
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1808
id select_type table type possible_keys key key_len ref rows Extra
1809
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1810
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1811
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
1812
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
1813
SELECT * FROM t1 WHERE (11) IN
1814
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1816
INSERT INTO t3 VALUES (1);
1817
SELECT (SELECT COUNT(*) from t1) AS c1,
1818
(SELECT COUNT(*) from t2) AS c2,
1819
(SELECT COUNT(*) from t3) AS c3;
1822
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1823
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1824
id select_type table type possible_keys key key_len ref rows Extra
1825
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1826
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1827
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where
1828
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1829
SELECT * FROM t1 WHERE (t1.i) IN
1830
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1833
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1834
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1841
DEALLOCATE PREPARE stmt;
1842
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1843
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1844
id select_type table type possible_keys key key_len ref rows Extra
1845
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1846
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1847
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where
1848
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1849
SELECT * FROM t1 WHERE (t1.i) IN
1850
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1853
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1854
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1861
DEALLOCATE PREPARE stmt;
1862
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1863
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1864
id select_type table type possible_keys key key_len ref rows Extra
1865
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1866
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1867
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
1868
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1869
SELECT * FROM t1 WHERE (t1.i) IN
1870
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1873
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1874
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1875
id select_type table type possible_keys key key_len ref rows Extra
1876
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1877
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1878
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
1879
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1880
SELECT * FROM t1 WHERE (t1.i) IN
1881
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1884
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1885
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1886
id select_type table type possible_keys key key_len ref rows Extra
1887
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1888
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1889
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where
1890
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1891
SELECT * FROM t1 WHERE (11) IN
1892
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1894
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1895
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1896
id select_type table type possible_keys key key_len ref rows Extra
1897
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1898
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; Start temporary
1899
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
1900
SELECT * FROM t1 WHERE (11) IN
1901
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1903
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1904
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1905
id select_type table type possible_keys key key_len ref rows Extra
1906
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1907
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1908
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
1909
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1910
SELECT * FROM t1 WHERE (11) IN
1911
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1913
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1914
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1915
id select_type table type possible_keys key key_len ref rows Extra
1916
1 SIMPLE t1 system NULL NULL NULL NULL 1 NULL
1917
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1918
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
1919
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1920
SELECT * FROM t1 WHERE (11) IN
1921
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1923
INSERT INTO t3 VALUES (0);
1925
INSERT INTO t2 VALUES (0);
1927
INSERT INTO t1 VALUES (1);
1928
SELECT (SELECT COUNT(*) from t1) AS c1,
1929
(SELECT COUNT(*) from t2) AS c2,
1930
(SELECT COUNT(*) from t3) AS c3;
1933
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1934
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1935
id select_type table type possible_keys key key_len ref rows Extra
1936
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
1937
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1938
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 NULL
1939
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1940
SELECT * FROM t1 WHERE (t1.i) IN
1941
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
1943
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1944
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
1949
DEALLOCATE PREPARE stmt;
1950
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1951
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1952
id select_type table type possible_keys key key_len ref rows Extra
1953
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
1954
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1955
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 NULL
1956
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1957
SELECT * FROM t1 WHERE (t1.i) IN
1958
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1960
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
1961
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
1966
DEALLOCATE PREPARE stmt;
1967
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1968
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1969
id select_type table type possible_keys key key_len ref rows Extra
1970
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
1971
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1972
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 NULL
1973
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1974
SELECT * FROM t1 WHERE (t1.i) IN
1975
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
1977
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
1978
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1979
id select_type table type possible_keys key key_len ref rows Extra
1980
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
1981
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
1982
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 NULL
1983
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using join buffer (Block Nested Loop)
1984
SELECT * FROM t1 WHERE (t1.i) IN
1985
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
1987
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1988
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1989
id select_type table type possible_keys key key_len ref rows Extra
1990
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
1991
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1992
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where
1993
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
1994
SELECT * FROM t1 WHERE (11) IN
1995
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
1997
EXPLAIN SELECT * FROM t1 WHERE (11) IN
1998
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
1999
id select_type table type possible_keys key key_len ref rows Extra
2000
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; Start temporary
2001
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
2002
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2003
SELECT * FROM t1 WHERE (11) IN
2004
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2006
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2007
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2008
id select_type table type possible_keys key key_len ref rows Extra
2009
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2010
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2011
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
2012
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
2013
SELECT * FROM t1 WHERE (11) IN
2014
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2016
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2017
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2018
id select_type table type possible_keys key key_len ref rows Extra
2019
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2020
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2021
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 NULL
2022
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
2023
SELECT * FROM t1 WHERE (11) IN
2024
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2026
INSERT INTO t3 VALUES (2);
2027
SELECT (SELECT COUNT(*) from t1) AS c1,
2028
(SELECT COUNT(*) from t2) AS c2,
2029
(SELECT COUNT(*) from t3) AS c3;
2032
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2033
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2034
id select_type table type possible_keys key key_len ref rows Extra
2035
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2036
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2037
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 NULL
2038
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2039
SELECT * FROM t1 WHERE (t1.i) IN
2040
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2042
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2043
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
2048
DEALLOCATE PREPARE stmt;
2049
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2050
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2051
id select_type table type possible_keys key key_len ref rows Extra
2052
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2053
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2054
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 NULL
2055
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2056
SELECT * FROM t1 WHERE (t1.i) IN
2057
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2059
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2060
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
2065
DEALLOCATE PREPARE stmt;
2066
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2067
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2068
id select_type table type possible_keys key key_len ref rows Extra
2069
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2070
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2071
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 NULL
2072
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
2073
SELECT * FROM t1 WHERE (t1.i) IN
2074
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2077
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2078
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2079
id select_type table type possible_keys key key_len ref rows Extra
2080
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2081
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2082
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 NULL
2083
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using join buffer (Block Nested Loop)
2084
SELECT * FROM t1 WHERE (t1.i) IN
2085
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2087
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2088
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2089
id select_type table type possible_keys key key_len ref rows Extra
2090
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2091
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2092
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where
2093
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2094
SELECT * FROM t1 WHERE (11) IN
2095
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2097
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2098
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2099
id select_type table type possible_keys key key_len ref rows Extra
2100
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; Start temporary
2101
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2102
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2103
SELECT * FROM t1 WHERE (11) IN
2104
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2106
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2107
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2108
id select_type table type possible_keys key key_len ref rows Extra
2109
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2110
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2111
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where
2112
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
2113
SELECT * FROM t1 WHERE (11) IN
2114
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2116
EXPLAIN SELECT * FROM t1 WHERE (11) 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 <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2120
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2121
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 NULL
2122
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2123
SELECT * FROM t1 WHERE (11) IN
2124
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2126
INSERT INTO t3 VALUES (1);
2127
SELECT (SELECT COUNT(*) from t1) AS c1,
2128
(SELECT COUNT(*) from t2) AS c2,
2129
(SELECT COUNT(*) from t3) AS c3;
2132
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2133
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2134
id select_type table type possible_keys key key_len ref rows Extra
2135
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Start temporary
2136
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2137
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2138
SELECT * FROM t1 WHERE (t1.i) IN
2139
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2141
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2142
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
2147
DEALLOCATE PREPARE stmt;
2148
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2149
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2150
id select_type table type possible_keys key key_len ref rows Extra
2151
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Start temporary
2152
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2153
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2154
SELECT * FROM t1 WHERE (t1.i) IN
2155
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2157
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2158
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
2163
DEALLOCATE PREPARE stmt;
2164
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2165
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2166
id select_type table type possible_keys key key_len ref rows Extra
2167
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2168
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2169
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 NULL
2170
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
2171
SELECT * FROM t1 WHERE (t1.i) IN
2172
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2176
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2177
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2178
id select_type table type possible_keys key key_len ref rows Extra
2179
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Start temporary
2180
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2181
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2182
SELECT * FROM t1 WHERE (t1.i) IN
2183
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2185
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2186
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2187
id select_type table type possible_keys key key_len ref rows Extra
2188
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; Start temporary
2189
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2190
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2191
SELECT * FROM t1 WHERE (11) IN
2192
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2194
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2195
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2196
id select_type table type possible_keys key key_len ref rows Extra
2197
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; Start temporary
2198
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2199
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2200
SELECT * FROM t1 WHERE (11) IN
2201
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2203
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2204
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2205
id select_type table type possible_keys key key_len ref rows Extra
2206
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2207
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2208
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
2209
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
2210
SELECT * FROM t1 WHERE (11) IN
2211
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2213
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2214
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2215
id select_type table type possible_keys key key_len ref rows Extra
2216
1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Start temporary
2217
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2218
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2219
SELECT * FROM t1 WHERE (11) IN
2220
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2222
INSERT INTO t3 VALUES (0);
2224
INSERT INTO t2 VALUES (2);
2225
SELECT (SELECT COUNT(*) from t1) AS c1,
2226
(SELECT COUNT(*) from t2) AS c2,
2227
(SELECT COUNT(*) from t3) AS c3;
2230
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2231
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2232
id select_type table type possible_keys key key_len ref rows Extra
2233
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2234
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2235
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 NULL
2236
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2237
SELECT * FROM t1 WHERE (t1.i) IN
2238
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2240
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2241
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
2246
DEALLOCATE PREPARE stmt;
2247
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2248
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2249
id select_type table type possible_keys key key_len ref rows Extra
2250
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2251
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2252
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 NULL
2253
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2254
SELECT * FROM t1 WHERE (t1.i) IN
2255
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2257
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2258
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
2263
DEALLOCATE PREPARE stmt;
2264
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2265
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2266
id select_type table type possible_keys key key_len ref rows Extra
2267
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2268
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2269
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 NULL
2270
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2271
SELECT * FROM t1 WHERE (t1.i) IN
2272
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2274
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2275
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2276
id select_type table type possible_keys key key_len ref rows Extra
2277
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2278
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2279
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 NULL
2280
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using join buffer (Block Nested Loop)
2281
SELECT * FROM t1 WHERE (t1.i) IN
2282
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2284
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2285
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2286
id select_type table type possible_keys key key_len ref rows Extra
2287
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2288
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2289
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
2290
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2291
SELECT * FROM t1 WHERE (11) IN
2292
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2294
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2295
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2296
id select_type table type possible_keys key key_len ref rows Extra
2297
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; Start temporary
2298
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2299
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2300
SELECT * FROM t1 WHERE (11) IN
2301
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2303
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2304
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2305
id select_type table type possible_keys key key_len ref rows Extra
2306
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2307
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2308
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where
2309
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2310
SELECT * FROM t1 WHERE (11) IN
2311
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2313
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2314
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2315
id select_type table type possible_keys key key_len ref rows Extra
2316
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2317
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2318
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 NULL
2319
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
2320
SELECT * FROM t1 WHERE (11) IN
2321
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2323
INSERT INTO t3 VALUES (2);
2324
SELECT (SELECT COUNT(*) from t1) AS c1,
2325
(SELECT COUNT(*) from t2) AS c2,
2326
(SELECT COUNT(*) from t3) AS c3;
2329
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2330
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2331
id select_type table type possible_keys key key_len ref rows Extra
2332
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2333
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2334
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 NULL
2335
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2336
SELECT * FROM t1 WHERE (t1.i) IN
2337
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2340
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2341
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
2348
DEALLOCATE PREPARE stmt;
2349
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2350
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2351
id select_type table type possible_keys key key_len ref rows Extra
2352
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2353
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2354
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 NULL
2355
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2356
SELECT * FROM t1 WHERE (t1.i) IN
2357
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2360
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2361
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
2368
DEALLOCATE PREPARE stmt;
2369
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2370
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2371
id select_type table type possible_keys key key_len ref rows Extra
2372
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2373
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2374
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 NULL
2375
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2376
SELECT * FROM t1 WHERE (t1.i) IN
2377
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2380
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2381
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2382
id select_type table type possible_keys key key_len ref rows Extra
2383
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2384
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2385
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 NULL
2386
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using join buffer (Block Nested Loop)
2387
SELECT * FROM t1 WHERE (t1.i) IN
2388
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2391
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2392
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2393
id select_type table type possible_keys key key_len ref rows Extra
2394
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2395
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2396
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where
2397
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2398
SELECT * FROM t1 WHERE (11) IN
2399
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2401
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2402
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2403
id select_type table type possible_keys key key_len ref rows Extra
2404
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; Start temporary
2405
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2406
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2407
SELECT * FROM t1 WHERE (11) IN
2408
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2410
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2411
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2412
id select_type table type possible_keys key key_len ref rows Extra
2413
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2414
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2415
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where
2416
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2417
SELECT * FROM t1 WHERE (11) IN
2418
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2420
EXPLAIN SELECT * FROM t1 WHERE (11) 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 <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2424
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2425
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 NULL
2426
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2427
SELECT * FROM t1 WHERE (11) IN
2428
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2430
INSERT INTO t3 VALUES (1);
2431
SELECT (SELECT COUNT(*) from t1) AS c1,
2432
(SELECT COUNT(*) from t2) AS c2,
2433
(SELECT COUNT(*) from t3) AS c3;
2436
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2437
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2438
id select_type table type possible_keys key key_len ref rows Extra
2439
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Start temporary
2440
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2441
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2442
SELECT * FROM t1 WHERE (t1.i) IN
2443
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2446
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2447
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
2454
DEALLOCATE PREPARE stmt;
2455
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2456
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2457
id select_type table type possible_keys key key_len ref rows Extra
2458
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Start temporary
2459
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2460
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2461
SELECT * FROM t1 WHERE (t1.i) IN
2462
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2465
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2466
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
2473
DEALLOCATE PREPARE stmt;
2474
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2475
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2476
id select_type table type possible_keys key key_len ref rows Extra
2477
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2478
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2479
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 NULL
2480
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2481
SELECT * FROM t1 WHERE (t1.i) IN
2482
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2486
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2487
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2488
id select_type table type possible_keys key key_len ref rows Extra
2489
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Start temporary
2490
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2491
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2492
SELECT * FROM t1 WHERE (t1.i) IN
2493
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2497
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2498
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2499
id select_type table type possible_keys key key_len ref rows Extra
2500
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; Start temporary
2501
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2502
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2503
SELECT * FROM t1 WHERE (11) IN
2504
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2506
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2507
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2508
id select_type table type possible_keys key key_len ref rows Extra
2509
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; Start temporary
2510
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2511
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2512
SELECT * FROM t1 WHERE (11) IN
2513
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2515
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2516
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2517
id select_type table type possible_keys key key_len ref rows Extra
2518
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2519
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2520
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
2521
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2522
SELECT * FROM t1 WHERE (11) IN
2523
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2525
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2526
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2527
id select_type table type possible_keys key key_len ref rows Extra
2528
1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Start temporary
2529
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2530
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2531
SELECT * FROM t1 WHERE (11) IN
2532
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2534
INSERT INTO t3 VALUES (0);
2536
INSERT INTO t2 VALUES (1);
2537
SELECT (SELECT COUNT(*) from t1) AS c1,
2538
(SELECT COUNT(*) from t2) AS c2,
2539
(SELECT COUNT(*) from t3) AS c3;
2542
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2543
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2544
id select_type table type possible_keys key key_len ref rows Extra
2545
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Start temporary
2546
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2547
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2548
SELECT * FROM t1 WHERE (t1.i) IN
2549
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2551
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2552
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
2557
DEALLOCATE PREPARE stmt;
2558
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2559
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2560
id select_type table type possible_keys key key_len ref rows Extra
2561
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Start temporary
2562
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2563
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2564
SELECT * FROM t1 WHERE (t1.i) IN
2565
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2567
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2568
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
2573
DEALLOCATE PREPARE stmt;
2574
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2575
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2576
id select_type table type possible_keys key key_len ref rows Extra
2577
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Start temporary
2578
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2579
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2580
SELECT * FROM t1 WHERE (t1.i) IN
2581
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2583
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2584
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2585
id select_type table type possible_keys key key_len ref rows Extra
2586
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2587
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2588
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
2589
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using join buffer (Block Nested Loop)
2590
SELECT * FROM t1 WHERE (t1.i) IN
2591
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2593
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2594
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2595
id select_type table type possible_keys key key_len ref rows Extra
2596
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; Start temporary
2597
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2598
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2599
SELECT * FROM t1 WHERE (11) IN
2600
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2602
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2603
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2604
id select_type table type possible_keys key key_len ref rows Extra
2605
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; Start temporary
2606
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2607
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2608
SELECT * FROM t1 WHERE (11) IN
2609
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2611
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2612
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2613
id select_type table type possible_keys key key_len ref rows Extra
2614
1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; Start temporary
2615
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2616
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2617
SELECT * FROM t1 WHERE (11) IN
2618
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2620
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2621
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2622
id select_type table type possible_keys key key_len ref rows Extra
2623
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2624
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2625
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
2626
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
2627
SELECT * FROM t1 WHERE (11) IN
2628
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2630
INSERT INTO t3 VALUES (2);
2631
SELECT (SELECT COUNT(*) from t1) AS c1,
2632
(SELECT COUNT(*) from t2) AS c2,
2633
(SELECT COUNT(*) from t3) AS c3;
2636
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2637
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2638
id select_type table type possible_keys key key_len ref rows Extra
2639
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Start temporary
2640
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2641
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2642
SELECT * FROM t1 WHERE (t1.i) IN
2643
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2646
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2647
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
2654
DEALLOCATE PREPARE stmt;
2655
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2656
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2657
id select_type table type possible_keys key key_len ref rows Extra
2658
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Start temporary
2659
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2660
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2661
SELECT * FROM t1 WHERE (t1.i) IN
2662
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2665
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2666
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
2673
DEALLOCATE PREPARE stmt;
2674
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2675
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2676
id select_type table type possible_keys key key_len ref rows Extra
2677
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Start temporary
2678
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2679
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2680
SELECT * FROM t1 WHERE (t1.i) IN
2681
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2684
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2685
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2686
id select_type table type possible_keys key key_len ref rows Extra
2687
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
2688
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2689
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
2690
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using join buffer (Block Nested Loop)
2691
SELECT * FROM t1 WHERE (t1.i) IN
2692
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2695
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2696
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2697
id select_type table type possible_keys key key_len ref rows Extra
2698
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
2699
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2700
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2701
SELECT * FROM t1 WHERE (11) IN
2702
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2704
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2705
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2706
id select_type table type possible_keys key key_len ref rows Extra
2707
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
2708
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2709
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2710
SELECT * FROM t1 WHERE (11) IN
2711
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2713
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2714
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2715
id select_type table type possible_keys key key_len ref rows Extra
2716
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
2717
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2718
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2719
SELECT * FROM t1 WHERE (11) IN
2720
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2722
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2723
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2724
id select_type table type possible_keys key key_len ref rows Extra
2725
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2726
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2727
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
2728
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2729
SELECT * FROM t1 WHERE (11) IN
2730
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2732
INSERT INTO t3 VALUES (1);
2733
SELECT (SELECT COUNT(*) from t1) AS c1,
2734
(SELECT COUNT(*) from t2) AS c2,
2735
(SELECT COUNT(*) from t3) AS c3;
2738
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2739
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2740
id select_type table type possible_keys key key_len ref rows Extra
2741
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2742
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t1.i 1 NULL
2743
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
2744
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2745
SELECT * FROM t1 WHERE (t1.i) IN
2746
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
2750
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2751
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i)";
2760
DEALLOCATE PREPARE stmt;
2761
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2762
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2763
id select_type table type possible_keys key key_len ref rows Extra
2764
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2765
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t1.i 1 NULL
2766
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
2767
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2768
SELECT * FROM t1 WHERE (t1.i) IN
2769
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2773
PREPARE stmt FROM "SELECT * FROM t1 WHERE (t1.i) IN
2774
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i)";
2783
DEALLOCATE PREPARE stmt;
2784
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2785
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2786
id select_type table type possible_keys key key_len ref rows Extra
2787
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2788
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t1.i 1 NULL
2789
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 NULL
2790
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2791
SELECT * FROM t1 WHERE (t1.i) IN
2792
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2796
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
2797
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2798
id select_type table type possible_keys key key_len ref rows Extra
2799
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
2800
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t1.i 1 NULL
2801
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
2802
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
2803
SELECT * FROM t1 WHERE (t1.i) IN
2804
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2808
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2809
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2810
id select_type table type possible_keys key key_len ref rows Extra
2811
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2812
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2813
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where
2814
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2815
SELECT * FROM t1 WHERE (11) IN
2816
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
2818
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2819
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2820
id select_type table type possible_keys key key_len ref rows Extra
2821
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Start temporary
2822
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2823
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
2824
SELECT * FROM t1 WHERE (11) IN
2825
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i WHERE t1.i);
2827
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2828
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2829
id select_type table type possible_keys key key_len ref rows Extra
2830
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2831
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2832
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
2833
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2834
SELECT * FROM t1 WHERE (11) IN
2835
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
2837
EXPLAIN SELECT * FROM t1 WHERE (11) IN
2838
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2839
id select_type table type possible_keys key key_len ref rows Extra
2840
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 NULL
2841
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
2842
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
2843
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
2844
SELECT * FROM t1 WHERE (11) IN
2845
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
2847
INSERT INTO t3 VALUES (0);
2849
INSERT INTO t2 VALUES (0);
2851
INSERT INTO t1 VALUES (0);
2852
DROP TABLE t1, t2, t3;
2853
create table x1(k int primary key, d1 int, d2 int);
2854
create table x2(k int primary key, d1 int, d2 int);
2855
insert into x1 values
2861
insert into x2 values
2868
where (d1, d2) in (select d1, d2
2875
where (d1, d2) in (select d1, d2
2882
where (d1, d2) in (select d1, d2
2888
where (d1, d2) in (select d1, d2
2889
from x2) is unknown;
2895
where d1 in (select d1
2903
where d1 in (select d1
2905
where x1.d2=x2.d2) is true;
2911
where d1 in (select d1
2913
where x1.d2=x2.d2) is false;
2919
where d1 in (select d1
2921
where x1.d2=x2.d2) is unknown;
2926
where 1 in (select 1
2928
where x1.d1=x2.d1 and x1.d2=x2.d2);
2934
where 1 in (select 1
2936
where x1.d1=x2.d1 and x1.d2=x2.d2) is true;
2942
where 1 in (select 1
2944
where x1.d1=x2.d1 and x1.d2=x2.d2) is false;
2951
where 1 in (select 1
2953
where x1.d1=x2.d1 and x1.d2=x2.d2) is unknown;
2957
where exists (select *
2959
where x1.d1=x2.d1 and x1.d2=x2.d2);
2968
c datetime default NULL,
2972
INSERT INTO t1 VALUES
2973
(406989,67,'2006-02-23 17:08:46'), (150078,67,'2005-10-26 11:17:45'),
2974
(406993,67,'2006-02-27 11:20:57'), (245655,67,'2005-12-08 15:59:08'),
2975
(406994,67,'2006-02-27 11:26:46'), (256,67,NULL),
2976
(398341,67,'2006-02-20 04:48:44'), (254,67,NULL),(1120,67,NULL),
2977
(406988,67,'2006-02-23 17:07:22'), (255,67,NULL),
2978
(398340,67,'2006-02-20 04:38:53'),(406631,67,'2006-02-23 10:49:42'),
2979
(245653,67,'2005-12-08 15:59:07'),(406992,67,'2006-02-24 16:47:18'),
2980
(245654,67,'2005-12-08 15:59:08'),(406995,67,'2006-02-28 11:55:00'),
2981
(127261,67,'2005-10-13 12:17:58'),(406991,67,'2006-02-24 16:42:32'),
2982
(245652,67,'2005-12-08 15:58:27'),(398545,67,'2006-02-20 04:53:13'),
2983
(154504,67,'2005-10-28 11:53:01'),(9199,67,NULL),(1,67,'2006-02-23 15:01:35'),
2984
(223456,67,NULL),(4101,67,NULL),(1133,67,NULL),
2985
(406990,67,'2006-02-23 18:01:45'),(148815,67,'2005-10-25 15:34:17'),
2986
(148812,67,'2005-10-25 15:30:01'),(245651,67,'2005-12-08 15:58:27'),
2987
(154503,67,'2005-10-28 11:52:38');
2988
create table t11 select * from t1 where b = 67 AND (c IS NULL OR c > NOW()) order by 3 asc;
2989
create table t12 select * from t1 where b = 67 AND (c IS NULL OR c > NOW()) order by 3 desc;
2990
create table t21 select * from t1 where b = 67 AND (c IS NULL OR c > '2005-12-08') order by 3 asc;
2991
create table t22 select * from t1 where b = 67 AND (c IS NULL OR c > '2005-12-08') order by 3 desc;
2992
update t22 set c = '2005-12-08 15:58:27' where a = 255;
2993
explain select t21.* from t21,t22 where t21.a = t22.a and
2994
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;
2995
id select_type table type possible_keys key key_len ref rows Extra
2996
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using temporary; Using filesort
2997
1 SIMPLE t22 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
2998
1 SIMPLE t21 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
2999
2 MATERIALIZED t11 ALL NULL NULL NULL NULL 8 Using where
3000
2 MATERIALIZED t12 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (Block Nested Loop)
3001
explain format=json select * from t1 where a in (select a from t11);
3006
"duplicates_removal": {
3007
"using_temporary_table": true,
3011
"table_name": "t11",
3012
"access_type": "ALL",
3020
"access_type": "eq_ref",
3041
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`)
3042
select t21.* from t21,t22 where t21.a = t22.a and
3043
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;
3046
drop table t1, t11, t12, t21, t22;
3047
create table t1(a int);
3048
insert into t1 values (0),(1);
3050
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;
3051
id select_type table type possible_keys key key_len ref rows Extra
3052
1 PRIMARY X ALL NULL NULL NULL NULL 2 NULL
3053
2 DEPENDENT SUBQUERY Y ALL NULL NULL NULL NULL 2 Using where
3054
2 DEPENDENT SUBQUERY <subquery3> eq_ref <auto_key> <auto_key> 5 test.Y.a 1 NULL
3055
3 MATERIALIZED Z ALL NULL NULL NULL NULL 2 NULL
3056
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;
3061
create table t0 (a int);
3062
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
3063
create table t1 as select * from t0;
3064
insert into t1 select a+10 from t0;
3065
insert into t0 values(2);
3066
explain select * from t1 where 2 in (select a from t0);
3067
id select_type table type possible_keys key key_len ref rows Extra
3068
1 SIMPLE <subquery2> const <auto_key> <auto_key> 5 const 1 NULL
3069
1 SIMPLE t1 ALL NULL NULL NULL NULL 20 Using join buffer (Block Nested Loop)
3070
2 MATERIALIZED t0 ALL NULL NULL NULL NULL 11 Using where
3071
select * from t1 where 2 in (select a from t0);
3093
explain select * from (select a from t0) x where a in (select a from t1);
3094
id select_type table type possible_keys key key_len ref rows Extra
3095
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 11 Using where
3096
1 PRIMARY <subquery3> eq_ref <auto_key> <auto_key> 5 x.a 1 NULL
3097
3 MATERIALIZED t1 ALL NULL NULL NULL NULL 20 NULL
3098
2 DERIVED t0 ALL NULL NULL NULL NULL 11 NULL
3099
explain format=json select * from (select a from t0) x where a in (select a from t1);
3108
"access_type": "ALL",
3111
"attached_condition": "(`x`.`a` is not null)",
3112
"materialized_from_subquery": {
3113
"using_temporary_table": true,
3120
"access_type": "ALL",
3130
"table_name": "<subquery3>",
3131
"access_type": "eq_ref",
3132
"key": "<auto_key>",
3138
"materialized_from_subquery": {
3139
"using_temporary_table": true,
3143
"access_type": "ALL",
3155
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`)
3157
create table t0 (a int);
3158
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
3159
create table t1 (kp1 int, kp2 int, c int, filler char(100), key(kp1, kp2));
3160
insert into t1 select A.a+10*(B.a+10*C.a), 0, 0, 'filler' from t0 A, t0 B, t0 C;
3161
insert into t1 select * from t1 where kp1 < 20;
3162
create table t3 (a int);
3163
insert into t3 select A.a + 10*B.a from t0 A, t0 B;
3164
explain select * from t3 where a in (select kp1 from t1 where kp1<20);
3165
id select_type table type possible_keys key key_len ref rows Extra
3166
1 SIMPLE t3 ALL NULL NULL NULL NULL 100 Using where
3167
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t3.a 1 NULL
3168
2 MATERIALIZED t1 range kp1 kp1 5 NULL 48 Using where; Using index
3169
select * from t3 where a in (select kp1 from t1 where kp1<20);
3191
explain select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
3192
id select_type table type possible_keys key key_len ref rows Extra
3193
1 SIMPLE t3 ALL NULL NULL NULL NULL 100 Using where
3194
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t3.a 1 NULL
3195
2 MATERIALIZED t1 range kp1 kp1 5 NULL 48 Using where; Using index
3196
select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
3218
create table t4 (pk int primary key);
3219
insert into t4 select a from t3;
3220
explain select * from t3 where a in
3221
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
3222
id select_type table type possible_keys key key_len ref rows Extra
3223
1 SIMPLE t3 ALL NULL NULL NULL NULL 100 Using where
3224
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t3.a 1 NULL
3225
2 MATERIALIZED t1 range kp1 kp1 5 NULL 48 Using where
3226
2 MATERIALIZED t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index
3227
select * from t3 where a in
3228
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
3250
drop table t1, t3, t4;
3251
create table t1 (a int);
3252
insert into t1 values (0),(0),(0),(1),(1),(1),(2),(2),(2),(3),(3),(3);
3253
set @save_max_heap_table_size=@@max_heap_table_size;
3254
set @@max_heap_table_size= 16384;
3255
# Attempt to make one test that overflows the heap table when a
3256
# non-duplicate row is inserted and one test that overflows the
3257
# heap table when a duplicate record is inserted. Debugging showed
3258
# that these situations occurred with max_heap_table_size=16384
3259
# and optimizer_join_cache_level equals 1 and 0, respectively.
3260
# Finally execute a test that does not overflow the heap table.
3262
select count(*) from t0 A, t0 B, t0 C
3263
where C.a in (select a from t1 D);
3264
id select_type table type possible_keys key key_len ref rows Extra
3265
1 SIMPLE A ALL NULL NULL NULL NULL 10 NULL
3266
1 SIMPLE B ALL NULL NULL NULL NULL 10 Using join buffer (Block Nested Loop)
3267
1 SIMPLE C ALL NULL NULL NULL NULL 10 Using where; Using join buffer (Block Nested Loop)
3268
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.C.a 1 NULL
3269
2 MATERIALIZED D ALL NULL NULL NULL NULL 12 NULL
3271
select count(*) from t0 A, t0 B, t0 C
3272
where C.a in (select a from t1 D);
3275
show status like 'Created_tmp_disk_tables';
3277
Created_tmp_disk_tables 0
3278
set @@max_heap_table_size= @save_max_heap_table_size;
3280
select count(*) from t0 A, t0 B, t0 C
3281
where C.a in (select a from t1 D);
3284
show status like 'Created_tmp_disk_tables';
3286
Created_tmp_disk_tables 0
3288
create table t0 (a int);
3289
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
3290
create table t2(a int);
3291
insert into t2 values (1),(2);
3292
create table t3 ( a int , filler char(100), key(a));
3293
insert into t3 select A.a + 10*B.a, 'filler' from t0 A, t0 B;
3294
explain select * from t3 where a in (select a from t2) and (a > 5 or a < 10);
3295
id select_type table type possible_keys key key_len ref rows Extra
3296
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; Start temporary
3297
1 SIMPLE t3 ref a a 5 test.t2.a 1 End temporary
3298
select * from t3 where a in (select a from t2);
3302
drop table t0, t2, t3;
3303
create table t1 (a date);
3304
insert into t1 values ('2008-01-01'),('2008-01-01'),('2008-02-01'),('2008-02-01');
3305
create table t2 (a int);
3306
insert into t2 values (1),(2);
3307
create table t3 (a char(10));
3308
insert into t3 select * from t1;
3309
insert into t3 values (1),(2);
3310
explain select * from t2 where a in (select a from t1);
3311
id select_type table type possible_keys key key_len ref rows Extra
3312
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Start temporary
3313
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where; End temporary; Using join buffer (Block Nested Loop)
3314
explain select * from t2 where a in (select a from t2);
3315
id select_type table type possible_keys key key_len ref rows Extra
3316
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
3317
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t2.a 1 NULL
3318
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
3319
explain select * from t2 where a in (select a from t3);
3320
id select_type table type possible_keys key key_len ref rows Extra
3321
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Start temporary
3322
1 SIMPLE t3 ALL NULL NULL NULL NULL 6 Using where; End temporary; Using join buffer (Block Nested Loop)
3323
explain select * from t1 where a in (select a from t3);
3324
id select_type table type possible_keys key key_len ref rows Extra
3325
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Start temporary
3326
1 SIMPLE t3 ALL NULL NULL NULL NULL 6 Using where; End temporary; Using join buffer (Block Nested Loop)
3327
drop table t1, t2, t3;
3328
create table t1 (a decimal);
3329
insert into t1 values (1),(2);
3330
explain select * from t1 where a in (select a from t1);
3331
id select_type table type possible_keys key key_len ref rows Extra
3332
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
3333
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 6 test.t1.a 1 NULL
3334
2 MATERIALIZED t1 ALL NULL NULL NULL NULL 2 NULL
3336
create table t1 (a int);
3337
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
3338
create table t2 as select * from t1;
3339
create table t3 (a int, b int, filler char(100), key(a));
3340
insert into t3 select A.a + 10*B.a, A.a + 10*B.a, 'filler' from t1 A, t1 B, t1 C;
3341
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;
3342
id select_type table type possible_keys key key_len ref rows Extra
3343
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 Using where
3344
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where; Using join buffer (Block Nested Loop)
3345
1 SIMPLE t3 ref a a 5 <subquery2>.a 10 NULL
3346
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 10 NULL
3347
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;
3356
"access_type": "ALL",
3359
"attached_condition": "(`test`.`t1`.`a` = 3)"
3364
"table_name": "<subquery2>",
3365
"access_type": "ALL",
3366
"attached_condition": "(((`<subquery2>`.`a` < 10) or (`<subquery2>`.`a` > 30)) and (`<subquery2>`.`a` is not null))",
3367
"materialized_from_subquery": {
3368
"using_temporary_table": true,
3372
"access_type": "ALL",
3383
"access_type": "ref",
3403
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)))
3404
explain select straight_join * from t1 A, t1 B where A.a in (select a from t2);
3405
id select_type table type possible_keys key key_len ref rows Extra
3406
1 PRIMARY A ALL NULL NULL NULL NULL 10 Using where
3407
1 PRIMARY B ALL NULL NULL NULL NULL 10 Using join buffer (Block Nested Loop)
3408
2 SUBQUERY t2 ALL NULL NULL NULL NULL 10 NULL
3409
explain select * from t2 where a in (select straight_join A.a from t1 A, t1 B);
3410
id select_type table type possible_keys key key_len ref rows Extra
3411
1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Using where
3412
2 SUBQUERY A ALL NULL NULL NULL NULL 10 NULL
3413
2 SUBQUERY B ALL NULL NULL NULL NULL 10 Using join buffer (Block Nested Loop)
3414
explain select * from t2 where a in (select straight_join A.a from t1 A, t1 B);
3415
id select_type table type possible_keys key key_len ref rows Extra
3416
1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Using where
3417
2 SUBQUERY A ALL NULL NULL NULL NULL 10 NULL
3418
2 SUBQUERY B ALL NULL NULL NULL NULL 10 Using join buffer (Block Nested Loop)
3419
explain select straight_join * from t2 X, t2 Y
3420
where X.a in (select straight_join A.a from t1 A, t1 B);
3421
id select_type table type possible_keys key key_len ref rows Extra
3422
1 PRIMARY X ALL NULL NULL NULL NULL 10 Using where
3423
1 PRIMARY Y ALL NULL NULL NULL NULL 10 Using join buffer (Block Nested Loop)
3424
2 SUBQUERY A ALL NULL NULL NULL NULL 10 NULL
3425
2 SUBQUERY B ALL NULL NULL NULL NULL 10 Using join buffer (Block Nested Loop)
3426
create table t0 (a int, b int);
3427
insert into t0 values(1,1);
3428
explain select * from t0, t3 where t3.a in (select a from t2) and (t3.a < 10 or t3.a >30);
3429
id select_type table type possible_keys key key_len ref rows Extra
3430
1 SIMPLE t0 system NULL NULL NULL NULL 1 NULL
3431
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where
3432
1 SIMPLE t3 ref a a 5 <subquery2>.a 10 NULL
3433
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 10 NULL
3434
create table t4 as select a as x, a as y from t1;
3435
explain select * from t0, t3 where (t3.a, t3.b) in (select x,y from t4) and (t3.a < 10 or t3.a >30);
3436
id select_type table type possible_keys key key_len ref rows Extra
3437
1 SIMPLE t0 system NULL NULL NULL NULL 1 NULL
3438
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where
3439
1 SIMPLE t3 ref a a 5 <subquery2>.x 10 Using where
3440
2 MATERIALIZED t4 ALL NULL NULL NULL NULL 10 NULL
3441
drop table t0,t1,t2,t3,t4;
3442
create table t0 (a int);
3443
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
3444
create table t1 (a int, b int, filler char(100), key(a,b));
3445
insert into t1 select A.a, B.a, 'filler' from t0 A, t0 B;
3446
create table t2 as select * from t1;
3447
explain select * from t2 where a in (select b from t1 where a=3);
3448
id select_type table type possible_keys key key_len ref rows Extra
3449
1 SIMPLE t2 ALL NULL NULL NULL NULL 100 Using where
3450
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t2.a 1 NULL
3451
2 MATERIALIZED t1 ref a a 5 const 8 Using index
3452
explain select * from t2 where (b,a) in (select a,b from t1 where a=3);
3453
id select_type table type possible_keys key key_len ref rows Extra
3454
1 SIMPLE t2 ALL NULL NULL NULL NULL 100 Using where
3455
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 10 test.t2.b,test.t2.a 1 Using where
3456
2 MATERIALIZED t1 ref a a 5 const 8 Using index
3458
create table t1 (a int, b int);
3459
insert into t1 select a,a from t0;
3460
create table t2 (a int, b int);
3461
insert into t2 select A.a + 10*B.a, A.a + 10*B.a from t0 A, t0 B;
3462
explain select * from t1 where (a,b) in (select a,b from t2);
3463
id select_type table type possible_keys key key_len ref rows Extra
3464
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 Using where
3465
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 10 test.t1.a,test.t1.b 1 NULL
3466
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 100 NULL
3467
drop table t0, t1, t2;
3468
create table t0 (a decimal(4,2));
3469
insert into t0 values (10.24), (22.11);
3470
create table t1 as select * from t0;
3471
insert into t1 select * from t0;
3472
explain select * from t0 where a in (select a from t1);
3473
id select_type table type possible_keys key key_len ref rows Extra
3474
1 SIMPLE t0 ALL NULL NULL NULL NULL 2 Using where
3475
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.t0.a 1 NULL
3476
2 MATERIALIZED t1 ALL NULL NULL NULL NULL 4 NULL
3477
select * from t0 where a in (select a from t1);
3482
create table t0(a date);
3483
insert into t0 values ('2008-01-01'),('2008-02-02');
3484
create table t1 as select * from t0;
3485
insert into t1 select * from t0;
3486
explain select * from t0 where a in (select a from t1);
3487
id select_type table type possible_keys key key_len ref rows Extra
3488
1 SIMPLE t0 ALL NULL NULL NULL NULL 2 Using where
3489
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 4 test.t0.a 1 NULL
3490
2 MATERIALIZED t1 ALL NULL NULL NULL NULL 4 NULL
3491
select * from t0 where a in (select a from t1);
3496
create table t0(a int);
3497
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
3498
create table t1 as select a as a, a as b, a as c from t0 where a < 3;
3499
create table t2 as select a as a, a as b from t0 where a < 3;
3500
insert into t2 select * from t2;
3501
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);
3502
id select_type table type possible_keys key key_len ref rows Extra
3503
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
3504
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 15 test.t1.a,test.t1.b,test.t1.c 1 NULL
3505
2 MATERIALIZED X ALL NULL NULL NULL NULL 6 Using where
3506
2 MATERIALIZED Y ALL NULL NULL NULL NULL 6 Using join buffer (Block Nested Loop)
3507
2 MATERIALIZED Z ALL NULL NULL NULL NULL 6 Using join buffer (Block Nested Loop)
3508
drop table t0,t1,t2;
3509
set @save_join_buffer_size = @@join_buffer_size;
3510
set join_buffer_size= 8192;
3511
create table t0 (a int);
3512
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
3513
create table t1 (a int, filler1 binary(200), filler2 binary(200));
3514
insert into t1 select a, 'filler123456', 'filler123456' from t0;
3515
insert into t1 select a+10, 'filler123456', 'filler123456' from t0;
3516
create table t2 as select * from t1;
3517
insert into t1 select a+20, 'filler123456', 'filler123456' from t0;
3518
insert into t1 values (2, 'duplicate ok', 'duplicate ok');
3519
insert into t1 values (18, 'duplicate ok', 'duplicate ok');
3520
insert into t2 values (3, 'duplicate ok', 'duplicate ok');
3521
insert into t2 values (19, 'duplicate ok', 'duplicate ok');
3523
a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z
3524
from t1 ot where a in (select a from t2 it);
3525
id select_type table type possible_keys key key_len ref rows Extra
3526
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
3527
1 SIMPLE ot ALL NULL NULL NULL NULL 32 Using where; Using join buffer (Block Nested Loop)
3528
2 MATERIALIZED it ALL NULL NULL NULL NULL 22 NULL
3530
a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z
3531
from t1 ot where a in (select a from t2 it);
3532
a mid(filler1, 1,10) Z
3556
a, mid(filler1, 1,10), length(filler1)=length(filler2)
3557
from t2 ot where a in (select a from t1 it);
3558
id select_type table type possible_keys key key_len ref rows Extra
3559
1 SIMPLE ot ALL NULL NULL NULL NULL 22 Using where
3560
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.ot.a 1 NULL
3561
2 MATERIALIZED it ALL NULL NULL NULL NULL 32 NULL
3563
a, mid(filler1, 1,10), length(filler1)=length(filler2)
3564
from t2 ot where a in (select a from t1 it);
3565
a mid(filler1, 1,10) length(filler1)=length(filler2)
3588
insert into t1 select a+20, 'filler123456', 'filler123456' from t0;
3589
insert into t1 select a+20, 'filler123456', 'filler123456' from t0;
3591
a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z
3592
from t1 ot where a in (select a from t2 it);
3593
id select_type table type possible_keys key key_len ref rows Extra
3594
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
3595
1 SIMPLE ot ALL NULL NULL NULL NULL 52 Using where; Using join buffer (Block Nested Loop)
3596
2 MATERIALIZED it ALL NULL NULL NULL NULL 22 NULL
3598
a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z
3599
from t1 ot where a in (select a from t2 it);
3600
a mid(filler1, 1,10) Z
3624
a, mid(filler1, 1,10), length(filler1)=length(filler2)
3625
from t2 ot where a in (select a from t1 it);
3626
id select_type table type possible_keys key key_len ref rows Extra
3627
1 SIMPLE ot ALL NULL NULL NULL NULL 22 Using where
3628
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.ot.a 1 NULL
3629
2 MATERIALIZED it ALL NULL NULL NULL NULL 52 NULL
3631
a, mid(filler1, 1,10), length(filler1)=length(filler2)
3632
from t2 ot where a in (select a from t1 it);
3633
a mid(filler1, 1,10) length(filler1)=length(filler2)
3656
set @@join_buffer_size = @save_join_buffer_size;
3658
create table t1 (a int, b int, key(a));
3659
create table t2 (a int, b int, key(a));
3660
create table t3 (a int, b int, key(a));
3661
insert into t1 select a,a from t0;
3662
insert into t2 select a,a from t0;
3663
insert into t3 select a,a from t0;
3664
t2 and t3 must be use 'ref', not 'ALL':
3667
(select t2.a+t3.a from t1 left join (t2 join t3) on t2.a=t1.a and t3.a=t1.a);
3668
id select_type table type possible_keys key key_len ref rows Extra
3669
1 SIMPLE t0 ALL NULL NULL NULL NULL 10 Using where
3670
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 9 test.t0.a 1 Using where
3671
2 MATERIALIZED t1 index a a 5 NULL 10 Using index
3672
2 MATERIALIZED t2 ref a a 5 test.t1.a 1 Using index
3673
2 MATERIALIZED t3 ref a a 5 test.t1.a 1 Using index
3674
drop table t0, t1,t2,t3;
3676
Test that neither MaterializeLookup strategy for semijoin,
3677
nor subquery materialization is used when BLOBs are involved
3678
(except when arguments of some functions).
3680
set @prefix_len = 6;
3682
set @suffix_len = @blob_len - @prefix_len;
3683
create table t1_16 (a1 blob(16), a2 blob(16));
3684
create table t2_16 (b1 blob(16), b2 blob(16));
3685
create table t3_16 (c1 blob(16), c2 blob(16));
3686
insert into t1_16 values
3687
(concat('1 - 00', repeat('x', @suffix_len)), concat('2 - 00', repeat('x', @suffix_len)));
3688
insert into t1_16 values
3689
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3690
insert into t1_16 values
3691
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3692
insert into t2_16 values
3693
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3694
insert into t2_16 values
3695
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3696
insert into t2_16 values
3697
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
3698
insert into t3_16 values
3699
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3700
insert into t3_16 values
3701
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3702
insert into t3_16 values
3703
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
3704
insert into t3_16 values
3705
(concat('1 - 04', repeat('x', @suffix_len)), concat('2 - 04', repeat('x', @suffix_len)));
3706
explain extended select left(a1,7), left(a2,7)
3708
where a1 in (select b1 from t2_16 where b1 > '0');
3709
id select_type table type possible_keys key key_len ref rows filtered Extra
3710
1 SIMPLE t1_16 ALL NULL NULL NULL NULL 3 100.00 NULL
3711
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
3712
2 MATERIALIZED t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where
3714
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'))
3715
select left(a1,7), left(a2,7)
3717
where a1 in (select b1 from t2_16 where b1 > '0');
3718
left(a1,7) left(a2,7)
3721
explain extended select left(a1,7), left(a2,7)
3723
where (a1,a2) in (select b1, b2 from t2_16 where b1 > '0');
3724
id select_type table type possible_keys key key_len ref rows filtered Extra
3725
1 SIMPLE t1_16 ALL NULL NULL NULL NULL 3 100.00 NULL
3726
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
3727
2 MATERIALIZED t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where
3729
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'))
3730
select left(a1,7), left(a2,7)
3732
where (a1,a2) in (select b1, b2 from t2_16 where b1 > '0');
3733
left(a1,7) left(a2,7)
3736
explain extended select left(a1,7), left(a2,7)
3738
where a1 in (select substring(b1,1,16) from t2_16 where b1 > '0');
3739
id select_type table type possible_keys key key_len ref rows filtered Extra
3740
1 SIMPLE t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where
3741
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 19 test.t1_16.a1 1 100.00 Using where
3742
2 MATERIALIZED t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where
3744
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)`))
3745
select left(a1,7), left(a2,7)
3747
where a1 in (select substring(b1,1,16) from t2_16 where b1 > '0');
3748
left(a1,7) left(a2,7)
3751
explain extended select left(a1,7), left(a2,7)
3753
where a1 in (select group_concat(b1) from t2_16 group by b2);
3754
id select_type table type possible_keys key key_len ref rows filtered Extra
3755
1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where
3756
2 DEPENDENT SUBQUERY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using filesort
3758
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 ',')))))
3759
select left(a1,7), left(a2,7)
3761
where a1 in (select group_concat(b1) from t2_16 group by b2);
3762
left(a1,7) left(a2,7)
3765
set @@group_concat_max_len = 256;
3766
explain extended select left(a1,7), left(a2,7)
3768
where a1 in (select group_concat(b1) from t2_16 group by b2);
3769
id select_type table type possible_keys key key_len ref rows filtered Extra
3770
1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where
3771
2 SUBQUERY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using filesort
3773
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)`)))))
3774
select left(a1,7), left(a2,7)
3776
where a1 in (select group_concat(b1) from t2_16 group by b2);
3777
left(a1,7) left(a2,7)
3780
create table t1 (a1 char(8), a2 char(8));
3781
create table t2 (b1 char(8), b2 char(8));
3782
create table t3 (c1 char(8), c2 char(8));
3783
insert into t1 values ('1 - 00', '2 - 00');
3784
insert into t1 values ('1 - 01', '2 - 01');
3785
insert into t1 values ('1 - 02', '2 - 02');
3786
insert into t2 values ('1 - 01', '2 - 01');
3787
insert into t2 values ('1 - 01', '2 - 01');
3788
insert into t2 values ('1 - 02', '2 - 02');
3789
insert into t2 values ('1 - 02', '2 - 02');
3790
insert into t2 values ('1 - 03', '2 - 03');
3791
insert into t3 values ('1 - 01', '2 - 01');
3792
insert into t3 values ('1 - 02', '2 - 02');
3793
insert into t3 values ('1 - 03', '2 - 03');
3794
insert into t3 values ('1 - 04', '2 - 04');
3797
where concat(a1,'x') IN
3798
(select left(a1,8) from t1_16
3800
(select t2_16.b1, t2_16.b2 from t2_16, t2
3801
where t2.b2 = substring(t2_16.b2,1,6) and
3802
t2.b1 IN (select c1 from t3 where c2 > '0')));
3803
id select_type table type possible_keys key key_len ref rows filtered Extra
3804
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Start temporary
3805
1 SIMPLE t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (Block Nested Loop)
3806
1 SIMPLE t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (Block Nested Loop)
3807
1 SIMPLE t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (Block Nested Loop)
3808
1 SIMPLE t2 ALL NULL NULL NULL NULL 5 100.00 Using where; End temporary; Using join buffer (Block Nested Loop)
3810
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)))
3811
drop table t1_16, t2_16, t3_16, t1, t2, t3;
3812
set @blob_len = 512;
3813
set @suffix_len = @blob_len - @prefix_len;
3814
create table t1_512 (a1 blob(512), a2 blob(512));
3815
create table t2_512 (b1 blob(512), b2 blob(512));
3816
create table t3_512 (c1 blob(512), c2 blob(512));
3817
insert into t1_512 values
3818
(concat('1 - 00', repeat('x', @suffix_len)), concat('2 - 00', repeat('x', @suffix_len)));
3819
insert into t1_512 values
3820
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3821
insert into t1_512 values
3822
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3823
insert into t2_512 values
3824
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3825
insert into t2_512 values
3826
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3827
insert into t2_512 values
3828
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
3829
insert into t3_512 values
3830
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3831
insert into t3_512 values
3832
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3833
insert into t3_512 values
3834
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
3835
insert into t3_512 values
3836
(concat('1 - 04', repeat('x', @suffix_len)), concat('2 - 04', repeat('x', @suffix_len)));
3837
explain extended select left(a1,7), left(a2,7)
3839
where a1 in (select b1 from t2_512 where b1 > '0');
3840
id select_type table type possible_keys key key_len ref rows filtered Extra
3841
1 SIMPLE t1_512 ALL NULL NULL NULL NULL 3 100.00 NULL
3842
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
3843
2 MATERIALIZED t2_512 ALL NULL NULL NULL NULL 3 100.00 Using where
3845
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'))
3846
select left(a1,7), left(a2,7)
3848
where a1 in (select b1 from t2_512 where b1 > '0');
3849
left(a1,7) left(a2,7)
3852
explain extended select left(a1,7), left(a2,7)
3854
where (a1,a2) in (select b1, b2 from t2_512 where b1 > '0');
3855
id select_type table type possible_keys key key_len ref rows filtered Extra
3856
1 SIMPLE t1_512 ALL NULL NULL NULL NULL 3 100.00 NULL
3857
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
3858
2 MATERIALIZED t2_512 ALL NULL NULL NULL NULL 3 100.00 Using where
3860
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'))
3861
select left(a1,7), left(a2,7)
3863
where (a1,a2) in (select b1, b2 from t2_512 where b1 > '0');
3864
left(a1,7) left(a2,7)
3867
explain extended select left(a1,7), left(a2,7)
3869
where a1 in (select substring(b1,1,512) from t2_512 where b1 > '0');
3870
id select_type table type possible_keys key key_len ref rows filtered Extra
3871
1 SIMPLE t1_512 ALL NULL NULL NULL NULL 3 100.00 Using where
3872
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 515 test.t1_512.a1 1 100.00 Using where
3873
2 MATERIALIZED t2_512 ALL NULL NULL NULL NULL 3 100.00 Using where
3875
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)`))
3876
select left(a1,7), left(a2,7)
3878
where a1 in (select substring(b1,1,512) from t2_512 where b1 > '0');
3879
left(a1,7) left(a2,7)
3882
explain extended select left(a1,7), left(a2,7)
3884
where a1 in (select group_concat(b1) from t2_512 group by b2);
3885
id select_type table type possible_keys key key_len ref rows filtered Extra
3886
1 PRIMARY t1_512 ALL NULL NULL NULL NULL 3 100.00 Using where
3887
2 SUBQUERY t2_512 ALL NULL NULL NULL NULL 3 100.00 Using filesort
3889
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)`)))))
3890
select left(a1,7), left(a2,7)
3892
where a1 in (select group_concat(b1) from t2_512 group by b2);
3893
left(a1,7) left(a2,7)
3895
Warning 1260 Row 1 was cut by GROUP_CONCAT()
3896
Warning 1260 Row 2 was cut by GROUP_CONCAT()
3897
Warning 1260 Row 3 was cut by GROUP_CONCAT()
3898
set @@group_concat_max_len = 256;
3899
explain extended select left(a1,7), left(a2,7)
3901
where a1 in (select group_concat(b1) from t2_512 group by b2);
3902
id select_type table type possible_keys key key_len ref rows filtered Extra
3903
1 PRIMARY t1_512 ALL NULL NULL NULL NULL 3 100.00 Using where
3904
2 SUBQUERY t2_512 ALL NULL NULL NULL NULL 3 100.00 Using filesort
3906
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)`)))))
3907
select left(a1,7), left(a2,7)
3909
where a1 in (select group_concat(b1) from t2_512 group by b2);
3910
left(a1,7) left(a2,7)
3912
Warning 1260 Row 1 was cut by GROUP_CONCAT()
3913
Warning 1260 Row 2 was cut by GROUP_CONCAT()
3914
Warning 1260 Row 3 was cut by GROUP_CONCAT()
3915
drop table t1_512, t2_512, t3_512;
3916
set @blob_len = 513;
3917
set @suffix_len = @blob_len - @prefix_len;
3918
create table t1_513 (a1 blob(513), a2 blob(513));
3919
create table t2_513 (b1 blob(513), b2 blob(513));
3920
create table t3_513 (c1 blob(513), c2 blob(513));
3921
insert into t1_513 values
3922
(concat('1 - 00', repeat('x', @suffix_len)), concat('2 - 00', repeat('x', @suffix_len)));
3923
insert into t1_513 values
3924
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3925
insert into t1_513 values
3926
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3927
insert into t2_513 values
3928
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3929
insert into t2_513 values
3930
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3931
insert into t2_513 values
3932
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
3933
insert into t3_513 values
3934
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
3935
insert into t3_513 values
3936
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
3937
insert into t3_513 values
3938
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
3939
insert into t3_513 values
3940
(concat('1 - 04', repeat('x', @suffix_len)), concat('2 - 04', repeat('x', @suffix_len)));
3941
explain extended select left(a1,7), left(a2,7)
3943
where a1 in (select b1 from t2_513 where b1 > '0');
3944
id select_type table type possible_keys key key_len ref rows filtered Extra
3945
1 SIMPLE t1_513 ALL NULL NULL NULL NULL 3 100.00 NULL
3946
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
3947
2 MATERIALIZED t2_513 ALL NULL NULL NULL NULL 3 100.00 Using where
3949
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'))
3950
select left(a1,7), left(a2,7)
3952
where a1 in (select b1 from t2_513 where b1 > '0');
3953
left(a1,7) left(a2,7)
3956
explain extended select left(a1,7), left(a2,7)
3958
where (a1,a2) in (select b1, b2 from t2_513 where b1 > '0');
3959
id select_type table type possible_keys key key_len ref rows filtered Extra
3960
1 SIMPLE t1_513 ALL NULL NULL NULL NULL 3 100.00 NULL
3961
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
3962
2 MATERIALIZED t2_513 ALL NULL NULL NULL NULL 3 100.00 Using where
3964
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'))
3965
select left(a1,7), left(a2,7)
3967
where (a1,a2) in (select b1, b2 from t2_513 where b1 > '0');
3968
left(a1,7) left(a2,7)
3971
explain extended select left(a1,7), left(a2,7)
3973
where a1 in (select substring(b1,1,513) from t2_513 where b1 > '0');
3974
id select_type table type possible_keys key key_len ref rows filtered Extra
3975
1 SIMPLE t1_513 ALL NULL NULL NULL NULL 3 100.00 NULL
3976
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
3977
2 MATERIALIZED t2_513 ALL NULL NULL NULL NULL 3 100.00 Using where
3979
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)`))
3980
select left(a1,7), left(a2,7)
3982
where a1 in (select substring(b1,1,513) from t2_513 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 group_concat(b1) from t2_513 group by b2);
3989
id select_type table type possible_keys key key_len ref rows filtered Extra
3990
1 PRIMARY t1_513 ALL NULL NULL NULL NULL 3 100.00 Using where
3991
2 SUBQUERY t2_513 ALL NULL NULL NULL NULL 3 100.00 Using filesort
3993
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)`)))))
3994
select left(a1,7), left(a2,7)
3996
where a1 in (select group_concat(b1) from t2_513 group by b2);
3997
left(a1,7) left(a2,7)
3999
Warning 1260 Row 1 was cut by GROUP_CONCAT()
4000
Warning 1260 Row 2 was cut by GROUP_CONCAT()
4001
Warning 1260 Row 3 was cut by GROUP_CONCAT()
4002
drop table t1_513, t2_513, t3_513;
4003
set @blob_len = 1024;
4004
set @suffix_len = @blob_len - @prefix_len;
4005
create table t1_1024 (a1 blob(1024), a2 blob(1024));
4006
create table t2_1024 (b1 blob(1024), b2 blob(1024));
4007
create table t3_1024 (c1 blob(1024), c2 blob(1024));
4008
insert into t1_1024 values
4009
(concat('1 - 00', repeat('x', @suffix_len)), concat('2 - 00', repeat('x', @suffix_len)));
4010
insert into t1_1024 values
4011
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
4012
insert into t1_1024 values
4013
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
4014
insert into t2_1024 values
4015
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
4016
insert into t2_1024 values
4017
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
4018
insert into t2_1024 values
4019
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
4020
insert into t3_1024 values
4021
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
4022
insert into t3_1024 values
4023
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
4024
insert into t3_1024 values
4025
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
4026
insert into t3_1024 values
4027
(concat('1 - 04', repeat('x', @suffix_len)), concat('2 - 04', repeat('x', @suffix_len)));
4028
explain extended select left(a1,7), left(a2,7)
4030
where a1 in (select b1 from t2_1024 where b1 > '0');
4031
id select_type table type possible_keys key key_len ref rows filtered Extra
4032
1 SIMPLE t1_1024 ALL NULL NULL NULL NULL 3 100.00 NULL
4033
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
4034
2 MATERIALIZED t2_1024 ALL NULL NULL NULL NULL 3 100.00 Using where
4036
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'))
4037
select left(a1,7), left(a2,7)
4039
where a1 in (select b1 from t2_1024 where b1 > '0');
4040
left(a1,7) left(a2,7)
4043
explain extended select left(a1,7), left(a2,7)
4045
where (a1,a2) in (select b1, b2 from t2_1024 where b1 > '0');
4046
id select_type table type possible_keys key key_len ref rows filtered Extra
4047
1 SIMPLE t1_1024 ALL NULL NULL NULL NULL 3 100.00 NULL
4048
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
4049
2 MATERIALIZED t2_1024 ALL NULL NULL NULL NULL 3 100.00 Using where
4051
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'))
4052
select left(a1,7), left(a2,7)
4054
where (a1,a2) in (select b1, b2 from t2_1024 where b1 > '0');
4055
left(a1,7) left(a2,7)
4058
explain extended select left(a1,7), left(a2,7)
4060
where a1 in (select substring(b1,1,1024) from t2_1024 where b1 > '0');
4061
id select_type table type possible_keys key key_len ref rows filtered Extra
4062
1 SIMPLE t1_1024 ALL NULL NULL NULL NULL 3 100.00 NULL
4063
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
4064
2 MATERIALIZED t2_1024 ALL NULL NULL NULL NULL 3 100.00 Using where
4066
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)`))
4067
select left(a1,7), left(a2,7)
4069
where a1 in (select substring(b1,1,1024) from t2_1024 where b1 > '0');
4070
left(a1,7) left(a2,7)
4073
explain extended select left(a1,7), left(a2,7)
4075
where a1 in (select group_concat(b1) from t2_1024 group by b2);
4076
id select_type table type possible_keys key key_len ref rows filtered Extra
4077
1 PRIMARY t1_1024 ALL NULL NULL NULL NULL 3 100.00 Using where
4078
2 SUBQUERY t2_1024 ALL NULL NULL NULL NULL 3 100.00 Using filesort
4080
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)`)))))
4081
select left(a1,7), left(a2,7)
4083
where a1 in (select group_concat(b1) from t2_1024 group by b2);
4084
left(a1,7) left(a2,7)
4086
Warning 1260 Row 1 was cut by GROUP_CONCAT()
4087
Warning 1260 Row 2 was cut by GROUP_CONCAT()
4088
Warning 1260 Row 3 was cut by GROUP_CONCAT()
4089
set @@group_concat_max_len = 256;
4090
explain extended select left(a1,7), left(a2,7)
4092
where a1 in (select group_concat(b1) from t2_1024 group by b2);
4093
id select_type table type possible_keys key key_len ref rows filtered Extra
4094
1 PRIMARY t1_1024 ALL NULL NULL NULL NULL 3 100.00 Using where
4095
2 SUBQUERY t2_1024 ALL NULL NULL NULL NULL 3 100.00 Using filesort
4097
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)`)))))
4098
select left(a1,7), left(a2,7)
4100
where a1 in (select group_concat(b1) from t2_1024 group by b2);
4101
left(a1,7) left(a2,7)
4103
Warning 1260 Row 1 was cut by GROUP_CONCAT()
4104
Warning 1260 Row 2 was cut by GROUP_CONCAT()
4105
Warning 1260 Row 3 was cut by GROUP_CONCAT()
4106
drop table t1_1024, t2_1024, t3_1024;
4107
set @blob_len = 1025;
4108
set @suffix_len = @blob_len - @prefix_len;
4109
create table t1_1025 (a1 blob(1025), a2 blob(1025));
4110
create table t2_1025 (b1 blob(1025), b2 blob(1025));
4111
create table t3_1025 (c1 blob(1025), c2 blob(1025));
4112
insert into t1_1025 values
4113
(concat('1 - 00', repeat('x', @suffix_len)), concat('2 - 00', repeat('x', @suffix_len)));
4114
insert into t1_1025 values
4115
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
4116
insert into t1_1025 values
4117
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
4118
insert into t2_1025 values
4119
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
4120
insert into t2_1025 values
4121
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
4122
insert into t2_1025 values
4123
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
4124
insert into t3_1025 values
4125
(concat('1 - 01', repeat('x', @suffix_len)), concat('2 - 01', repeat('x', @suffix_len)));
4126
insert into t3_1025 values
4127
(concat('1 - 02', repeat('x', @suffix_len)), concat('2 - 02', repeat('x', @suffix_len)));
4128
insert into t3_1025 values
4129
(concat('1 - 03', repeat('x', @suffix_len)), concat('2 - 03', repeat('x', @suffix_len)));
4130
insert into t3_1025 values
4131
(concat('1 - 04', repeat('x', @suffix_len)), concat('2 - 04', repeat('x', @suffix_len)));
4132
explain extended select left(a1,7), left(a2,7)
4134
where a1 in (select b1 from t2_1025 where b1 > '0');
4135
id select_type table type possible_keys key key_len ref rows filtered Extra
4136
1 SIMPLE t1_1025 ALL NULL NULL NULL NULL 3 100.00 NULL
4137
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
4138
2 MATERIALIZED t2_1025 ALL NULL NULL NULL NULL 3 100.00 Using where
4140
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'))
4141
select left(a1,7), left(a2,7)
4143
where a1 in (select b1 from t2_1025 where b1 > '0');
4144
left(a1,7) left(a2,7)
4147
explain extended select left(a1,7), left(a2,7)
4149
where (a1,a2) in (select b1, b2 from t2_1025 where b1 > '0');
4150
id select_type table type possible_keys key key_len ref rows filtered Extra
4151
1 SIMPLE t1_1025 ALL NULL NULL NULL NULL 3 100.00 NULL
4152
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
4153
2 MATERIALIZED t2_1025 ALL NULL NULL NULL NULL 3 100.00 Using where
4155
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'))
4156
select left(a1,7), left(a2,7)
4158
where (a1,a2) in (select b1, b2 from t2_1025 where b1 > '0');
4159
left(a1,7) left(a2,7)
4162
explain extended select left(a1,7), left(a2,7)
4164
where a1 in (select substring(b1,1,1025) from t2_1025 where b1 > '0');
4165
id select_type table type possible_keys key key_len ref rows filtered Extra
4166
1 SIMPLE t1_1025 ALL NULL NULL NULL NULL 3 100.00 NULL
4167
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
4168
2 MATERIALIZED t2_1025 ALL NULL NULL NULL NULL 3 100.00 Using where
4170
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)`))
4171
select left(a1,7), left(a2,7)
4173
where a1 in (select substring(b1,1,1025) from t2_1025 where b1 > '0');
4174
left(a1,7) left(a2,7)
4177
explain extended select left(a1,7), left(a2,7)
4179
where a1 in (select group_concat(b1) from t2_1025 group by b2);
4180
id select_type table type possible_keys key key_len ref rows filtered Extra
4181
1 PRIMARY t1_1025 ALL NULL NULL NULL NULL 3 100.00 Using where
4182
2 SUBQUERY t2_1025 ALL NULL NULL NULL NULL 3 100.00 Using filesort
4184
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)`)))))
4185
select left(a1,7), left(a2,7)
4187
where a1 in (select group_concat(b1) from t2_1025 group by b2);
4188
left(a1,7) left(a2,7)
4190
Warning 1260 Row 1 was cut by GROUP_CONCAT()
4191
Warning 1260 Row 2 was cut by GROUP_CONCAT()
4192
Warning 1260 Row 3 was cut by GROUP_CONCAT()
4193
set @@group_concat_max_len = 256;
4194
explain extended select left(a1,7), left(a2,7)
4196
where a1 in (select group_concat(b1) from t2_1025 group by b2);
4197
id select_type table type possible_keys key key_len ref rows filtered Extra
4198
1 PRIMARY t1_1025 ALL NULL NULL NULL NULL 3 100.00 Using where
4199
2 SUBQUERY t2_1025 ALL NULL NULL NULL NULL 3 100.00 Using filesort
4201
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)`)))))
4202
select left(a1,7), left(a2,7)
4204
where a1 in (select group_concat(b1) from t2_1025 group by b2);
4205
left(a1,7) left(a2,7)
4207
Warning 1260 Row 1 was cut by GROUP_CONCAT()
4208
Warning 1260 Row 2 was cut by GROUP_CONCAT()
4209
Warning 1260 Row 3 was cut by GROUP_CONCAT()
4210
drop table t1_1025, t2_1025, t3_1025;
4212
# WL#5561: Enable semi join transformation with outer join.
4214
CREATE TABLE ot1(a INT);
4215
CREATE TABLE ot2(a INT);
4216
CREATE TABLE ot3(a INT);
4217
CREATE TABLE it1(a INT);
4218
CREATE TABLE it2(a INT);
4219
CREATE TABLE it3(a INT);
4220
INSERT INTO ot1 VALUES(0),(1),(2),(3),(4),(5),(6),(7);
4221
INSERT INTO ot2 VALUES(0),(2),(4),(6);
4222
INSERT INTO ot3 VALUES(0),(3),(6);
4223
INSERT INTO it1 VALUES(0),(1),(2),(3),(4),(5),(6),(7);
4224
INSERT INTO it2 VALUES(0),(2),(4),(6);
4225
INSERT INTO it3 VALUES(0),(3),(6);
4226
# Test cases, Subquery Pattern 1
4229
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4230
WHERE ot1.a IN (SELECT a FROM it3);
4231
id select_type table type possible_keys key key_len ref rows Extra
4232
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
4233
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (Block Nested Loop)
4234
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (Block Nested Loop)
4235
2 MATERIALIZED it3 ALL NULL NULL NULL NULL 3 NULL
4237
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4238
WHERE ot1.a IN (SELECT a FROM it3);
4245
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4246
WHERE COALESCE(ot2.a,0) IN (SELECT a FROM it3);
4247
id select_type table type possible_keys key key_len ref rows Extra
4248
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
4249
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Using join buffer (Block Nested Loop)
4250
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (Block Nested Loop)
4251
2 MATERIALIZED it3 ALL NULL NULL NULL NULL 3 NULL
4253
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4254
WHERE COALESCE(ot2.a,0) IN (SELECT a FROM it3);
4264
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4265
WHERE (ot1.a,ot2.a) IN (SELECT a, a FROM it3);
4266
id select_type table type possible_keys key key_len ref rows Extra
4267
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where
4268
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (Block Nested Loop)
4269
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (Block Nested Loop)
4270
2 MATERIALIZED it3 ALL NULL NULL NULL NULL 3 NULL
4272
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4273
WHERE (ot1.a,ot2.a) IN (SELECT a, a FROM it3);
4279
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a+0
4280
WHERE ot1.a IN (SELECT a FROM it3);
4286
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a+0
4287
WHERE ot1.a IN (SELECT a+0 FROM it3);
4293
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a+0
4294
WHERE COALESCE(ot2.a,0) IN (SELECT a FROM it3);
4303
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4304
WHERE COALESCE(ot2.a,0) IN (SELECT a+0 FROM it3);
4313
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a+0
4314
WHERE (ot1.a,ot2.a) IN (SELECT a, a FROM it3);
4319
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4320
LEFT JOIN ot3 ON ot1.a=ot3.a
4321
WHERE ot1.a IN (SELECT a FROM it3);
4327
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4328
LEFT JOIN ot3 ON ot1.a=ot3.a
4329
WHERE COALESCE(ot2.a,0) IN (SELECT a FROM it3);
4338
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4339
LEFT JOIN ot3 ON ot1.a=ot3.a
4340
WHERE COALESCE(ot3.a,0) IN (SELECT a FROM it3);
4351
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4352
LEFT JOIN ot3 ON ot2.a=ot3.a
4353
WHERE ot1.a IN (SELECT a FROM it3);
4359
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4360
LEFT JOIN ot3 ON ot2.a=ot3.a
4361
WHERE COALESCE(ot2.a,0) IN (SELECT a FROM it3);
4370
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a
4371
LEFT JOIN ot3 ON ot2.a=ot3.a
4372
WHERE COALESCE(ot3.a,0) IN (SELECT a FROM it3);
4382
# Test cases, Subquery Pattern 2
4385
FROM ot1 JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it3);
4386
id select_type table type possible_keys key key_len ref rows Extra
4387
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
4388
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (Block Nested Loop)
4389
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (Block Nested Loop)
4390
2 MATERIALIZED it3 ALL NULL NULL NULL NULL 3 NULL
4392
FROM ot1 JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it3);
4398
FROM ot1 JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it2)
4399
AND ot2.a IN (SELECT a FROM it3);
4400
id select_type table type possible_keys key key_len ref rows Extra
4401
1 SIMPLE <subquery3> ALL NULL NULL NULL NULL NULL Using where
4402
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (Block Nested Loop)
4403
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (Block Nested Loop)
4404
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 <subquery3>.a 1 NULL
4405
3 MATERIALIZED it3 ALL NULL NULL NULL NULL 3 NULL
4406
2 MATERIALIZED it2 ALL NULL NULL NULL NULL 4 NULL
4408
FROM ot1 JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it2)
4409
AND ot2.a IN (SELECT a FROM it3);
4415
FROM ot1 JOIN ot2 ON ot1.a=ot2.a+0 AND ot1.a IN (SELECT a FROM it3);
4420
FROM ot1 JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a+0 FROM it3);
4425
FROM ot1 JOIN ot2 ON ot1.a=ot2.a+0 AND ot2.a IN (SELECT a FROM it3);
4430
FROM ot1 JOIN ot2 ON ot1.a=ot2.a AND ot2.a IN (SELECT a+0 FROM it3);
4435
FROM ot1 JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a+0 FROM it2)
4436
AND ot2.a IN (SELECT a+0 FROM it3);
4441
FROM ot1 JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it3)
4442
JOIN ot3 ON ot2.a=ot3.a AND ot3.a IN (SELECT a FROM it3);
4446
# Test cases, Subquery Pattern 3
4449
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it3);
4450
id select_type table type possible_keys key key_len ref rows Extra
4451
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Start temporary
4452
1 SIMPLE it3 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (Block Nested Loop)
4453
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where; End temporary; Using join buffer (Block Nested Loop)
4455
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it3);
4467
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND ot2.a IN (SELECT a FROM it2);
4468
id select_type table type possible_keys key key_len ref rows Extra
4469
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Start temporary
4470
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (Block Nested Loop)
4471
1 SIMPLE it2 ALL NULL NULL NULL NULL 4 Using where; End temporary; Using join buffer (Block Nested Loop)
4473
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND ot2.a IN (SELECT a FROM it2);
4485
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1)
4486
AND ot2.a IN (SELECT a FROM it2);
4487
id select_type table type possible_keys key key_len ref rows Extra
4488
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Start temporary
4489
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (Block Nested Loop)
4490
1 SIMPLE it2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (Block Nested Loop)
4491
1 SIMPLE it1 ALL NULL NULL NULL NULL 8 Using where; End temporary; Using join buffer (Block Nested Loop)
4493
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1)
4494
AND ot2.a IN (SELECT a FROM it2);
4506
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND
4507
(ot1.a, ot2.a) IN (SELECT it1.a, it2.a
4508
FROM it1 JOIN it2 ON it1.a=it2.a);
4509
id select_type table type possible_keys key key_len ref rows Extra
4510
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Start temporary
4511
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (Block Nested Loop)
4512
1 SIMPLE it2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (Block Nested Loop)
4513
1 SIMPLE it1 ALL NULL NULL NULL NULL 8 Using where; End temporary; Using join buffer (Block Nested Loop)
4515
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND
4516
(ot1.a, ot2.a) IN (SELECT it1.a, it2.a
4517
FROM it1 JOIN it2 ON it1.a=it2.a);
4529
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a+0 AND ot1.a IN (SELECT a FROM it3);
4540
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a+0 FROM it3);
4551
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a+0 AND ot2.a IN (SELECT a FROM it2);
4562
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND ot2.a IN (SELECT a+0 FROM it2);
4573
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a+0 AND ot1.a IN (SELECT a+0 FROM it1)
4574
AND ot2.a IN (SELECT a+0 FROM it2);
4585
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a+0 AND
4586
(ot1.a, ot2.a) IN (SELECT it1.a+0, it2.a+0
4587
FROM it1 JOIN it2 ON it1.a=it2.a);
4598
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it3)
4599
LEFT JOIN ot3 ON ot2.a=ot3.a AND ot3.a IN (SELECT a FROM it3);
4610
FROM ot1 LEFT JOIN ot2 ON ot1.a=ot2.a+0 AND ot1.a IN (SELECT a FROM it3)
4611
LEFT JOIN ot3 ON ot2.a=ot3.a+0 AND ot3.a IN (SELECT a FROM it3);
4621
# Test cases, Subquery Pattern 4
4626
(ot2 JOIN ot3 ON ot2.a=ot3.a)
4627
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4628
id select_type table type possible_keys key key_len ref rows Extra
4629
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Start temporary
4630
1 SIMPLE it1 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (Block Nested Loop)
4631
1 SIMPLE ot3 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
4632
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where; End temporary; Using join buffer (Block Nested Loop)
4636
(ot2 JOIN ot3 ON ot2.a=ot3.a)
4637
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4651
(ot2 JOIN ot3 ON ot2.a=ot3.a)
4652
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4653
id select_type table type possible_keys key key_len ref rows Extra
4654
1 SIMPLE ot3 ALL NULL NULL NULL NULL 3 Using where
4655
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (Block Nested Loop)
4656
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (Block Nested Loop)
4657
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.ot3.a 1 NULL
4658
2 MATERIALIZED it1 ALL NULL NULL NULL NULL 8 NULL
4662
(ot2 JOIN ot3 ON ot2.a=ot3.a)
4663
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4671
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a)
4672
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4673
id select_type table type possible_keys key key_len ref rows Extra
4674
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where
4675
1 SIMPLE ot3 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (Block Nested Loop)
4676
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (Block Nested Loop)
4677
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.ot2.a 1 NULL
4678
2 MATERIALIZED it1 ALL NULL NULL NULL NULL 8 NULL
4682
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a)
4683
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4693
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a)
4694
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4695
id select_type table type possible_keys key key_len ref rows Extra
4696
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Start temporary
4697
1 SIMPLE it1 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (Block Nested Loop)
4698
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (Block Nested Loop)
4699
1 SIMPLE ot3 ALL NULL NULL NULL NULL 3 Using where; End temporary; Using join buffer (Block Nested Loop)
4703
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a)
4704
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4718
(ot2 JOIN ot3 ON ot2.a=ot3.a+0)
4719
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4732
(ot2 JOIN ot3 ON ot2.a=ot3.a)
4733
ON ot1.a=ot2.a+0 AND ot1.a IN (SELECT a FROM it1);
4746
(ot2 JOIN ot3 ON ot2.a=ot3.a)
4747
ON ot1.a=ot2.a AND ot1.a IN (SELECT a+0 FROM it1);
4760
(ot2 JOIN ot3 ON ot2.a=ot3.a+0)
4761
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4768
(ot2 JOIN ot3 ON ot2.a=ot3.a)
4769
ON ot1.a=ot2.a+0 AND ot1.a IN (SELECT a FROM it1);
4776
(ot2 JOIN ot3 ON ot2.a=ot3.a)
4777
ON ot1.a=ot2.a AND ot1.a IN (SELECT a+0 FROM it1);
4784
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a+0)
4785
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4794
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a)
4795
ON ot1.a=ot2.a+0 AND ot1.a IN (SELECT a FROM it1);
4804
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a)
4805
ON ot1.a=ot2.a AND ot1.a IN (SELECT a+0 FROM it1);
4814
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a+0)
4815
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4828
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a)
4829
ON ot1.a=ot2.a+0 AND ot1.a IN (SELECT a FROM it1);
4842
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a)
4843
ON ot1.a=ot2.a AND ot1.a IN (SELECT a+0 FROM it1);
4856
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a)
4857
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1)
4873
(ot2 LEFT JOIN ot3 ON ot2.a=ot3.a
4874
LEFT JOIN ot1 AS ot4 ON ot3.a=ot4.a)
4875
ON ot1.a=ot2.a AND ot1.a IN (SELECT a FROM it1);
4885
DROP TABLE ot1,ot2,ot3,it1,it2,it3;
4887
a INTEGER DEFAULT NULL
4889
INSERT INTO t VALUES (1);
4891
a INTEGER DEFAULT NULL
4893
INSERT INTO t2 VALUES (1),(1);
4895
a INTEGER DEFAULT NULL
4897
INSERT INTO t4 VALUES (1),(1);
4899
a INTEGER DEFAULT NULL
4901
INSERT INTO v VALUES (1),(1);
4907
ON t3.a IN (SELECT a FROM t AS it)
4912
WHERE t1.a IN (SELECT * FROM v AS it2);
4913
id select_type table type possible_keys key key_len ref rows Extra
4914
1 SIMPLE t1 ALL NULL NULL NULL NULL 1 Start temporary
4915
1 SIMPLE it2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
4916
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
4917
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
4918
1 SIMPLE it ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
4919
1 SIMPLE t4 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
4925
ON t3.a IN (SELECT a FROM t AS it)
4930
WHERE t1.a IN (SELECT * FROM v AS it2);
4933
DROP TABLE t,t2,t4,v;
4936
# Bug#48868: Left outer join in subquery causes segmentation fault in
4939
CREATE TABLE t1 (i INTEGER);
4940
INSERT INTO t1 VALUES (1);
4941
INSERT INTO t1 VALUES (2);
4942
CREATE TABLE t2 (i INTEGER);
4943
INSERT INTO t2 VALUES(1);
4944
CREATE TABLE t3 (i INTEGER);
4945
INSERT INTO t3 VALUES (1);
4946
INSERT INTO t3 VALUES (2);
4947
SELECT * FROM t1 WHERE (t1.i) IN
4948
(SELECT t2.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
4951
DROP TABLE t1, t2, t3;
4953
Bug#37899: Wrongly checked optimization prerequisite caused failed
4958
`varchar_nokey` varchar(5)
4960
INSERT INTO t1 VALUES
4961
(1,'qk'),(2,'j'),(3,'aew');
4964
WHERE varchar_nokey IN (
4976
# BUG#41842: Semi-join materialization strategy crashes when the upper query has HAVING
4979
pk int(11) NOT NULL AUTO_INCREMENT,
4980
int_nokey int(11) NOT NULL,
4981
time_key time NOT NULL,
4982
datetime_key datetime NOT NULL,
4983
datetime_nokey datetime NOT NULL,
4984
varchar_key varchar(1) NOT NULL,
4985
varchar_nokey varchar(1) NOT NULL,
4987
KEY time_key (time_key),
4988
KEY datetime_key (datetime_key),
4989
KEY varchar_key (varchar_key)
4991
INSERT INTO t1 VALUES
4992
(1,0, '00:16:10','2008-09-03 14:25:40','2008-09-03 14:25:40','h','h'),
4993
(2,7, '00:00:00','2001-01-13 00:00:00','2001-01-13 00:00:00','',''),
4994
(3,0, '00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','x','x'),
4995
(4,2, '16:29:24','2000-10-16 01:39:08','2000-10-16 01:39:08','w','w'),
4996
(5,1, '09:23:32','0000-00-00 00:00:00','0000-00-00 00:00:00','p','p'),
4997
(6,3, '00:00:00','2007-12-02 00:00:00','2007-12-02 00:00:00','o','o'),
4998
(7,3, '00:00:00','2008-09-11 00:00:00','2008-09-11 00:00:00','',''),
4999
(8,0, '13:59:04','0000-00-00 00:00:00','0000-00-00 00:00:00','s','s'),
5000
(9,7, '09:01:06','0000-00-00 00:00:00','0000-00-00 00:00:00','d','d'),
5001
(10,5,'00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','n','n'),
5002
(11,0,'21:06:46','0000-00-00 00:00:00','0000-00-00 00:00:00','o','o'),
5003
(12,2,'00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','',''),
5004
(13,6,'14:45:34','2003-07-28 02:34:08','2003-07-28 02:34:08','w','w'),
5005
(14,1,'15:04:12','0000-00-00 00:00:00','0000-00-00 00:00:00','o','o'),
5006
(15,0,'00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','x','x'),
5007
(16,0,'15:55:23','2004-03-17 00:32:27','2004-03-17 00:32:27','p','p'),
5008
(17,1,'16:30:00','2004-12-27 19:20:00','2004-12-27 19:20:00','d','d'),
5009
(18,0,'00:00:00','0000-00-00 00:00:00','0000-00-00 00:00:00','h','h'),
5010
(19,0,'14:13:26','2008-11-09 05:53:48','2008-11-09 05:53:48','o','o'),
5011
(20,0,'00:00:00','2009-10-11 06:58:04','2009-10-11 06:58:04','k','k');
5013
pk int(11) NOT NULL AUTO_INCREMENT,
5014
int_nokey int(11) NOT NULL,
5015
time_key time NOT NULL,
5016
datetime_key datetime NOT NULL,
5017
datetime_nokey datetime NOT NULL,
5018
varchar_key varchar(1) NOT NULL,
5019
varchar_nokey varchar(1) NOT NULL,
5021
KEY time_key (time_key),
5022
KEY datetime_key (datetime_key),
5023
KEY varchar_key (varchar_key)
5025
INSERT INTO t2 VALUES
5026
(10,0,'19:39:13','0000-00-00 00:00:00','0000-00-00 00:00:00','g','g'),
5027
(11,8,'03:43:53','0000-00-00 00:00:00','0000-00-00 00:00:00','b','b');
5028
SELECT OUTR.datetime_nokey AS X FROM t1 AS OUTR
5030
OUTR.varchar_nokey IN (SELECT
5031
INNR . varchar_nokey AS Y
5034
INNR . datetime_key >= INNR . time_key OR
5035
INNR . pk = INNR . int_nokey
5037
AND OUTR . varchar_nokey <= 'w'
5038
HAVING X > '2012-12-12';
5042
Bug#46797 "Crash in fix_semijoin_strategies_for_picked_join_order
5046
varchar_key varchar(1) DEFAULT NULL,
5047
KEY varchar_key (varchar_key)
5050
varchar_key varchar(1) DEFAULT NULL,
5051
KEY varchar_key (varchar_key)
5053
INSERT INTO t2 VALUES
5054
(NULL),(NULL),(NULL),(NULL),('a'),('a'),('a'),('b'),('b'),('b'),('b'),('c'),
5055
('c'),('c'),('c'),('c'),('c'),('c'),('d'),('d'),('d'),('d'),('d'),('d'),('e'),
5056
('e'),('e'),('e'),('e'),('e'),('f'),('f'),('f'),('g'),('g'),('h'),('h'),('h'),
5057
('h'),('i'),('j'),('j'),('j'),('k'),('k'),('l'),('l'),('m'),('m'),('m'),('m'),
5058
('n'),('n'),('n'),('o'),('o'),('o'),('p'),('p'),('p'),('q'),('q'),('q'),('r'),
5059
('r'),('r'),('r'),('s'),('s'),('s'),('s'),('t'),('t'),('t'),('t'),('u'),('u'),
5060
('u'),('u'),('v'),('v'),('v'),('v'),('w'),('w'),('w'),('w'),('w'),('w'),('x'),
5061
('x'),('x'),('y'),('y'),('y'),('y'),('z'),('z'),('z'),('z');
5063
varchar_key varchar(1) DEFAULT NULL,
5064
KEY varchar_key (varchar_key)
5065
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
5066
INSERT INTO t3 VALUES
5067
(NULL),('c'),('d'),('e'),('f'),('h'),('j'),('k'),('k'),('m'),('m'),('m'),
5068
('n'),('o'),('r'),('t'),('t'),('u'),('w'),('y');
5069
SELECT varchar_key FROM t3
5070
WHERE (SELECT varchar_key FROM t3
5071
WHERE (varchar_key,varchar_key)
5072
IN (SELECT t1.varchar_key, t2 .varchar_key
5073
FROM t1 RIGHT JOIN t2 ON t1.varchar_key
5077
DROP TABLE t1, t2, t3;
5079
# Bug#46556 Returning incorrect, empty results for some IN subqueries
5090
VALUES (1,'g','g'), (2,'v','v'), (3,'t','t'), (4,'u','u'), (5,'n','n');
5091
EXPLAIN EXTENDED SELECT vkey FROM t0 WHERE pk IN
5092
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
5093
id select_type table type possible_keys key key_len ref rows filtered Extra
5094
1 SIMPLE t0 ALL PRIMARY NULL NULL NULL 5 100.00 Start temporary
5095
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00 NULL
5096
1 SIMPLE t2 index vkey vkey 4 NULL 5 80.00 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
5098
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`))
5099
SELECT vkey FROM t0 WHERE pk IN
5100
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
5110
Bug#48834: Procedure with view + subquery + semijoin=on
5111
crashes on second call.
5113
CREATE TABLE t1 ( t1field integer, primary key (t1field));
5114
CREATE TABLE t2 ( t2field integer, primary key (t2field));
5116
SELECT t1field as v1field
5118
WHERE A.t1field IN (SELECT t1field FROM t2 );
5120
SELECT t2field as v2field
5122
WHERE A.t2field IN (SELECT t2field FROM t2 );
5123
CREATE PROCEDURE p1 ()
5127
WHERE v1field IN ( SELECT v2field as vf_inner FROM v2 );
5129
INSERT INTO t1 VALUES (1),(2),(3);
5130
INSERT INTO t2 VALUES (2),(3),(4);
5144
# Bug#46692 "Crash occurring on queries with nested FROM subqueries
5145
# using materialization."
5148
pk INTEGER PRIMARY KEY,
5150
KEY int_key(int_key)
5152
INSERT INTO t1 VALUES (10,186),(11,NULL),(12,2),(13,3),(14,0),(15,133),(16,1);
5154
pk INTEGER PRIMARY KEY,
5156
KEY int_key(int_key)
5158
INSERT INTO t2 VALUES (1,7),(2,2);
5159
SELECT * FROM t1 WHERE (140, 4) IN
5160
(SELECT t2.int_key, t2 .pk FROM t2 STRAIGHT_JOIN t1 ON t2.int_key);
5164
# Bug#42353 "SELECT ... WHERE oe IN (SELECT w/ LEFT JOIN) query
5168
pk INTEGER PRIMARY KEY,
5172
datetime_nokey DATETIME,
5173
varchar_nokey VARCHAR(1)
5179
pk INTEGER PRIMARY KEY,
5182
varchar_key VARCHAR(1),
5183
varchar_nokey VARCHAR(1),
5184
KEY date_key (date_key)
5186
SELECT date_key FROM t1
5187
WHERE (int_key, int_nokey)
5188
IN (SELECT t3.int_nokey, t3.pk
5189
FROM t2 LEFT JOIN t3 ON (t2.date_nokey < t3.date_key)
5190
WHERE t3.varchar_key <= t3.varchar_nokey OR t3.int_nokey <= t3.pk
5192
AND (varchar_nokey <> 'f' OR NOT int_key < 7);
5195
# Bug#45933 "Crash in optimize_semijoin_nests on JOIN in subquery
5196
# + AND in outer query".
5198
INSERT INTO t1 VALUES (10,7,5,'2009-06-16','2002-04-10 14:25:30','w'),
5199
(11,7,0,'0000-00-00','0000-00-00 00:00:00','s'),
5200
(12,4,0,'2003-07-14','2006-09-14 04:01:02','y'),
5201
(13,0,4,'2002-07-25','0000-00-00 00:00:00','c'),
5202
(14,1,8,'2007-07-03','0000-00-00 00:00:00','q'),
5203
(15,6,5,'2001-11-12','0000-00-00 00:00:00',''),
5204
(16,2,9,'0000-00-00','0000-00-00 00:00:00','j'),
5205
(29,9,1,'0000-00-00','2003-08-11 00:00:00','m');
5206
INSERT INTO t3 VALUES (1,9,'0000-00-00','b','b'),
5207
(2,2,'2002-09-17','h','h');
5208
SELECT t1.varchar_nokey FROM t1 JOIN t3 ON t1.datetime_nokey
5209
WHERE t1.varchar_nokey
5210
IN (SELECT varchar_nokey FROM t1
5212
IN (SELECT t3.int_nokey
5213
FROM t3 LEFT JOIN t1 ON t1.varchar_nokey
5214
WHERE t3.date_key BETWEEN '2008-06-07' AND '2006-06-26'
5218
DROP TABLE t1, t2, t3;
5220
# Bug#45219 "Crash on SELECT DISTINCT query containing a
5221
# LEFT JOIN in subquery"
5224
pk INTEGER NOT NULL,
5225
int_nokey INTEGER NOT NULL,
5226
datetime_key DATETIME NOT NULL,
5227
varchar_key VARCHAR(1) NOT NULL,
5229
KEY datetime_key (datetime_key),
5230
KEY varchar_key (varchar_key)
5232
INSERT INTO t1 VALUES
5233
(1,9,'0000-00-00 00:00:00','p'),(2,0,'2002-02-09 07:38:13','v'),
5234
(3,8,'2001-05-03 12:08:14','t'),(4,3,'0000-00-00 00:00:00','u'),
5235
(5,7,'2009-07-28 03:43:30','n'),(6,0,'2009-08-04 00:00:00','l'),
5236
(7,1,'0000-00-00 00:00:00','h'),(8,9,'0000-00-00 00:00:00','u'),
5237
(9,0,'2005-08-02 17:16:54','n'),(10,9,'2002-12-21 00:00:00','j'),
5238
(11,0,'2005-08-15 12:37:35','k'),(12,5,'0000-00-00 00:00:00','e'),
5239
(13,0,'2006-03-10 00:00:00','i'),(14,8,'2005-05-16 11:02:36','u'),
5240
(15,8,'2008-11-02 00:00:00','n'),(16,5,'2006-03-15 00:00:00','b'),
5241
(17,1,'0000-00-00 00:00:00','x'),(18,7,'0000-00-00 00:00:00',''),
5242
(19,0,'2008-12-17 20:15:40','q'),(20,9,'0000-00-00 00:00:00','u');
5243
CREATE TABLE t2 LIKE t1;
5244
INSERT INTO t2 VALUES
5245
(10,0,'2006-07-07 07:26:28','q'),(11,5,'2002-09-23 00:00:00','m'),
5246
(12,7,'0000-00-00 00:00:00','j'),(13,1,'2006-06-07 00:00:00','z'),
5247
(14,8,'2000-09-16 12:15:34','a'),(15,2,'2007-08-05 15:47:52',''),
5248
(16,1,'0000-00-00 00:00:00','e'),(17,8,'2005-12-02 19:34:26','t'),
5249
(18,5,'0000-00-00 00:00:00','q'),(19,4,'0000-00-00 00:00:00','b'),
5250
(20,5,'2007-12-28 00:00:00','w'),(21,3,'2004-08-02 11:48:43','m'),
5251
(22,0,'0000-00-00 00:00:00','x'),(23,8,'2004-04-19 12:18:43',''),
5252
(24,0,'2009-04-27 00:00:00','w'),(25,4,'2006-10-20 14:52:15','x'),
5253
(26,0,'0000-00-00 00:00:00','e'),(27,0,'2002-03-22 11:48:37','e'),
5254
(28,2,'0000-00-00 00:00:00','p'),(29,0,'2001-01-04 03:55:07','x');
5255
CREATE TABLE t3 LIKE t1;
5256
INSERT INTO t3 VALUES
5257
(10,8,'2007-08-19 08:08:38','i'),(11,0,'2000-05-21 03:51:51','');
5258
SELECT DISTINCT datetime_key FROM t1
5259
WHERE (int_nokey, pk)
5260
IN (SELECT t3.pk, t3.pk FROM t2 LEFT JOIN t3 ON t3.varchar_key)
5263
DROP TABLE t1, t2, t3;
5265
# Bug#46550 Azalea returning duplicate results for some IN subqueries
5268
DROP TABLE IF EXISTS t0, t1, t2;
5270
int_key int(11) DEFAULT NULL,
5271
varchar_key varchar(1) DEFAULT NULL,
5272
varchar_nokey varchar(1) DEFAULT NULL,
5273
KEY int_key (int_key),
5274
KEY varchar_key (varchar_key,int_key)
5276
INSERT INTO t0 VALUES
5298
int_key int(11) DEFAULT NULL,
5299
varchar_key varchar(1) DEFAULT NULL,
5300
varchar_nokey varchar(1) DEFAULT NULL,
5301
KEY int_key (int_key),
5302
KEY varchar_key (varchar_key,int_key)
5304
INSERT INTO t1 VALUES (7,NULL,NULL),(4,'x','x');
5306
int_key int(11) DEFAULT NULL,
5307
varchar_key varchar(1) DEFAULT NULL,
5308
varchar_nokey varchar(1) DEFAULT NULL,
5309
KEY int_key (int_key),
5310
KEY varchar_key (varchar_key,int_key)
5312
INSERT INTO t2 VALUES (123,NULL,NULL);
5315
WHERE varchar_nokey IN (
5316
SELECT t1 .varchar_key from t1
5323
WHERE t0.varchar_nokey IN (
5324
SELECT t1_1 .varchar_key
5325
FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1 .int_key
5333
WHERE t0.varchar_nokey IN (
5334
SELECT t1_1 .varchar_key
5335
FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1 .int_key
5337
id select_type table type possible_keys key key_len ref rows Extra
5338
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
5339
1 SIMPLE t0 ALL NULL NULL NULL NULL 20 Using where; Using join buffer (Block Nested Loop)
5340
2 MATERIALIZED t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index
5341
2 MATERIALIZED t1_2 index NULL int_key 5 NULL 2 Using index; Using join buffer (Block Nested Loop)
5344
WHERE t0.varchar_nokey IN (
5345
SELECT t1_1 .varchar_key
5346
FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1 .int_key
5354
WHERE t0.varchar_nokey IN (
5355
SELECT t1_1 .varchar_key
5356
FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1 .int_key
5358
id select_type table type possible_keys key key_len ref rows Extra
5359
1 SIMPLE t2 system NULL NULL NULL NULL 1 NULL
5360
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
5361
1 SIMPLE t0 ALL NULL NULL NULL NULL 20 Using where; Using join buffer (Block Nested Loop)
5362
2 MATERIALIZED t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index
5363
2 MATERIALIZED t1_2 index NULL int_key 5 NULL 2 Using index; Using join buffer (Block Nested Loop)
5364
DROP TABLE t0, t1, t2;
5367
Bug #48073 Subquery on char columns from view crashes Mysql
5369
DROP TABLE IF EXISTS t1, t2;
5370
DROP VIEW IF EXISTS v1;
5372
city VARCHAR(50) NOT NULL,
5373
country_id SMALLINT UNSIGNED NOT NULL
5375
INSERT INTO t1 VALUES
5382
country_id SMALLINT UNSIGNED NOT NULL,
5383
country VARCHAR(50) NOT NULL
5385
INSERT INTO t2 VALUES
5387
(3,'American Samoa') ;
5389
SELECT country_id, country
5391
WHERE LEFT(country,1) = "A"
5393
SELECT city, country_id
5398
WHERE LEFT(country, 1) = "A"
5402
SELECT city, country_id
5414
Bug#49097 subquery with view generates wrong result with
5415
non-prepared statement
5417
DROP TABLE IF EXISTS t1, t2;
5418
DROP VIEW IF EXISTS v1;
5420
city VARCHAR(50) NOT NULL,
5421
country_id SMALLINT UNSIGNED NOT NULL
5423
INSERT INTO t1 VALUES
5430
country_id SMALLINT UNSIGNED NOT NULL,
5431
country VARCHAR(50) NOT NULL
5433
INSERT INTO t2 VALUES
5435
(3,'XAmerican Samoa') ;
5437
SELECT country_id, country
5439
WHERE LEFT(country,1) = "A"
5441
SELECT city, country_id
5443
WHERE country_id IN (
5446
WHERE LEFT(country,1) = "A"
5453
SELECT city, country_id
5455
WHERE country_id IN (
5466
SELECT city, country_id
5468
WHERE country_id IN (
5479
deallocate prepare stmt;
5484
# Bug#49198 Wrong result for second call of procedure
5485
# with view in subselect.
5487
CREATE TABLE t1 (t1field integer, primary key (t1field));
5488
CREATE TABLE t2 (t2field integer, primary key (t2field));
5489
CREATE TABLE t3 (t3field integer, primary key (t3field));
5490
CREATE VIEW v2 AS SELECT * FROM t2;
5491
CREATE VIEW v3 AS SELECT * FROM t3;
5492
INSERT INTO t1 VALUES(1),(2);
5493
INSERT INTO t2 VALUES(1),(2);
5494
INSERT INTO t3 VALUES(1),(2);
5499
WHERE t1field IN (SELECT * FROM v2);
5514
WHERE t1field IN (SELECT * FROM v2)
5515
AND t1field IN (SELECT * FROM v3)
5518
id select_type table type possible_keys key key_len ref rows Extra
5519
1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 2 Using index
5520
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.t1field 1 Using index
5521
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.t1field 1 Using index
5523
id select_type table type possible_keys key key_len ref rows Extra
5524
1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 2 Using index
5525
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.t1field 1 Using index
5526
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.t1field 1 Using index
5527
DROP TABLE t1, t2, t3;
5531
# Bug#48623 Multiple subqueries are optimized incorrectly
5533
CREATE TABLE ot(val VARCHAR(10));
5534
CREATE TABLE it1(val VARCHAR(10));
5535
CREATE TABLE it2(val VARCHAR(10));
5536
INSERT INTO ot VALUES('aaa'), ('bbb'), ('eee'), ('mmm'), ('ppp');
5537
INSERT INTO it1 VALUES('aaa'), ('aaa'), ('bbb'), ('eee'), ('mmm'), ('ppp');
5538
INSERT INTO it2 VALUES('aaa'), ('bbb'), ('eee'), ('mmm'), ('ppp');
5542
WHERE ot.val IN (SELECT it1.val FROM it1
5543
WHERE it1.val LIKE 'a%' OR it1.val LIKE 'e%')
5544
AND ot.val IN (SELECT it2.val FROM it2
5545
WHERE it2.val LIKE 'a%' OR it2.val LIKE 'e%');
5546
id select_type table type possible_keys key key_len ref rows Extra
5547
1 SIMPLE ot ALL NULL NULL NULL NULL 5 Using where
5548
1 SIMPLE <subquery3> eq_ref <auto_key> <auto_key> 13 test.ot.val 1 NULL
5549
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 13 test.ot.val 1 NULL
5550
3 MATERIALIZED it2 ALL NULL NULL NULL NULL 5 Using where
5551
2 MATERIALIZED it1 ALL NULL NULL NULL NULL 6 Using where
5554
WHERE ot.val IN (SELECT it1.val FROM it1
5555
WHERE it1.val LIKE 'a%' OR it1.val LIKE 'e%')
5556
AND ot.val IN (SELECT it2.val FROM it2
5557
WHERE it2.val LIKE 'a%' OR it2.val LIKE 'e%');
5566
# Bug #51487 Assertion failure when semi-join flattening occurs
5567
# for a subquery in HAVING
5569
CREATE TABLE t1 (a INT, b INT);
5570
INSERT INTO t1 VALUES (1,10),(2,11),(1,13);
5571
CREATE TABLE t2 AS SELECT * FROM t1;
5572
CREATE TABLE t3 AS SELECT * FROM t1;
5573
SELECT COUNT(*) FROM t1
5575
HAVING t1.a IN (SELECT t3.a FROM t3
5576
WHERE t3.b IN (SELECT b FROM t2 WHERE t2.a=t1.a));
5580
DROP TABLE t1, t2, t3;
5583
# BUG#38075: Wrong result: rows matching a subquery with outer join not returned
5585
DROP TABLE IF EXISTS ot1, it1, it2;
5587
int_key int(11) NOT NULL,
5588
datetime_key datetime NOT NULL,
5589
KEY int_key (int_key),
5590
KEY datetime_key (datetime_key)
5592
INSERT INTO it2 VALUES
5593
(5,'2002-04-10 14:25:30'), (0,'0000-00-00 00:00:00'),
5594
(0,'2006-09-14 04:01:02'), (4,'0000-00-00 00:00:00'),
5595
(8,'0000-00-00 00:00:00'), (5,'0000-00-00 00:00:00'),
5596
(9,'0000-00-00 00:00:00'), (8,'2007-04-01 11:04:17'),
5597
(1,'0000-00-00 00:00:00'), (7,'2009-01-12 00:00:00'),
5598
(0,'2009-06-05 00:00:00'), (3,'2006-02-14 18:06:35'),
5599
(5,'2006-02-21 07:08:16'), (0,'0000-00-00 00:00:00'),
5600
(7,'0000-00-00 00:00:00'), (0,'0000-00-00 00:00:00'),
5601
(0,'2007-02-13 00:00:00'), (1,'0000-00-00 00:00:00'),
5602
(0,'0000-00-00 00:00:00'), (1,'2003-08-11 00:00:00');
5604
int_nokey int(11) NOT NULL,
5605
int_key int(11) NOT NULL,
5606
KEY int_key (int_key)
5608
INSERT INTO ot1 VALUES
5609
(5,0), (3,0), (0,2), (3,0), (1,3), (0,0), (1,7), (7,0), (1,7), (0,7),
5610
(0,9), (8,2), (4,4), (9,3), (0,9), (2,5), (0,5), (8,0), (5,8), (1,5);
5612
int_nokey int(11) NOT NULL,
5613
int_key int(11) NOT NULL,
5614
KEY int_key (int_key)
5616
INSERT INTO it1 VALUES
5618
SELECT int_key FROM ot1
5619
WHERE int_nokey IN (SELECT it2.int_key
5620
FROM it1 LEFT JOIN it2 ON it2.datetime_key);
5640
SELECT int_key FROM ot1
5641
WHERE int_nokey IN (SELECT it2.int_key
5642
FROM it1 LEFT JOIN it2 ON it2.datetime_key);
5643
id select_type table type possible_keys key key_len ref rows Extra
5644
1 SIMPLE it1 index NULL int_key 4 NULL 2 Using index; Start temporary
5645
1 SIMPLE ot1 ALL NULL NULL NULL NULL 20 Using join buffer (Block Nested Loop)
5646
1 SIMPLE it2 ref int_key int_key 4 test.ot1.int_nokey 2 Using where; End temporary
5647
DROP TABLE ot1, it1, it2;
5650
# BUG#50089: Second call of procedure with view in subselect crashes server
5652
CREATE TABLE t1(t1field INTEGER, PRIMARY KEY(t1field));
5654
SELECT t1field AS v1field
5656
WHERE a.t1field IN (SELECT t1field FROM t1);
5657
INSERT INTO t1 VALUES(1),(2);
5660
WHERE t1field IN (SELECT v1field FROM v1);
5667
WHERE t1field IN (SELECT v1field FROM v1);
5668
id select_type table type possible_keys key key_len ref rows Extra
5669
1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 2 Using index
5670
1 SIMPLE a eq_ref PRIMARY PRIMARY 4 test.t1.t1field 1 Using index
5671
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t1.t1field 1 Using index
5673
FROM t1 LEFT JOIN t1 AS t2 ON t1.t1field IN (SELECT v1field FROM v1);
5682
WHERE t1field IN (SELECT v1field FROM v1);
5683
id select_type table type possible_keys key key_len ref rows Extra
5684
1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 2 Using index
5685
1 SIMPLE a eq_ref PRIMARY PRIMARY 4 test.t1.t1field 1 Using index
5686
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t1.t1field 1 Using index
5687
CREATE PROCEDURE p1()
5691
WHERE t1field IN (SELECT v1field FROM v1);
5705
WHERE t1field IN (SELECT v1field FROM v1);
5720
# Bug#45191: Incorrectly initialized semi-join led to a wrong result.
5722
CREATE TABLE STAFF (EMPNUM CHAR(3) NOT NULL,
5723
EMPNAME CHAR(20), GRADE DECIMAL(4), CITY CHAR(15));
5724
CREATE TABLE PROJ (PNUM CHAR(3) NOT NULL,
5725
PNAME CHAR(20), PTYPE CHAR(6),
5728
CREATE TABLE WORKS (EMPNUM CHAR(3) NOT NULL,
5729
PNUM CHAR(3) NOT NULL, HOURS DECIMAL(5));
5730
INSERT INTO STAFF VALUES ('E1','Alice',12,'Deale');
5731
INSERT INTO STAFF VALUES ('E2','Betty',10,'Vienna');
5732
INSERT INTO STAFF VALUES ('E3','Carmen',13,'Vienna');
5733
INSERT INTO STAFF VALUES ('E4','Don',12,'Deale');
5734
INSERT INTO STAFF VALUES ('E5','Ed',13,'Akron');
5735
INSERT INTO PROJ VALUES ('P1','MXSS','Design',10000,'Deale');
5736
INSERT INTO PROJ VALUES ('P2','CALM','Code',30000,'Vienna');
5737
INSERT INTO PROJ VALUES ('P3','SDP','Test',30000,'Tampa');
5738
INSERT INTO PROJ VALUES ('P4','SDP','Design',20000,'Deale');
5739
INSERT INTO PROJ VALUES ('P5','IRM','Test',10000,'Vienna');
5740
INSERT INTO PROJ VALUES ('P6','PAYR','Design',50000,'Deale');
5741
INSERT INTO WORKS VALUES ('E1','P1',40);
5742
INSERT INTO WORKS VALUES ('E1','P2',20);
5743
INSERT INTO WORKS VALUES ('E1','P3',80);
5744
INSERT INTO WORKS VALUES ('E1','P4',20);
5745
INSERT INTO WORKS VALUES ('E1','P5',12);
5746
INSERT INTO WORKS VALUES ('E1','P6',12);
5747
INSERT INTO WORKS VALUES ('E2','P1',40);
5748
INSERT INTO WORKS VALUES ('E2','P2',80);
5749
INSERT INTO WORKS VALUES ('E3','P2',20);
5750
INSERT INTO WORKS VALUES ('E4','P2',20);
5751
INSERT INTO WORKS VALUES ('E4','P4',40);
5752
INSERT INTO WORKS VALUES ('E4','P5',80);
5753
explain SELECT EMPNUM, EMPNAME
5756
(SELECT EMPNUM FROM WORKS
5758
(SELECT PNUM FROM PROJ));
5759
id select_type table type possible_keys key key_len ref rows Extra
5760
1 SIMPLE STAFF ALL NULL NULL NULL NULL 5 Using where
5761
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.STAFF.EMPNUM 1 NULL
5762
2 MATERIALIZED PROJ ALL NULL NULL NULL NULL 6 NULL
5763
2 MATERIALIZED WORKS ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
5764
SELECT EMPNUM, EMPNAME
5767
(SELECT EMPNUM FROM WORKS
5769
(SELECT PNUM FROM PROJ));
5775
drop table STAFF,WORKS,PROJ;
5778
# BUG#36896: Server crash on SELECT FROM DUAL
5780
create table t1 (a int);
5781
select 1 as res from dual where (1) in (select * from t1);
5785
BUG#40118 Crash when running Batched Key Access and requiring one match for each key
5787
create table t0(a int);
5788
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
5789
create table t1 (a int, key(a));
5790
insert into t1 select * from t0;
5791
alter table t1 add b int not null, add filler char(200);
5792
insert into t1 select * from t1;
5793
insert into t1 select * from t1;
5794
select * from t0 where t0.a in (select t1.a from t1 where t1.b=0);
5808
# BUG#32665 Query with dependent subquery is too slow
5811
idIndividual int primary key
5813
insert into t1 values (1),(2);
5815
idContact int primary key,
5819
insert into t2 values (1,1,1),(2,2,2),(3,3,3);
5821
idAddress int primary key,
5823
postalStripped varchar(100)
5825
insert into t3 values (1,1, 'foo'), (2,2,'bar');
5826
The following must be converted to a semi-join:
5827
explain extended SELECT a.idIndividual FROM t1 a
5828
WHERE a.idIndividual IN
5829
( SELECT c.idObj FROM t3 cona
5830
INNER JOIN t2 c ON c.idContact=cona.idContact
5831
WHERE cona.postalStripped='T2H3B2'
5833
id select_type table type possible_keys key key_len ref rows filtered Extra
5834
1 SIMPLE cona ALL NULL NULL NULL NULL 2 100.00 Using where; Start temporary
5835
1 SIMPLE c eq_ref PRIMARY PRIMARY 4 test.cona.idContact 1 100.00 Using where
5836
1 SIMPLE a eq_ref PRIMARY PRIMARY 4 test.c.idObj 1 100.00 Using index; End temporary
5838
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'))
5839
drop table t1,t2,t3;
5840
CREATE TABLE t1 (one int, two int, flag char(1));
5841
CREATE TABLE t2 (one int, two int, flag char(1));
5842
INSERT INTO t1 VALUES(1,2,'Y'),(2,3,'Y'),(3,4,'Y'),(5,6,'N'),(7,8,'N');
5843
INSERT INTO t2 VALUES(1,2,'Y'),(2,3,'Y'),(3,4,'Y'),(5,6,'N'),(7,8,'N');
5845
WHERE ROW(one,two) IN (SELECT DISTINCT one,two FROM t2 WHERE flag = 'N');
5850
WHERE ROW(one,two) IN (SELECT DISTINCT one,two FROM t1 WHERE flag = 'N');
5854
insert into t2 values (null,null,'N');
5855
insert into t2 values (null,3,'0');
5856
insert into t2 values (null,5,'0');
5857
insert into t2 values (10,null,'0');
5858
insert into t1 values (10,3,'0');
5859
insert into t1 values (10,5,'0');
5860
insert into t1 values (10,10,'0');
5861
SELECT one,two,ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = 'N') as 'test' from t1;
5871
SELECT one,two from t1 where ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = 'N');
5875
SELECT one,two,ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = 'N' group by one,two) as 'test' from t1;
5885
SELECT one,two,ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = '0') as 'test' from t1;
5895
SELECT one,two,ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = '0' group by one,two) as 'test' from t1;
5905
explain extended SELECT one,two,ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = '0') as 'test' from t1;
5906
id select_type table type possible_keys key key_len ref rows filtered Extra
5907
1 PRIMARY t1 ALL NULL NULL NULL NULL 8 100.00 NULL
5908
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 9 100.00 Using where
5910
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`
5911
explain extended SELECT one,two from t1 where ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = 'N');
5912
id select_type table type possible_keys key key_len ref rows filtered Extra
5913
1 SIMPLE t1 ALL NULL NULL NULL NULL 8 100.00 Using where
5914
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 10 test.t1.one,test.t1.two 1 100.00 NULL
5915
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 9 100.00 Using where
5917
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'))
5918
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;
5919
id select_type table type possible_keys key key_len ref rows filtered Extra
5920
1 PRIMARY t1 ALL NULL NULL NULL NULL 8 100.00 NULL
5921
2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 9 100.00 Using where
5923
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`
5925
CREATE TABLE t1 (a char(5), b char(5));
5926
INSERT INTO t1 VALUES (NULL,'aaa'), ('aaa','aaa');
5927
SELECT * FROM t1 WHERE (a,b) IN (('aaa','aaa'), ('aaa','bbb'));
5931
CREATE TABLE t1 (a CHAR(1), b VARCHAR(10));
5932
INSERT INTO t1 VALUES ('a', 'aa');
5933
INSERT INTO t1 VALUES ('a', 'aaa');
5934
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
5936
CREATE INDEX I1 ON t1 (a);
5937
CREATE INDEX I2 ON t1 (b);
5938
EXPLAIN SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
5939
id select_type table type possible_keys key key_len ref rows Extra
5940
1 SIMPLE t1 ALL I2 NULL NULL NULL 2 Using where
5941
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 2 test.t1.b 1 Using where
5942
2 MATERIALIZED t1 index I1 I1 2 NULL 2 Using index
5943
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
5945
CREATE TABLE t2 (a VARCHAR(1), b VARCHAR(10));
5946
INSERT INTO t2 SELECT * FROM t1;
5947
CREATE INDEX I1 ON t2 (a);
5948
CREATE INDEX I2 ON t2 (b);
5949
EXPLAIN SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
5950
id select_type table type possible_keys key key_len ref rows Extra
5951
1 SIMPLE t2 ALL I2 NULL NULL NULL 2 Using where
5952
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 4 test.t2.b 1 Using where
5953
2 MATERIALIZED t2 index I1 I1 4 NULL 2 Using index
5954
SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
5957
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
5958
id select_type table type possible_keys key key_len ref rows Extra
5959
1 SIMPLE t1 ALL I2 NULL NULL NULL 2 Using where
5960
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 2 test.t1.b 1 Using where
5961
2 MATERIALIZED t1 index I1 I1 2 NULL 2 Using where; Using index
5962
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
5966
# BUG#45928 "Differing query results depending on MRR and
5967
# engine_condition_pushdown settings"
5970
`pk` int(11) NOT NULL AUTO_INCREMENT,
5971
`time_nokey` time NOT NULL,
5972
`varchar_key` varchar(1) NOT NULL,
5973
`varchar_nokey` varchar(1) NOT NULL,
5975
KEY `varchar_key` (`varchar_key`)
5976
) AUTO_INCREMENT=12 DEFAULT CHARSET=latin1;
5977
INSERT INTO `t1` VALUES (10,'00:00:00','i','i'),(11,'00:00:00','','');
5978
SELECT `time_nokey` G1 FROM t1 WHERE ( `varchar_nokey` , `varchar_key` ) IN (
5979
SELECT `varchar_nokey` , `varchar_nokey` ) AND `varchar_key` >= 'c' HAVING G1 ORDER
5984
# BUG#45863 "Assertion failed: (fixed == 0), function fix_fields(),
5985
# file item.cc, line 4448"
5987
DROP TABLE IF EXISTS C, BB;
5989
varchar_nokey varchar(1) NOT NULL
5991
INSERT INTO C VALUES
5992
('k'),('a'),(''),('u'),('e'),('v'),('i'),
5993
('t'),('u'),('f'),('u'),('m'),('j'),('f'),
5994
('v'),('j'),('g'),('e'),('h'),('z');
5996
varchar_nokey varchar(1) NOT NULL
5998
INSERT INTO BB VALUES ('i'),('t');
5999
SELECT varchar_nokey FROM C
6000
WHERE (varchar_nokey, OUTR) IN (SELECT varchar_nokey
6002
ERROR 42S22: Unknown column 'OUTR' in 'IN/ALL/ANY subquery'
6003
SELECT varchar_nokey FROM C
6004
WHERE (varchar_nokey, OUTR) IN (SELECT varchar_nokey, varchar_nokey
6006
ERROR 42S22: Unknown column 'OUTR' in 'IN/ALL/ANY subquery'
6009
# During work with BUG#45863 I had problems with a query that was
6010
# optimized differently in regular and prepared mode.
6011
# Because there was a bug in one of the selected strategies, I became
6012
# aware of the problem. Adding an EXPLAIN query to catch this.
6013
DROP TABLE IF EXISTS t1, t2, t3;
6015
(EMPNUM CHAR(3) NOT NULL,
6020
(PNUM CHAR(3) NOT NULL,
6026
(EMPNUM CHAR(3) NOT NULL,
6027
PNUM CHAR(3) NOT NULL,
6029
INSERT INTO t1 VALUES ('E1','Alice',12,'Deale');
6030
INSERT INTO t1 VALUES ('E2','Betty',10,'Vienna');
6031
INSERT INTO t1 VALUES ('E3','Carmen',13,'Vienna');
6032
INSERT INTO t1 VALUES ('E4','Don',12,'Deale');
6033
INSERT INTO t1 VALUES ('E5','Ed',13,'Akron');
6034
INSERT INTO t2 VALUES ('P1','MXSS','Design',10000,'Deale');
6035
INSERT INTO t2 VALUES ('P2','CALM','Code',30000,'Vienna');
6036
INSERT INTO t2 VALUES ('P3','SDP','Test',30000,'Tampa');
6037
INSERT INTO t2 VALUES ('P4','SDP','Design',20000,'Deale');
6038
INSERT INTO t2 VALUES ('P5','IRM','Test',10000,'Vienna');
6039
INSERT INTO t2 VALUES ('P6','PAYR','Design',50000,'Deale');
6040
INSERT INTO t3 VALUES ('E1','P1',40);
6041
INSERT INTO t3 VALUES ('E1','P2',20);
6042
INSERT INTO t3 VALUES ('E1','P3',80);
6043
INSERT INTO t3 VALUES ('E1','P4',20);
6044
INSERT INTO t3 VALUES ('E1','P5',12);
6045
INSERT INTO t3 VALUES ('E1','P6',12);
6046
INSERT INTO t3 VALUES ('E2','P1',40);
6047
INSERT INTO t3 VALUES ('E2','P2',80);
6048
INSERT INTO t3 VALUES ('E3','P2',20);
6049
INSERT INTO t3 VALUES ('E4','P2',20);
6050
INSERT INTO t3 VALUES ('E4','P4',40);
6051
INSERT INTO t3 VALUES ('E4','P5',80);
6052
CREATE UNIQUE INDEX t1_IDX ON t1(EMPNUM);
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 t1_IDX 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; Using join buffer (Block Nested Loop)
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 t1_IDX 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; Using join buffer (Block Nested Loop)
6083
id select_type table type possible_keys key key_len ref rows Extra
6084
1 SIMPLE t1 ALL t1_IDX 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; Using join buffer (Block Nested Loop)
6088
DEALLOCATE PREPARE stmt;
6089
DROP INDEX t1_IDX ON t1;
6090
CREATE INDEX t1_IDX ON t1(EMPNUM);
6091
EXPLAIN SELECT EMPNAME
6099
WHERE PTYPE = 'Design'));
6100
id select_type table type possible_keys key key_len ref rows Extra
6101
1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5 Using where
6102
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.t1.EMPNUM 1 NULL
6103
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 6 Using where
6104
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
6105
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
6113
WHERE PTYPE = 'Design'))";
6115
id select_type table type possible_keys key key_len ref rows Extra
6116
1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5 Using where
6117
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.t1.EMPNUM 1 NULL
6118
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 6 Using where
6119
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
6121
id select_type table type possible_keys key key_len ref rows Extra
6122
1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5 Using where
6123
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.t1.EMPNUM 1 NULL
6124
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 6 Using where
6125
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
6126
DEALLOCATE PREPARE stmt;
6127
DROP INDEX t1_IDX ON t1;
6128
EXPLAIN SELECT EMPNAME
6136
WHERE PTYPE = 'Design'));
6137
id select_type table type possible_keys key key_len ref rows Extra
6138
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
6139
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.t1.EMPNUM 1 NULL
6140
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 6 Using where
6141
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
6142
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
6150
WHERE PTYPE = 'Design'))";
6152
id select_type table type possible_keys key key_len ref rows Extra
6153
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
6154
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.t1.EMPNUM 1 NULL
6155
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 6 Using where
6156
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
6158
id select_type table type possible_keys key key_len ref rows Extra
6159
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
6160
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.t1.EMPNUM 1 NULL
6161
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 6 Using where
6162
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
6163
DEALLOCATE PREPARE stmt;
6164
DROP TABLE t1, t2, t3;
6166
# BUG#45221 Query SELECT pk FROM C WHERE pk IN (SELECT int_key) failing
6172
KEY i1_index (i1_key)
6174
INSERT INTO t1 VALUES (9,1,2), (9,2,1);
6180
INSERT INTO t2 VALUES (9,1);
6187
WHERE t1.i2 < t1.i3 XOR t2.i1 > 1
6188
ORDER BY t1.i2 desc);
6192
# BUG#50361 Doublenested noncorrelated subquery with FirstMatch and join cache wrong result
6197
INSERT INTO t1 VALUES(10),(20);
6198
create table t2 select * from t1;
6199
create table t3 select * from t1;
6209
explain extended SELECT *
6215
id select_type table type possible_keys key key_len ref rows filtered Extra
6216
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6217
1 SIMPLE <subquery2> const <auto_key> <auto_key> 4 const 1 100.00 NULL
6218
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 100.00 NULL
6219
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (Block Nested Loop)
6221
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id` from `test`.`t1` semi join (`test`.`t3` join `test`.`t2`) where 1
6224
INSERT INTO t1 VALUES(30),(40),(50),(60),(70),(80),(90);
6225
insert into t2 select * from t1;
6226
insert into t3 select * from t1;
6227
create table t4 select * from t1;
6254
id select_type table type possible_keys key key_len ref rows Extra
6255
1 SIMPLE t1 ALL NULL NULL NULL NULL 9 NULL
6256
1 SIMPLE <subquery2> const <auto_key> <auto_key> 4 const 1 NULL
6257
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 9 NULL
6258
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 9 Using join buffer (Block Nested Loop)
6259
2 MATERIALIZED t4 ALL NULL NULL NULL NULL 9 Using join buffer (Block Nested Loop)
6278
drop table t1,t2,t3,t4;
6280
# Bug#53236 Segfault in DTCollation::set(DTCollation&)
6283
pk INTEGER AUTO_INCREMENT,
6284
col_varchar VARCHAR(1),
6288
INSERT INTO t1 (col_varchar)
6294
FROM ( t1 AS table1 JOIN t1 AS table2 ON (table1.col_varchar =
6295
table2.col_varchar) )
6296
WHERE ( 1, 2 ) IN ( SELECT SUBQUERY1_t1.pk AS SUBQUERY1_field1,
6297
SUBQUERY1_t1.pk AS SUBQUERY1_field2
6298
FROM ( t1 AS SUBQUERY1_t1 JOIN t1 AS SUBQUERY1_t2
6299
ON (SUBQUERY1_t2.col_varchar =
6300
SUBQUERY1_t1.col_varchar) ) )
6305
# BUG#53298 "wrong result with semijoin (no semijoin strategy chosen)"
6307
create table t1 (uid int, fid int);
6308
insert into t1 values (1,1), (3,1);
6309
create table t2 (uid int, name varchar(128));
6310
insert into t2 values (1, "A"), (2, "B");
6311
create table t3 (uid int, fid int, index(uid));
6312
insert into t3 values (1,3), (1,3);
6313
create table t4 (uid int);
6314
insert into t4 values (3);
6315
explain select t2.uid from t2, t1
6316
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
6318
id select_type table type possible_keys key key_len ref rows Extra
6319
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
6320
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
6321
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
6322
2 MATERIALIZED t4 ALL NULL NULL NULL NULL 1 NULL
6323
2 MATERIALIZED t3 ref uid uid 5 const 1 Using where
6324
select t2.uid from t2, t1
6325
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
6329
drop table t1,t2,t3,t4;
6338
INSERT INTO t1 VALUES (1,'o','ffff','ffff','ffoo'),(2,'f','ffff','ffff','ffff');
6339
CREATE TABLE t2 LIKE t1;
6340
INSERT INTO t2 VALUES (1,'i','iiii','iiii','iiii'),(2,'f','ffff','ffff','ffff');
6341
EXPLAIN SELECT pk FROM t1 WHERE (a) IN (SELECT a FROM t2 WHERE pk > 0);
6342
id select_type table type possible_keys key key_len ref rows Extra
6343
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
6344
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 4 test.t1.a 1 NULL
6345
2 MATERIALIZED t2 range PRIMARY PRIMARY 4 NULL 2 Using where
6346
SELECT pk FROM t1 WHERE (a) IN (SELECT a FROM t2 WHERE pk > 0);
6349
SELECT pk FROM t1 WHERE (b,c,d) IN (SELECT b,c,d FROM t2 WHERE pk > 0);
6353
CREATE TABLE t1 (f1 INT, f2 DECIMAL(5,3)) ENGINE=MyISAM;
6354
INSERT INTO t1 (f1, f2) VALUES (1, 1.789);
6355
INSERT INTO t1 (f1, f2) VALUES (13, 1.454);
6356
INSERT INTO t1 (f1, f2) VALUES (10, 1.668);
6357
CREATE TABLE t2 LIKE t1;
6358
INSERT INTO t2 VALUES (1, 1.789);
6359
INSERT INTO t2 VALUES (13, 1.454);
6360
EXPLAIN SELECT COUNT(*) FROM t1 WHERE (f1,f2) IN (SELECT f1,f2 FROM t2);
6361
id select_type table type possible_keys key key_len ref rows Extra
6362
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
6363
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (Block Nested Loop)
6364
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
6365
SELECT COUNT(*) FROM t1 WHERE (f1,f2) IN (SELECT f1,f2 FROM t2);
6370
ID int(11) NOT NULL auto_increment,
6371
Name char(35) NOT NULL default '',
6372
Country char(3) NOT NULL default '',
6373
Population int(11) NOT NULL default '0',
6379
Code char(3) NOT NULL default '',
6380
Name char(52) NOT NULL default '',
6381
SurfaceArea float(10,2) NOT NULL default '0.00',
6382
Population int(11) NOT NULL default '0',
6383
Capital int(11) default NULL,
6385
UNIQUE INDEX (Name),
6389
Country char(3) NOT NULL default '',
6390
Language char(30) NOT NULL default '',
6391
Percentage float(3,1) NOT NULL default '0.0',
6392
PRIMARY KEY (Country, Language),
6395
EXPLAIN SELECT Name FROM t2
6396
WHERE t2.Code IN (SELECT Country FROM t1 WHERE Population > 5000000)
6398
t2.Code IN (SELECT Country FROM t3
6399
WHERE Language='English' AND Percentage > 10 AND
6400
t2.Population > 100000);
6401
id select_type table type possible_keys key key_len ref rows Extra
6402
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
6403
1 SIMPLE t2 eq_ref PRIMARY,Population PRIMARY 3 <subquery2>.Country 1 Using where
6404
1 SIMPLE t3 eq_ref PRIMARY,Percentage PRIMARY 33 <subquery2>.Country,const 1 Using where
6405
2 MATERIALIZED t1 range Population,Country Population 4 NULL 1 Using where
6406
EXPLAIN FORMAT=JSON SELECT Name FROM t2
6407
WHERE t2.Code IN (SELECT Country FROM t1 WHERE Population > 5000000)
6409
t2.Code IN (SELECT Country FROM t3
6410
WHERE Language='English' AND Percentage > 10 AND
6411
t2.Population > 100000);
6419
"table_name": "<subquery2>",
6420
"access_type": "ALL",
6421
"materialized_from_subquery": {
6422
"using_temporary_table": true,
6426
"access_type": "range",
6431
"key": "Population",
6438
"attached_condition": "(`test`.`t1`.`Population` > 5000000)"
6447
"access_type": "eq_ref",
6458
"<subquery2>.Country"
6462
"attached_condition": "(`test`.`t2`.`Population` > 100000)"
6468
"access_type": "eq_ref",
6480
"<subquery2>.Country",
6485
"attached_condition": "((`test`.`t3`.`Language` = 'English') and (`test`.`t3`.`Percentage` > 10))"
6492
Note 1276 Field or reference 'test.t2.Population' of SELECT #3 was resolved in SELECT #1
6493
Note 1003 /* select#1 */ select `test`.`t2`.`Name` AS `Name` from `test`.`t3` semi join (`test`.`t1`) join `test`.`t2` where ((`test`.`t2`.`Code` = `<subquery2>`.`Country`) and (`test`.`t3`.`Country` = `<subquery2>`.`Country`) and (`test`.`t3`.`Language` = 'English') and (`test`.`t3`.`Percentage` > 10) and (`test`.`t2`.`Population` > 100000) and (`test`.`t1`.`Population` > 5000000))
6494
DROP TABLE t1,t2,t3;
6496
Code char(3) NOT NULL DEFAULT '',
6497
Name char(52) NOT NULL DEFAULT '',
6498
Continent enum('Asia','Europe','North America','Africa','Oceania','Antarctica','South America') NOT NULL DEFAULT 'Asia',
6499
Region char(26) NOT NULL DEFAULT '',
6500
SurfaceArea float(10,2) NOT NULL DEFAULT '0.00',
6501
IndepYear smallint(6) DEFAULT NULL,
6502
Population int(11) NOT NULL DEFAULT '0',
6503
LifeExpectancy float(3,1) DEFAULT NULL,
6504
GNP float(10,2) DEFAULT NULL,
6505
GNPOld float(10,2) DEFAULT NULL,
6506
LocalName char(45) NOT NULL DEFAULT '',
6507
GovernmentForm char(45) NOT NULL DEFAULT '',
6508
HeadOfState char(60) DEFAULT NULL,
6509
Capital int(11) DEFAULT NULL,
6510
Code2 char(2) NOT NULL DEFAULT '',
6514
ID int(11) NOT NULL AUTO_INCREMENT,
6515
Name char(35) NOT NULL DEFAULT '',
6516
CountryCode char(3) NOT NULL DEFAULT '',
6517
District char(20) NOT NULL DEFAULT '',
6518
Population int(11) NOT NULL DEFAULT '0',
6520
KEY CountryCode (CountryCode)
6522
Fill the table with test data
6523
This must not use LooseScan:
6524
EXPLAIN SELECT Name FROM t1
6526
SELECT t2.CountryCode FROM t2 WHERE Population > 5000000);
6527
id select_type table type possible_keys key key_len ref rows Extra
6528
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 31 Using where
6529
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 3 test.t1.Code 1 NULL
6530
2 MATERIALIZED t2 ALL CountryCode NULL NULL NULL 545 Using where
6533
SELECT t2.CountryCode FROM t2 WHERE Population > 5000000);
6540
create table t0 (a int);
6541
insert into t0 values (0),(1),(2),(3),(4);
6542
create table t1 (a int, b int, key(a));
6543
insert into t1 select a,a from t0;
6544
create table t2 (a int, b int, primary key(a));
6545
insert into t2 select * from t1;
6546
Table t2, unlike table t1, should be displayed as pulled out
6547
explain extended select * from t0
6548
where t0.a in ( select t1.a from t1,t2 where t2.a=t0.a and
6550
id select_type table type possible_keys key key_len ref rows filtered Extra
6551
1 SIMPLE t0 ALL NULL NULL NULL NULL 5 100.00 Using where; Start temporary
6552
1 SIMPLE t1 ref a a 5 test.t0.a 1 100.00 NULL
6553
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 100.00 Using where; End temporary
6555
Note 1276 Field or reference 'test.t0.a' of SELECT #2 was resolved in SELECT #1
6556
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`))
6557
update t1 set a=3, b=11 where a=4;
6558
update t2 set b=11 where a=3;
6559
create temporary table tmp select * from t0 where t0.a in
6560
(select t1.a from t1, t2 where t2.a=t0.a and t1.b=t2.b);
6561
create temporary table tmp_as_ref (a int);
6562
insert into tmp_as_ref values(0),(1),(2),(3);
6569
drop table t0, t1, t2, tmp, tmp_as_ref;
6571
id int(11) NOT NULL,
6574
id int(11) NOT NULL,
6575
fid int(11) NOT NULL,
6577
insert into t1 values(1);
6578
insert into t2 values(1,7503),(2,1);
6579
explain select count(*)
6581
where fid IN (select fid from t2 where (id between 7502 and 8420) order by fid );
6582
ERROR 42S22: Unknown column 'fid' in 'IN/ALL/ANY subquery'
6584
create table t1 (a int, b int, key (a), key (b));
6585
insert into t1 values (2,4),(2,4),(2,4);
6588
t1.a in (select 1 from t1 where t1.a in (select 1 from t1) group by t1.a);
6591
create table t1(a int,b int,key(a),key(b));
6592
insert into t1 values (1,1),(2,2),(3,3);
6594
where t1.a not in (select 1 from t1
6595
where t1.a in (select 1 from t1)
6602
(EMPNUM CHAR(3) NOT NULL,
6607
(PNUM CHAR(3) NOT NULL,
6613
(EMPNUM CHAR(3) NOT NULL,
6614
PNUM CHAR(3) NOT NULL,
6616
INSERT INTO t1 VALUES ('E1','Alice',12,'Deale');
6617
INSERT INTO t1 VALUES ('E2','Betty',10,'Vienna');
6618
INSERT INTO t1 VALUES ('E3','Carmen',13,'Vienna');
6619
INSERT INTO t1 VALUES ('E4','Don',12,'Deale');
6620
INSERT INTO t1 VALUES ('E5','Ed',13,'Akron');
6621
INSERT INTO t2 VALUES ('P1','MXSS','Design',10000,'Deale');
6622
INSERT INTO t2 VALUES ('P2','CALM','Code',30000,'Vienna');
6623
INSERT INTO t2 VALUES ('P3','SDP','Test',30000,'Tampa');
6624
INSERT INTO t2 VALUES ('P4','SDP','Design',20000,'Deale');
6625
INSERT INTO t2 VALUES ('P5','IRM','Test',10000,'Vienna');
6626
INSERT INTO t2 VALUES ('P6','PAYR','Design',50000,'Deale');
6627
INSERT INTO t3 VALUES ('E1','P1',40);
6628
INSERT INTO t3 VALUES ('E1','P2',20);
6629
INSERT INTO t3 VALUES ('E1','P3',80);
6630
INSERT INTO t3 VALUES ('E1','P4',20);
6631
INSERT INTO t3 VALUES ('E1','P5',12);
6632
INSERT INTO t3 VALUES ('E1','P6',12);
6633
INSERT INTO t3 VALUES ('E2','P1',40);
6634
INSERT INTO t3 VALUES ('E2','P2',80);
6635
INSERT INTO t3 VALUES ('E3','P2',20);
6636
INSERT INTO t3 VALUES ('E4','P2',20);
6637
INSERT INTO t3 VALUES ('E4','P4',40);
6638
INSERT INTO t3 VALUES ('E4','P5',80);
6640
EMPNUM EMPNAME GRADE CITY
6646
CREATE UNIQUE INDEX t1_IDX ON t1(EMPNUM);
6655
WHERE PTYPE = 'Design'));
6660
DROP INDEX t1_IDX ON t1;
6661
CREATE INDEX t1_IDX ON t1(EMPNUM);
6670
WHERE PTYPE = 'Design'));
6675
DROP INDEX t1_IDX ON t1;
6684
WHERE PTYPE = 'Design'));
6689
DROP TABLE t1, t2, t3;
6690
CREATE TABLE t1 (f1 INT NOT NULL);
6691
CREATE VIEW v1 (a) AS SELECT f1 IN (SELECT f1 FROM t1) FROM t1;
6696
create table t0 (a int);
6697
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
6698
create table t1(a int, b int);
6699
insert into t1 values (0,0),(1,1),(2,2);
6700
create table t2 as select * from t1;
6701
create table t3 (pk int, a int, primary key(pk));
6702
insert into t3 select a,a from t0;
6704
select * from t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t3));
6705
id select_type table type possible_keys key key_len ref rows Extra
6706
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 NULL
6707
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
6708
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using index
6709
drop table t0, t1, t2, t3;
6710
create table t0 (a int);
6711
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
6712
create table t1 (a int) as select A.a + 10 *(B.a + 10*C.a) as a from t0 A, t0 B, t0 C;
6713
create table t2 (id int, a int, primary key(id), key(a)) as select a as id, a as a from t1;
6714
show create table t2;
6716
t2 CREATE TABLE `t2` (
6717
`id` int(11) NOT NULL DEFAULT '0',
6718
`a` int(11) DEFAULT NULL,
6721
) ENGINE=MyISAM DEFAULT CHARSET=latin1
6723
create table t3 as select * from t2 limit 0;
6724
insert into t3 select @a:=@a+1, t2.a from t2, t0;
6725
insert into t3 select @a:=@a+1, t2.a from t2, t0;
6726
insert into t3 select @a:=@a+1, t2.a from t2, t0;
6727
alter table t3 add primary key(id), add key(a);
6728
The following must use loose index scan over t3, key a:
6729
explain select count(a) from t2 where a in ( SELECT a FROM t3);
6730
id select_type table type possible_keys key key_len ref rows Extra
6731
1 SIMPLE t2 index a a 5 NULL 1000 Using where; Using index
6732
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t2.a 1 NULL
6733
2 MATERIALIZED t3 index a a 5 NULL 30000 Using index
6734
select count(a) from t2 where a in ( SELECT a FROM t3);
6737
drop table t0,t1,t2,t3;
6739
# Bug#33062: subquery in stored routine cause crash
6741
CREATE TABLE t1(a INT);
6742
CREATE TABLE t2(c INT);
6743
CREATE PROCEDURE p1(v1 int)
6745
SELECT 1 FROM t1 WHERE a = v1 AND a IN (SELECT c FROM t2);
6748
CREATE PROCEDURE p2(v1 int)
6750
SELECT 1 FROM t1 WHERE a IN (SELECT c FROM t2);
6753
CREATE PROCEDURE p3(v1 int)
6757
t1 t01,t1 t02,t1 t03,t1 t04,t1 t05,t1 t06,t1 t07,t1 t08,
6758
t1 t09,t1 t10,t1 t11,t1 t12,t1 t13,t1 t14,t1 t15,t1 t16,
6759
t1 t17,t1 t18,t1 t19,t1 t20,t1 t21,t1 t22,t1 t23,t1 t24,
6760
t1 t25,t1 t26,t1 t27,t1 t28,t1 t29,t1 t30,t1 t31,t1 t32,
6761
t1 t33,t1 t34,t1 t35,t1 t36,t1 t37,t1 t38,t1 t39,t1 t40,
6762
t1 t41,t1 t42,t1 t43,t1 t44,t1 t45,t1 t46,t1 t47,t1 t48,
6763
t1 t49,t1 t50,t1 t51,t1 t52,t1 t53,t1 t54,t1 t55,t1 t56,
6764
t1 t57,t1 t58,t1 t59,t1 t60
6765
WHERE t01.a IN (SELECT c FROM t2);
6768
CREATE PROCEDURE p4(v1 int)
6772
t1 t01,t1 t02,t1 t03,t1 t04,t1 t05,t1 t06,t1 t07,t1 t08,
6773
t1 t09,t1 t10,t1 t11,t1 t12,t1 t13,t1 t14,t1 t15,t1 t16,
6774
t1 t17,t1 t18,t1 t19,t1 t20,t1 t21,t1 t22,t1 t23,t1 t24,
6775
t1 t25,t1 t26,t1 t27,t1 t28,t1 t29,t1 t30,t1 t31,t1 t32,
6776
t1 t33,t1 t34,t1 t35,t1 t36,t1 t37,t1 t38,t1 t39,t1 t40,
6777
t1 t41,t1 t42,t1 t43,t1 t44,t1 t45,t1 t46,t1 t47,t1 t48,
6778
t1 t49,t1 t50,t1 t51,t1 t52,t1 t53,t1 t54,t1 t55,t1 t56,
6779
t1 t57,t1 t58,t1 t59,t1 t60
6780
WHERE t01.a = v1 AND t01.a IN (SELECT c FROM t2);
6797
# Bug#48213 Materialized subselect crashes if using GEOMETRY type
6814
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))'));
6815
CREATE TABLE t2 LIKE t1;
6816
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))'));
6817
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (a, b) IN (SELECT a, b FROM t2 WHERE pk > 0);
6818
id select_type table type possible_keys key key_len ref rows filtered Extra
6819
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
6820
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 11 test.t1.a,test.t1.b 1 100.00 NULL
6821
2 MATERIALIZED t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using where
6823
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`<subquery2>`.`b` = `test`.`t1`.`b`) and (`<subquery2>`.`a` = `test`.`t1`.`a`) and (`test`.`t2`.`pk` > 0))
6824
SELECT pk FROM t1 WHERE (a, b) IN (SELECT a, b FROM t2 WHERE pk > 0);
6827
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, c) IN (SELECT b, c FROM t2 WHERE pk > 0);
6828
id select_type table type possible_keys key key_len ref rows filtered Extra
6829
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6830
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
6831
2 MATERIALIZED t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using where
6833
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`<subquery2>`.`c` = `test`.`t1`.`c`) and (`<subquery2>`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
6834
SELECT pk FROM t1 WHERE (b, c) IN (SELECT b, c FROM t2 WHERE pk > 0);
6838
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, d) IN (SELECT b, d FROM t2 WHERE pk > 0);
6839
id select_type table type possible_keys key key_len ref rows filtered Extra
6840
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6841
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
6842
2 MATERIALIZED t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using where
6844
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`<subquery2>`.`d` = `test`.`t1`.`d`) and (`<subquery2>`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
6845
SELECT pk FROM t1 WHERE (b, d) IN (SELECT b, d FROM t2 WHERE pk > 0);
6848
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, e) IN (SELECT b, e FROM t2 WHERE pk > 0);
6849
id select_type table type possible_keys key key_len ref rows filtered Extra
6850
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Start temporary
6851
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using where; End temporary; Using join buffer (Block Nested Loop)
6853
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))
6854
SELECT pk FROM t1 WHERE (b, e) IN (SELECT b, e FROM t2 WHERE pk > 0);
6858
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, f) IN (SELECT b, f FROM t2 WHERE pk > 0);
6859
id select_type table type possible_keys key key_len ref rows filtered Extra
6860
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6861
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
6862
2 MATERIALIZED t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using where
6864
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`<subquery2>`.`f` = `test`.`t1`.`f`) and (`<subquery2>`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
6865
SELECT pk FROM t1 WHERE (b, f) IN (SELECT b, f FROM t2 WHERE pk > 0);
6869
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, g) IN (SELECT b, g FROM t2 WHERE pk > 0);
6870
id select_type table type possible_keys key key_len ref rows filtered Extra
6871
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6872
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
6873
2 MATERIALIZED t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using where
6875
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`<subquery2>`.`g` = `test`.`t1`.`g`) and (`<subquery2>`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
6876
SELECT pk FROM t1 WHERE (b, g) IN (SELECT b, g FROM t2 WHERE pk > 0);
6880
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, h) IN (SELECT b, h FROM t2 WHERE pk > 0);
6881
id select_type table type possible_keys key key_len ref rows filtered Extra
6882
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6883
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
6884
2 MATERIALIZED t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using where
6886
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`<subquery2>`.`h` = `test`.`t1`.`h`) and (`<subquery2>`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
6887
SELECT pk FROM t1 WHERE (b, h) IN (SELECT b, h FROM t2 WHERE pk > 0);
6891
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, i) IN (SELECT b, i FROM t2 WHERE pk > 0);
6892
id select_type table type possible_keys key key_len ref rows filtered Extra
6893
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Start temporary
6894
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using where; End temporary; Using join buffer (Block Nested Loop)
6896
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))
6897
SELECT pk FROM t1 WHERE (b, i) IN (SELECT b, i FROM t2 WHERE pk > 0);
6901
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, j) IN (SELECT b, j FROM t2 WHERE pk > 0);
6902
id select_type table type possible_keys key key_len ref rows filtered Extra
6903
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6904
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
6905
2 MATERIALIZED t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using where
6907
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`<subquery2>`.`j` = `test`.`t1`.`j`) and (`<subquery2>`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
6908
SELECT pk FROM t1 WHERE (b, j) IN (SELECT b, j FROM t2 WHERE pk > 0);
6912
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, k) IN (SELECT b, k FROM t2 WHERE pk > 0);
6913
id select_type table type possible_keys key key_len ref rows filtered Extra
6914
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 NULL
6915
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 Using where; Using join buffer (Block Nested Loop)
6916
2 MATERIALIZED t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using where
6918
Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`<subquery2>`.`k` = `test`.`t1`.`k`) and (`<subquery2>`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
6919
SELECT pk FROM t1 WHERE (b, k) IN (SELECT b, k FROM t2 WHERE pk > 0);
6926
# BUG#53060: LooseScan semijoin strategy does not return all rows
6928
CREATE TABLE t1 (i INTEGER);
6929
INSERT INTO t1 VALUES (1), (2), (3), (4), (5);
6930
CREATE TABLE t2 (i INTEGER, j INTEGER, KEY k(i, j));
6931
INSERT INTO t2 VALUES (1, 0), (1, 1), (2, 0), (2, 1);
6933
SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0);
6934
id select_type table type possible_keys key key_len ref rows Extra
6935
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where
6936
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t1.i 1 NULL
6937
2 MATERIALIZED t2 index k k 10 NULL 4 Using where; Using index
6938
SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0);
6945
# Bug#53305 "Duplicate weedout + join buffer (join cache --level=7,8) loses rows"
6947
create table t1 (uid int, fid int, index(uid));
6948
insert into t1 values
6949
(1,1), (1,2), (1,3), (1,4),
6950
(2,5), (2,6), (2,7), (2,8),
6951
(3,1), (3,2), (3,9);
6952
create table t2 (uid int primary key, name varchar(128), index(name));
6953
insert into t2 values
6954
(1, "A"), (2, "B"), (3, "C"), (4, "D"), (5, "E"),
6955
(6, "F"), (7, "G"), (8, "H"), (9, "I");
6956
create table t3 (uid int, fid int, index(uid));
6957
insert into t3 values
6958
(1,1), (1,2), (1,3),(1,4),
6959
(2,5), (2,6), (2,7), (2,8),
6960
(3,1), (3,2), (3,9);
6961
create table t4 (uid int primary key, name varchar(128), index(name));
6962
insert into t4 values
6963
(1, "A"), (2, "B"), (3, "C"), (4, "D"), (5, "E"),
6964
(6, "F"), (7, "G"), (8, "H"), (9, "I");
6965
explain select name from t2, t1
6966
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
6968
id select_type table type possible_keys key key_len ref rows Extra
6969
1 SIMPLE t3 ref uid uid 5 const 4 Using where; Start temporary
6970
1 SIMPLE t4 eq_ref PRIMARY PRIMARY 4 test.t3.fid 1 Using index
6971
1 SIMPLE t1 ref uid uid 5 test.t3.fid 2 End temporary
6972
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 9 Using where; Using join buffer (Block Nested Loop)
6973
select name from t2, t1
6974
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
6988
drop table t1,t2,t3,t4;
6990
# Bug#43768 Prepared query with nested subqueries core dump on second execution
6994
partner_id VARCHAR(35)
6996
INSERT INTO t1 VALUES
6997
(1, 'partner1'), (2, 'partner2'),
6998
(3, 'partner3'), (4, 'partner4');
7002
article_id VARCHAR(20),
7003
PRIMARY KEY(id, t1_line_id)
7005
INSERT INTO t2 VALUES
7006
(1, 1, 'sup'), (2, 1, 'sup'),
7007
(2, 2, 'sup'), (2, 3, 'sup'),
7008
(2, 4, 'imp'), (3, 1, 'sup'),
7011
user_id VARCHAR(50),
7012
article_id VARCHAR(20) NOT NULL,
7013
PRIMARY KEY(user_id)
7015
INSERT INTO t3 VALUES('nicke', 'imp');
7017
SELECT t1.partner_id
7022
WHERE article_id IN (
7023
SELECT article_id FROM t3
7024
WHERE user_id = 'nicke'
7027
id select_type table type possible_keys key key_len ref rows Extra
7028
1 SIMPLE t3 system PRIMARY NULL NULL NULL 1 NULL
7029
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 4 Start temporary
7030
1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.id 1 Using where; End temporary
7031
SELECT t1.partner_id
7036
WHERE article_id IN (
7037
SELECT article_id FROM t3
7038
WHERE user_id = 'nicke'
7044
'EXPLAIN SELECT t1.partner_id
7049
WHERE article_id IN (
7050
SELECT article_id FROM t3
7051
WHERE user_id = \'nicke\'
7055
id select_type table type possible_keys key key_len ref rows Extra
7056
1 SIMPLE t3 system PRIMARY NULL NULL NULL 1 NULL
7057
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 4 Start temporary
7058
1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.id 1 Using where; End temporary
7060
id select_type table type possible_keys key key_len ref rows Extra
7061
1 SIMPLE t3 system PRIMARY NULL NULL NULL 1 NULL
7062
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 4 Start temporary
7063
1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.id 1 Using where; End temporary
7065
'SELECT t1.partner_id
7070
WHERE article_id IN (
7071
SELECT article_id FROM t3
7072
WHERE user_id = \'nicke\'
7081
DROP TABLE t1,t2,t3;
7084
# Bug#53058 - semijoin execution of subquery with outerjoin yields wrong result
7086
CREATE TABLE t1 (i INTEGER);
7087
CREATE TABLE t2 (i INTEGER);
7088
CREATE TABLE t3 (i INTEGER);
7089
INSERT INTO t1 VALUES (1), (2);
7090
INSERT INTO t2 VALUES (6);
7091
INSERT INTO t3 VALUES (1), (2);
7092
explain extended SELECT * FROM t1 WHERE (t1.i) IN
7093
(SELECT t3.i FROM t3 LEFT JOIN t2 ON t2.i=t3.i);
7094
id select_type table type possible_keys key key_len ref rows filtered Extra
7095
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL 0.00 NULL
7096
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (Block Nested Loop)
7097
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 100.00 NULL
7098
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 100.00 Using where; Using join buffer (Block Nested Loop)
7100
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`)
7101
SELECT * FROM t1 WHERE (t1.i) IN
7102
(SELECT t3.i FROM t3 LEFT JOIN t2 ON t2.i=t3.i);
7106
drop table t1,t2,t3;
7108
# BUG#49453: re-execution of prepared statement with view
7109
# and semijoin crashes
7111
CREATE TABLE t1 (city VARCHAR(50), country_id INT);
7112
CREATE TABLE t2 (country_id INT, country VARCHAR(50));
7113
INSERT INTO t1 VALUES
7114
('Batna',2),('Bchar',2),('Skikda',2),('Tafuna',3),('Algeria',2) ;
7115
INSERT INTO t2 VALUES (2,'Algeria'),(2,'AlgeriaDup'),(3,'XAmerican Samoa');
7117
SELECT country_id as vf_country_id
7119
WHERE LEFT(country,1) = "A";
7121
SELECT city, country_id
7123
WHERE country_id IN (SELECT vf_country_id FROM v1);
7141
# Bug#54437 Extra rows with LEFT JOIN + semijoin (firstmatch
7142
# and duplicates weedout)
7144
create table t1 (a int);
7145
create table t2 (a int);
7146
create table t3 (a int);
7147
insert into t1 values(1),(1);
7148
insert into t2 values(1),(1),(1),(1);
7149
insert into t3 values(2),(2);
7150
explain select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
7151
id select_type table type possible_keys key key_len ref rows Extra
7152
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
7153
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t1.a 1 NULL
7154
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 4 NULL
7155
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
7156
select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
7160
drop table t1,t2,t3;
7162
# Bug#55955: crash in MEMORY engine with IN(LEFT JOIN (JOIN))
7164
CREATE TABLE t1 (a INT);
7165
CREATE TABLE t2 (a INT);
7166
CREATE TABLE t3 (a INT);
7167
INSERT INTO t1 VALUES(1),(1);
7168
INSERT INTO t2 VALUES(1),(1);
7169
INSERT INTO t3 VALUES(2),(2);
7170
explain SELECT * FROM t1
7171
WHERE t1.a IN (SELECT t2.a
7172
FROM t2 LEFT JOIN (t2 AS t2inner, t3) ON t2.a=t3.a);
7173
id select_type table type possible_keys key key_len ref rows Extra
7174
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
7175
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t1.a 1 NULL
7176
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 NULL
7177
2 MATERIALIZED t2inner ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
7178
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
7180
WHERE t1.a IN (SELECT t2.a
7181
FROM t2 LEFT JOIN (t2 AS t2inner, t3) ON t2.a=t3.a);
7185
DROP TABLE t1,t2,t3;
7187
# BUG#52329 - Wrong result: subquery materialization, IN,
7188
# non-null field followed by nullable
7190
CREATE TABLE t1 (a1 CHAR(8) NOT NULL, a2 char(8) NOT NULL);
7191
CREATE TABLE t2a (b1 char(8), b2 char(8));
7192
CREATE TABLE t2b (b1 CHAR(8), b2 char(8) NOT NULL);
7193
CREATE TABLE t2c (b1 CHAR(8) NOT NULL, b2 char(8));
7194
INSERT INTO t1 VALUES ('1 - 12', '2 - 22');
7195
INSERT INTO t2a VALUES ('1 - 11', '2 - 21'),
7196
('1 - 11', '2 - 21'),
7197
('1 - 12', '2 - 22'),
7198
('1 - 12', '2 - 22'),
7199
('1 - 13', '2 - 23');
7200
INSERT INTO t2b SELECT * FROM t2a;
7201
INSERT INTO t2c SELECT * FROM t2a;
7204
SELECT b1, b2 FROM t2c WHERE b1 > '0' GROUP BY b1, b2);
7209
SELECT b1, b2 FROM t2a WHERE b1 > '0');
7214
SELECT b1, b2 FROM t2b WHERE b1 > '0');
7219
SELECT b1, b2 FROM t2c WHERE b1 > '0');
7222
DROP TABLE t1,t2a,t2b,t2c;
7225
# Bug#45174: Incorrectly applied equality propagation caused wrong
7226
# result on a query with a materialized semi-join.
7229
varchar_nokey varchar(1) NOT NULL
7231
INSERT INTO t1 VALUES
7232
('v'), ('u'), ('n'), ('l'), ('h'), ('u'), ('n'), ('j'), ('k'),
7233
('e'), ('i'), ('u'), ('n'), ('b'), ('x'), (''), ('q'), ('u');
7236
varchar_key varchar(1) NOT NULL,
7237
varchar_nokey varchar(1) NOT NULL,
7239
KEY varchar_key(varchar_key)
7241
INSERT INTO t2 VALUES
7242
(11,'m','m'), (12,'j','j'), (13,'z','z'), (14,'a','a'), (15,'',''),
7243
(16,'e','e'), (17,'t','t'), (19,'b','b'), (20,'w','w'), (21,'m','m'),
7244
(23,'',''), (24,'w','w'), (26,'e','e'), (27,'e','e'), (28,'p','p');
7245
SELECT varchar_nokey
7247
WHERE (varchar_nokey, varchar_nokey) IN (SELECT varchar_key, varchar_nokey
7249
WHERE varchar_nokey < 'n' XOR pk);
7251
explain SELECT varchar_nokey
7253
WHERE (varchar_nokey, varchar_nokey) IN (SELECT varchar_key, varchar_nokey
7255
WHERE varchar_nokey < 'n' XOR pk);
7256
id select_type table type possible_keys key key_len ref rows Extra
7257
1 SIMPLE t1 ALL NULL NULL NULL NULL 18 Using where
7258
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 6 test.t1.varchar_nokey,test.t1.varchar_nokey 1 NULL
7259
2 MATERIALIZED t2 ALL varchar_key NULL NULL NULL 15 Using where
7261
# End of the test for bug#45174.
7263
# Bug#50019: Wrong result for IN-query with materialization
7265
CREATE TABLE t1(i INT);
7266
INSERT INTO t1 VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
7267
CREATE TABLE t2(i INT);
7268
INSERT INTO t2 VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
7269
CREATE TABLE t3(i INT);
7270
INSERT INTO t3 VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
7271
SELECT * FROM t1 WHERE t1.i IN (SELECT t2.i
7273
WHERE t2.i + t3.i = 5);
7279
explain SELECT * FROM t1 WHERE t1.i IN (SELECT t2.i
7281
WHERE t2.i + t3.i = 5);
7282
id select_type table type possible_keys key key_len ref rows Extra
7283
1 SIMPLE t1 ALL NULL NULL NULL NULL 10 Using where
7284
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.t1.i 1 NULL
7285
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 10 NULL
7286
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 10 Using where; Using join buffer (Block Nested Loop)
7287
DROP TABLE t1,t2,t3;
7288
# End of the test for bug#50019.
7290
# Bug#52068: Optimizer generates invalid semijoin materialization plan
7292
CREATE TABLE ot1(a INTEGER);
7293
INSERT INTO ot1 VALUES(5), (8);
7294
CREATE TABLE it2(a INTEGER);
7295
INSERT INTO it2 VALUES(9), (5), (1), (8);
7296
CREATE TABLE it3(a INTEGER);
7297
INSERT INTO it3 VALUES(7), (1), (0), (5), (1), (4);
7298
CREATE TABLE ot4(a INTEGER);
7299
INSERT INTO ot4 VALUES(1), (3), (5), (7), (9), (7), (3), (1);
7300
SELECT * FROM ot1,ot4
7301
WHERE (ot1.a,ot4.a) IN (SELECT it2.a,it3.a
7314
explain SELECT * FROM ot1,ot4
7315
WHERE (ot1.a,ot4.a) IN (SELECT it2.a,it3.a
7317
id select_type table type possible_keys key key_len ref rows Extra
7318
1 SIMPLE ot1 ALL NULL NULL NULL NULL 2 NULL
7319
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where; Using join buffer (Block Nested Loop)
7320
1 SIMPLE ot4 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (Block Nested Loop)
7321
2 MATERIALIZED it2 ALL NULL NULL NULL NULL 4 NULL
7322
2 MATERIALIZED it3 ALL NULL NULL NULL NULL 6 Using join buffer (Block Nested Loop)
7323
DROP TABLE IF EXISTS ot1, ot4, it2, it3;
7324
# End of the test for bug#52068.
7326
# Bug#57623: subquery within before insert trigger causes crash (sj=on)
7328
CREATE TABLE ot1(a INT);
7329
CREATE TABLE ot2(a INT);
7330
CREATE TABLE ot3(a INT);
7331
CREATE TABLE it1(a INT);
7332
INSERT INTO ot1 VALUES(0),(1),(2),(3),(4),(5),(6),(7);
7333
INSERT INTO ot2 VALUES(0),(2),(4),(6);
7334
INSERT INTO ot3 VALUES(0),(3),(6);
7335
INSERT INTO it1 VALUES(0),(1),(2),(3),(4),(5),(6),(7);
7339
(ot2 JOIN ot3 on ot2.a=ot3.a)
7340
ON ot1.a=ot2.a AND ot1.a IN (SELECT a from it1);
7341
id select_type table type possible_keys key key_len ref rows Extra
7342
1 SIMPLE ot1 ALL NULL NULL NULL NULL 8 Start temporary
7343
1 SIMPLE it1 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (Block Nested Loop)
7344
1 SIMPLE ot3 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
7345
1 SIMPLE ot2 ALL NULL NULL NULL NULL 4 Using where; End temporary; Using join buffer (Block Nested Loop)
7349
(ot2 JOIN ot3 on ot2.a=ot3.a)
7350
ON ot1.a=ot2.a AND ot1.a IN (SELECT a from it1);
7360
prepare s from 'SELECT *
7363
(ot2 JOIN ot3 on ot2.a=ot3.a)
7364
ON ot1.a=ot2.a AND ot1.a IN (SELECT a from it1)';
7385
deallocate prepare s;
7386
DROP TABLE ot1, ot2, ot3, it1;
7387
# End of the test for bug#57623.
7389
# Bug#11766739: Crash in tmp_table_param::init() with semijoin=on
7391
CREATE TABLE t1 (f1 INTEGER) ENGINE=MyISAM;
7392
CREATE TABLE t2 (f1 INTEGER, f2 INTEGER) ENGINE=MyISAM;
7393
INSERT INTO t1 VALUES (1);
7394
INSERT INTO t2 VALUES (1,1), (2,1);
7395
EXPLAIN SELECT * FROM t2
7396
WHERE f2 IN (SELECT t1.f1
7397
FROM t1 LEFT OUTER JOIN (t2 AS b1 JOIN t2 AS b2 ON TRUE) ON TRUE);
7398
id select_type table type possible_keys key key_len ref rows Extra
7399
1 SIMPLE t1 ALL NULL NULL NULL NULL 1 Start temporary
7400
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
7401
1 SIMPLE b1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
7402
1 SIMPLE b2 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
7404
WHERE f2 IN (SELECT t1.f1
7405
FROM t1 LEFT OUTER JOIN (t2 AS b1 JOIN t2 AS b2 ON TRUE) ON TRUE);
7410
# End of the test for bug#11766739.
7412
# Bug#11766642: crash in Item_field::register_field_in_read_map with view
7414
CREATE TABLE t1(a INT);
7415
CREATE VIEW v1 AS SELECT a FROM t1;
7416
INSERT INTO t1 VALUES (0),(1),(2);
7417
SELECT a FROM t1 WHERE a IN
7418
(SELECT a XOR a FROM v1)
7425
# Bug#12546542 MISSING ROW WHEN USING OPTIMIZER_JOIN_CACHE_LEVEL>=3
7430
INSERT INTO t1 VALUES ('v'),('we');
7432
col_varchar_1024_utf8 varchar(1024) CHARACTER SET utf8 DEFAULT NULL,
7436
INSERT INTO t2 VALUES ('we',4,NULL),('v',1305673728,6);
7441
INSERT INTO t3 VALUES (4,4);
7444
WHERE f2 IN (SELECT a1.col_varchar_1024_utf8 AS f2
7445
FROM t2 AS a1 LEFT JOIN t3 AS a2
7446
ON a1.col_int_key = a2.col_int_key
7447
WHERE a1.col_int BETWEEN 1 AND 10 OR a2.col_int IS NOT NULL);
7451
DROP TABLE t1,t2,t3;
7453
# BUG#12616344 - JCL: DIFFERENT RESULT SET AND DIFFERENT AMOUNT
7454
# OF ROWS WHEN JCL>=3
7456
CREATE TABLE t1 (col_int_nokey int, col_int_key int, col_varchar_key varchar(1));
7457
INSERT INTO t1 VALUES (0,4,'c'),(1,6,'u');
7458
CREATE TABLE t2 (pk int, col_int_nokey int, col_varchar_nokey varchar(1));
7459
INSERT INTO t2 VALUES (1,4,'b'),(94,6,'u');
7460
CREATE TABLE t3 (pk int, col_int_nokey int, col_varchar_key varchar(1));
7461
INSERT INTO t3 VALUES (1,4,'j'),(2,6,'v');
7462
SELECT table2.col_int_key
7463
from t3 as table1 join t1 as table2 on table2.col_int_nokey
7464
where table1.col_int_nokey in
7466
select subquery2_t2.col_int_nokey
7467
from t3 as subquery2_t1
7470
join t1 as subquery2_t3
7471
on subquery2_t3.col_int_key = subquery2_t2.col_int_nokey
7472
on subquery2_t3.col_varchar_key = subquery2_t2.col_varchar_nokey
7473
where subquery2_t1.col_varchar_key != table1.col_varchar_key
7474
or subquery2_t2.pk <= table1.pk
7479
DROP TABLE t1,t2,t3;
7481
# Bug#12608157: ASSERT IN FIELD_LONG::VAL_INT WHEN USING MEMORY ENGINE
7483
CREATE TABLE t1 (i1 int);
7484
INSERT INTO t1 VALUES (1);
7485
CREATE TABLE t2 (i1 int, i2 int) ENGINE=memory;
7486
INSERT INTO t2 VALUES (1, 2),(7, 3);
7487
SELECT GRANDPARENT1.i1
7488
FROM t2 AS GRANDPARENT1
7489
WHERE GRANDPARENT1.i2
7490
IN ( SELECT PARENT1.i2
7491
FROM t2 AS PARENT1 JOIN t1 AS PARENT2 ON (PARENT1.i1 = PARENT2.i1)
7493
GRANDPARENT1.i1 IN ( SELECT CHILD1.i1 FROM t2 AS CHILD1 )
7494
ORDER BY PARENT1.i1)
7495
ORDER BY GRANDPARENT1.i2 ;
7500
# Bug#12640083: Same query executed as WHERE subquery gives different
7501
# results on IN() compare
7505
col_varchar_1024_utf8_key varchar(1024) CHARACTER SET utf8 DEFAULT NULL,
7506
col_varchar_10_latin1_key varchar(10) DEFAULT NULL,
7508
KEY col_varchar_1024_utf8_key(col_varchar_1024_utf8_key(333)),
7509
KEY col_varchar_10_latin1_key(col_varchar_10_latin1_key)
7511
INSERT INTO t1 VALUES
7515
(4, 'abcd', 'abcd');
7517
pk int NOT NULL AUTO_INCREMENT,
7521
SELECT alias1.col_varchar_10_latin1_key
7523
LEFT JOIN t1 AS alias2
7525
ON alias2.col_varchar_10_latin1_key
7526
ON alias1.col_varchar_1024_utf8_key
7527
WHERE alias1.pk AND alias1.pk < 3 OR alias1.pk AND alias3.pk;
7530
WHERE col_varchar_10_latin1_key IN (
7531
SELECT alias1.col_varchar_10_latin1_key
7533
LEFT JOIN t1 AS alias2
7535
ON alias2.col_varchar_10_latin1_key
7536
ON alias1.col_varchar_1024_utf8_key
7537
WHERE alias1.pk AND alias1.pk < 3 OR alias1.pk AND alias3.pk);
7538
id select_type table type possible_keys key key_len ref rows Extra
7539
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where
7540
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 13 test.t3.col_varchar_10_latin1_key 1 NULL
7541
2 MATERIALIZED alias1 ALL NULL NULL NULL NULL 4 Using where
7542
2 MATERIALIZED alias3 index NULL PRIMARY 4 NULL 1 Using where; Using index; Using join buffer (Block Nested Loop)
7543
2 MATERIALIZED alias2 index NULL col_varchar_10_latin1_key 13 NULL 4 Using where; Using index; Using join buffer (Block Nested Loop)
7546
WHERE col_varchar_10_latin1_key IN (
7547
SELECT alias1.col_varchar_10_latin1_key
7549
LEFT JOIN t1 AS alias2
7551
ON alias2.col_varchar_10_latin1_key
7552
ON alias1.col_varchar_1024_utf8_key
7553
WHERE alias1.pk AND alias1.pk < 3 OR alias1.pk AND alias3.pk);
7554
col_varchar_10_latin1_key
7557
DROP TABLE t1, t2, t3;
7558
# End of the test for bug#12640083.
7560
# Bug#12603200 - Assert in QUICK_INDEX_MERGE_SELECT::need_sorted_output
7564
col_int_key int NOT NULL,
7565
col_varchar_nokey varchar(1) NOT NULL,
7566
col_varchar_key varchar(1) NOT NULL,
7568
KEY col_int_key(col_int_key),
7569
KEY col_varchar_key(col_varchar_key, col_int_key)
7571
INSERT INTO t1 VALUES
7590
col_int_key int NOT NULL,
7591
col_varchar_key varchar(1) NOT NULL,
7593
KEY col_varchar_key(col_varchar_key, col_int_key)
7595
INSERT INTO t2(pk,col_int_key,col_varchar_key) VALUES
7616
EXPLAIN SELECT outr.col_varchar_key AS x, outr.pk AS y
7618
WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key
7620
WHERE innr.col_varchar_key = 'a' OR innr.pk = 8)
7621
AND outr.col_varchar_nokey < 't'
7622
ORDER BY outr.col_varchar_key, outr.pk;
7623
id select_type table type possible_keys key key_len ref rows Extra
7624
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
7625
1 SIMPLE outr ref col_varchar_key col_varchar_key 3 test.innr.col_varchar_key 1 Using where; End temporary
7626
SELECT outr.col_varchar_key AS x, outr.pk AS y
7628
WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key
7630
WHERE innr.col_varchar_key = 'a' OR innr.pk = 8)
7631
AND outr.col_varchar_nokey < 't'
7632
ORDER BY outr.col_varchar_key, outr.pk;
7639
# End of bug#12603200
7641
# Bug#12603183: Segfault in hp_movelink
7644
col_varchar_key varchar(1) ,
7645
col_varchar_nokey varchar(1) ,
7646
KEY col_varchar_key(col_varchar_key)
7648
INSERT INTO t1 VALUES
7665
col_varchar_nokey varchar(1)
7667
INSERT INTO t2 VALUES
7669
EXPLAIN SELECT grandparent1.col_varchar_nokey
7670
FROM t1 AS grandparent1 LEFT JOIN t2 AS grandparent2 USING (col_varchar_nokey)
7671
WHERE (grandparent1.col_varchar_key) IN
7672
(SELECT parent1.col_varchar_nokey
7674
WHERE parent1.col_varchar_key IN
7675
(SELECT child1.col_varchar_nokey AS c1
7676
FROM t1 AS child1 LEFT JOIN t2 AS child2
7677
ON (child1.col_varchar_key > child2.col_varchar_nokey)));
7678
id select_type table type possible_keys key key_len ref rows Extra
7679
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where
7680
1 SIMPLE grandparent1 ref col_varchar_key col_varchar_key 4 <subquery2>.col_varchar_nokey 2 NULL
7681
1 SIMPLE grandparent2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
7682
2 MATERIALIZED child1 ALL NULL NULL NULL NULL 15 Using where
7683
2 MATERIALIZED child2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
7684
2 MATERIALIZED parent1 ref col_varchar_key col_varchar_key 4 test.child1.col_varchar_nokey 2 NULL
7685
SELECT grandparent1.col_varchar_nokey
7686
FROM t1 AS grandparent1 LEFT JOIN t2 AS grandparent2 USING (col_varchar_nokey)
7687
WHERE (grandparent1.col_varchar_key) IN
7688
(SELECT parent1.col_varchar_nokey
7690
WHERE parent1.col_varchar_key IN
7691
(SELECT child1.col_varchar_nokey AS c1
7692
FROM t1 AS child1 LEFT JOIN t2 AS child2
7693
ON (child1.col_varchar_key > child2.col_varchar_nokey)));
7711
# End of test for bug#12603183.
7713
# Bug#12818569: Diff nr of rows returned when using IN/ALL+subquery
7716
col_int_key INT NOT NULL,
7717
col_datetime_key DATETIME NOT NULL,
7718
col_varchar_key VARCHAR(1) NOT NULL,
7719
KEY col_int_key (col_int_key),
7720
KEY col_datetime_key(col_datetime_key),
7721
KEY col_varchar_key (col_varchar_key,col_int_key)
7723
INSERT INTO t1 VALUES
7724
(7,'2004-06-06 04:22:12','v'), (0,'2005-11-13 01:12:31','s'),
7725
(9,'2002-05-04 01:50:00','l'), (3,'2004-10-27 10:28:45','y'),
7726
(4,'2006-07-22 05:24:23','c'), (2,'2002-05-16 21:34:03','i'),
7727
(5,'2008-04-17 10:45:30','h'), (3,'2009-04-21 02:58:02','q'),
7728
(1,'2008-01-11 11:01:51','a'), (3,'1900-01-01 00:00:00','v'),
7729
(6,'2007-05-17 18:24:57','u'), (7,'2007-08-07 00:00:00','s'),
7730
(5,'2001-08-28 00:00:00','y'), (1,'2004-04-16 00:27:28','z'),
7731
(204,'2005-05-03 07:06:22','h'), (224,'2009-03-11 17:09:50','p'),
7732
(9,'2007-12-08 01:54:28','e'), (5,'2009-07-28 18:19:54','i'),
7733
(0,'2008-06-08 00:00:00','y'), (3,'2005-02-09 09:20:26','w');
7735
col_varchar_nokey VARCHAR(1) NOT NULL
7737
INSERT INTO t2 VALUES ('v'), ('y'), ('j'), ('c'), ('d'), ('r');
7738
explain SELECT col_varchar_key
7740
WHERE col_varchar_key IN (SELECT col_varchar_nokey
7742
ORDER BY col_datetime_key LIMIT 4;
7743
id select_type table type possible_keys key key_len ref rows Extra
7744
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using temporary; Using filesort; Start temporary
7745
1 SIMPLE t1 ref col_varchar_key col_varchar_key 3 test.t2.col_varchar_nokey 1 End temporary
7746
SELECT col_varchar_key
7748
WHERE col_varchar_key IN (SELECT col_varchar_nokey
7750
ORDER BY col_datetime_key LIMIT 4;
7757
# End of test for bug#12818569.
7759
# Bug#12803439: Assert in replace_subcondition() on update query
7761
CREATE TABLE t1(a INTEGER);
7762
INSERT INTO t1 values(1), (2);
7763
CREATE TABLE t2(a INTEGER);
7764
INSERT INTO t2 VALUES(1), (3);
7767
WHERE a IN (SELECT a
7769
HAVING a IN (SELECT a
7772
HAVING a IN (SELECT a
7777
# End of test for bug#12803439.
7779
# Bug#12797534: Segfault in hp_movelink still exists
7782
g1 VARCHAR(1) NOT NULL
7784
INSERT INTO t1 VALUES ('d'), ('s');
7787
col_int_key INT NOT NULL,
7788
col_varchar_key VARCHAR(1) NOT NULL,
7789
col_varchar_nokey VARCHAR(1) NOT NULL,
7791
KEY col_varchar_key(col_varchar_key, col_int_key)
7793
INSERT INTO t2 VALUES
7794
(1,4,'j','j'), (2,6,'v','v'), (3,3,'c','c'), (4,5,'m','m'),
7795
(5,3,'d','d'), (6,246,'d','d'), (7,2,'y','y'), (8,9,'t','t'),
7796
(9,3,'d','d'), (10,8,'s','s'), (11,1,'r','r'), (12,8,'m','m'),
7797
(13,8,'b','b'), (14,5,'x','x'), (15,7,'g','g'), (16,5,'p','p'),
7798
(17,1,'q','q'), (18,6,'w','w'), (19,2,'d','d'), (20,9,'e','e');
7800
pk INTEGER NOT NULL,
7803
INSERT INTO t3 VALUES (10);
7807
(SELECT grandparent1.col_varchar_nokey AS g1
7808
FROM t2 AS grandparent1
7809
WHERE grandparent1.col_varchar_key IN
7810
(SELECT parent1.col_varchar_nokey AS p1
7811
FROM t2 AS parent1 LEFT JOIN t3 AS parent2 USING (pk)
7813
AND grandparent1.col_varchar_key IS NOT NULL
7815
id select_type table type possible_keys key key_len ref rows Extra
7816
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
7817
2 SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start temporary
7818
2 SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index
7819
2 SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using where; End temporary
7823
(SELECT grandparent1.col_varchar_nokey AS g1
7824
FROM t2 AS grandparent1
7825
WHERE grandparent1.col_varchar_key IN
7826
(SELECT parent1.col_varchar_nokey AS p1
7827
FROM t2 AS parent1 LEFT JOIN t3 AS parent2 USING (pk)
7829
AND grandparent1.col_varchar_key IS NOT NULL
7832
DROP TABLE t1, t2, t3;
7834
pk INTEGER AUTO_INCREMENT,
7835
col_int_key INTEGER ,
7836
col_varchar_key VARCHAR(1) ,
7837
col_varchar_nokey VARCHAR(1) ,
7839
KEY (col_varchar_key,col_int_key)
7841
INSERT INTO t1 (col_int_key,col_varchar_key,col_varchar_nokey) VALUES
7842
(0,'x','x'), (1,'j','j'), (1,'r','r'), (9,'v','v'), (5,'r','r');
7844
pk INTEGER AUTO_INCREMENT,
7845
col_int_key INTEGER ,
7846
col_varchar_key VARCHAR(1) ,
7847
col_varchar_nokey VARCHAR(1) ,
7850
KEY (col_varchar_key,col_int_key)
7851
) AUTO_INCREMENT=10 ENGINE=INNODB;
7852
INSERT INTO t2 (col_int_key, col_varchar_key, col_varchar_nokey) VALUES
7853
(NULL,'x','x'), (NULL,'j','j'), (8,'c','c');
7855
SELECT outr.col_varchar_nokey AS x
7857
WHERE outr.col_varchar_nokey IN
7858
(SELECT innr.col_varchar_nokey AS y
7860
WHERE innr.col_int_key IS NULL)
7861
AND outr.col_varchar_nokey IS NOT NULL
7862
AND NOT col_varchar_key IS NULL;
7866
(SELECT outr.col_varchar_nokey AS x
7868
WHERE outr.col_varchar_nokey IN
7869
(SELECT innr.col_varchar_nokey AS y
7871
WHERE innr.col_int_key IS NULL)
7872
AND outr.col_varchar_nokey IS NOT NULL
7873
AND NOT col_varchar_key IS NULL);
7875
DROP TABLE t1, t2, t3;
7876
# End of test for bug#12797534.
7878
# Bug#12714094: Assert in optimize_semijoin_nests()
7882
col_varchar VARCHAR(10) DEFAULT NULL,
7885
INSERT INTO it VALUES (1, 'g');
7887
SELECT alias1.pk AS field1
7889
LEFT JOIN it AS alias2
7890
ON alias1.col_varchar = alias2.col_varchar
7897
LEFT JOIN it AS alias2
7898
ON alias1.col_varchar = alias2.col_varchar
7903
# End of test for bug#12714094
7905
# Bug#12867557: Valgrind: conditional jump/move at key_cmp
7908
pk INTEGER AUTO_INCREMENT,
7909
col_int_key INTEGER,
7912
) AUTO_INCREMENT=10;
7913
INSERT INTO t1 (col_int_key) VALUES (8);
7915
pk INTEGER AUTO_INCREMENT,
7916
col_int_key INTEGER,
7921
) AUTO_INCREMENT=10;
7922
INSERT INTO t2 (col_int_key, col_time_key)
7924
(8, '22:55:23.019225'), (7, '10:19:31.050677'), (1, '14:40:36.038608'),
7925
(7, '04:37:47.062416'), (9, '19:34:06.054514'), (NULL,'20:35:33.022996'),
7926
(1, NULL), (9, '14:43:37.057393'), (2, '02:23:09.043438'),
7927
(9, '01:22:45.041064'), (2, '00:00:00'), (4, '00:13:25.038482'),
7928
(0, '03:47:16.042671'), (4, '01:41:48.007423'), (8, '00:00:00'),
7929
(NULL, '22:32:04.047407'), (NULL, '16:44:14.028443'), (0, '17:38:37.059754'),
7930
(NULL, '08:46:48.042388'), (8, '14:11:27.044095');
7932
SELECT DISTINCT grandparent1.col_time_key AS g1
7933
FROM t2 AS grandparent1
7934
WHERE grandparent1.col_int_key IN
7935
(SELECT parent1.col_int_key AS p1
7937
AND grandparent1.pk > 9;
7941
(SELECT grandparent1.col_time_key AS g1
7942
FROM t2 AS grandparent1
7943
WHERE grandparent1.col_int_key IN
7944
(SELECT parent1.col_int_key AS p1
7946
AND grandparent1.pk > 9);
7947
DROP TABLE t0, t1, t2;
7948
# End of test for bug#12867557
7950
# Bug#12711441: crash in fix_after_pullout
7954
col_int_nokey int DEFAULT NULL,
7955
col_int_key int DEFAULT NULL,
7956
col_time_key time DEFAULT NULL,
7957
col_varchar_key varchar(1) DEFAULT NULL,
7960
CREATE VIEW v1 AS SELECT * FROM t1;
7962
col_int_key int DEFAULT NULL,
7963
col_varchar_key varchar(1) DEFAULT NULL,
7964
col_varchar_nokey varchar(1) DEFAULT NULL,
7965
KEY col_varchar_key(col_varchar_key, col_int_key)
7969
col_int_key INT DEFAULT NULL,
7973
col_int_nokey INT DEFAULT NULL,
7974
col_varchar_key varchar(1) DEFAULT NULL,
7975
col_varchar_nokey varchar(1) DEFAULT NULL,
7976
KEY col_varchar_key(col_varchar_key)
7979
SELECT alias1.col_time_key AS field1
7981
RIGHT JOIN t3 AS alias2
7982
ON alias2.col_int_key = alias1.col_int_nokey
7983
WHERE alias1.pk >= SOME(
7984
SELECT SQ1_alias1.pk AS SQ1_field1
7985
FROM t3 AS SQ1_alias1
7986
INNER JOIN (t2 AS SQ1_alias2
7987
INNER JOIN t4 AS SQ1_alias3
7988
ON SQ1_alias3.col_varchar_key = SQ1_alias2.col_varchar_nokey)
7989
ON SQ1_alias3.col_int_nokey = SQ1_alias2.col_int_key
7990
WHERE SQ1_alias2.col_varchar_key <= alias1.col_varchar_key
7991
AND SQ1_alias3.col_varchar_nokey <> alias1.col_varchar_key)
7993
SELECT * FROM ts WHERE field1 IN (
7994
SELECT alias1.col_time_key AS field1
7996
RIGHT JOIN t3 AS alias2
7997
ON alias2.col_int_key = alias1.col_int_nokey
7998
WHERE alias1.pk >= SOME(
7999
SELECT SQ1_alias1.pk AS SQ1_field1
8000
FROM t3 AS SQ1_alias1
8001
INNER JOIN (t2 AS SQ1_alias2
8002
INNER JOIN t4 AS SQ1_alias3
8003
ON SQ1_alias3.col_varchar_key = SQ1_alias2.col_varchar_nokey)
8004
ON SQ1_alias3.col_int_nokey = SQ1_alias2.col_int_key
8005
WHERE SQ1_alias2.col_varchar_key <= alias1.col_varchar_key
8006
AND SQ1_alias3.col_varchar_nokey <> alias1.col_varchar_key)
8009
DROP TABLE t1, t2, t3, t4, ts;
8011
# End of test for bug#12711441.
8013
# Bug#12664936: Same query executed as where subquery ...
8016
col_varchar_key VARCHAR(1),
8017
KEY col_varchar_key (col_varchar_key)
8019
INSERT INTO t1 VALUES
8020
('o'), ('w'), ('m'), ('q'),
8021
('f'), ('p'), ('j'), ('c');
8023
col_int_nokey INTEGER,
8024
col_int_key INTEGER,
8025
col_varchar_key varchar(1),
8026
KEY col_int_key (col_int_key)
8028
INSERT INTO t2 VALUES
8029
(8,5,'u'),(4,5,'p'),(8,1,'o'),(NULL,7,'v'),
8030
(1,2,'g'),(2,1,'q'),(NULL,7,'l'),(3,1,'n');
8032
SELECT t2.col_int_nokey, t2.col_varchar_key
8033
FROM t1 JOIN t2 ON t2.col_varchar_key = t1.col_varchar_key
8034
WHERE t2.col_int_key = 1;
8037
WHERE (col_int_nokey, col_varchar_key) IN
8038
(SELECT t2.col_int_nokey, t2.col_varchar_key
8039
FROM t1 JOIN t2 ON t2.col_varchar_key = t1.col_varchar_key
8040
WHERE t2.col_int_key = 1
8042
id select_type table type possible_keys key key_len ref rows Extra
8043
1 SIMPLE t4 ALL NULL NULL NULL NULL 2 Using where
8044
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 9 test.t4.col_int_nokey,test.t4.col_varchar_key 1 NULL
8045
2 MATERIALIZED t2 ref col_int_key col_int_key 5 const 3 Using where
8046
2 MATERIALIZED t1 ref col_varchar_key col_varchar_key 4 test.t2.col_varchar_key 2 Using index
8049
WHERE (col_int_nokey, col_varchar_key) IN
8050
(SELECT t2.col_int_nokey, t2.col_varchar_key
8051
FROM t1 JOIN t2 ON t2.col_varchar_key = t1.col_varchar_key
8052
WHERE t2.col_int_key = 1
8054
col_int_nokey col_varchar_key
8057
DROP TABLE t1, t2, t4;
8058
# End of test for bug#12664936.
8060
# Bug#13340270: assertion table->sort.record_pointers == __null
8064
col_int_key int DEFAULT NULL,
8065
col_varchar_key varchar(1) DEFAULT NULL,
8066
col_varchar_nokey varchar(1) DEFAULT NULL,
8068
KEY col_int_key (col_int_key),
8069
KEY col_varchar_key (col_varchar_key, col_int_key)
8071
INSERT INTO t1 VALUES
8085
SELECT alias1.col_varchar_nokey AS field1
8086
FROM t1 AS alias1 JOIN t1 AS alias2
8087
ON alias2.col_int_key = alias1.pk OR
8088
alias2.col_int_key = alias1.col_int_key
8089
WHERE alias1.pk = 58 OR alias1.col_varchar_key = 'o'
8094
WHERE (field1) IN (SELECT alias1.col_varchar_nokey AS field1
8095
FROM t1 AS alias1 JOIN t1 AS alias2
8096
ON alias2.col_int_key = alias1.pk OR
8097
alias2.col_int_key = alias1.col_int_key
8098
WHERE alias1.pk = 58 OR alias1.col_varchar_key = 'o'
8100
id select_type table type possible_keys key key_len ref rows Extra
8101
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
8102
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 4 test.t2.field1 1 NULL
8103
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
8104
2 MATERIALIZED alias2 ALL col_int_key NULL NULL NULL 12 Range checked for each record (index map: 0x2)
8107
WHERE (field1) IN (SELECT alias1.col_varchar_nokey AS field1
8108
FROM t1 AS alias1 JOIN t1 AS alias2
8109
ON alias2.col_int_key = alias1.pk OR
8110
alias2.col_int_key = alias1.col_int_key
8111
WHERE alias1.pk = 58 OR alias1.col_varchar_key = 'o'
8117
# End of test for bug#13340270.
8119
# Bug#13335319: Seg fault when analyzing FirstMatch semi-join strategy
8121
CREATE TABLE ot1(a INTEGER);
8122
INSERT INTO ot1 VALUES(1), (2), (3);
8123
CREATE TABLE ot2(a INTEGER);
8124
INSERT INTO ot2 VALUES(1), (2), (4), (6), (8), (10);
8125
CREATE TABLE it1(a INTEGER);
8126
INSERT INTO it1 VALUES(1), (3), (5), (7);
8127
CREATE TABLE it2(a INTEGER);
8128
INSERT INTO it2 VALUES(1), (3), (5), (7), (9);
8129
explain SELECT ot1.a, ot2.a
8131
WHERE ot1.a IN (SELECT a FROM it1) AND
8132
ot2.a IN (SELECT a FROM it2);
8133
id select_type table type possible_keys key key_len ref rows Extra
8134
1 SIMPLE ot1 ALL NULL NULL NULL NULL 3 Using where
8135
1 SIMPLE ot2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (Block Nested Loop)
8136
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 5 test.ot1.a 1 NULL
8137
1 SIMPLE <subquery3> eq_ref <auto_key> <auto_key> 5 test.ot2.a 1 NULL
8138
2 MATERIALIZED it1 ALL NULL NULL NULL NULL 4 NULL
8139
3 MATERIALIZED it2 ALL NULL NULL NULL NULL 5 NULL
8142
WHERE ot1.a IN (SELECT a FROM it1) AND
8143
ot2.a IN (SELECT a FROM it2);
8147
DROP TABLE ot1, ot2, it1, it2;
8148
# End of test for bug#13335319.
8150
# Bug#13334882: Assertion keypart_map failed in MyIsam function
8154
col_int_nokey INT NOT NULL,
8155
col_int_key INT NOT NULL,
8157
KEY col_int_key (col_int_key)
8159
INSERT INTO t1 VALUES
8173
col_int_nokey int NOT NULL,
8174
col_int_key int NOT NULL,
8176
KEY col_int_key (col_int_key)
8178
INSERT INTO t2 VALUES
8181
SELECT grandparent1.col_int_nokey AS g1
8182
FROM t1 AS grandparent1
8183
WHERE (grandparent1.col_int_nokey, grandparent1.col_int_key) IN
8184
(SELECT parent1.col_int_key AS p1,
8185
parent1.col_int_key AS p2
8187
LEFT JOIN t2 AS parent2
8188
ON parent1.col_int_nokey = parent2.col_int_key
8190
AND grandparent1.col_int_key <> 3
8192
explain SELECT * FROM t3
8194
(SELECT grandparent1.col_int_nokey AS g1
8195
FROM t1 AS grandparent1
8196
WHERE (grandparent1.col_int_nokey, grandparent1.col_int_key) IN
8197
(SELECT parent1.col_int_key AS p1,
8198
parent1.col_int_key AS p2
8200
LEFT JOIN t2 AS parent2
8201
ON parent1.col_int_nokey = parent2.col_int_key
8203
AND grandparent1.col_int_key <> 3
8205
id select_type table type possible_keys key key_len ref rows Extra
8206
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
8207
2 DEPENDENT SUBQUERY grandparent1 ref col_int_key col_int_key 4 func 2 Using where
8208
2 DEPENDENT SUBQUERY <subquery3> eq_ref <auto_key> <auto_key> 8 test.grandparent1.col_int_nokey,test.grandparent1.col_int_nokey 1 NULL
8209
3 MATERIALIZED parent1 ref col_int_key col_int_key 4 func 2 NULL
8210
3 MATERIALIZED parent2 index col_int_key col_int_key 4 NULL 1 Using where; Using index; Using join buffer (Block Nested Loop)
8211
explain format=json SELECT * FROM t3
8213
(SELECT grandparent1.col_int_nokey AS g1
8214
FROM t1 AS grandparent1
8215
WHERE (grandparent1.col_int_nokey, grandparent1.col_int_key) IN
8216
(SELECT parent1.col_int_key AS p1,
8217
parent1.col_int_key AS p2
8219
LEFT JOIN t2 AS parent2
8220
ON parent1.col_int_nokey = parent2.col_int_key
8222
AND grandparent1.col_int_key <> 3
8229
"message": "Impossible WHERE noticed after reading const tables",
8230
"attached_subqueries": [
8239
"table_name": "grandparent1",
8240
"access_type": "ref",
8244
"key": "col_int_key",
8254
"attached_condition": "(((`test`.`grandparent1`.`col_int_key` = `test`.`grandparent1`.`col_int_nokey`) and (`test`.`grandparent1`.`col_int_key` <> 3) 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)))"
8259
"table_name": "<subquery3>",
8260
"access_type": "eq_ref",
8261
"key": "<auto_key>",
8264
"test.grandparent1.col_int_nokey",
8265
"test.grandparent1.col_int_nokey"
8268
"materialized_from_subquery": {
8269
"using_temporary_table": true,
8274
"table_name": "parent1",
8275
"access_type": "ref",
8279
"key": "col_int_key",
8293
"table_name": "parent2",
8294
"access_type": "index",
8298
"key": "col_int_key",
8305
"using_index": true,
8306
"using_join_buffer": "Block Nested Loop",
8307
"attached_condition": "<if>(is_not_null_compl(parent2), (`test`.`parent1`.`col_int_nokey` = `test`.`parent2`.`col_int_key`), true)"
8323
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`))))))
8326
(SELECT grandparent1.col_int_nokey AS g1
8327
FROM t1 AS grandparent1
8328
WHERE (grandparent1.col_int_nokey, grandparent1.col_int_key) IN
8329
(SELECT parent1.col_int_key AS p1,
8330
parent1.col_int_key AS p2
8332
LEFT JOIN t2 AS parent2
8333
ON parent1.col_int_nokey = parent2.col_int_key
8335
AND grandparent1.col_int_key <> 3
8338
DROP TABLE t1, t2, t3;
8339
# End of test for bug#13334882.
8341
# Bug#13339643: Assertion on JOIN::flatten_subqueries on second execution
8345
col_varchar_nokey VARCHAR(1)
8347
INSERT INTO t1 VALUES
8350
CREATE TABLE t2 LIKE t1;
8351
INSERT INTO t2 VALUES
8354
CREATE VIEW v_t2 AS SELECT * FROM t2;
8355
CREATE TABLE t3 LIKE t1;
8356
INSERT INTO t3 VALUES
8359
explain SELECT alias1.col_varchar_nokey
8361
INNER JOIN v_t2 AS alias2
8362
ON alias2.col_int_nokey = alias1.col_int_nokey AND
8363
'o' IN (SELECT col_varchar_nokey
8365
id select_type table type possible_keys key key_len ref rows Extra
8366
1 SIMPLE <subquery2> const <auto_key> <auto_key> 4 const 1 Using where
8367
1 SIMPLE alias1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
8368
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
8369
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2 Using where
8370
SELECT alias1.col_varchar_nokey
8372
INNER JOIN v_t2 AS alias2
8373
ON alias2.col_int_nokey = alias1.col_int_nokey AND
8374
'o' IN (SELECT col_varchar_nokey
8378
PREPARE stmt FROM "SELECT alias1.col_varchar_nokey
8380
INNER JOIN v_t2 AS alias2
8381
ON alias2.col_int_nokey = alias1.col_int_nokey AND
8382
'o' IN (SELECT col_varchar_nokey
8388
DROP TABLE t1, t2, t3;
8389
# End of test for bug#13339643.
8391
# Bug#13424134: Wrong result on JOIN + nested WHERE ... IN clauses
8395
col_int_nokey int NOT NULL,
8396
col_int_key int NOT NULL,
8398
KEY col_int_key (col_int_key)
8400
INSERT INTO t1 VALUES
8401
(10,1,7), (13,7,3), (18,0,1), (23,8,1);
8404
col_int_key int NOT NULL,
8406
KEY col_int_key (col_int_key)
8408
INSERT INTO t2 VALUES (1,7);
8409
EXPLAIN SELECT t1a.*
8411
JOIN t1 AS t1b USING ( col_int_nokey )
8412
WHERE t1a.col_int_key IN (
8415
WHERE col_int_key IN (
8416
SELECT col_int_nokey
8420
id select_type table type possible_keys key key_len ref rows Extra
8421
1 SIMPLE t2 system PRIMARY,col_int_key NULL NULL NULL 1 NULL
8422
1 SIMPLE t1a ref col_int_key col_int_key 4 const 1 Start temporary
8423
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where; End temporary; Using join buffer (Block Nested Loop)
8424
1 SIMPLE t1b ALL NULL NULL NULL NULL 4 Using where; Using join buffer (Block Nested Loop)
8427
JOIN t1 AS t1b USING ( col_int_nokey )
8428
WHERE t1a.col_int_key IN (
8431
WHERE col_int_key IN (
8432
SELECT col_int_nokey
8436
pk col_int_nokey col_int_key
8439
ALTER TABLE t1 ENGINE=Innodb;
8440
ALTER TABLE t2 ENGINE=Innodb;
8443
JOIN t1 AS t1b USING ( col_int_nokey )
8444
WHERE t1a.col_int_key IN (
8447
WHERE col_int_key IN (
8448
SELECT col_int_nokey
8452
pk col_int_nokey col_int_key
8456
# End of test for bug#13424134.
8458
# Bug#13414014: Extra rows in result on semijoin query with where ...
8467
INSERT INTO t1 VALUES
8468
(NULL,8,'x','x'), (7,4,'q','q'), (6,8,'c','c');
8473
INSERT INTO t2 VALUES
8474
('c'), (NULL), ('x'), ('q');
8480
WHERE it.a = 'x' OR it.c > it.d
8483
id select_type table type possible_keys key key_len ref rows Extra
8484
1 SIMPLE ot index a a 4 NULL 4 Using where; Using index
8485
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 8 test.ot.a,test.ot.a 1 NULL
8486
2 MATERIALIZED it ALL a NULL NULL NULL 3 Using where
8492
WHERE it.a = 'x' OR it.c > it.d
8499
# End of test for bug#13414014.
8501
# Bug#13545215: Missing rows on nested in-subquery with materialization
8505
col_varchar_key varchar(1),
8506
col_varchar_nokey varchar(1),
8507
KEY col_int_key (col_int_key),
8508
KEY col_varchar_key (col_varchar_key,col_int_key)
8510
INSERT INTO t1 VALUES
8511
(8,'x','x'), (0,'p','p'), (8,'c','c');
8514
col_varchar_key varchar(1),
8515
col_varchar_nokey varchar(1),
8517
KEY col_varchar_key (col_varchar_key)
8519
INSERT INTO t2 VALUES
8520
(1,'v','v'), (2,'v','v'), (3,'c','c'), (4,NULL,NULL),
8521
(5,'x','x'), (6,'i','i'), (7,'e','e'), (8,'p','p');
8525
INSERT INTO t3 VALUES (7);
8526
explain SELECT grandparent1.col_varchar_nokey
8527
FROM t1 AS grandparent1 JOIN t1 AS grandparent2 USING (col_int_key)
8528
WHERE grandparent1.col_varchar_key IN (
8529
SELECT col_varchar_nokey
8531
WHERE col_varchar_key IN (
8532
SELECT child1.col_varchar_nokey
8533
FROM t2 AS child1 LEFT JOIN t3 AS child2
8534
ON child1.pk < child2.col_int_nokey
8537
id select_type table type possible_keys key key_len ref rows Extra
8538
1 SIMPLE grandparent1 ALL col_int_key,col_varchar_key NULL NULL NULL 3 Using where
8539
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 4 test.grandparent1.col_varchar_key 1 NULL
8540
1 SIMPLE grandparent2 index col_int_key col_int_key 5 NULL 3 Using where; Using index; Using join buffer (Block Nested Loop)
8541
2 MATERIALIZED child1 ALL NULL NULL NULL NULL 8 NULL
8542
2 MATERIALIZED child2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
8543
2 MATERIALIZED parent1 ALL col_varchar_key NULL NULL NULL 8 Using where; Using join buffer (Block Nested Loop)
8544
SELECT grandparent1.col_varchar_nokey
8545
FROM t1 AS grandparent1 JOIN t1 AS grandparent2 USING (col_int_key)
8546
WHERE grandparent1.col_varchar_key IN (
8547
SELECT col_varchar_nokey
8549
WHERE col_varchar_key IN (
8550
SELECT child1.col_varchar_nokey
8551
FROM t2 AS child1 LEFT JOIN t3 AS child2
8552
ON child1.pk < child2.col_int_nokey
8561
DROP TABLE t1, t2, t3;
8562
# End of test for bug#13545215.
8564
# BUG#13553211 - MISSING ROWS ON SELECT WITH IN-SUBQUERY AND
8565
# MATERIALIZATION + SEMIJOIN ON
8568
col_int_key int(11) DEFAULT NULL,
8569
col_varchar_key varchar(1) DEFAULT NULL,
8570
col_varchar_nokey varchar(1) DEFAULT NULL,
8571
KEY col_int_key (col_int_key),
8572
KEY col_varchar_key (col_varchar_key,col_int_key)
8574
INSERT INTO t1 VALUES (4,'v','v');
8575
INSERT INTO t1 VALUES (62,'v','v');
8576
INSERT INTO t1 VALUES (7,'c','c');
8577
INSERT INTO t1 VALUES (1,NULL,NULL);
8579
alias1.col_varchar_nokey AS a1_nokey,
8580
alias1.col_varchar_key AS a1_key,
8581
alias2.col_varchar_nokey AS a2_nokey
8583
t1 AS alias1, t1 AS alias2
8585
(alias1.col_varchar_nokey,alias2.col_varchar_nokey)
8589
SQ2_alias2.col_varchar_nokey, SQ2_alias1.col_varchar_key
8591
t1 AS SQ2_alias1, t1 AS SQ2_alias2
8594
id select_type table type possible_keys key key_len ref rows Extra
8595
1 SIMPLE alias1 ALL NULL NULL NULL NULL 4 Using where
8596
1 SIMPLE alias2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (Block Nested Loop)
8597
1 SIMPLE <subquery2> eq_ref <auto_key> <auto_key> 8 test.alias1.col_varchar_nokey,test.alias2.col_varchar_nokey 1 NULL
8598
2 MATERIALIZED SQ2_alias1 index col_varchar_key col_varchar_key 9 NULL 4 Using index
8599
2 MATERIALIZED SQ2_alias2 ALL NULL NULL NULL NULL 4 Using join buffer (Block Nested Loop)
8601
alias1.col_varchar_nokey AS a1_nokey,
8602
alias1.col_varchar_key AS a1_key,
8603
alias2.col_varchar_nokey AS a2_nokey
8605
t1 AS alias1, t1 AS alias2
8607
(alias1.col_varchar_nokey,alias2.col_varchar_nokey)
8611
SQ2_alias2.col_varchar_nokey, SQ2_alias1.col_varchar_key
8613
t1 AS SQ2_alias1, t1 AS SQ2_alias2
8616
a1_nokey a1_key a2_nokey
8628
# Bug#13541406: Wrong result with loosescan on select .. where .. in
8631
col_int_key INT NOT NULL,
8632
col_varchar_nokey VARCHAR(1) NOT NULL,
8633
KEY col_int_key (col_int_key)
8635
INSERT INTO t1 VALUES
8636
(7,'v'), (0,'s'), (9,'l'), (3,'y'), (4,'c'), (2,'i'), (5,'h'), (3,'q'),
8637
(1,'a'), (3,'v'), (6,'u'), (7,'s'), (5,'y'), (1,'z'), (204,'h'), (224,'p'),
8638
(9,'e'), (5,'i'), (0,'y'), (3,'w');
8641
col_int_key INT NOT NULL,
8642
col_varchar_key VARCHAR(1) NOT NULL,
8643
col_varchar_nokey VARCHAR(1) NOT NULL,
8645
KEY col_int_key (col_int_key),
8646
KEY col_varchar_key (col_varchar_key,col_int_key)
8648
INSERT INTO t2 VALUES
8649
(1,0,'j','j'), (2,8,'v','v'), (3,1,'c','c'), (4,8,'m','m'),
8650
(5,9,'d','d'), (6,24,'d','d'), (7,6,'y','y'), (8,1,'t','t'),
8651
(9,6,'d','d'), (10,2,'s','s'), (11,4,'r','r'), (12,8,'m','m'),
8652
(13,4,'b','b'), (14,4,'x','x'), (15,7,'g','g'), (16,4,'p','p'),
8653
(17,1,'q','q'), (18,9,'w','w'), (19,4,'d','d'), (20,8,'e','e');
8654
# This query should never use a LooseScan strategy
8655
explain SELECT ot1.col_int_key AS field1
8656
FROM t2 AS ot1, t2 AS ot2
8657
WHERE (ot1.col_varchar_key, ot2.col_varchar_nokey) IN (
8658
SELECT it2.col_varchar_nokey, it1.col_varchar_key
8659
FROM t2 AS it1 JOIN t1 AS it2 ON it2.col_int_key = it1.pk);
8660
id select_type table type possible_keys key key_len ref rows Extra
8661
1 SIMPLE ot2 ALL NULL NULL NULL NULL 20 Start temporary
8662
1 SIMPLE it1 ref PRIMARY,col_varchar_key col_varchar_key 3 test.ot2.col_varchar_nokey 1 Using index
8663
1 SIMPLE it2 ref col_int_key col_int_key 4 test.it1.pk 1 NULL
8664
1 SIMPLE ot1 ref col_varchar_key col_varchar_key 3 test.it2.col_varchar_nokey 1 Using index; End temporary
8665
SELECT ot1.col_int_key AS field1
8666
FROM t2 AS ot1, t2 AS ot2
8667
WHERE (ot1.col_varchar_key, ot2.col_varchar_nokey) IN (
8668
SELECT it2.col_varchar_nokey, it1.col_varchar_key
8669
FROM t2 AS it1 JOIN t1 AS it2 ON it2.col_int_key = it1.pk);
8688
# End of test for bug#13541406.
8690
# Bug#13576391: Missing rows on select with in-subquery and
8691
# batched-key-access=on and semijoin
8694
col_int_nokey int NOT NULL,
8695
col_varchar_key varchar(1) NOT NULL,
8696
KEY col_varchar_key (col_varchar_key)
8698
INSERT INTO t1 VALUES
8699
(1,'v'), (7,'s'), (4,'l'), (7,'y'), (0,'c'), (2,'i'), (9,'h'), (4,'q'),
8700
(0,'a'), (9,'v'), (1,'u'), (3,'s'), (8,'y'), (8,'z'), (18,'h'), (84,'p'),
8701
(6,'e'), (3,'i'), (6,'y'), (6,'w');
8703
col_int_nokey int NOT NULL,
8704
col_varchar_nokey varchar(1) NOT NULL
8706
INSERT INTO t2 VALUES
8707
(4,'j'), (6,'v'), (3,'c'), (5,'m'), (3,'d'), (246,'d'), (2,'y'), (9,'t'),
8708
(3,'d'), (8,'s'), (1,'r'), (8,'m'), (8,'b'), (5,'x'), (7,'g'), (5,'p'),
8709
(1,'q'), (6,'w'), (2,'d'), (9,'e');
8710
explain SELECT col_varchar_nokey
8712
WHERE col_varchar_nokey IN (
8713
SELECT col_varchar_key
8715
WHERE it.col_int_nokey <= it.col_int_nokey
8716
AND NOT ot.col_int_nokey < 2
8718
ORDER BY col_varchar_nokey;
8719
id select_type table type possible_keys key key_len ref rows Extra
8720
1 SIMPLE ot ALL NULL NULL NULL NULL 20 Using where; Using filesort; Start temporary
8721
1 SIMPLE it ref col_varchar_key col_varchar_key 3 test.ot.col_varchar_nokey 1 End temporary
8722
SELECT col_varchar_nokey
8724
WHERE col_varchar_nokey IN (
8725
SELECT col_varchar_key
8727
WHERE it.col_int_nokey <= it.col_int_nokey
8728
AND NOT ot.col_int_nokey < 2
8730
ORDER BY col_varchar_nokey;
8739
ALTER TABLE t1 ENGINE=MyISAM;
8740
ALTER TABLE t2 ENGINE=MyISAM;
8741
explain SELECT col_varchar_nokey
8743
WHERE col_varchar_nokey IN (
8744
SELECT col_varchar_key
8746
WHERE it.col_int_nokey <= it.col_int_nokey
8747
AND NOT ot.col_int_nokey < 2
8749
ORDER BY col_varchar_nokey;
8750
id select_type table type possible_keys key key_len ref rows Extra
8751
1 SIMPLE ot ALL NULL NULL NULL NULL 20 Using where; Using filesort; Start temporary
8752
1 SIMPLE it ref col_varchar_key col_varchar_key 3 test.ot.col_varchar_nokey 2 End temporary
8753
SELECT col_varchar_nokey
8755
WHERE col_varchar_nokey IN (
8756
SELECT col_varchar_key
8758
WHERE it.col_int_nokey <= it.col_int_nokey
8759
AND NOT ot.col_int_nokey < 2
8761
ORDER BY col_varchar_nokey;
8770
ALTER TABLE t1 ENGINE=Memory;
8771
ALTER TABLE t2 ENGINE=Memory;
8772
explain SELECT col_varchar_nokey
8774
WHERE col_varchar_nokey IN (
8775
SELECT col_varchar_key
8777
WHERE it.col_int_nokey <= it.col_int_nokey
8778
AND NOT ot.col_int_nokey < 2
8780
ORDER BY col_varchar_nokey;
8781
id select_type table type possible_keys key key_len ref rows Extra
8782
1 SIMPLE ot ALL NULL NULL NULL NULL 20 Using where; Using filesort; Start temporary
8783
1 SIMPLE it ref col_varchar_key col_varchar_key 3 test.ot.col_varchar_nokey 2 End temporary
8784
SELECT col_varchar_nokey
8786
WHERE col_varchar_nokey IN (
8787
SELECT col_varchar_key
8789
WHERE it.col_int_nokey <= it.col_int_nokey
8790
AND NOT ot.col_int_nokey < 2
8792
ORDER BY col_varchar_nokey;
8802
# End of test for bug#13576391.
8804
# Bug #13589848 "MISSING ROW ON SELECT WITH NESTED IN CLAUSES WHEN LOOSESCAN=ON"
8808
col_varchar_key VARCHAR(1),
8809
col_varchar_nokey VARCHAR(1),
8810
KEY (col_varchar_key)
8812
INSERT INTO t1 VALUES (100,'m','m'),
8813
(200,'b','b'), (300,'x','x');
8815
col_varchar_key VARCHAR(1),
8816
col_varchar_nokey VARCHAR(1),
8817
KEY (col_varchar_key)
8819
INSERT INTO t2 VALUES ('b','b');
8821
col_varchar_key VARCHAR(1),
8822
col_varchar_nokey VARCHAR(1),
8823
KEY (col_varchar_key)
8825
INSERT INTO t3 VALUES ('k','k');
8826
EXPLAIN SELECT GP1.id
8827
FROM t1 AS GP1 JOIN t3 AS GP2
8828
ON GP2.col_varchar_key <> GP1.col_varchar_nokey
8829
WHERE (GP1.col_varchar_nokey, GP1.col_varchar_nokey)
8831
SELECT col_varchar_nokey, col_varchar_nokey
8833
WHERE col_varchar_nokey
8834
IN ( SELECT col_varchar_key
8835
FROM t2 LEFT JOIN t3 USING (col_varchar_key) )
8838
id select_type table type possible_keys key key_len ref rows Extra
8839
1 SIMPLE GP2 system NULL NULL NULL NULL 1 NULL
8840
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL Using where
8841
1 SIMPLE GP1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (Block Nested Loop)
8842
2 MATERIALIZED t2 index col_varchar_key col_varchar_key 4 NULL 1 Using index
8843
2 MATERIALIZED t3 ref col_varchar_key col_varchar_key 4 test.t2.col_varchar_key 2 Using index
8844
2 MATERIALIZED t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (Block Nested Loop)
8846
FROM t1 AS GP1 JOIN t3 AS GP2
8847
ON GP2.col_varchar_key <> GP1.col_varchar_nokey
8848
WHERE (GP1.col_varchar_nokey, GP1.col_varchar_nokey)
8850
SELECT col_varchar_nokey, col_varchar_nokey
8852
WHERE col_varchar_nokey
8853
IN ( SELECT col_varchar_key
8854
FROM t2 LEFT JOIN t3 USING (col_varchar_key) )
8859
DROP TABLE t1,t2,t3;
8861
# Bug #13596176: Missing row on select with nested in clause when
8862
# matr=on and bnl=off + MyISAM
8865
int_key int DEFAULT NULL,
8866
vc_key varchar(1) DEFAULT NULL,
8867
vc_nokey varchar(1) DEFAULT NULL,
8868
KEY int_key (int_key),
8869
KEY vc_key (vc_key, int_key)
8871
INSERT INTO t1 VALUES
8872
(8,'x','x'), (7,'d','d'), (1,'r','r'), (7,'f','f'),
8873
(9,'y','y'), (NULL,'u','u'), (1,'m','m'), (9,NULL,NULL),
8874
(2,'o','o'), (9,'w','w'), (2,'m','m'), (4,'q','q'),
8875
(0,NULL,NULL), (4,'d','d'), (8,'g','g'), (NULL,'x','x'),
8876
(NULL,'f','f'), (0,'p','p'), (NULL,'j','j'), (8,'c','c');
8878
int_key int DEFAULT NULL,
8879
vc_key varchar(1) DEFAULT NULL,
8880
KEY int_key (int_key),
8881
KEY vc_key (vc_key, int_key)
8883
INSERT INTO t2 VALUES (8,'g');
8884
explain SELECT vc_key
8886
WHERE (vc_nokey, vc_key ) IN
8887
(SELECT vc_nokey, vc_nokey
8890
(SELECT child1.vc_key
8891
FROM t2 AS child1 JOIN t1 AS child2 USING (int_key)
8894
id select_type table type possible_keys key key_len ref rows Extra
8895
1 SIMPLE child1 index int_key,vc_key vc_key 9 NULL 1 Using where; Using index; Start temporary
8896
1 SIMPLE outr ref vc_key vc_key 4 test.child1.vc_key 3 Using where
8897
1 SIMPLE child2 ref int_key int_key 5 test.child1.int_key 3 Using index
8898
1 SIMPLE middle ALL NULL NULL NULL NULL 20 Using where; End temporary; Using join buffer (Block Nested Loop)
8901
WHERE (vc_nokey, vc_key ) IN
8902
(SELECT vc_nokey, vc_nokey
8905
(SELECT child1.vc_key
8906
FROM t2 AS child1 JOIN t1 AS child2 USING (int_key)
8912
# End of test for bug#13596176.
8914
# BUG#11754478: MAX/MIN + SUBQUERY + AND FAILS TO RETURN ANY ROWS
8915
# BUG#13599013: MAX/MIN + SUBQUERY IN WHERE CLAUSE MATCHING NO
8916
# ROWS + INDEX DOES NOT RETURN NULL
8919
pk int(11) PRIMARY KEY,
8921
KEY int_key (int_key)
8923
INSERT INTO t1 VALUES (1,0),(2,0),(3,2),(4,0),(5,3),(6,0);
8924
SELECT MIN(int_key) FROM t1 WHERE (4, 4) IN (SELECT 1, 2);
8927
SELECT MIN(int_key) FROM t1 WHERE (4, 4) IN (SELECT 4, 4);
8930
SELECT MIN(pk) FROM t1 WHERE pk IN (SELECT int_key FROM t1) AND pk = 6;
8934
# BUG#13726217: Crash in Item_ident::fix_after_pullout()
8935
CREATE TABLE t1(a INTEGER) engine=innodb;
8936
INSERT INTO t1 VALUES (0);
8943
(SELECT elt(a, 0) AS b
8951
# End of test for bug#13726217.
8952
# BUG#13773979: Missing rows on second execution of prepared statement
8956
col_varchar_key VARCHAR(1)
8958
INSERT INTO t1 VALUES
8959
(1,7,'v'), (7,0,'s'), (4,9,'l'), (7,3,'y'),
8960
(2,2,'i'), (9,5,'h'), (0,1,'a'), (9,3,'v');
8961
CREATE VIEW v1 AS SELECT * FROM t1;
8964
WHERE col_int_key IN (
8965
SELECT alias1.col_int_nokey AS field1
8967
WHERE alias1.col_varchar_key < 'v'
8969
col_int_nokey col_int_key col_varchar_key
8974
prepare stmt FROM "SELECT *
8976
WHERE col_int_key IN (
8977
SELECT alias1.col_int_nokey AS field1
8979
WHERE alias1.col_varchar_key < 'v'
8982
col_int_nokey col_int_key col_varchar_key
8988
col_int_nokey col_int_key col_varchar_key
8993
DEALLOCATE PREPARE stmt;
8996
# End of test for bug#13773979.
8998
# BUG#13685026 ASSERTION CUR_SJ_INNER_TABLES == 0 IN
8999
# --OPTIMIZE_TABLE_ORDER::CHOOSE_TABLE_ORDER
9002
col_int_key INT(11) NOT NULL,
9003
col_datetime_key DATETIME NOT NULL,
9004
col_varchar_key VARCHAR(1) NOT NULL,
9005
col_varchar_nokey VARCHAR(1) NOT NULL,
9006
KEY col_int_key (col_int_key),
9007
KEY col_datetime_key (col_datetime_key),
9008
KEY col_varchar_key (col_varchar_key,col_int_key)
9010
INSERT INTO t1 VALUES (0,'2002-02-13 17:30:06','j','j');
9011
INSERT INTO t1 VALUES (8,'2008-09-27 00:34:58','v','v');
9013
col_int_key INT(11) NOT NULL,
9014
col_datetime_key DATETIME NOT NULL,
9015
col_varchar_key VARCHAR(1) NOT NULL,
9016
col_varchar_nokey VARCHAR(1) NOT NULL,
9017
KEY col_int_key (col_int_key),
9018
KEY col_datetime_key (col_datetime_key),
9019
KEY col_varchar_key (col_varchar_key,col_int_key)
9021
INSERT INTO t2 VALUES (7,'2003-08-21 00:00:00','b','b');
9022
SET @old_depth=@@optimizer_search_depth;
9023
SET optimizer_search_depth=4;
9024
EXPLAIN SELECT col_datetime_key
9026
WHERE col_datetime_key IN (
9027
SELECT alias1.col_datetime_key
9029
LEFT JOIN t1 as alias3
9030
STRAIGHT_JOIN ( t2 AS alias4
9032
ON alias5.col_varchar_key <= alias4.col_varchar_nokey )
9033
ON alias5.col_int_key < alias4.col_int_key
9034
ON alias5.col_varchar_key = alias4.col_varchar_key
9036
id select_type table type possible_keys key key_len ref rows Extra
9037
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
9038
1 SIMPLE outr index col_datetime_key col_datetime_key 5 NULL 2 Using where; Using index; Using join buffer (Block Nested Loop)
9039
2 MATERIALIZED alias1 index NULL col_datetime_key 5 NULL 2 Using index
9040
2 MATERIALIZED alias4 ALL col_int_key,col_varchar_key NULL NULL NULL 1 NULL
9041
2 MATERIALIZED alias5 ref col_int_key,col_varchar_key col_varchar_key 3 test.alias4.col_varchar_key 1 Using where; Using index
9042
2 MATERIALIZED alias3 index NULL col_int_key 4 NULL 2 Using index
9043
SELECT col_datetime_key
9045
WHERE col_datetime_key IN (
9046
SELECT alias1.col_datetime_key
9048
LEFT JOIN t1 as alias3
9049
STRAIGHT_JOIN ( t2 AS alias4
9051
ON alias5.col_varchar_key <= alias4.col_varchar_nokey )
9052
ON alias5.col_int_key < alias4.col_int_key
9053
ON alias5.col_varchar_key = alias4.col_varchar_key
9059
SET @@optimizer_search_depth=@old_depth;
9061
# BUG#13848789: SEGFAULT IN JOIN_READ_NEXT_SAME AT
9062
# SQL/SQL_EXECUTOR.CC ON HAVING...IN...JOIN
9066
col_varchar_key VARCHAR(1),
9067
KEY col_int_key (col_int_key),
9068
KEY col_varchar_key (col_varchar_key)
9070
INSERT INTO t1 VALUES (8,'x');
9072
col_varchar_key VARCHAR(1),
9073
KEY col_varchar_key (col_varchar_key)
9075
INSERT INTO t2 VALUES ('x'), ('y');
9076
explain SELECT MIN(col_int_key)
9079
SELECT t1_inner.col_int_key, MAX(t1_inner.col_int_key)
9080
FROM t1 as t1_inner JOIN t2
9081
ON t2.col_varchar_key = t1_inner.col_varchar_key
9083
id select_type table type possible_keys key key_len ref rows Extra
9084
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
9085
2 SUBQUERY t1_inner system col_varchar_key NULL NULL NULL 1 NULL
9086
2 SUBQUERY t2 ref col_varchar_key col_varchar_key 4 const 1 Using index
9087
SELECT MIN(col_int_key)
9090
SELECT t1_inner.col_int_key, MAX(t1_inner.col_int_key)
9091
FROM t1 as t1_inner JOIN t2
9092
ON t2.col_varchar_key = t1_inner.col_varchar_key
9096
# Bug#13838810: Segfault in evaluate_null_complemented_join_record
9099
col_int_nokey int DEFAULT NULL,
9100
col_int_key int DEFAULT NULL,
9101
col_varchar_key varchar(1) DEFAULT NULL,
9103
KEY col_int_key (col_int_key),
9104
KEY col_varchar_key (col_varchar_key,col_int_key)
9106
INSERT INTO t1 VALUES (10,NULL,8,'x');
9109
col_varchar_nokey varchar(1) DEFAULT NULL,
9112
INSERT INTO t2 VALUES (1,'x');
9115
col_varchar_key varchar(1) DEFAULT NULL,
9116
col_varchar_nokey varchar(1) DEFAULT NULL,
9118
KEY col_varchar_key (col_varchar_key)
9120
INSERT INTO t3 VALUES
9121
(1,'v','v'), (2,'v','v'), (3,'c','c'), (4,NULL,NULL);
9122
EXPLAIN SELECT table1.pk,table2.pk, table3.pk
9124
LEFT JOIN t1 AS table2
9125
LEFT JOIN t1 AS table3
9126
ON table3.col_int_key = table2.col_int_key
9127
ON table3.pk = table2.col_int_nokey AND
9128
table1.col_varchar_nokey IN (
9129
SELECT subquery3_t1.col_varchar_nokey
9130
FROM t3 AS subquery3_t1
9131
LEFT JOIN t1 AS subquery3_t2
9132
ON subquery3_t2.col_varchar_key = subquery3_t1.col_varchar_key
9133
WHERE subquery3_t2.col_int_nokey <> 9
9136
id select_type table type possible_keys key key_len ref rows Extra
9137
1 SIMPLE table1 ALL NULL NULL NULL NULL 1 Start temporary
9138
1 SIMPLE table2 ALL col_int_key NULL NULL NULL 1 Using where
9139
1 SIMPLE table3 eq_ref PRIMARY,col_int_key PRIMARY 4 test.table2.col_int_nokey 1 Using where
9140
1 SIMPLE subquery3_t2 ALL col_varchar_key NULL NULL NULL 1 Using where
9141
1 SIMPLE subquery3_t1 ref col_varchar_key col_varchar_key 4 test.subquery3_t2.col_varchar_key 1 Using where; End temporary
9142
SELECT table1.pk,table2.pk, table3.pk
9144
LEFT JOIN t1 AS table2
9145
LEFT JOIN t1 AS table3
9146
ON table3.col_int_key = table2.col_int_key
9147
ON table3.pk = table2.col_int_nokey AND
9148
table1.col_varchar_nokey IN (
9149
SELECT subquery3_t1.col_varchar_nokey
9150
FROM t3 AS subquery3_t1
9151
LEFT JOIN t1 AS subquery3_t2
9152
ON subquery3_t2.col_varchar_key = subquery3_t1.col_varchar_key
9153
WHERE subquery3_t2.col_int_nokey <> 9
9158
DROP TABLE t1, t2, t3;
9159
Extra test case for specific code coverage
9160
CREATE TABLE t1(pk INTEGER);
9161
INSERT INTO t1 VALUES(1), (2);
9163
FROM t1 AS ot1 LEFT JOIN t1 AS ot2
9164
ON ot1.pk=ot2.pk AND
9167
FROM t1 AS it1 LEFT JOIN t1 AS it2 ON it1.pk=it2.pk);
9168
id select_type table type possible_keys key key_len ref rows Extra
9169
1 SIMPLE ot1 ALL NULL NULL NULL NULL 2 Start temporary
9170
1 SIMPLE ot2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
9171
1 SIMPLE it1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
9172
1 SIMPLE it2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
9174
FROM t1 AS ot1 LEFT JOIN t1 AS ot2
9175
ON ot1.pk=ot2.pk AND
9178
FROM t1 AS it1 LEFT JOIN t1 AS it2 ON it1.pk=it2.pk);
9183
# End of test for bug#13838810.
9185
# BUG#13685026 ASSERTION CUR_SJ_INNER_TABLES == 0 IN
9186
# --OPTIMIZE_TABLE_ORDER::CHOOSE_TABLE_ORDER
9189
col_int_key INT(11) NOT NULL,
9190
col_datetime_key DATETIME NOT NULL,
9191
col_varchar_key VARCHAR(1) NOT NULL,
9192
col_varchar_nokey VARCHAR(1) NOT NULL,
9193
KEY col_int_key (col_int_key),
9194
KEY col_datetime_key (col_datetime_key),
9195
KEY col_varchar_key (col_varchar_key,col_int_key)
9197
INSERT INTO t1 VALUES (0,'2002-02-13 17:30:06','j','j');
9198
INSERT INTO t1 VALUES (8,'2008-09-27 00:34:58','v','v');
9200
col_int_key INT(11) NOT NULL,
9201
col_datetime_key DATETIME NOT NULL,
9202
col_varchar_key VARCHAR(1) NOT NULL,
9203
col_varchar_nokey VARCHAR(1) NOT NULL,
9204
KEY col_int_key (col_int_key),
9205
KEY col_datetime_key (col_datetime_key),
9206
KEY col_varchar_key (col_varchar_key,col_int_key)
9208
INSERT INTO t2 VALUES (7,'2003-08-21 00:00:00','b','b');
9209
SET @old_depth=@@optimizer_search_depth;
9210
SET optimizer_search_depth=4;
9211
EXPLAIN SELECT col_datetime_key
9213
WHERE col_datetime_key IN (
9214
SELECT alias1.col_datetime_key
9216
LEFT JOIN t1 as alias3
9217
STRAIGHT_JOIN ( t2 AS alias4
9219
ON alias5.col_varchar_key <= alias4.col_varchar_nokey )
9220
ON alias5.col_int_key < alias4.col_int_key
9221
ON alias5.col_varchar_key = alias4.col_varchar_key
9223
id select_type table type possible_keys key key_len ref rows Extra
9224
1 SIMPLE <subquery2> ALL NULL NULL NULL NULL NULL NULL
9225
1 SIMPLE outr index col_datetime_key col_datetime_key 5 NULL 2 Using where; Using index; Using join buffer (Block Nested Loop)
9226
2 MATERIALIZED alias1 index NULL col_datetime_key 5 NULL 2 Using index
9227
2 MATERIALIZED alias4 ALL col_int_key,col_varchar_key NULL NULL NULL 1 NULL
9228
2 MATERIALIZED alias5 ref col_int_key,col_varchar_key col_varchar_key 3 test.alias4.col_varchar_key 1 Using where; Using index
9229
2 MATERIALIZED alias3 index NULL col_int_key 4 NULL 2 Using index
9230
SELECT col_datetime_key
9232
WHERE col_datetime_key IN (
9233
SELECT alias1.col_datetime_key
9235
LEFT JOIN t1 as alias3
9236
STRAIGHT_JOIN ( t2 AS alias4
9238
ON alias5.col_varchar_key <= alias4.col_varchar_nokey )
9239
ON alias5.col_int_key < alias4.col_int_key
9240
ON alias5.col_varchar_key = alias4.col_varchar_key
9246
SET @@optimizer_search_depth=@old_depth;
9248
# Bug#13845930: Segfault in st_join_table::and_with_condition
9254
col_varchar_1 VARCHAR(1),
9255
col_varchar_2 VARCHAR(1)
9257
INSERT INTO t2 VALUES ('x','x'), ('c','c');
9259
SELECT alias2.col_varchar_2 AS field1
9263
LEFT JOIN t2 AS alias3
9265
(SELECT sq1_alias1.col_int,
9267
FROM t1 AS sq1_alias1 JOIN t1 AS sq1_alias2
9270
ON alias3.col_varchar_1 = alias2.col_varchar_2
9276
DEALLOCATE prepare stmt;
9278
# End of test for bug#13845930.
9280
# Bug#13855925: Assert 'prebuilt->search_tuple->n_fields > 0'
9281
# in ha_innobase::index_read
9284
pk INTEGER AUTO_INCREMENT,
9287
col_varchar_key VARCHAR(1),
9288
col_varchar_nokey VARCHAR(1),
9290
KEY (col_varchar_key)
9293
col_int_key, col_int_nokey,
9294
col_varchar_key, col_varchar_nokey
9296
(4, 2, 'v','v'), (62, 150, 'v','v'), (7, NULL, 'c','c'), (1, 2, NULL, NULL),
9297
(0, 5, 'x','x'), (7, 3, 'i','i'), (7, 1, 'e','e'), (1, 4, 'p','p'),
9298
(7, NULL, 's','s'), (1, 2, 'j','j'), (5, 6, 'z','z'), (2, 6, 'c','c'),
9299
(0, 8, 'a','a'), (1, 2, 'q','q'), (8, 6, 'y','y'), (1, 8, NULL, NULL),
9300
(1, 3, 'r','r'), (9, 3, 'v','v'), (1, 9, NULL, NULL), (5, 6, 'r','r');
9302
pk INT AUTO_INCREMENT,
9307
) AUTO_INCREMENT=10 ENGINE=INNODB;
9308
INSERT INTO t2 (col_int_key, col_int_nokey) VALUES
9309
(8, NULL), (7, 8), (1, 1), (7, 9), (9, 4), (NULL, 3), (1, 2), (9, NULL),
9310
(2, 2), (9, NULL), (2, 6), (4, 7), (0, 2), (4, 5), (8, 7), (NULL, 6),
9311
(NULL, 6), (0, 2), (NULL, 9), (8, 6);
9313
pk INT AUTO_INCREMENT,
9314
col_varchar_key VARCHAR(1),
9316
KEY (col_varchar_key)
9318
INSERT INTO t3 (col_varchar_key) VALUES
9319
('c'), ('c'), ('q'), ('g'), ('e'), ('l'), (NULL), ('c'), ('h'), ('d'),
9320
('c'), ('i'), ('t'), ('g'), ('q'), ('l'), ('n'), ('z'), ('n'), ('r'), ('p');
9322
SELECT table2.col_varchar_nokey AS field1
9324
INNER JOIN (t1 AS table2
9325
STRAIGHT_JOIN t2 AS table3
9326
ON table3.col_int_key = table2.pk AND
9327
table3.col_int_nokey = ANY
9328
(SELECT subquery1_t2.col_int_nokey AS subquery1_field1
9329
FROM t2 AS subquery1_t1
9330
RIGHT OUTER JOIN t1 AS subquery1_t2
9331
INNER JOIN t1 AS subquery1_t3
9332
ON subquery1_t3.col_int_key = subquery1_t2.pk
9333
ON subquery1_t3.col_varchar_key=subquery1_t2.col_varchar_nokey
9334
WHERE subquery1_t1.pk > 1
9337
ON table3.col_int_key IN
9338
(SELECT subquery2_t1.col_int_key AS subquery2_field1
9339
FROM t2 AS subquery2_t1
9340
RIGHT OUTER JOIN t3 AS subquery2_t2
9341
LEFT OUTER JOIN t1 AS subquery2_t3
9342
ON subquery2_t3.col_varchar_key = subquery2_t2.col_varchar_key
9343
ON subquery2_t3.pk = subquery2_t2.pk
9346
explain SELECT * FROM v1;
9347
id select_type table type possible_keys key key_len ref rows Extra
9348
1 SIMPLE table1 index NULL col_int_key 5 NULL 20 Using index
9349
1 SIMPLE <subquery3> ALL NULL NULL NULL NULL NULL Using join buffer (Block Nested Loop)
9350
1 SIMPLE table2 ALL PRIMARY NULL NULL NULL 20 Using where; Using join buffer (Block Nested Loop)
9351
1 SIMPLE table3 ref col_int_key col_int_key 5 test.table2.pk 1 Using where
9352
1 SIMPLE <subquery4> eq_ref <auto_key> <auto_key> 5 test.table2.pk 1 NULL
9353
3 MATERIALIZED subquery1_t2 ALL PRIMARY NULL NULL NULL 20 Using where
9354
3 MATERIALIZED subquery1_t3 ref col_varchar_key col_varchar_key 4 test.subquery1_t2.col_varchar_nokey 1 Using where
9355
3 MATERIALIZED subquery1_t1 index PRIMARY col_int_key 5 NULL 20 Using where; Using index; Using join buffer (Block Nested Loop)
9356
4 MATERIALIZED subquery2_t3 index PRIMARY,col_varchar_key col_varchar_key 4 NULL 20 Using where; Using index
9357
4 MATERIALIZED subquery2_t2 eq_ref PRIMARY,col_varchar_key PRIMARY 4 test.subquery2_t3.pk 1 Using where
9358
4 MATERIALIZED subquery2_t1 index col_int_key col_int_key 5 NULL 20 Using index; Using join buffer (Block Nested Loop)
9382
DROP TABLE t1,t2,t3;
9383
# End of test for bug#13855925.
9385
# Bug#13897959: Segfault in setup_semijoin_dups_elimination()
9388
col_datetime_key DATETIME DEFAULT NULL,
9389
KEY col_datetime_key (col_datetime_key)
9391
INSERT INTO t1 VALUES
9392
('2001-04-18 00:00:00'), ('2008-12-18 19:39:55'),
9393
('2000-08-01 12:19:39'), ('2004-09-25 21:29:06'),
9394
('2009-09-20 09:11:48'), ('2004-03-27 09:32:04');
9396
col_date_nokey date DEFAULT NULL,
9397
col_time_key time DEFAULT NULL,
9398
col_datetime_key datetime DEFAULT NULL,
9399
col_varchar_key varchar(1) DEFAULT NULL,
9400
col_varchar_nokey varchar(1) DEFAULT NULL,
9401
KEY col_time_key (col_time_key),
9402
KEY col_datetime_key (col_datetime_key),
9403
KEY col_varchar_key(col_varchar_key)
9405
INSERT INTO t2 VALUES ('1900-01-01',NULL,'2001-11-04 19:07:55','x','x');
9406
SELECT grandparent1.col_varchar_nokey
9407
FROM t2 AS grandparent1 LEFT JOIN t1 USING (col_datetime_key)
9408
WHERE grandparent1.col_varchar_nokey IN (
9409
SELECT col_varchar_nokey
9411
WHERE parent1.col_time_key > grandparent1.col_date_nokey
9415
# End of test for bug#13897959.
9417
# Bug#13898625 ASSERT `(REMAINING_TABLES_AFTER != 0) ...' IN
9418
# BEST_EXTENSION_BY_LIMITED_SEARCH
9421
pk int(11) NOT NULL,
9424
col_varchar_key VARCHAR(1),
9425
col_varchar_nokey VARCHAR(1),
9427
KEY col_int_key (col_int_key),
9428
KEY col_varchar_key (col_varchar_key,col_int_key)
9430
INSERT INTO t1 VALUES (26,6,NULL,'f','f');
9431
INSERT INTO t1 VALUES (29,6,8,'c','c');
9436
col_varchar_key VARCHAR(1),
9437
col_varchar_nokey VARCHAR(1),
9439
KEY col_int_key (col_int_key),
9440
KEY col_varchar_key (col_varchar_key,col_int_key)
9442
INSERT INTO t2 VALUES (1,2,4,'v','v');
9443
INSERT INTO t2 VALUES (2,150,62,'v','v');
9444
INSERT INTO t2 VALUES (5,5,0,'x','x');
9445
INSERT INTO t2 VALUES (6,3,7,'i','i');
9446
INSERT INTO t2 VALUES (7,1,7,'e','e');
9447
CREATE VIEW view_c AS SELECT * FROM t2;
9448
PREPARE prep_stmt_7430 FROM 'SELECT SUM( alias1.col_varchar_key ) AS field1
9450
RIGHT JOIN t2 AS alias2
9451
INNER JOIN t1 AS alias3
9452
ON (alias3.col_varchar_key = alias2.col_varchar_key )
9454
SELECT sq1_alias1.col_varchar_nokey AS sq1_field1
9455
FROM t1 AS sq1_alias1
9457
WHERE alias3.pk IN (
9458
SELECT sq2_alias1.col_int_key AS sq2_field1
9459
FROM ( view_c AS sq2_alias1, t1 AS sq2_alias2 )
9462
EXECUTE prep_stmt_7430;
9465
EXECUTE prep_stmt_7430;
9468
EXPLAIN SELECT SUM( alias1.col_varchar_key ) AS field1
9470
RIGHT JOIN t2 AS alias2
9471
INNER JOIN t1 AS alias3
9472
ON (alias3.col_varchar_key = alias2.col_varchar_key )
9474
SELECT sq1_alias1.col_varchar_nokey AS sq1_field1
9475
FROM t1 AS sq1_alias1
9477
WHERE alias3.pk IN (
9478
SELECT sq2_alias1.col_int_key AS sq2_field1
9479
FROM ( view_c AS sq2_alias1, t1 AS sq2_alias2 )
9482
id select_type table type possible_keys key key_len ref rows Extra
9483
1 SIMPLE alias3 ALL PRIMARY,col_varchar_key NULL NULL NULL 2 Using where; Start temporary
9484
1 SIMPLE alias2 ref col_varchar_key col_varchar_key 4 test.alias3.col_varchar_key 1 Using index
9485
1 SIMPLE sq1_alias1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
9486
1 SIMPLE alias1 index NULL col_varchar_key 9 NULL 2 Using index; End temporary; Using join buffer (Block Nested Loop)
9487
1 SIMPLE <subquery3> eq_ref <auto_key> <auto_key> 5 test.alias3.pk 1 NULL
9488
3 MATERIALIZED sq2_alias2 index NULL PRIMARY 4 NULL 2 Using index
9489
3 MATERIALIZED t2 index col_int_key col_int_key 5 NULL 5 Using index; Using join buffer (Block Nested Loop)
9490
PREPARE prep_stmt_7430 FROM 'SELECT SUM( alias1.col_varchar_key ) AS field1
9492
RIGHT JOIN t2 AS alias2
9493
INNER JOIN t1 AS alias3
9494
ON (alias3.col_varchar_key = alias2.col_varchar_key )
9496
SELECT sq1_alias1.col_varchar_nokey AS sq1_field1
9497
FROM t1 AS sq1_alias1
9499
WHERE alias3.pk IN (
9500
SELECT sq2_alias1.col_int_key AS sq2_field1
9501
FROM ( view_c AS sq2_alias1 , t1 AS sq2_alias2 )
9502
WHERE sq2_alias1.col_varchar_nokey <> alias2.col_varchar_key
9503
AND sq2_alias1.col_varchar_key < "l"
9506
EXECUTE prep_stmt_7430;
9509
EXECUTE prep_stmt_7430;
9512
EXPLAIN SELECT SUM( alias1.col_varchar_key ) AS field1
9514
RIGHT JOIN t2 AS alias2
9515
INNER JOIN t1 AS alias3
9516
ON (alias3.col_varchar_key = alias2.col_varchar_key )
9518
SELECT sq1_alias1.col_varchar_nokey AS sq1_field1
9519
FROM t1 AS sq1_alias1
9521
WHERE alias3.pk IN (
9522
SELECT sq2_alias1.col_int_key AS sq2_field1
9523
FROM ( view_c AS sq2_alias1 , t1 AS sq2_alias2 )
9524
WHERE sq2_alias1.col_varchar_nokey <> alias2.col_varchar_key
9525
AND sq2_alias1.col_varchar_key < "l"
9528
id select_type table type possible_keys key key_len ref rows Extra
9529
1 SIMPLE t2 range col_int_key,col_varchar_key col_varchar_key 4 NULL 2 Using where; Start temporary
9530
1 SIMPLE alias3 eq_ref PRIMARY,col_varchar_key PRIMARY 4 test.t2.col_int_key 1 Using where
9531
1 SIMPLE alias2 ref col_varchar_key col_varchar_key 4 test.alias3.col_varchar_key 1 Using index
9532
1 SIMPLE sq2_alias2 index NULL PRIMARY 4 NULL 2 Using index; Using join buffer (Block Nested Loop)
9533
1 SIMPLE sq1_alias1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
9534
1 SIMPLE alias1 index NULL col_varchar_key 9 NULL 2 Using index; End temporary; Using join buffer (Block Nested Loop)
9538
# Bug#13902463 SEGFAULT IN BITMAP<64U>::MERGE OR ADD_KEY_FIELD
9539
# ON SECOND EXEC OF PREP STMT
9545
col_varchar_key VARCHAR(1),
9546
col_varchar_nokey VARCHAR(1),
9547
KEY col_varchar_key (col_varchar_key)
9549
CREATE VIEW view_b AS SELECT * FROM t1;
9550
PREPARE prep_stmt_20421 FROM 'SELECT alias2.col_varchar_nokey AS field1
9552
INNER JOIN t1 AS alias2
9553
ON (alias1.col_varchar_key = alias2.col_varchar_nokey
9554
AND ( alias1.col_int_key ) IN (
9555
SELECT t1.col_int_nokey
9559
WHERE alias1.col_varchar_key IN (
9560
SELECT sq2_alias2.col_varchar_nokey AS sq2_field1
9561
FROM view_b AS sq2_alias1
9562
INNER JOIN t1 AS sq2_alias2
9563
ON (sq2_alias2.col_varchar_key = sq2_alias1.col_varchar_key )
9564
WHERE sq2_alias1.pk > alias2.pk
9567
EXECUTE prep_stmt_20421;
9569
EXECUTE prep_stmt_20421;
9571
EXPLAIN SELECT alias2.col_varchar_nokey AS field1
9573
INNER JOIN t1 AS alias2
9574
ON (alias1.col_varchar_key = alias2.col_varchar_nokey
9575
AND ( alias1.col_int_key ) IN (
9576
SELECT t1.col_int_nokey
9580
WHERE alias1.col_varchar_key IN (
9581
SELECT sq2_alias2.col_varchar_nokey AS sq2_field1
9582
FROM view_b AS sq2_alias1
9583
INNER JOIN t1 AS sq2_alias2
9584
ON (sq2_alias2.col_varchar_key = sq2_alias1.col_varchar_key )
9585
WHERE sq2_alias1.pk > alias2.pk
9588
id select_type table type possible_keys key key_len ref rows Extra
9589
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
9590
ALTER TABLE t1 DROP INDEX col_varchar_key;
9591
PREPARE prep_stmt_20421 FROM 'SELECT alias2.col_varchar_nokey AS field1
9593
INNER JOIN t1 AS alias2
9594
ON (alias1.col_varchar_key = alias2.col_varchar_nokey
9595
AND ( alias1.col_int_key ) IN (
9596
SELECT t1.col_int_nokey
9600
WHERE alias1.col_varchar_key IN (
9601
SELECT sq2_alias2.col_varchar_nokey AS sq2_field1
9602
FROM view_b AS sq2_alias1
9603
INNER JOIN t1 AS sq2_alias2
9604
ON (sq2_alias2.col_varchar_key = sq2_alias1.col_varchar_key )
9605
WHERE sq2_alias1.pk > alias2.pk
9608
EXECUTE prep_stmt_20421;
9610
EXECUTE prep_stmt_20421;
9612
EXPLAIN SELECT alias2.col_varchar_nokey AS field1
9614
INNER JOIN t1 AS alias2
9615
ON (alias1.col_varchar_key = alias2.col_varchar_nokey
9616
AND ( alias1.col_int_key ) IN (
9617
SELECT t1.col_int_nokey
9621
WHERE alias1.col_varchar_key IN (
9622
SELECT sq2_alias2.col_varchar_nokey AS sq2_field1
9623
FROM view_b AS sq2_alias1
9624
INNER JOIN t1 AS sq2_alias2
9625
ON (sq2_alias2.col_varchar_key = sq2_alias1.col_varchar_key )
9626
WHERE sq2_alias1.pk > alias2.pk
9629
id select_type table type possible_keys key key_len ref rows Extra
9630
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
9634
# Bug#13907277: Segfault in evaluate_null_complemented_join_record
9638
col_varchar_nokey VARCHAR(1),
9639
col_varchar_key VARCHAR(1),
9642
INSERT INTO t1 VALUES (1, 'x', 'x');
9647
INSERT INTO t2 VALUES (1);
9650
col_int_nokey INTEGER,
9651
col_int_key INTEGER,
9652
col_varchar_nokey VARCHAR(1),
9655
INSERT INTO t3 VALUES (1, 6, 5, 'r');
9656
explain SELECT outer_t1.pk, outer_t2.pk
9658
RIGHT JOIN t2 AS outer_t2
9659
ON outer_t1.col_int_nokey IN
9660
(SELECT inner_t1.col_int_nokey
9662
LEFT JOIN t1 AS inner_t2
9663
INNER JOIN t1 AS inner_t3
9664
ON inner_t3.pk = inner_t2.pk
9665
ON inner_t3.col_varchar_nokey = inner_t2.col_varchar_key
9667
id select_type table type possible_keys key key_len ref rows Extra
9668
1 SIMPLE outer_t2 system NULL NULL NULL NULL 1 NULL
9669
1 SIMPLE outer_t1 ALL NULL NULL NULL NULL 1 Using where; Start temporary
9670
1 SIMPLE inner_t1 ALL NULL NULL NULL NULL 1 Using where
9671
1 SIMPLE inner_t2 ALL PRIMARY NULL NULL NULL 1 NULL
9672
1 SIMPLE inner_t3 eq_ref PRIMARY PRIMARY 4 test.inner_t2.pk 1 Using where; End temporary
9673
SELECT outer_t1.pk, outer_t2.pk
9675
RIGHT JOIN t2 AS outer_t2
9676
ON outer_t1.col_int_nokey IN
9677
(SELECT inner_t1.col_int_nokey
9679
LEFT JOIN t1 AS inner_t2
9680
INNER JOIN t1 AS inner_t3
9681
ON inner_t3.pk = inner_t2.pk
9682
ON inner_t3.col_varchar_nokey = inner_t2.col_varchar_key
9686
DROP TABLE t1, t2, t3;
9687
# End of test for bug#13907277.
9689
# Bug#13955713: Assert 'JOIN->best_read < ...' on second execution
9693
col_varchar_key VARCHAR(1),
9694
col_varchar_nokey VARCHAR(1)
9697
SELECT MIN(alias2.col_varchar_key) AS field1
9699
INNER JOIN (t1 AS alias2
9700
INNER JOIN t1 AS alias3
9702
(SELECT sq1_alias1.pk AS sq1_field2
9703
FROM t1 AS sq1_alias1
9705
(SELECT SUM(t1_sq1_alias1.pk) AS t1_sq1_field2
9706
FROM t1 AS t1_sq1_alias1
9710
ON alias3.col_varchar_nokey = alias2.col_varchar_key
9712
(SELECT sq2_alias1.pk AS sq2_field1
9713
FROM t1 AS sq2_alias1
9714
WHERE sq2_alias1.col_varchar_key < alias1.col_varchar_nokey
9723
DEALLOCATE PREPARE stmt;
9725
# End of test for bug#13955713.
9727
# Bug#13956813: Segfault in memcpy from Join_cache::write_record_data()
9731
col_varchar_key VARCHAR(1),
9732
col_varchar_nokey VARCHAR(1)
9736
col_varchar_key VARCHAR(1),
9737
col_varchar_nokey VARCHAR(1)
9739
INSERT INTO t2 VALUES
9740
(10,'j','j'), (11,'z','z'), (12,'c','c'), (13,'a','a'),
9741
(14,'q','q'), (15,'y','y'), (16,NULL,NULL), (17,'r','r'),
9742
(18,'v','v'), (19,NULL,NULL), (20,'r','r');
9746
col_varchar_key VARCHAR(1),
9747
KEY col_int_key (col_int_key)
9749
INSERT INTO t3 VALUES
9750
(15,NULL,'u'), (16,1,'m'), (17,9,NULL), (18,2,'o'),
9751
(19,9,'w'), (20,2,'m'), (21,4,'q'), (22,0,NULL),
9752
(23,4,'d'), (24,8,'g'), (25,NULL,'x'), (26,NULL,'f'),
9753
(27,0,'p'), (28,NULL,'j'), (29,8,'c');
9754
CREATE VIEW view_inline_0 AS
9756
FROM t1 INNER JOIN t3
9758
CREATE VIEW view_inline_1 AS
9759
SELECT sq2_alias2.col_varchar_key AS sq2_field1,
9760
sq2_alias1.col_varchar_key AS sq2_field2
9761
FROM t3 AS sq2_alias1 LEFT OUTER JOIN t3 AS sq2_alias2
9762
ON sq2_alias1.pk = sq2_alias2.col_int_key;
9763
CREATE VIEW view_inline_2 AS
9764
SELECT 'p', 'p' UNION SELECT 'k', 's';
9765
explain SELECT SUM(alias1.col_varchar_nokey) AS field2
9767
LEFT JOIN (SELECT * FROM view_inline_0) AS alias1
9768
ON alias2.col_varchar_key = alias1.col_varchar_key AND
9769
(alias2.col_varchar_nokey, alias2.col_varchar_key) IN
9770
(SELECT * FROM view_inline_1
9772
WHERE (alias1.col_varchar_key, alias1.col_varchar_nokey) IN
9773
(SELECT * FROM view_inline_2
9775
id select_type table type possible_keys key key_len ref rows Extra
9776
1 PRIMARY <subquery4> ALL NULL NULL NULL NULL NULL Using where
9777
1 PRIMARY <derived2> ref <auto_key0> <auto_key0> 8 <subquery4>.p,<subquery4>.My_exp_p 2 NULL
9778
1 PRIMARY alias2 ALL NULL NULL NULL NULL 11 Using where; Using join buffer (Block Nested Loop)
9779
1 PRIMARY <subquery3> eq_ref <auto_key> <auto_key> 8 test.alias2.col_varchar_nokey,<subquery4>.p 1 NULL
9780
4 MATERIALIZED <derived7> ALL NULL NULL NULL NULL 2 NULL
9781
3 MATERIALIZED sq2_alias1 ALL NULL NULL NULL NULL 15 NULL
9782
3 MATERIALIZED sq2_alias2 ref col_int_key col_int_key 5 test.sq2_alias1.pk 2 NULL
9783
7 DERIVED NULL NULL NULL NULL NULL NULL NULL No tables used
9784
8 UNION NULL NULL NULL NULL NULL NULL NULL No tables used
9785
NULL UNION RESULT <union7,8> ALL NULL NULL NULL NULL NULL Using temporary
9786
2 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
9787
SELECT SUM(alias1.col_varchar_nokey) AS field2
9789
LEFT JOIN (SELECT * FROM view_inline_0) AS alias1
9790
ON alias2.col_varchar_key = alias1.col_varchar_key AND
9791
(alias2.col_varchar_nokey, alias2.col_varchar_key) IN
9792
(SELECT * FROM view_inline_1
9794
WHERE (alias1.col_varchar_key, alias1.col_varchar_nokey) IN
9795
(SELECT * FROM view_inline_2
9799
DROP VIEW view_inline_0, view_inline_1, view_inline_2;
9800
DROP TABLE t1, t2, t3;
9801
# End of test for bug#13956813.
9803
# Bug#13974177: Assert !(tab->table->regginfo.not_exists_optimize...
9806
pk INTEGER AUTO_INCREMENT,
9807
col_int_nokey INTEGER,
9808
col_int_key INTEGER,
9809
col_varchar_key VARCHAR(1),
9810
col_varchar_nokey VARCHAR(1),
9813
KEY (col_varchar_key, col_int_key)
9815
INSERT INTO t1(col_int_key, col_int_nokey, col_varchar_key, col_varchar_nokey)
9817
(0, 4, 'j', 'j'), (8, 6, 'v', 'v'), (1, 3, 'c', 'c'), (8, 5, 'm', 'm'),
9818
(9, 3, 'd', 'd'), (24, 246, 'd', 'd'), (6, 2, 'y', 'y'), (1, 9, 't', 't'),
9819
(6, 3, 'd', 'd'), (2, 8, 's', 's'), (4, 1, 'r', 'r'), (8, 8, 'm', 'm'),
9820
(4, 8, 'b', 'b'), (4, 5, 'x', 'x'), (7, 7, 'g', 'g'), (4, 5, 'p', 'p'),
9821
(1, 1, 'q', 'q'), (9, 6, 'w', 'w'), (4, 2, 'd', 'd'), (8, 9, 'e', 'e');
9823
pk INTEGER AUTO_INCREMENT,
9824
col_int_nokey INTEGER NOT NULL,
9825
col_time_key TIME NOT NULL,
9826
col_time_nokey TIME NOT NULL,
9830
INSERT INTO t2 (col_int_nokey, col_time_key, col_time_nokey) VALUES
9831
(7, '00:00:00', '00:00:00'), (0, '00:00:00', '00:00:00'),
9832
(9, '06:35:17', '06:35:17'), (3, '18:07:14', '18:07:14'),
9833
(4, '20:36:52', '20:36:52'), (2, '21:29:07', '21:29:07'),
9834
(5, '23:45:57', '23:45:57'), (3, '22:54:57', '22:54:57'),
9835
(1, '18:45:09', '18:45:09'), (3, '14:30:46', '14:30:46'),
9836
(6, '19:23:43', '19:23:43'), (7, '03:39:30', '03:39:30'),
9837
(5, '23:37:52', '23:37:52'), (1, '16:59:30', '16:59:30'),
9838
(204, '22:21:15', '22:21:15'), (224, '12:24:37', '12:24:37'),
9839
(9, '15:02:08', '15:02:08'), (5, '23:59:59', '23:59:59'),
9840
(0, '08:23:30', '08:23:30'), (3, '08:32:22', '08:32:22');
9841
explain SELECT ot1.col_int_key AS x
9844
ON ot2.col_varchar_nokey > ot1.col_varchar_key
9845
WHERE (ot1.col_int_nokey, ot1.pk) IN
9846
(SELECT it1.pk AS x,
9847
it1.col_int_nokey AS y
9850
ON it2.col_time_nokey = it1.col_time_key
9851
) AND ot1.pk IS NULL
9853
id select_type table type possible_keys key key_len ref rows Extra
9854
1 SIMPLE ot1 const PRIMARY,col_varchar_key PRIMARY 4 const 1 Using where; Start temporary
9855
1 SIMPLE it1 eq_ref PRIMARY,col_time_key PRIMARY 4 test.ot1.col_int_nokey 1 Using where
9856
1 SIMPLE it2 ALL NULL NULL NULL NULL 20 Using where; End temporary; Using join buffer (Block Nested Loop)
9857
1 SIMPLE ot2 ALL NULL NULL NULL NULL 20 Using where; Using join buffer (Block Nested Loop)
9858
SELECT ot1.col_int_key AS x
9861
ON ot2.col_varchar_nokey > ot1.col_varchar_key
9862
WHERE (ot1.col_int_nokey, ot1.pk) IN
9863
(SELECT it1.pk AS x,
9864
it1.col_int_nokey AS y
9867
ON it2.col_time_nokey = it1.col_time_key
9868
) AND ot1.pk IS NULL
9872
# End of test for bug#13974177.
9874
# Bug#13971022: Assert 'keyparts > 0' failed in create_ref_for_key...
9879
col_varchar_key VARCHAR(1),
9881
KEY col_varchar_key (col_varchar_key,col_int_key)
9886
col_varchar_key VARCHAR(1),
9887
col_varchar_nokey VARCHAR(1),
9893
explain SELECT table1.pk AS field1
9894
FROM ( SELECT subquery1_t1. *
9895
FROM t2 AS subquery1_t1
9896
JOIN t2 AS subquery1_t2
9897
ON subquery1_t2.pk = subquery1_t1.pk) AS table1
9898
STRAIGHT_JOIN t2 AS table2
9899
ON table1.col_int_key IN (SELECT 7 FROM t3)
9900
WHERE table1.col_varchar_nokey IN
9901
(SELECT subquery3_t1.col_varchar_key AS subquery3_field1
9902
FROM t1 AS subquery3_t1
9905
id select_type table type possible_keys key key_len ref rows Extra
9906
1 PRIMARY subquery3_t1 index col_varchar_key col_varchar_key 9 NULL 0 Using where; Using index
9907
1 PRIMARY <subquery3> ALL NULL NULL NULL NULL NULL Using join buffer (Block Nested Loop)
9908
1 PRIMARY <derived2> ref <auto_key0> <auto_key0> 9 <subquery3>.7,test.subquery3_t1.col_varchar_key 2 Using where
9909
1 PRIMARY table2 index NULL PRIMARY 4 NULL 1 Using index; Using join buffer (Block Nested Loop)
9910
3 MATERIALIZED t3 ALL NULL NULL NULL NULL 0 NULL
9911
2 DERIVED subquery1_t1 ALL PRIMARY NULL NULL NULL 1 NULL
9912
2 DERIVED subquery1_t2 eq_ref PRIMARY PRIMARY 4 test.subquery1_t1.pk 1 Using index
9913
SELECT table1.pk AS field1
9914
FROM ( SELECT subquery1_t1. *
9915
FROM t2 AS subquery1_t1
9916
JOIN t2 AS subquery1_t2
9917
ON subquery1_t2.pk = subquery1_t1.pk) AS table1
9918
STRAIGHT_JOIN t2 AS table2
9919
ON table1.col_int_key IN (SELECT 7 FROM t3)
9920
WHERE table1.col_varchar_nokey IN
9921
(SELECT subquery3_t1.col_varchar_key AS subquery3_field1
9922
FROM t1 AS subquery3_t1
9926
DROP TABLE t1, t2, t3;
9927
# End of test for bug#13971022.
9929
# Bug#13623473 "MISSING ROWS ON SELECT AND JOIN WITH
9930
# TIME/DATETIME COMPARE" - Subquery part of test.
9932
SET TIMESTAMP=UNIX_TIMESTAMP('2012-01-31 10:14:35');
9936
col_int_key INT NOT NULL,
9938
KEY col_int_key (col_int_key)
9940
INSERT INTO t1 VALUES (10,1,7), (11,7,0), (12,4,9), (13,7,3),
9941
(14,0,4), (15,2,2), (16,9,5), (17,4,3), (18,0,1), (19,9,3), (20,1,6),
9942
(21,3,7), (22,8,5), (23,8,1), (24,18,204), (25,84,224), (26,6,9),
9943
(27,3,5), (28,6,0), (29,6,3);
9945
col_int_nokey INT NOT NULL,
9946
col_datetime_key DATETIME NOT NULL,
9947
col_varchar_key VARCHAR(1) NOT NULL,
9948
KEY col_datetime_key (col_datetime_key),
9949
KEY col_varchar_key (col_varchar_key)
9951
INSERT INTO t2 VALUES (1,'2001-11-04 19:07:55','k');
9954
KEY col_time_key (col_time_key)
9956
INSERT INTO t3 VALUES ('21:22:34'), ('10:50:38'), ('00:21:38'),
9957
('04:08:02'), ('16:25:11'), ('10:14:58'), ('19:47:59'), ('11:14:24'),
9958
('00:00:00'), ('00:00:00'), ('15:57:25'), ('07:05:51'), ('19:22:21'),
9959
('03:53:16'), ('09:16:38'), ('15:37:26'), ('00:00:00'), ('05:03:03'),
9960
('02:59:24'), ('00:01:58');
9961
EXPLAIN EXTENDED SELECT outr.col_int_nokey
9963
STRAIGHT_JOIN t3 AS outr2
9964
ON outr2.col_time_key > outr.col_datetime_key
9965
WHERE outr.col_int_nokey IN (
9968
WHERE innr.pk >= innr.col_int_nokey
9970
outr.col_int_nokey <= 6
9972
outr.col_varchar_key IS NULL
9974
id select_type table type possible_keys key key_len ref rows filtered Extra
9975
1 SIMPLE outr ALL col_datetime_key NULL NULL NULL 1 100.00 Using where; Start temporary
9976
1 SIMPLE innr ref col_int_key col_int_key 4 test.outr.col_int_nokey 1 100.00 Using where; End temporary
9977
1 SIMPLE outr2 ALL col_time_key NULL NULL NULL 20 100.00 Range checked for each record (index map: 0x1)
9979
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`))
9980
SELECT outr.col_int_nokey
9982
STRAIGHT_JOIN t3 AS outr2
9983
ON outr2.col_time_key > outr.col_datetime_key
9984
WHERE outr.col_int_nokey IN (
9987
WHERE innr.pk >= innr.col_int_nokey
9989
outr.col_int_nokey <= 6
9991
outr.col_varchar_key IS NULL
10014
DROP TABLE t1,t2,t3;
10015
SET TIMESTAMP = DEFAULT;
10016
# End of test for bug#13623473.
10018
# Bug#13980954: Missing data on left join + null value + where..in
10024
INSERT INTO t1 VALUES (8, 'x'), (NULL, 'x');
10029
INSERT INTO t2 VALUES
10030
(0, 'x'), (7, 'i'), (7, 'e'), (1, 'p'), (7, 's'), (1, 'j');
10031
explain format=json SELECT t2.vc, t2.ik AS t2_ik, t1.ik AS t1_ik
10032
FROM t2 LEFT JOIN t1 ON t2.vc=t1.vc
10033
WHERE t2.vc IN (SELECT vc FROM t2 AS t3);
10041
"table_name": "t2",
10042
"access_type": "ALL",
10045
"attached_condition": "(`test`.`t2`.`vc` is not null)"
10050
"table_name": "<subquery2>",
10051
"access_type": "eq_ref",
10052
"key": "<auto_key>",
10058
"materialized_from_subquery": {
10059
"using_temporary_table": true,
10062
"table_name": "t3",
10063
"access_type": "ALL",
10073
"table_name": "t1",
10074
"access_type": "ALL",
10077
"using_join_buffer": "Block Nested Loop",
10078
"attached_condition": "<if>(is_not_null_compl(t1), (`test`.`t1`.`vc` = `test`.`t2`.`vc`), true)"
10085
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`)
10086
SELECT t2.vc, t2.ik AS t2_ik, t1.ik AS t1_ik
10087
FROM t2 LEFT JOIN t1 ON t2.vc=t1.vc
10088
WHERE t2.vc IN (SELECT vc FROM t2 AS t3);
10098
# End of test for bug#13980954.
10100
# Bug#14048292: Segfault in Item_field::result_type on 2nd execution
10101
# of prep stmt with join of view
10106
INSERT INTO t1 VALUES (0), (1);
10107
CREATE VIEW view_t1 AS SELECT * FROM t1;
10108
explain SELECT alias1.col_int
10110
LEFT JOIN view_t1 AS alias2
10111
ON alias1.col_int IN
10112
(SELECT sq1_alias1.col_int
10113
FROM t1 AS sq1_alias1
10115
id select_type table type possible_keys key key_len ref rows Extra
10116
1 SIMPLE alias1 ALL NULL NULL NULL NULL 2 Start temporary
10117
1 SIMPLE sq1_alias1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
10118
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
10119
PREPARE stmt FROM "SELECT alias1.col_int
10121
LEFT JOIN view_t1 AS alias2
10122
ON alias1.col_int IN
10123
(SELECT sq1_alias1.col_int
10124
FROM t1 AS sq1_alias1
10138
DEALLOCATE PREPARE stmt;
10141
# End of test for bug#14048292.
10143
# Bug#14064201: Missing data on join of derived table + WHERE .. IN
10144
# with two operands
10147
col_varchar_nokey VARCHAR(1)
10149
INSERT INTO t1 VALUES
10150
('v'), ('s'), ('l'), ('y'), ('c'), ('i'), ('h'), ('q'), ('a'), ('v'),
10151
('u'), ('s'), ('y'), ('z'), ('h'), ('p'), ('e'), ('i'), ('y'), ('w');
10153
col_varchar_key VARCHAR(1),
10154
col_varchar_nokey VARCHAR(1),
10155
KEY col_varchar_key(col_varchar_key)
10157
INSERT INTO t2 VALUES
10158
('j','j'), ('v','v'), ('c','c'), ('m','m'), ('d','d'), ('d','d'), ('y','y');
10159
explain format=json SELECT *
10160
FROM (SELECT * FROM t2) AS derived1
10162
USING (col_varchar_nokey)
10163
WHERE (col_varchar_nokey, col_varchar_nokey) IN
10164
(SELECT col_varchar_nokey, col_varchar_key
10165
FROM t2 AS derived2
10174
"table_name": "<subquery3>",
10175
"access_type": "ALL",
10176
"attached_condition": "((`<subquery3>`.`col_varchar_key` = `<subquery3>`.`col_varchar_nokey`) and (`<subquery3>`.`col_varchar_nokey` is not null))",
10177
"materialized_from_subquery": {
10178
"using_temporary_table": true,
10181
"table_name": "derived2",
10182
"access_type": "ALL",
10188
"attached_condition": "(`test`.`derived2`.`col_varchar_key` = `test`.`derived2`.`col_varchar_nokey`)"
10196
"table_name": "derived1",
10197
"access_type": "ref",
10201
"key": "<auto_key0>",
10202
"used_key_parts": [
10203
"col_varchar_nokey"
10207
"<subquery3>.col_varchar_nokey"
10211
"materialized_from_subquery": {
10212
"using_temporary_table": true,
10213
"dependent": false,
10218
"table_name": "t2",
10219
"access_type": "ALL",
10229
"table_name": "t1",
10230
"access_type": "ALL",
10233
"using_join_buffer": "Block Nested Loop",
10234
"attached_condition": "<if>(is_not_null_compl(t1), (`test`.`t1`.`col_varchar_nokey` = `derived1`.`col_varchar_nokey`), true)"
10241
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`))
10243
FROM (SELECT * FROM t2) AS derived1
10245
USING (col_varchar_nokey)
10246
WHERE (col_varchar_nokey, col_varchar_nokey) IN
10247
(SELECT col_varchar_nokey, col_varchar_key
10248
FROM t2 AS derived2
10250
col_varchar_nokey col_varchar_key
10263
col_int_nokey int NOT NULL,
10264
col_int_key int NOT NULL,
10265
KEY col_int_key (col_int_key)
10267
INSERT INTO t1 VALUES
10268
(1,7), (7,0), (4,9), (7,3), (0,4), (2,2), (9,5), (4,3), (0,1), (9,3),
10269
(1,6), (3,7), (8,5), (8,1), (18,204), (84,224), (6,9), (3,5), (6,0), (6,3);
10271
col_int_nokey int NOT NULL,
10272
col_int_key int NOT NULL,
10273
KEY col_int_key (col_int_key)
10275
INSERT INTO t2 VALUES
10276
(4,0), (6,8), (3,1), (5,8), (3,9), (246,24), (2,6), (9,1), (3,6), (8,2),
10277
(1,4), (8,8), (8,4), (5,4), (7,7), (5,4), (1,1), (6,9), (2,4), (9,8);
10278
explain format=json SELECT grandparent1.*
10279
FROM t1 AS grandparent1
10280
LEFT JOIN t1 USING (col_int_nokey)
10281
WHERE (col_int_nokey, col_int_nokey) IN
10282
(SELECT col_int_nokey, col_int_key
10292
"table_name": "grandparent1",
10293
"access_type": "ALL",
10296
"attached_condition": "((`test`.`grandparent1`.`col_int_nokey` is not null) and (`test`.`grandparent1`.`col_int_nokey` is not null))"
10301
"table_name": "<subquery2>",
10302
"access_type": "eq_ref",
10303
"key": "<auto_key>",
10306
"test.grandparent1.col_int_nokey",
10307
"test.grandparent1.col_int_nokey"
10310
"materialized_from_subquery": {
10311
"using_temporary_table": true,
10314
"table_name": "t2",
10315
"access_type": "ALL",
10321
"attached_condition": "(`test`.`t2`.`col_int_key` = `test`.`t2`.`col_int_nokey`)"
10329
"table_name": "t1",
10330
"access_type": "ALL",
10333
"using_join_buffer": "Block Nested Loop",
10334
"attached_condition": "<if>(is_not_null_compl(t1), (`test`.`t1`.`col_int_nokey` = `test`.`grandparent1`.`col_int_nokey`), true)"
10341
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`))
10342
SELECT grandparent1.*
10343
FROM t1 AS grandparent1
10344
LEFT JOIN t1 USING (col_int_nokey)
10345
WHERE (col_int_nokey, col_int_nokey) IN
10346
(SELECT col_int_nokey, col_int_key
10349
col_int_nokey col_int_key
10366
col_datetime_key datetime,
10367
col_varchar_key varchar(1),
10368
col_varchar_nokey varchar(1),
10370
KEY col_int_key (col_int_key),
10371
KEY col_datetime_key (col_datetime_key),
10372
KEY col_varchar_key (col_varchar_key,col_int_key)
10374
INSERT INTO t1 VALUES
10375
(10,7,'2004-06-06 04:22:12','v','v'), (11,0,'2005-11-13 01:12:31','s','s'),
10376
(12,9,'2002-05-04 01:50:00','l','l'), (13,3,'2004-10-27 10:28:45','y','y'),
10377
(14,4,'2006-07-22 05:24:23','c','c'), (15,2,'2002-05-16 21:34:03','i','i'),
10378
(16,5,'2008-04-17 10:45:30','h','h'), (17,3,'2009-04-21 02:58:02','q','q'),
10379
(18,1,'2008-01-11 11:01:51','a','a'), (19,3,'1900-01-01 00:00:00','v','v'),
10380
(20,6,'2007-05-17 18:24:57','u','u'), (21,7,'2007-08-07 00:00:00','s','s'),
10381
(22,5,'2001-08-28 00:00:00','y','y'), (23,1,'2004-04-16 00:27:28','z','z'),
10382
(24,204,'2005-05-03 07:06:22','h','h'), (25,224,'2009-03-11 17:09:50','p','p'),
10383
(26,9,'2007-12-08 01:54:28','e','e'), (27,5,'2009-07-28 18:19:54','i','i'),
10384
(28,0,'2008-06-08 00:00:00','y','y'), (29,3,'2005-02-09 09:20:26','w','w');
10388
col_datetime_key datetime,
10389
col_varchar_key varchar(1),
10390
col_varchar_nokey varchar(1),
10392
KEY col_int_key (col_int_key),
10393
KEY col_datetime_key (col_datetime_key),
10394
KEY col_varchar_key (col_varchar_key,col_int_key)
10396
INSERT INTO t2 VALUES
10397
(1,0,'2002-02-13 17:30:06','j','j'), (2,8,'2008-09-27 00:34:58','v','v'),
10398
(3,1,'2007-05-28 00:00:00','c','c'), (4,8,'2009-07-25 09:21:20','m','m'),
10399
(5,9,'2002-01-16 00:00:00','d','d'), (6,24,'2006-10-12 04:32:53','d','d'),
10400
(7,6,'2001-02-15 03:08:38','y','y'), (8,1,'2004-10-02 20:31:15','t','t'),
10401
(9,6,'2002-08-20 22:48:00','d','d'), (10,2,'1900-01-01 00:00:00','s','s'),
10402
(11,4,'2005-08-15 00:00:00','r','r'), (12,8,'1900-01-01 00:00:00','m','m'),
10403
(13,4,'2008-05-16 08:09:06','b','b'), (14,4,'2001-01-20 12:47:23','x','x'),
10404
(15,7,'2008-07-02 00:00:00','g','g'), (16,4,'1900-01-01 00:00:00','p','p'),
10405
(17,1,'2002-12-08 11:34:58','q','q'), (18,9,'1900-01-01 00:00:00','w','w'),
10406
(19,4,'1900-01-01 00:00:00','d','d'), (20,8,'2002-08-25 20:35:06','e','e');
10407
SELECT alias1.col_datetime_key
10409
RIGHT JOIN t2 AS alias2
10411
ON alias3.pk = alias2.pk
10412
ON alias3.col_varchar_nokey = alias2.col_varchar_key OR
10413
alias2.col_varchar_nokey
10414
WHERE (alias2.col_varchar_key, alias2.col_varchar_key) IN
10415
(SELECT sq2_alias2.col_varchar_key, sq2_alias1.col_varchar_nokey
10416
FROM t1 AS sq2_alias1, t1 AS sq2_alias2
10417
WHERE sq2_alias2.col_int_key < 2);
10419
1900-01-01 00:00:00
10420
1900-01-01 00:00:00
10421
1900-01-01 00:00:00
10422
1900-01-01 00:00:00
10423
1900-01-01 00:00:00
10424
1900-01-01 00:00:00
10425
1900-01-01 00:00:00
10426
1900-01-01 00:00:00
10427
1900-01-01 00:00:00
10428
1900-01-01 00:00:00
10429
2001-01-20 12:47:23
10430
2001-01-20 12:47:23
10431
2001-02-15 03:08:38
10432
2001-02-15 03:08:38
10433
2002-01-16 00:00:00
10434
2002-01-16 00:00:00
10435
2002-02-13 17:30:06
10436
2002-02-13 17:30:06
10437
2002-08-20 22:48:00
10438
2002-08-20 22:48:00
10439
2002-08-25 20:35:06
10440
2002-08-25 20:35:06
10441
2002-12-08 11:34:58
10442
2002-12-08 11:34:58
10443
2004-10-02 20:31:15
10444
2004-10-02 20:31:15
10445
2005-08-15 00:00:00
10446
2005-08-15 00:00:00
10447
2006-10-12 04:32:53
10448
2006-10-12 04:32:53
10449
2007-05-28 00:00:00
10450
2007-05-28 00:00:00
10451
2008-05-16 08:09:06
10452
2008-05-16 08:09:06
10453
2008-07-02 00:00:00
10454
2008-07-02 00:00:00
10455
2008-09-27 00:34:58
10456
2008-09-27 00:34:58
10457
2009-07-25 09:21:20
10458
2009-07-25 09:21:20
10459
ALTER TABLE t1 DISABLE KEYS;
10460
ALTER TABLE t2 DISABLE KEYS;
10461
explain format=json SELECT alias1.col_datetime_key
10463
RIGHT JOIN t2 AS alias2
10465
ON alias3.pk = alias2.pk
10466
ON alias3.col_varchar_nokey = alias2.col_varchar_key OR
10467
alias2.col_varchar_nokey
10468
WHERE (alias2.col_varchar_key, alias2.col_varchar_key) IN
10469
(SELECT sq2_alias2.col_varchar_key, sq2_alias1.col_varchar_nokey
10470
FROM t1 AS sq2_alias1, t1 AS sq2_alias2
10471
WHERE sq2_alias2.col_int_key < 2);
10479
"table_name": "<subquery2>",
10480
"access_type": "ALL",
10481
"attached_condition": "(`<subquery2>`.`col_varchar_nokey` = `<subquery2>`.`col_varchar_key`)",
10482
"materialized_from_subquery": {
10483
"using_temporary_table": true,
10488
"table_name": "sq2_alias1",
10489
"access_type": "ALL",
10496
"table_name": "sq2_alias2",
10497
"access_type": "ALL",
10500
"using_join_buffer": "Block Nested Loop",
10501
"attached_condition": "((`test`.`sq2_alias2`.`col_varchar_key` = `test`.`sq2_alias1`.`col_varchar_nokey`) and (`test`.`sq2_alias2`.`col_int_key` < 2))"
10511
"table_name": "alias2",
10512
"access_type": "ALL",
10518
"using_join_buffer": "Block Nested Loop",
10519
"attached_condition": "(`test`.`alias2`.`col_varchar_key` = `<subquery2>`.`col_varchar_key`)"
10524
"table_name": "alias3",
10525
"access_type": "eq_ref",
10530
"used_key_parts": [
10543
"table_name": "alias1",
10544
"access_type": "ALL",
10547
"using_join_buffer": "Block Nested Loop",
10548
"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)"
10555
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))
10556
SELECT alias1.col_datetime_key
10558
RIGHT JOIN t2 AS alias2
10560
ON alias3.pk = alias2.pk
10561
ON alias3.col_varchar_nokey = alias2.col_varchar_key OR
10562
alias2.col_varchar_nokey
10563
WHERE (alias2.col_varchar_key, alias2.col_varchar_key) IN
10564
(SELECT sq2_alias2.col_varchar_key, sq2_alias1.col_varchar_nokey
10565
FROM t1 AS sq2_alias1, t1 AS sq2_alias2
10566
WHERE sq2_alias2.col_int_key < 2);
10568
2002-02-13 17:30:06
10569
2002-02-13 17:30:06
10570
2008-09-27 00:34:58
10571
2008-09-27 00:34:58
10572
2007-05-28 00:00:00
10573
2007-05-28 00:00:00
10574
2009-07-25 09:21:20
10575
2009-07-25 09:21:20
10576
2002-01-16 00:00:00
10577
2002-01-16 00:00:00
10578
2006-10-12 04:32:53
10579
2006-10-12 04:32:53
10580
2001-02-15 03:08:38
10581
2001-02-15 03:08:38
10582
2004-10-02 20:31:15
10583
2004-10-02 20:31:15
10584
2002-08-20 22:48:00
10585
2002-08-20 22:48:00
10586
1900-01-01 00:00:00
10587
1900-01-01 00:00:00
10588
2005-08-15 00:00:00
10589
2005-08-15 00:00:00
10590
1900-01-01 00:00:00
10591
1900-01-01 00:00:00
10592
2008-05-16 08:09:06
10593
2008-05-16 08:09:06
10594
2001-01-20 12:47:23
10595
2001-01-20 12:47:23
10596
2008-07-02 00:00:00
10597
2008-07-02 00:00:00
10598
1900-01-01 00:00:00
10599
1900-01-01 00:00:00
10600
2002-12-08 11:34:58
10601
2002-12-08 11:34:58
10602
1900-01-01 00:00:00
10603
1900-01-01 00:00:00
10604
1900-01-01 00:00:00
10605
1900-01-01 00:00:00
10606
2002-08-25 20:35:06
10607
2002-08-25 20:35:06
10609
# End of test for bug#14064201.
10610
set @@optimizer_switch=@old_opt_switch;
10612
set optimizer_switch=default;
10613
set optimizer_switch=default;