3473 Roy Lyseng 2011-11-03
Bug#12407753: Time to compare a row is missing in cost calculation of semi-join
Stage 3: Fix the bug(s)
What has been done:
- Adjusted costs for handling temporary tables based on benchmarks.
- Added cost of evaluating a row for all semi-join strategies.
- Semi-join FirstMatch: Intermediate cost calculation assumed join
buffering was always possible, final cost calculation assumed that
join buffering could never be used. The truth: Join buffering can be
used if semi-join nest contains only one table.
- Semi-join LooseScan: Intermediate cost calculation assumed join
buffering was possible for outer tables (correct), final cost
calculation assumed that join buffering could never be used.
Join buffering for outer tables has been enabled.
- Semi-join MaterializeLookup: Join buffering was calculated into
the cost for materialization, but later turned off.
Join buffering for this strategy has been enabled.
- Semi-join MaterializeScan: Join buffering was calculated into
the cost for materialization, but later turned off.
Join buffering for this strategy has been enabled.
Made sure that join buffering for semi-join materialization
is not linked with an immediately following join buffer.
- Semi-join DuplicateWeedout: Prefix cost was erroneously picked from
positions[first_tab] instead of positions[first_tab-1].
See also bug#11757320.
- Prefix cost was sometimes picked erroneously, when the previous
table combination was also a semi-join.
mysql-test/r/derived.result
Recorded new result file.
mysql-test/r/group_by.result
Semi-join strategy changed from FirstMatch to Materialize.
Occurs because materialization strategy has fewer compares than FM.
mysql-test/r/innodb_explain_non_select_all.result
Handler calls are reduced with new plan.
mysql-test/r/join_cache_bka.result
mysql-test/r/join_cache_bka_nixbnl.result
mysql-test/r/join_cache_bkaunique.result
mysql-test/r/join_cache_bnl.result
mysql-test/r/join_cache_nojb.result
Strategy change from DupsWeedout to MaterializeScan seems OK.
mysql-test/r/myisam_explain_non_select_all.result
Two tables swapped in FirstMatch strategy. Number of handler calls
reduced. Change seems reasonable.
mysql-test/r/subquery_all.result
mysql-test/r/subquery_all_bka.result
Handler calls (Handler_read_rnd_next) have increased, but there is
also a decrease for Handler_read_key and Handler_read_next.
mysql-test/r/subquery_mat_all.result
Strategy changes from FirstMatch to Materialize seem OK.
Strategy change from Materialize to FirstMatch seems OK.
mysql-test/r/subquery_sj_all.result
mysql-test/r/subquery_sj_all_bka.result
mysql-test/r/subquery_sj_all_bkaunique.result
Strategy changes from Materialize to FirstMatch seem OK.
Caused by adding cost of materialization table creation.
Strategy changes from DupsWeedout to Materialize(Scan) seems OK.
Caused because materialization table is less costly than weedout table.
Strategy changes from DupsWeedout to FirstMatch seem OK.
Caused because added cost for DupsWeedout.
Strategy change from FirstMatch to Materialize is correct.
Strategy changes from LooseScan/BNL to Materialize seem OK.
mysql-test/r/subquery_sj_all_bka_nixbnl.result
Strategy changes from Materialize to FirstMatch seem OK.
Strategy changes from DupsWeedout to MaterializeScan seem OK.
Strategy changes from DupsWeedout to FirstMatch seem OK.
Strategy changes from FirstMatch to Materialize seem OK.
mysql-test/r/subquery_sj_dupsweed.result
mysql-test/r/subquery_sj_dupsweed_bkaunique.result
Table plan order change for DupsWeed seems OK, BNL for last table
decreases number of rows read.
mysql-test/r/subquery_sj_dupsweed_bka.result
mysql-test/r/subquery_sj_dupsweed_bka_nixbnl.result
Changes are OK.
mysql-test/r/subquery_sj_firstmatch.result
mysql-test/r/subquery_sj_firstmatch_bka.result
mysql-test/r/subquery_sj_firstmatch_bka_nixbnl.result
mysql-test/r/subquery_sj_firstmatch_bkaunique.result
Table order changes seems OK, number of rows scanned is reduced.
Strategy changes from DupsWeedout to FirstMatch seem OK.
mysql-test/r/subquery_sj_innodb_all.result
mysql-test/r/subquery_sj_innodb_all_bkaunique.result
Strategy changes from DupsWeedout to MaterializeScan seem OK.
mysql-test/r/subquery_sj_loosescan.result
mysql-test/r/subquery_sj_loosescan_bka.result
mysql-test/r/subquery_sj_loosescan_bka_nixbnl.result
mysql-test/r/subquery_sj_loosescan_bkaunique.result
Strategy changes from LooseScan to DupsWeedout seem OK.
mysql-test/r/subquery_sj_mat.result
mysql-test/r/subquery_sj_mat_bka.result
mysql-test/r/subquery_sj_mat_bka_nixbnl.result
mysql-test/r/subquery_sj_mat_bkaunique.result
Strategy changes from DupsWeedout to Materialize seem OK.
mysql-test/suite/opt_trace/r/bugs_no_prot_all.result
mysql-test/suite/opt_trace/r/bugs_ps_prot_all.result
mysql-test/suite/opt_trace/r/general_no_prot_all.result
mysql-test/suite/opt_trace/r/general_ps_prot_all.result
Some changes, mostly because of changed costs.
mysql-test/t/derived.test
Plan changed, needed to force use of DuplicateWeedout
sql/sql_const.h
Adjusted cost factors for creation of temporary tables based on
actual benchmarks.
Adjusted costs for temporary table row operations based on benchmark.
Actually, lookup and write operations are equally costly.
sql/sql_select.cc
optimize_semijoin_nests(): Added cost for creation of temporary table.
Adjusted size of materialized table because of duplicate elimination.
get_best_combination(): Set JOIN_TAB reference in best_positions
to NULL when creating final JOIN_TAB array. Forgotten refactoring.
setup_join_buffering(): Sets up join buffering based on corrected
decisions for all semi-join strategies. Prevent linking with previous
join cache when previous operation is Materialization.
semijoin_fm_ls_access_paths() will now calculate new access paths
and cost for FirstMatch and LooseScan semi-join strategies,
based on corrected join buffering choices. ROW_EVALUATE_COST
is added to the cost calculation.
semijoin_mat_scan_access_paths(): ROW_EVALUATE_COST is added to
the cost calculation.
semijoin_dupsweedout_access_paths(): ROW_EVALUATE_COST is added to
the cost calculation.
Prefix cost is adjusted, see bug#11757320.
advance_sj_state(): Best semi-join cost is written back to
prefix_cost and prefix_record_count. These are actually the same
values as the output arguments current_cost and current_rowcount,
only with a different representation.
They must be adjusted because they are needed when looking for
prefix cost inside the semijoin_*_access_paths() functions.
modified:
mysql-test/r/derived.result
mysql-test/r/group_by.result
mysql-test/r/innodb_explain_non_select_all.result
mysql-test/r/join_cache_bka.result
mysql-test/r/join_cache_bka_nixbnl.result
mysql-test/r/join_cache_bkaunique.result
mysql-test/r/join_cache_bnl.result
mysql-test/r/join_cache_nojb.result
mysql-test/r/myisam_explain_non_select_all.result
mysql-test/r/subquery_all.result
mysql-test/r/subquery_all_bka.result
mysql-test/r/subquery_mat_all.result
mysql-test/r/subquery_sj_all.result
mysql-test/r/subquery_sj_all_bka.result
mysql-test/r/subquery_sj_all_bka_nixbnl.result
mysql-test/r/subquery_sj_all_bkaunique.result
mysql-test/r/subquery_sj_dupsweed.result
mysql-test/r/subquery_sj_dupsweed_bka.result
mysql-test/r/subquery_sj_dupsweed_bka_nixbnl.result
mysql-test/r/subquery_sj_dupsweed_bkaunique.result
mysql-test/r/subquery_sj_firstmatch.result
mysql-test/r/subquery_sj_firstmatch_bka.result
mysql-test/r/subquery_sj_firstmatch_bka_nixbnl.result
mysql-test/r/subquery_sj_firstmatch_bkaunique.result
mysql-test/r/subquery_sj_loosescan.result
mysql-test/r/subquery_sj_loosescan_bka.result
mysql-test/r/subquery_sj_loosescan_bka_nixbnl.result
mysql-test/r/subquery_sj_loosescan_bkaunique.result
mysql-test/r/subquery_sj_mat.result
mysql-test/r/subquery_sj_mat_bka.result
mysql-test/r/subquery_sj_mat_bka_nixbnl.result
mysql-test/r/subquery_sj_mat_bkaunique.result
mysql-test/suite/opt_trace/r/bugs_no_prot_all.result
mysql-test/suite/opt_trace/r/bugs_ps_prot_all.result
mysql-test/suite/opt_trace/r/general_no_prot_all.result
mysql-test/suite/opt_trace/r/general_ps_prot_all.result
mysql-test/t/derived.test
sql/sql_const.h
sql/sql_select.cc
3472 Evgeny Potemkin 2011-11-02
Bug#13261277: Unchecked key length caused missing records.
When a key for derived table is created it wasn't checked that key length is
below tmp table engine's maximum supported key length. Too long key caused
wrong key generated when switching from heap to myisam. This led to
missing rows and errors when storing rows in tmp table.
Now TABLE::add_tmp_key checks if the key length is below allowed limit and
ignores the key otherwise.
@ mysql-test/r/derived.result
Added a test case for the bug#13261277.
@ mysql-test/t/derived.test
Added a test case for the bug#13261277.
@ sql/table.cc
Bug#13261277: Unchecked key length caused missing records.
Now TABLE::add_tmp_key checks if the key length is below allowed limit and
ignores key otherwise.
modified:
mysql-test/r/derived.result
mysql-test/t/derived.test
sql/table.cc
=== modified file 'mysql-test/r/derived.result'
--- a/mysql-test/r/derived.result 2011-11-02 12:52:33 +0000
+++ b/mysql-test/r/derived.result 2011-11-03 14:17:25 +0000
@@ -1617,6 +1617,8 @@ DROP TABLE t1, t2;
#
# Bug#13106350: MRR initialization on a derived table caused crash.
#
+SET @save_switch= @@optimizer_switch;
+SET @@optimizer_switch="materialization=off";
CREATE TABLE t1 (pk INTEGER PRIMARY KEY, vc VARCHAR(20));
INSERT INTO t1 VALUES(7, 'seven'), (13, 'thirteen');
CREATE TABLE t2 (pk INTEGER PRIMARY KEY, vc1 VARCHAR(20), vc2 VARCHAR(20));
@@ -1640,6 +1642,7 @@ SELECT t2.vc1
FROM t2 JOIN t3 ON t2.vc2=t3.vc);
vc
seven
+SET @@optimizer_switch= @save_switch;
DROP TABLE t1, t2, t3;
#
#
=== modified file 'mysql-test/r/group_by.result'
--- a/mysql-test/r/group_by.result 2011-10-31 08:27:57 +0000
+++ b/mysql-test/r/group_by.result 2011-11-03 14:17:25 +0000
@@ -1549,7 +1549,7 @@ EXPLAIN SELECT 1 FROM t1 WHERE a IN
(SELECT a FROM t1 USE INDEX (i2) IGNORE INDEX (i2));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 index PRIMARY,i2 PRIMARY 4 NULL 144 Using index
-1 PRIMARY t1 ALL NULL NULL NULL NULL 144 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 144 Materialize
CREATE TABLE t2 (a INT, b INT, KEY(a));
INSERT INTO t2 VALUES (1, 1), (2, 2), (3,3), (4,4);
EXPLAIN SELECT a, SUM(b) FROM t2 GROUP BY a LIMIT 2;
@@ -1562,7 +1562,7 @@ EXPLAIN SELECT 1 FROM t2 WHERE a IN
(SELECT a FROM t1 USE INDEX (i2) IGNORE INDEX (i2));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 index a a 5 NULL 4 Using index
-1 PRIMARY t1 ALL NULL NULL NULL NULL 144 Using where; FirstMatch(t2); Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 144 Materialize
SHOW VARIABLES LIKE 'old';
Variable_name Value
old OFF
=== modified file 'mysql-test/r/innodb_explain_non_select_all.result'
--- a/mysql-test/r/innodb_explain_non_select_all.result 2011-10-31 08:27:57 +0000
+++ b/mysql-test/r/innodb_explain_non_select_all.result 2011-11-03 14:17:25 +0000
@@ -236,8 +236,8 @@ FLUSH STATUS;
FLUSH TABLES;
EXPLAIN EXTENDED SELECT * FROM t1 WHERE 1 IN (SELECT 1 FROM t2 WHERE t2.b < 3);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
-1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` semi join (`test`.`t2`) where (`test`.`t2`.`b` < 3)
# Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
@@ -246,7 +246,7 @@ Variable_name Value
Variable_name Value
Handler_read_first 2
Handler_read_key 4
-Handler_read_rnd_next 8
+Handler_read_rnd_next 5
# Status of testing query execution:
Variable_name Value
Handler_read_first 4
@@ -314,15 +314,15 @@ INSERT INTO t2 VALUES (1), (2), (3);
EXPLAIN UPDATE t1, t2 SET a = 10 WHERE a IN (SELECT b FROM t2 WHERE t2.b < 3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 3 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
1 PRIMARY t2 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
-1 PRIMARY t2 ALL NULL NULL NULL NULL 3 Using where; FirstMatch(t2); Using join buffer (Block Nested Loop)
FLUSH STATUS;
FLUSH TABLES;
EXPLAIN EXTENDED UPDATE t1, t2 SET a = 10 WHERE a IN (SELECT b FROM t2 WHERE t2.b < 3);
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
-1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; FirstMatch(t2); Using join buffer (Block Nested Loop)
# Status of EXPLAIN EXTENDED query
Variable_name Value
FLUSH STATUS;
@@ -330,8 +330,8 @@ FLUSH TABLES;
EXPLAIN EXTENDED SELECT * FROM t1, t2 WHERE a IN (SELECT b FROM t2 WHERE t2.b < 3);
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
-1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; FirstMatch(t2); Using join buffer (Block Nested Loop)
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` semi join (`test`.`t2`) join `test`.`t2` where ((`test`.`t2`.`b` = `test`.`t1`.`a`) and (`test`.`t1`.`a` < 3))
# Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
@@ -343,9 +343,9 @@ Handler_read_key 6
Handler_read_rnd_next 12
# Status of testing query execution:
Variable_name Value
-Handler_read_first 9
-Handler_read_key 18
-Handler_read_rnd_next 31
+Handler_read_first 5
+Handler_read_key 10
+Handler_read_rnd_next 15
Handler_update 2
DROP TABLE t1, t2;
=== modified file 'mysql-test/r/join_cache_bka.result'
--- a/mysql-test/r/join_cache_bka.result 2011-10-31 08:27:57 +0000
+++ b/mysql-test/r/join_cache_bka.result 2011-11-03 14:17:25 +0000
@@ -2411,9 +2411,9 @@ id select_type table type possible_keys
explain SELECT t3.c1 FROM t3
WHERE t3.c1 IN (SELECT t1.c2_key FROM t2 JOIN t1 ON t2.pk < t1.c1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index PRIMARY PRIMARY 4 NULL 1 Using index; Start temporary
-1 PRIMARY t1 ALL col_int_key NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ref k1 k1 5 test.t1.c2_key 1 Using index; End temporary
+1 PRIMARY t2 index PRIMARY PRIMARY 4 NULL 1 Using index; Start materialize; Scan
+1 PRIMARY t1 ALL col_int_key NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ref k1 k1 5 test.t1.c2_key 1 Using index
SELECT t3.c1 FROM t3
WHERE t3.c1 = SOME (SELECT t1.c2_key FROM t2 JOIN t1 ON t2.pk < t1.c1)
XOR TRUE;
=== modified file 'mysql-test/r/join_cache_bka_nixbnl.result'
--- a/mysql-test/r/join_cache_bka_nixbnl.result 2011-10-31 08:27:57 +0000
+++ b/mysql-test/r/join_cache_bka_nixbnl.result 2011-11-03 14:17:25 +0000
@@ -2411,9 +2411,9 @@ id select_type table type possible_keys
explain SELECT t3.c1 FROM t3
WHERE t3.c1 IN (SELECT t1.c2_key FROM t2 JOIN t1 ON t2.pk < t1.c1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index PRIMARY PRIMARY 4 NULL 1 Using index; Start temporary
-1 PRIMARY t1 ALL col_int_key NULL NULL NULL 1 Using where
-1 PRIMARY t3 ref k1 k1 5 test.t1.c2_key 1 Using index; End temporary
+1 PRIMARY t2 index PRIMARY PRIMARY 4 NULL 1 Using index; Start materialize; Scan
+1 PRIMARY t1 ALL col_int_key NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ref k1 k1 5 test.t1.c2_key 1 Using index
SELECT t3.c1 FROM t3
WHERE t3.c1 = SOME (SELECT t1.c2_key FROM t2 JOIN t1 ON t2.pk < t1.c1)
XOR TRUE;
=== modified file 'mysql-test/r/join_cache_bkaunique.result'
--- a/mysql-test/r/join_cache_bkaunique.result 2011-10-31 08:27:57 +0000
+++ b/mysql-test/r/join_cache_bkaunique.result 2011-11-03 14:17:25 +0000
@@ -2412,9 +2412,9 @@ id select_type table type possible_keys
explain SELECT t3.c1 FROM t3
WHERE t3.c1 IN (SELECT t1.c2_key FROM t2 JOIN t1 ON t2.pk < t1.c1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index PRIMARY PRIMARY 4 NULL 1 Using index; Start temporary
-1 PRIMARY t1 ALL col_int_key NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ref k1 k1 5 test.t1.c2_key 1 Using index; End temporary
+1 PRIMARY t2 index PRIMARY PRIMARY 4 NULL 1 Using index; Start materialize; Scan
+1 PRIMARY t1 ALL col_int_key NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ref k1 k1 5 test.t1.c2_key 1 Using index
SELECT t3.c1 FROM t3
WHERE t3.c1 = SOME (SELECT t1.c2_key FROM t2 JOIN t1 ON t2.pk < t1.c1)
XOR TRUE;
=== modified file 'mysql-test/r/join_cache_bnl.result'
--- a/mysql-test/r/join_cache_bnl.result 2011-10-31 08:27:57 +0000
+++ b/mysql-test/r/join_cache_bnl.result 2011-11-03 14:17:25 +0000
@@ -2412,9 +2412,9 @@ id select_type table type possible_keys
explain SELECT t3.c1 FROM t3
WHERE t3.c1 IN (SELECT t1.c2_key FROM t2 JOIN t1 ON t2.pk < t1.c1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index PRIMARY PRIMARY 4 NULL 1 Using index; Start temporary
-1 PRIMARY t1 ALL col_int_key NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ref k1 k1 5 test.t1.c2_key 1 Using index; End temporary
+1 PRIMARY t2 index PRIMARY PRIMARY 4 NULL 1 Using index; Start materialize; Scan
+1 PRIMARY t1 ALL col_int_key NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ref k1 k1 5 test.t1.c2_key 1 Using index
SELECT t3.c1 FROM t3
WHERE t3.c1 = SOME (SELECT t1.c2_key FROM t2 JOIN t1 ON t2.pk < t1.c1)
XOR TRUE;
=== modified file 'mysql-test/r/join_cache_nojb.result'
--- a/mysql-test/r/join_cache_nojb.result 2011-10-31 08:27:57 +0000
+++ b/mysql-test/r/join_cache_nojb.result 2011-11-03 14:17:25 +0000
@@ -2412,9 +2412,9 @@ id select_type table type possible_keys
explain SELECT t3.c1 FROM t3
WHERE t3.c1 IN (SELECT t1.c2_key FROM t2 JOIN t1 ON t2.pk < t1.c1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index PRIMARY PRIMARY 4 NULL 1 Using index; Start temporary
-1 PRIMARY t1 ALL col_int_key NULL NULL NULL 1 Using where
-1 PRIMARY t3 ref k1 k1 5 test.t1.c2_key 1 Using index; End temporary
+1 PRIMARY t2 index PRIMARY PRIMARY 4 NULL 1 Using index; Start materialize; Scan
+1 PRIMARY t1 ALL col_int_key NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ref k1 k1 5 test.t1.c2_key 1 Using index
SELECT t3.c1 FROM t3
WHERE t3.c1 = SOME (SELECT t1.c2_key FROM t2 JOIN t1 ON t2.pk < t1.c1)
XOR TRUE;
=== modified file 'mysql-test/r/myisam_explain_non_select_all.result'
--- a/mysql-test/r/myisam_explain_non_select_all.result 2011-10-31 08:27:57 +0000
+++ b/mysql-test/r/myisam_explain_non_select_all.result 2011-11-03 14:17:25 +0000
@@ -216,15 +216,15 @@ FLUSH STATUS;
FLUSH TABLES;
EXPLAIN EXTENDED SELECT * FROM t1 WHERE 1 IN (SELECT 1 FROM t2 WHERE t2.b < 3);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
-1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` semi join (`test`.`t2`) where (`test`.`t2`.`b` < 3)
# Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
Variable_name Value
# Status of "equivalent" SELECT query execution:
Variable_name Value
-Handler_read_rnd_next 8
+Handler_read_rnd_next 5
# Status of testing query execution:
Variable_name Value
Handler_read_rnd_next 7
@@ -286,15 +286,15 @@ INSERT INTO t2 VALUES (1), (2), (3);
EXPLAIN UPDATE t1, t2 SET a = 10 WHERE a IN (SELECT b FROM t2 WHERE t2.b < 3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 3 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
1 PRIMARY t2 ALL NULL NULL NULL NULL 3 Using join buffer (Block Nested Loop)
-1 PRIMARY t2 ALL NULL NULL NULL NULL 3 Using where; FirstMatch(t2); Using join buffer (Block Nested Loop)
FLUSH STATUS;
FLUSH TABLES;
EXPLAIN EXTENDED UPDATE t1, t2 SET a = 10 WHERE a IN (SELECT b FROM t2 WHERE t2.b < 3);
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
-1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; FirstMatch(t2); Using join buffer (Block Nested Loop)
# Status of EXPLAIN EXTENDED query
Variable_name Value
FLUSH STATUS;
@@ -302,8 +302,8 @@ FLUSH TABLES;
EXPLAIN EXTENDED SELECT * FROM t1, t2 WHERE a IN (SELECT b FROM t2 WHERE t2.b < 3);
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
-1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; FirstMatch(t2); Using join buffer (Block Nested Loop)
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` semi join (`test`.`t2`) join `test`.`t2` where ((`test`.`t2`.`b` = `test`.`t1`.`a`) and (`test`.`t1`.`a` < 3))
# Status of EXPLAIN EXTENDED "equivalent" SELECT query execution
@@ -313,7 +313,7 @@ Variable_name Value
Handler_read_rnd_next 12
# Status of testing query execution:
Variable_name Value
-Handler_read_rnd_next 31
+Handler_read_rnd_next 15
Handler_update 2
DROP TABLE t1, t2;
=== modified file 'mysql-test/r/subquery_all.result'
--- a/mysql-test/r/subquery_all.result 2011-10-31 08:27:57 +0000
+++ b/mysql-test/r/subquery_all.result 2011-11-03 14:17:25 +0000
@@ -4297,7 +4297,7 @@ oref a
1 1
show status like '%Handler_read_rnd_next';
Variable_name Value
-Handler_read_rnd_next 5
+Handler_read_rnd_next 11
delete from t2;
insert into t2 values (NULL, 0),(NULL, 0), (NULL, 0), (NULL, 0);
flush status;
=== modified file 'mysql-test/r/subquery_all_bka.result'
--- a/mysql-test/r/subquery_all_bka.result 2011-10-31 08:27:57 +0000
+++ b/mysql-test/r/subquery_all_bka.result 2011-11-03 14:17:25 +0000
@@ -4298,7 +4298,7 @@ oref a
1 1
show status like '%Handler_read_rnd_next';
Variable_name Value
-Handler_read_rnd_next 5
+Handler_read_rnd_next 11
delete from t2;
insert into t2 values (NULL, 0),(NULL, 0), (NULL, 0), (NULL, 0);
flush status;
=== modified file 'mysql-test/r/subquery_mat_all.result'
--- a/mysql-test/r/subquery_mat_all.result 2011-10-19 08:13:00 +0000
+++ b/mysql-test/r/subquery_mat_all.result 2011-11-03 14:17:25 +0000
@@ -245,10 +245,10 @@ where (c1, c2) in (select b1, b2 from t2
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
-1 PRIMARY t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t2.b1,test.t1.a2 2 100.00 Using where; Using index
-1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; FirstMatch(t2)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Start materialize
+1 PRIMARY t2i index it2i1,it2i2,it2i3 it2i3 18 NULL 5 80.00 Using where; Using index; End materialize; Using join buffer (Block Nested Loop)
Warnings:
-Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3`) where ((`test`.`t2`.`b2` = `test`.`t1`.`a2`) and (`test`.`t2i`.`b2` = `test`.`t1`.`a2`) and (`test`.`t3`.`c2` = `test`.`t1`.`a2`) and (`test`.`t2`.`b1` = `test`.`t1`.`a1`) and (`test`.`t2i`.`b1` = `test`.`t1`.`a1`) and (`test`.`t3`.`c1` = `test`.`t1`.`a1`) and (`test`.`t1`.`a1` > '0') and (`test`.`t1`.`a2` > '0'))
+Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3`) where ((`test`.`t2`.`b2` = `test`.`t1`.`a2`) and (`test`.`t3`.`c2` = `test`.`t1`.`a2`) and (`test`.`t2i`.`b2` = `test`.`t3`.`c2`) and (`test`.`t2`.`b1` = `test`.`t1`.`a1`) and (`test`.`t3`.`c1` = `test`.`t1`.`a1`) and (`test`.`t2i`.`b1` = `test`.`t3`.`c1`) and (`test`.`t1`.`a1` > '0') and (`test`.`t3`.`c2` > '0'))
select * from t1
where (a1, a2) in (select b1, b2 from t2 where b1 > '0') and
(a1, a2) in (select c1, c2 from t3
@@ -283,14 +283,14 @@ b2 in (select c2 from t3 where c2 LIKE '
(a1, a2) in (select c1, c2 from t3
where (c1, c2) in (select b1, b2 from t2i where b2 > '0'));
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
-1 PRIMARY t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t2.b1,test.t1.a2 2 100.00 Using where; Using index
-1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; FirstMatch(t2)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Start materialize
+1 PRIMARY t2i index it2i1,it2i2,it2i3 it2i3 18 NULL 5 80.00 Using where; Using index; End materialize; Using join buffer (Block Nested Loop)
4 SUBQUERY t3 ALL NULL NULL NULL NULL 4 100.00 Using where
3 SUBQUERY t3 ALL NULL NULL NULL NULL 4 100.00 Using where
Warnings:
-Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3`) where ((`test`.`t2`.`b2` = `test`.`t1`.`a2`) and (`test`.`t2i`.`b2` = `test`.`t1`.`a2`) and (`test`.`t3`.`c2` = `test`.`t1`.`a2`) and (`test`.`t2`.`b1` = `test`.`t1`.`a1`) and (`test`.`t2i`.`b1` = `test`.`t1`.`a1`) and (`test`.`t3`.`c1` = `test`.`t1`.`a1`) and (<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (/* select#3 */ select `test`.`t3`.`c2` from `test`.`t3` where (`test`.`t3`.`c2` like '%02') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `materialized subselect`.`c2`))))) or <in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (/* select#4 */ select `test`.`t3`.`c2` from `test`.`t3` where (`test`.`t3`.`c2` like '%03') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.
`t2`.`b2` = `materialized subselect`.`c2`)))))) and (`test`.`t1`.`a2` > '0'))
+Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3`) where ((`test`.`t2`.`b2` = `test`.`t1`.`a2`) and (`test`.`t3`.`c2` = `test`.`t1`.`a2`) and (`test`.`t2i`.`b2` = `test`.`t3`.`c2`) and (`test`.`t2`.`b1` = `test`.`t1`.`a1`) and (`test`.`t3`.`c1` = `test`.`t1`.`a1`) and (`test`.`t2i`.`b1` = `test`.`t3`.`c1`) and (<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (/* select#3 */ select `test`.`t3`.`c2` from `test`.`t3` where (`test`.`t3`.`c2` like '%02') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `materialized subselect`.`c2`))))) or <in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (/* select#4 */ select `test`.`t3`.`c2` from `test`.`t3` where (`test`.`t3`.`c2` like '%03') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.
`t2`.`b2` = `materialized subselect`.`c2`)))))) and (`test`.`t3`.`c2` > '0'))
select * from t1
where (a1, a2) in (select b1, b2 from t2
where b2 in (select c2 from t3 where c2 LIKE '%02') or
@@ -307,15 +307,15 @@ b2 in (select c2 from t3 t3b where c2 LI
(a1, a2) in (select c1, c2 from t3 t3c
where (c1, c2) in (select b1, b2 from t2i where b2 > '0'));
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
-1 PRIMARY t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t2.b1,test.t1.a2 2 100.00 Using where; Using index
-1 PRIMARY t3c ALL NULL NULL NULL NULL 4 100.00 Using where; FirstMatch(t2)
+1 PRIMARY t3c ALL NULL NULL NULL NULL 4 100.00 Using where; Start materialize
+1 PRIMARY t2i index it2i1,it2i2,it2i3 it2i3 18 NULL 5 80.00 Using where; Using index; End materialize; Using join buffer (Block Nested Loop)
4 SUBQUERY t3b ALL NULL NULL NULL NULL 4 100.00 Using where
3 DEPENDENT SUBQUERY t3a ALL NULL NULL NULL NULL 4 100.00 Using where
Warnings:
Note 1276 Field or reference 'test.t1.a1' of SELECT #3 was resolved in SELECT #1
-Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3` `t3c`) where ((`test`.`t2`.`b2` = `test`.`t1`.`a2`) and (`test`.`t2i`.`b2` = `test`.`t1`.`a2`) and (`test`.`t3c`.`c2` = `test`.`t1`.`a2`) and (`test`.`t2`.`b1` = `test`.`t1`.`a1`) and (`test`.`t2i`.`b1` = `test`.`t1`.`a1`) and (`test`.`t3c`.`c1` = `test`.`t1`.`a1`) and (<in_optimizer>(`test`.`t2`.`b2`,<exists>(/* select#3 */ select 1 from `test`.`t3` `t3a` where ((`test`.`t3a`.`c1` = `test`.`t1`.`a1`) and (<cache>(`test`.`t2`.`b2`) = `test`.`t3a`.`c2`)))) or <in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (/* select#4 */ select `test`.`t3b`.`c2` from `test`.`t3` `t3b` where (`test`.`t3b`.`c2` like '%03') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `materialized subselect`.`c2`)))))) and (`test`.`t1`.`a2` > '0'))
+Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3` `t3c`) where ((`test`.`t2`.`b2` = `test`.`t1`.`a2`) and (`test`.`t3c`.`c2` = `test`.`t1`.`a2`) and (`test`.`t2i`.`b2` = `test`.`t3c`.`c2`) and (`test`.`t2`.`b1` = `test`.`t1`.`a1`) and (`test`.`t3c`.`c1` = `test`.`t1`.`a1`) and (`test`.`t2i`.`b1` = `test`.`t3c`.`c1`) and (<in_optimizer>(`test`.`t2`.`b2`,<exists>(/* select#3 */ select 1 from `test`.`t3` `t3a` where ((`test`.`t3a`.`c1` = `test`.`t1`.`a1`) and (<cache>(`test`.`t2`.`b2`) = `test`.`t3a`.`c2`)))) or <in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (/* select#4 */ select `test`.`t3b`.`c2` from `test`.`t3` `t3b` where (`test`.`t3b`.`c2` like '%03') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `materialized subselect`.`c2`)))))) and (`test`.`t3c`.`c2` > '0'))
select * from t1
where (a1, a2) in (select b1, b2 from t2
where b2 in (select c2 from t3 t3a where c1 = a1) or
@@ -339,10 +339,10 @@ where (a1, a2) in (select b1, b2 from t2
(a1, a2) in (select c1, c2 from t3i
where (c1, c2) in (select b1, b2 from t2i where b2 > '0')));
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
-1 PRIMARY t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t2.b1,test.t1.a2 2 100.00 Using where; Using index
-1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; FirstMatch(t2)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Start materialize
+1 PRIMARY t2i index it2i1,it2i2,it2i3 it2i3 18 NULL 5 80.00 Using where; Using index; End materialize; Using join buffer (Block Nested Loop)
4 SUBQUERY t3 ALL NULL NULL NULL NULL 4 100.00 Using where
3 SUBQUERY t3 ALL NULL NULL NULL NULL 4 100.00 Using where
7 UNION t2i index it2i1,it2i2,it2i3 it2i3 18 NULL 5 50.00 Using where; Using index; LooseScan
@@ -351,7 +351,7 @@ id select_type table type possible_keys
7 UNION t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t2i.b1,test.t2i.b2 2 100.00 Using index; FirstMatch(t1i)
NULL UNION RESULT <union1,7> ALL NULL NULL NULL NULL NULL NULL
Warnings:
-Note 1003 (/* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3`) where ((`test`.`t2`.`b2` = `test`.`t1`.`a2`) and (`test`.`t2i`.`b2` = `test`.`t1`.`a2`) and (`test`.`t3`.`c2` = `test`.`t1`.`a2`) and (`test`.`t2`.`b1` = `test`.`t1`.`a1`) and (`test`.`t2i`.`b1` = `test`.`t1`.`a1`) and (`test`.`t3`.`c1` = `test`.`t1`.`a1`) and (<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (/* select#3 */ select `test`.`t3`.`c2` from `test`.`t3` where (`test`.`t3`.`c2` like '%02') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `materialized subselect`.`c2`))))) or <in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (/* select#4 */ select `test`.`t3`.`c2` from `test`.`t3` where (`test`.`t3`.`c2` like '%03') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`
.`t2`.`b2` = `materialized subselect`.`c2`)))))) and (`test`.`t1`.`a2` > '0'))) union (/* select#7 */ select `test`.`t1i`.`a1` AS `a1`,`test`.`t1i`.`a2` AS `a2` from `test`.`t1i` semi join (`test`.`t2i`) semi join (`test`.`t2i` join `test`.`t3i`) where ((`test`.`t1i`.`a2` = `test`.`t2i`.`b2`) and (`test`.`t3i`.`c2` = `test`.`t2i`.`b2`) and (`test`.`t2i`.`b2` = `test`.`t2i`.`b2`) and (`test`.`t1i`.`a1` = `test`.`t2i`.`b1`) and (`test`.`t3i`.`c1` = `test`.`t2i`.`b1`) and (`test`.`t2i`.`b1` = `test`.`t2i`.`b1`) and (`test`.`t2i`.`b1` > '0') and (`test`.`t2i`.`b2` > '0')))
+Note 1003 (/* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3`) where ((`test`.`t2`.`b2` = `test`.`t1`.`a2`) and (`test`.`t3`.`c2` = `test`.`t1`.`a2`) and (`test`.`t2i`.`b2` = `test`.`t3`.`c2`) and (`test`.`t2`.`b1` = `test`.`t1`.`a1`) and (`test`.`t3`.`c1` = `test`.`t1`.`a1`) and (`test`.`t2i`.`b1` = `test`.`t3`.`c1`) and (<in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (/* select#3 */ select `test`.`t3`.`c2` from `test`.`t3` where (`test`.`t3`.`c2` like '%02') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `materialized subselect`.`c2`))))) or <in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (/* select#4 */ select `test`.`t3`.`c2` from `test`.`t3` where (`test`.`t3`.`c2` like '%03') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`
.`t2`.`b2` = `materialized subselect`.`c2`)))))) and (`test`.`t3`.`c2` > '0'))) union (/* select#7 */ select `test`.`t1i`.`a1` AS `a1`,`test`.`t1i`.`a2` AS `a2` from `test`.`t1i` semi join (`test`.`t2i`) semi join (`test`.`t2i` join `test`.`t3i`) where ((`test`.`t1i`.`a2` = `test`.`t2i`.`b2`) and (`test`.`t3i`.`c2` = `test`.`t2i`.`b2`) and (`test`.`t2i`.`b2` = `test`.`t2i`.`b2`) and (`test`.`t1i`.`a1` = `test`.`t2i`.`b1`) and (`test`.`t3i`.`c1` = `test`.`t2i`.`b1`) and (`test`.`t2i`.`b1` = `test`.`t2i`.`b1`) and (`test`.`t2i`.`b1` > '0') and (`test`.`t2i`.`b2` > '0')))
(select * from t1
where (a1, a2) in (select b1, b2 from t2
where b2 in (select c2 from t3 where c2 LIKE '%02') or
@@ -374,13 +374,13 @@ where (a1, a2) in (select * from t1 wher
where (c1, c2) in (select b1, b2 from t2i where b2 > '0'));
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
-1 PRIMARY t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t1.a1,test.t1.a2 2 100.00 Using index
-1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; FirstMatch(t1)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Start materialize
+1 PRIMARY t2i index it2i1,it2i2,it2i3 it2i3 18 NULL 5 80.00 Using where; Using index; End materialize; Using join buffer (Block Nested Loop)
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
3 DEPENDENT UNION t2 ALL NULL NULL NULL NULL 5 100.00 Using where
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
Warnings:
-Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2i` join `test`.`t3`) where ((`test`.`t2i`.`b2` = `test`.`t1`.`a2`) and (`test`.`t3`.`c2` = `test`.`t1`.`a2`) and (`test`.`t2i`.`b1` = `test`.`t1`.`a1`) and (`test`.`t3`.`c1` = `test`.`t1`.`a1`) and <in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),<exists>(/* select#2 */ select `test`.`t1`.`a1`,`test`.`t1`.`a2` from `test`.`t1` where ((`test`.`t1`.`a1` > '0') and (<cache>(`test`.`t1`.`a1`) = `test`.`t1`.`a1`) and (<cache>(`test`.`t1`.`a2`) = `test`.`t1`.`a2`)) union /* select#3 */ select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` where ((`test`.`t2`.`b1` < '9') and (<cache>(`test`.`t1`.`a1`) = `test`.`t2`.`b1`) and (<cache>(`test`.`t1`.`a2`) = `test`.`t2`.`b2`)))) and (`test`.`t1`.`a2` > '0'))
+Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2i` join `test`.`t3`) where ((`test`.`t3`.`c2` = `test`.`t1`.`a2`) and (`test`.`t2i`.`b2` = `test`.`t3`.`c2`) and (`test`.`t3`.`c1` = `test`.`t1`.`a1`) and (`test`.`t2i`.`b1` = `test`.`t3`.`c1`) and <in_optimizer>((`test`.`t1`.`a1`,`test`.`t1`.`a2`),<exists>(/* select#2 */ select `test`.`t1`.`a1`,`test`.`t1`.`a2` from `test`.`t1` where ((`test`.`t1`.`a1` > '0') and (<cache>(`test`.`t1`.`a1`) = `test`.`t1`.`a1`) and (<cache>(`test`.`t1`.`a2`) = `test`.`t1`.`a2`)) union /* select#3 */ select `test`.`t2`.`b1`,`test`.`t2`.`b2` from `test`.`t2` where ((`test`.`t2`.`b1` < '9') and (<cache>(`test`.`t1`.`a1`) = `test`.`t2`.`b1`) and (<cache>(`test`.`t1`.`a2`) = `test`.`t2`.`b2`)))) and (`test`.`t3`.`c2` > '0'))
select * from t1
where (a1, a2) in (select * from t1 where a1 > '0' UNION select * from t2 where b1 < '9') and
(a1, a2) in (select c1, c2 from t3
@@ -398,7 +398,7 @@ id select_type table type possible_keys
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Start materialize
-1 PRIMARY t2i index it2i1,it2i2,it2i3 it2i3 18 NULL 5 80.00 Using where; Using index; End materialize
+1 PRIMARY t2i index it2i1,it2i2,it2i3 it2i3 18 NULL 5 80.00 Using where; Using index; End materialize; Using join buffer (Block Nested Loop)
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
3 DEPENDENT UNION t2 ALL NULL NULL NULL NULL 5 100.00 Using where
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL
@@ -440,16 +440,16 @@ b2 in (select c2 from t3 t3b where c2 LI
(a1, a2) in (select c1, c2 from t3 t3c
where (c1, c2) in (select b1, b2 from t2i where b2 > '0' or b2 = a2));
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
-1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
-1 PRIMARY t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t2.b1,test.t1.a2 2 100.00 Using where; Using index
-1 PRIMARY t3c ALL NULL NULL NULL NULL 4 100.00 Using where; FirstMatch(t2)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Start temporary
+1 PRIMARY t2i ref it2i1,it2i2,it2i3 it2i3 18 test.t1.a1,test.t1.a2 2 100.00 Using index
+1 PRIMARY t3c ALL NULL NULL NULL NULL 4 100.00 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; FirstMatch(t3c); Using join buffer (Block Nested Loop)
4 SUBQUERY t3b ALL NULL NULL NULL NULL 4 100.00 Using where
3 DEPENDENT SUBQUERY t3a ALL NULL NULL NULL NULL 4 100.00 Using where
Warnings:
Note 1276 Field or reference 'test.t1.a1' of SELECT #3 was resolved in SELECT #1
Note 1276 Field or reference 'test.t1.a2' of SELECT #6 was resolved in SELECT #1
-Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3` `t3c`) where ((`test`.`t2`.`b2` = `test`.`t1`.`a2`) and (`test`.`t2i`.`b2` = `test`.`t1`.`a2`) and (`test`.`t3c`.`c2` = `test`.`t1`.`a2`) and (`test`.`t2`.`b1` = `test`.`t1`.`a1`) and (`test`.`t2i`.`b1` = `test`.`t1`.`a1`) and (`test`.`t3c`.`c1` = `test`.`t1`.`a1`) and (<in_optimizer>(`test`.`t2`.`b2`,<exists>(/* select#3 */ select 1 from `test`.`t3` `t3a` where ((`test`.`t3a`.`c1` = `test`.`t1`.`a1`) and (<cache>(`test`.`t2`.`b2`) = `test`.`t3a`.`c2`)))) or <in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (/* select#4 */ select `test`.`t3b`.`c2` from `test`.`t3` `t3b` where (`test`.`t3b`.`c2` like '%03') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `materialized subselect`.`c2`)))))))
+Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` semi join (`test`.`t2`) semi join (`test`.`t2i` join `test`.`t3` `t3c`) where ((`test`.`t2i`.`b2` = `test`.`t1`.`a2`) and (`test`.`t3c`.`c2` = `test`.`t1`.`a2`) and (`test`.`t2`.`b2` = `test`.`t1`.`a2`) and (`test`.`t2i`.`b1` = `test`.`t1`.`a1`) and (`test`.`t3c`.`c1` = `test`.`t1`.`a1`) and (`test`.`t2`.`b1` = `test`.`t1`.`a1`) and (<in_optimizer>(`test`.`t2`.`b2`,<exists>(/* select#3 */ select 1 from `test`.`t3` `t3a` where ((`test`.`t3a`.`c1` = `test`.`t1`.`a1`) and (<cache>(`test`.`t2`.`b2`) = `test`.`t3a`.`c2`)))) or <in_optimizer>(`test`.`t2`.`b2`,`test`.`t2`.`b2` in ( <materialize> (/* select#4 */ select `test`.`t3b`.`c2` from `test`.`t3` `t3b` where (`test`.`t3b`.`c2` like '%03') ), <primary_index_lookup>(`test`.`t2`.`b2` in <temporary table> on distinct_key where ((`test`.`t2`.`b2` = `materialized subselect`.`c2`)))))))
explain extended
select * from t1 where (a1, a2) in (select '1 - 01', '2 - 01');
id select_type table type possible_keys key key_len ref rows filtered Extra
@@ -631,7 +631,7 @@ explain extended
select a from t1 where a in (select c from t2 where d >= 20);
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 index it1a it1a 4 NULL 7 100.00 Using index
-1 PRIMARY t2 ALL NULL NULL NULL NULL 7 100.00 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 7 100.00 Using where; Materialize
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`c` = `test`.`t1`.`a`) and (`test`.`t2`.`d` >= 20))
select a from t1 where a in (select c from t2 where d >= 20);
@@ -714,14 +714,14 @@ insert into t1 values (5);
explain select min(a1) from t1 where 7 in (select b1 from t2 group by b1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
select min(a1) from t1 where 7 in (select b1 from t2 group by b1);
min(a1)
NULL
explain select min(a1) from t1 where 7 in (select b1 from t2);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
select min(a1) from t1 where 7 in (select b1 from t2);
min(a1)
NULL
@@ -771,14 +771,14 @@ CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1),(2);
EXPLAIN EXTENDED SELECT 1 FROM t1 WHERE 1 IN (SELECT 1 FROM t1 GROUP BY a);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 FirstMatch(t1); Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (Block Nested Loop)
Warnings:
Note 1003 /* select#1 */ select 1 AS `1` from `test`.`t1` semi join (`test`.`t1`) where 1
EXPLAIN EXTENDED SELECT 1 FROM t1 WHERE 1 IN (SELECT 1 FROM t1 WHERE a > 3 GROUP BY a);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (Block Nested Loop)
Warnings:
Note 1003 /* select#1 */ select 1 AS `1` from `test`.`t1` semi join (`test`.`t1`) where (`test`.`t1`.`a` > 3)
DROP TABLE t1;
=== modified file 'mysql-test/r/subquery_sj_all.result'
--- a/mysql-test/r/subquery_sj_all.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_all.result 2011-11-03 14:17:25 +0000
@@ -1007,8 +1007,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1023,8 +1023,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1039,8 +1039,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1048,8 +1048,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1057,8 +1057,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1075,8 +1075,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1084,8 +1084,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1099,8 +1099,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1115,8 +1115,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1131,8 +1131,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1141,8 +1141,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1150,8 +1150,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1168,8 +1168,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1177,8 +1177,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1192,8 +1192,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1208,8 +1208,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1225,7 +1225,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1234,8 +1234,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1243,8 +1243,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1262,7 +1262,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1270,8 +1270,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1287,8 +1287,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1303,8 +1303,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1319,8 +1319,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1328,8 +1328,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1337,8 +1337,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1355,8 +1355,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1364,8 +1364,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1581,8 +1581,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1598,7 +1598,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1613,8 +1613,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1623,7 +1623,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1632,7 +1632,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1649,8 +1649,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1659,7 +1659,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1877,7 +1877,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
@@ -1893,7 +1893,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -1909,7 +1909,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -1918,7 +1918,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -1926,9 +1926,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1944,18 +1944,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1969,7 +1969,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
@@ -1985,7 +1985,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2001,7 +2001,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2011,7 +2011,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2037,8 +2037,8 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2094,7 +2094,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2132,7 +2132,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2158,7 +2158,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
@@ -2174,7 +2174,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2190,7 +2190,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2199,7 +2199,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2207,8 +2207,8 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2234,8 +2234,8 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2249,9 +2249,9 @@ c1 c2 c3
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -2268,9 +2268,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2287,9 +2287,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2297,9 +2297,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2307,9 +2307,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2325,18 +2325,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2387,9 +2387,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2409,9 +2409,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 FirstMatch
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2436,9 +2436,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 FirstMatch
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2470,7 +2470,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2495,7 +2495,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2504,7 +2504,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2531,7 +2531,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2564,9 +2564,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2593,9 +2593,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2621,9 +2621,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2645,9 +2645,9 @@ c1 c2 c3
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -2667,9 +2667,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2689,9 +2689,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2700,9 +2700,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2711,9 +2711,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2729,18 +2729,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2894,9 +2894,9 @@ explain select t21.* from t21,t22 where
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;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t11 ALL NULL NULL NULL NULL 8 Using where; Using temporary; Using filesort; Start materialize; Scan
-1 PRIMARY t12 ALL NULL NULL NULL NULL 8 Using where; End materialize
-1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t12 ALL NULL NULL NULL NULL 8 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t22 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
select t21.* from t21,t22 where t21.a = t22.a and
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;
a b c
@@ -2949,7 +2949,7 @@ a
explain select * from (select a from t0) X where a in (select a from t1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 11
-1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Using where; FirstMatch(<derived2>); Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Materialize
2 DERIVED t0 ALL NULL NULL NULL NULL 11
drop table t0, t1;
create table t0 (a int);
@@ -2961,8 +2961,8 @@ create table t3 (a int);
insert into t3 select A.a + 10*B.a from t0 A, t0 B;
explain select * from t3 where a in (select kp1 from t1 where kp1<20);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; LooseScan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100
+1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; Materialize
select * from t3 where a in (select kp1 from t1 where kp1<20);
a
0
@@ -2987,8 +2987,8 @@ a
19
explain select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; LooseScan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; Materialize
select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
a
0
@@ -3016,9 +3016,9 @@ insert into t4 select a from t3;
explain select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using index condition; Using where; LooseScan
-1 PRIMARY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index; FirstMatch(t1)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100
+1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using index condition; Using where; Using MRR; Start materialize
+1 PRIMARY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index; End materialize
select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
a
@@ -3060,7 +3060,7 @@ id select_type table type possible_keys
1 PRIMARY A ALL NULL NULL NULL NULL 10
1 PRIMARY B ALL NULL NULL NULL NULL 10 Using join buffer (Block Nested Loop)
1 PRIMARY C ALL NULL NULL NULL NULL 10 Using join buffer (Block Nested Loop)
-1 PRIMARY D ALL NULL NULL NULL NULL 12 Using where; FirstMatch(C); Using join buffer (Block Nested Loop)
+1 PRIMARY D ALL NULL NULL NULL NULL 12 Materialize
flush status;
select count(*) from t0 A, t0 B, t0 C
where C.a in (select a from t1 D);
@@ -3178,12 +3178,12 @@ insert into t1 select A.a, B.a, 'filler'
create table t2 as select * from t1;
explain select * from t2 where a in (select b from t1 where a=3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range a a 5 NULL 8 Using where; Using index; LooseScan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 100
+1 PRIMARY t1 ref a a 5 const 8 Using index; Materialize
explain select * from t2 where (b,a) in (select a,b from t1 where a=3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range a a 5 NULL 8 Using where; Using index; LooseScan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t1 ref a a 5 const 8 Using index; Materialize
drop table t1,t2;
create table t1 (a int, b int);
insert into t1 select a,a from t0;
@@ -3192,7 +3192,7 @@ insert into t2 select A.a + 10*B.a, A.a
explain select * from t1 where (a,b) in (select a,b from t2);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 10
-1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Materialize
drop table t0, t1, t2;
create table t0 (a decimal(4,2));
insert into t0 values (10.24), (22.11);
@@ -3228,9 +3228,9 @@ insert into t2 select * from t2;
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);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3
-1 PRIMARY X ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY Y ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY Z ALL NULL NULL NULL NULL 6 Using where; FirstMatch(t1)
+1 PRIMARY X ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY Y ALL NULL NULL NULL NULL 6 Using join buffer (Block Nested Loop)
+1 PRIMARY Z ALL NULL NULL NULL NULL 6 End materialize; Using join buffer (Block Nested Loop)
drop table t0,t1,t2;
set @save_join_buffer_size = @@join_buffer_size;
set join_buffer_size= 8192;
@@ -3282,7 +3282,7 @@ a, mid(filler1, 1,10), length(filler1)=l
from t2 ot where a in (select a from t1 it);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY ot ALL NULL NULL NULL NULL 22
-1 PRIMARY it ALL NULL NULL NULL NULL 32 Using where; FirstMatch(ot); Using join buffer (Block Nested Loop)
+1 PRIMARY it ALL NULL NULL NULL NULL 32 Materialize
select
a, mid(filler1, 1,10), length(filler1)=length(filler2)
from t2 ot where a in (select a from t1 it);
@@ -3348,7 +3348,7 @@ a, mid(filler1, 1,10), length(filler1)=l
from t2 ot where a in (select a from t1 it);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY ot ALL NULL NULL NULL NULL 22
-1 PRIMARY it ALL NULL NULL NULL NULL 52 Using where; FirstMatch(ot); Using join buffer (Block Nested Loop)
+1 PRIMARY it ALL NULL NULL NULL NULL 52 Materialize
select
a, mid(filler1, 1,10), length(filler1)=length(filler2)
from t2 ot where a in (select a from t1 it);
@@ -3519,11 +3519,11 @@ where (a1, a2) IN
where t2.b2 = substring(t2_16.b2,1,6) and
t2.b1 IN (select c1 from t3 where c2 > '0')));
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
-1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where
-1 PRIMARY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where
-1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Start temporary
+1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; End temporary; Using join buffer (Block Nested Loop)
Warnings:
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)))
drop table t1_16, t2_16, t3_16, t1, t2, t3;
@@ -4046,18 +4046,18 @@ EXPLAIN EXTENDED SELECT vkey FROM t0 WHE
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t0 ALL PRIMARY NULL NULL NULL 5 100.00
-1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00 Using where
-1 PRIMARY t2 ref vkey vkey 4 test.t1.vnokey 2 100.00 Using index; FirstMatch(t1)
+1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00
+1 PRIMARY t2 index vkey vkey 4 NULL 5 80.00 Using where; Using index; FirstMatch(t1); Using join buffer (Block Nested Loop)
Warnings:
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`))
SELECT vkey FROM t0 WHERE pk IN
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
vkey
g
-v
+n
t
u
-n
+v
DROP TABLE t0;
# End of bug#46556
@@ -4289,8 +4289,8 @@ SELECT t1_1 .varchar_key
FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1 .int_key
);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; FirstMatch(t1_1)
+1 PRIMARY t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index; Start materialize; Scan
+1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t0 ALL NULL NULL NULL NULL 20 Using where; Using join buffer (Block Nested Loop)
SELECT t0.int_key
FROM t0, t2
@@ -4310,8 +4310,8 @@ FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 system NULL NULL NULL NULL 1
-1 PRIMARY t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; FirstMatch(t1_1)
+1 PRIMARY t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index; Start materialize; Scan
+1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t0 ALL NULL NULL NULL NULL 20 Using where; Using join buffer (Block Nested Loop)
DROP TABLE t0, t1, t2;
# End of bug#46550
@@ -4497,8 +4497,8 @@ AND ot.val IN (SELECT it2.val FROM it2
WHERE it2.val LIKE 'a%' OR it2.val LIKE 'e%');
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY ot ALL NULL NULL NULL NULL 5
-1 PRIMARY it2 ALL NULL NULL NULL NULL 5 Using where; FirstMatch(ot); Using join buffer (Block Nested Loop)
-1 PRIMARY it1 ALL NULL NULL NULL NULL 6 Using where; FirstMatch(it2); Using join buffer (Block Nested Loop)
+1 PRIMARY it2 ALL NULL NULL NULL NULL 5 Using where; Materialize
+1 PRIMARY it1 ALL NULL NULL NULL NULL 6 Using where; Materialize
SELECT *
FROM ot
WHERE ot.val IN (SELECT it1.val FROM it1
@@ -4708,8 +4708,8 @@ WHERE PNUM IN
(SELECT PNUM FROM PROJ));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY STAFF ALL NULL NULL NULL NULL 5
-1 PRIMARY PROJ ALL NULL NULL NULL NULL 6
-1 PRIMARY WORKS ALL NULL NULL NULL NULL 12 Using where; FirstMatch(STAFF)
+1 PRIMARY PROJ ALL NULL NULL NULL NULL 6 Start materialize
+1 PRIMARY WORKS ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT EMPNUM, EMPNAME
FROM STAFF
WHERE EMPNUM IN
@@ -4860,7 +4860,7 @@ Note 1003 /* select#1 */ select `test`.`
explain extended SELECT one,two from t1 where ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = 'N');
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 8 100.00
-1 PRIMARY t2 ALL NULL NULL NULL NULL 9 100.00 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 9 100.00 Using where; Materialize
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`one` AS `one`,`test`.`t1`.`two` AS `two` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`two` = `test`.`t1`.`two`) and (`test`.`t2`.`one` = `test`.`t1`.`one`) and (`test`.`t2`.`flag` = 'N'))
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;
@@ -4885,8 +4885,8 @@ CREATE INDEX I1 ON t1 (a);
CREATE INDEX I2 ON t1 (b);
EXPLAIN SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t1 ref I2 I2 13 test.t1.a 2 Using index condition
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using index; LooseScan
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
a b
CREATE TABLE t2 (a VARCHAR(1), b VARCHAR(10));
@@ -4895,15 +4895,15 @@ CREATE INDEX I1 ON t2 (a);
CREATE INDEX I2 ON t2 (b);
EXPLAIN SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index I1 I1 4 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t2 ref I2 I2 13 test.t2.a 2 Using index condition
+1 PRIMARY t2 index I1 I1 4 NULL 2 Using index; LooseScan
+1 PRIMARY t2 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
a b
EXPLAIN
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t1 ref I2 I2 13 test.t1.a 2 Using index condition
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
a b
DROP TABLE t1,t2;
@@ -5006,8 +5006,8 @@ FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5020,13 +5020,13 @@ WHERE EMPNUM IN
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP INDEX t1_IDX ON t1;
CREATE INDEX t1_IDX ON t1(EMPNUM);
@@ -5041,8 +5041,8 @@ FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5055,13 +5055,13 @@ WHERE EMPNUM IN
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP INDEX t1_IDX ON t1;
EXPLAIN SELECT EMPNAME
@@ -5075,8 +5075,8 @@ FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5089,13 +5089,13 @@ WHERE EMPNUM IN
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP TABLE t1, t2, t3;
#
@@ -5149,9 +5149,9 @@ FROM t2
WHERE 1 IN(SELECT 1
FROM t3));
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 End materialize; Using join buffer (Block Nested Loop)
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id` from `test`.`t1` semi join (`test`.`t3` join `test`.`t2`) where 1
delete from t2;
@@ -5188,9 +5188,9 @@ WHERE 1 IN(SELECT 1
FROM t4)));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 9
-1 PRIMARY t2 ALL NULL NULL NULL NULL 9
-1 PRIMARY t3 ALL NULL NULL NULL NULL 9
-1 PRIMARY t4 ALL NULL NULL NULL NULL 9 FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 9 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 9 Using join buffer (Block Nested Loop)
+1 PRIMARY t4 ALL NULL NULL NULL NULL 9 End materialize; Using join buffer (Block Nested Loop)
SELECT *
FROM t1
WHERE 1 IN(SELECT 1
@@ -5250,10 +5250,10 @@ explain select t2.uid from t2, t1
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
and t2.uid=t1.fid;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t4 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ref uid uid 5 const 1 Using where
+1 PRIMARY t4 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ref uid uid 5 const 1 Using where; End materialize
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
select t2.uid from t2, t1
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
and t2.uid=t1.fid;
@@ -5331,9 +5331,9 @@ t2.Code IN (SELECT Country FROM t3
WHERE Language='English' AND Percentage > 10 AND
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using index condition; Using MRR; Start temporary
+1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using index condition; Using MRR; Materialize; Scan
1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using index condition; Using where; End temporary
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using index condition; Using where
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
@@ -6000,9 +6000,9 @@ INSERT INTO t3 VALUES (1), (2);
explain extended SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t3 LEFT JOIN t2 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (Block Nested Loop)
Warnings:
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` = `test`.`t3`.`i`)
SELECT * FROM t1 WHERE (t1.i) IN
@@ -6057,8 +6057,8 @@ insert into t3 values(2),(2);
explain select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
a
1
@@ -6077,10 +6077,10 @@ explain SELECT * FROM t1
WHERE t1.a IN (SELECT t2.a
FROM t2 LEFT JOIN (t2 AS t2inner, t3) ON t2.a=t3.a);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
1 PRIMARY t2inner ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1
WHERE t1.a IN (SELECT t2.a
FROM t2 LEFT JOIN (t2 AS t2inner, t3) ON t2.a=t3.a);
@@ -6159,8 +6159,8 @@ WHERE (varchar_nokey, varchar_nokey) IN
FROM t2
WHERE varchar_nokey < 'n' XOR pk);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL varchar_key NULL NULL NULL 15 Using where; Materialize; Scan
-1 PRIMARY t1 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 18
+1 PRIMARY t2 ALL varchar_key NULL NULL NULL 15 Using where; Materialize
DROP TABLE t1, t2;
# End of the test for bug#45174.
#
@@ -6185,8 +6185,8 @@ FROM t2 JOIN t3
WHERE t2.i + t3.i = 5);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 10
-1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 10 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 10 Using where; End materialize; Using join buffer (Block Nested Loop)
DROP TABLE t1,t2,t3;
# End of the test for bug#50019.
#
@@ -6220,7 +6220,7 @@ FROM it2,it3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY ot1 ALL NULL NULL NULL NULL 2
1 PRIMARY it2 ALL NULL NULL NULL NULL 4 Start materialize; Scan
-1 PRIMARY it3 ALL NULL NULL NULL NULL 6 End materialize
+1 PRIMARY it3 ALL NULL NULL NULL NULL 6 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY ot4 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (Block Nested Loop)
DROP TABLE IF EXISTS ot1, ot4, it2, it3;
# End of the test for bug#52068.
@@ -6438,10 +6438,10 @@ ON alias2.col_varchar_10_latin1_key
ON alias1.col_varchar_1024_utf8_key
WHERE alias1.pk AND alias1.pk < 3 OR alias1.pk AND alias3.pk);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY alias1 ALL NULL NULL NULL NULL 4 Using where; Start materialize; Scan
-1 PRIMARY alias3 index NULL PRIMARY 4 NULL 1 Using where; Using index
-1 PRIMARY alias2 index NULL col_varchar_10_latin1_key 13 NULL 4 Using where; Using index; End materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2
+1 PRIMARY alias1 ALL NULL NULL NULL NULL 4 Using where; Start materialize
+1 PRIMARY alias3 index NULL PRIMARY 4 NULL 1 Using where; Using index; Using join buffer (Block Nested Loop)
+1 PRIMARY alias2 index NULL col_varchar_10_latin1_key 13 NULL 4 Using where; Using index; End materialize; Using join buffer (Block Nested Loop)
SELECT *
FROM t3
WHERE col_varchar_10_latin1_key IN (
@@ -6522,8 +6522,8 @@ WHERE innr.col_varchar_key = 'a' OR innr
AND outr.col_varchar_nokey < 't'
ORDER BY outr.col_varchar_key, outr.pk;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY innr index PRIMARY,col_varchar_key col_varchar_key 7 NULL 20 Using where; Using index; Using temporary; Using filesort; LooseScan
-1 PRIMARY outr ref col_varchar_key col_varchar_key 3 test.innr.col_varchar_key 1 Using where
+1 PRIMARY 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
+1 PRIMARY outr ref col_varchar_key col_varchar_key 3 test.innr.col_varchar_key 1 Using where; End temporary
SELECT outr.col_varchar_key AS x, outr.pk AS y
FROM t1 AS outr
WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key
@@ -6580,7 +6580,7 @@ id select_type table type possible_keys
1 PRIMARY grandparent1 ALL NULL NULL NULL NULL 15 Using where
1 PRIMARY grandparent2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2 DEPENDENT SUBQUERY child1 ALL NULL NULL NULL NULL 15 Using where; Start materialize; Scan
-2 DEPENDENT SUBQUERY child2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+2 DEPENDENT SUBQUERY child2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
2 DEPENDENT SUBQUERY parent1 ref col_varchar_key col_varchar_key 4 test.child1.col_varchar_nokey 2 Using where
SELECT grandparent1.col_varchar_nokey
FROM t1 AS grandparent1 LEFT JOIN t2 AS grandparent2 USING (col_varchar_nokey)
@@ -6707,9 +6707,9 @@ AND grandparent1.col_varchar_key IS NOT
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
-2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start materialize; Scan
-2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index; End materialize
-2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using index condition; Using where
+2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start temporary
+2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index
+2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using index condition; Using where; End temporary
SELECT *
FROM t1
WHERE g1 NOT IN
=== modified file 'mysql-test/r/subquery_sj_all_bka.result'
--- a/mysql-test/r/subquery_sj_all_bka.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_all_bka.result 2011-11-03 14:17:25 +0000
@@ -1008,8 +1008,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1024,8 +1024,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1040,8 +1040,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1049,8 +1049,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1058,8 +1058,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1076,8 +1076,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1085,8 +1085,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1100,8 +1100,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1116,8 +1116,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1132,8 +1132,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1142,8 +1142,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1151,8 +1151,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1169,8 +1169,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1178,8 +1178,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1193,8 +1193,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1209,8 +1209,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1226,7 +1226,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1235,8 +1235,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1244,8 +1244,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1263,7 +1263,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1271,8 +1271,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1288,8 +1288,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1304,8 +1304,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1320,8 +1320,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1329,8 +1329,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1338,8 +1338,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1356,8 +1356,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1365,8 +1365,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1582,8 +1582,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1599,7 +1599,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1614,8 +1614,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1624,7 +1624,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1633,7 +1633,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1650,8 +1650,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1660,7 +1660,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1878,7 +1878,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
@@ -1894,7 +1894,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -1910,7 +1910,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -1919,7 +1919,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -1927,9 +1927,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1945,18 +1945,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1970,7 +1970,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
@@ -1986,7 +1986,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2002,7 +2002,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2012,7 +2012,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2038,8 +2038,8 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2095,7 +2095,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2133,7 +2133,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2159,7 +2159,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
@@ -2175,7 +2175,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2191,7 +2191,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2200,7 +2200,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2208,8 +2208,8 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2235,8 +2235,8 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2250,9 +2250,9 @@ c1 c2 c3
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -2269,9 +2269,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2288,9 +2288,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2298,9 +2298,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2308,9 +2308,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2326,18 +2326,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2388,9 +2388,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2410,9 +2410,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 FirstMatch
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2437,9 +2437,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 FirstMatch
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2471,7 +2471,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2496,7 +2496,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2505,7 +2505,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2532,7 +2532,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2565,9 +2565,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2594,9 +2594,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2622,9 +2622,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2646,9 +2646,9 @@ c1 c2 c3
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -2668,9 +2668,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2690,9 +2690,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2701,9 +2701,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2712,9 +2712,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2730,18 +2730,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2895,9 +2895,9 @@ explain select t21.* from t21,t22 where
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;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t11 ALL NULL NULL NULL NULL 8 Using where; Using temporary; Using filesort; Start materialize; Scan
-1 PRIMARY t12 ALL NULL NULL NULL NULL 8 Using where; End materialize
-1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t12 ALL NULL NULL NULL NULL 8 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t22 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
select t21.* from t21,t22 where t21.a = t22.a and
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;
a b c
@@ -2950,7 +2950,7 @@ a
explain select * from (select a from t0) X where a in (select a from t1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 11
-1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Using where; FirstMatch(<derived2>); Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Materialize
2 DERIVED t0 ALL NULL NULL NULL NULL 11
drop table t0, t1;
create table t0 (a int);
@@ -2962,8 +2962,8 @@ create table t3 (a int);
insert into t3 select A.a + 10*B.a from t0 A, t0 B;
explain select * from t3 where a in (select kp1 from t1 where kp1<20);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; LooseScan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100
+1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; Materialize
select * from t3 where a in (select kp1 from t1 where kp1<20);
a
0
@@ -2988,8 +2988,8 @@ a
19
explain select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; LooseScan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; Materialize
select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
a
0
@@ -3017,9 +3017,9 @@ insert into t4 select a from t3;
explain select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using index condition; Using where; LooseScan
-1 PRIMARY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index; FirstMatch(t1)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100
+1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using index condition; Using where; Using MRR; Start materialize
+1 PRIMARY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index; End materialize
select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
a
@@ -3061,7 +3061,7 @@ id select_type table type possible_keys
1 PRIMARY A ALL NULL NULL NULL NULL 10
1 PRIMARY B ALL NULL NULL NULL NULL 10 Using join buffer (Block Nested Loop)
1 PRIMARY C ALL NULL NULL NULL NULL 10 Using join buffer (Block Nested Loop)
-1 PRIMARY D ALL NULL NULL NULL NULL 12 Using where; FirstMatch(C); Using join buffer (Block Nested Loop)
+1 PRIMARY D ALL NULL NULL NULL NULL 12 Materialize
flush status;
select count(*) from t0 A, t0 B, t0 C
where C.a in (select a from t1 D);
@@ -3179,12 +3179,12 @@ insert into t1 select A.a, B.a, 'filler'
create table t2 as select * from t1;
explain select * from t2 where a in (select b from t1 where a=3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range a a 5 NULL 8 Using where; Using index; LooseScan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 100
+1 PRIMARY t1 ref a a 5 const 8 Using index; Materialize
explain select * from t2 where (b,a) in (select a,b from t1 where a=3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range a a 5 NULL 8 Using where; Using index; LooseScan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t1 ref a a 5 const 8 Using index; Materialize
drop table t1,t2;
create table t1 (a int, b int);
insert into t1 select a,a from t0;
@@ -3193,7 +3193,7 @@ insert into t2 select A.a + 10*B.a, A.a
explain select * from t1 where (a,b) in (select a,b from t2);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 10
-1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Materialize
drop table t0, t1, t2;
create table t0 (a decimal(4,2));
insert into t0 values (10.24), (22.11);
@@ -3229,9 +3229,9 @@ insert into t2 select * from t2;
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);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3
-1 PRIMARY X ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY Y ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY Z ALL NULL NULL NULL NULL 6 Using where; FirstMatch(t1)
+1 PRIMARY X ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY Y ALL NULL NULL NULL NULL 6 Using join buffer (Block Nested Loop)
+1 PRIMARY Z ALL NULL NULL NULL NULL 6 End materialize; Using join buffer (Block Nested Loop)
drop table t0,t1,t2;
set @save_join_buffer_size = @@join_buffer_size;
set join_buffer_size= 8192;
@@ -3283,7 +3283,7 @@ a, mid(filler1, 1,10), length(filler1)=l
from t2 ot where a in (select a from t1 it);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY ot ALL NULL NULL NULL NULL 22
-1 PRIMARY it ALL NULL NULL NULL NULL 32 Using where; FirstMatch(ot); Using join buffer (Block Nested Loop)
+1 PRIMARY it ALL NULL NULL NULL NULL 32 Materialize
select
a, mid(filler1, 1,10), length(filler1)=length(filler2)
from t2 ot where a in (select a from t1 it);
@@ -3349,7 +3349,7 @@ a, mid(filler1, 1,10), length(filler1)=l
from t2 ot where a in (select a from t1 it);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY ot ALL NULL NULL NULL NULL 22
-1 PRIMARY it ALL NULL NULL NULL NULL 52 Using where; FirstMatch(ot); Using join buffer (Block Nested Loop)
+1 PRIMARY it ALL NULL NULL NULL NULL 52 Materialize
select
a, mid(filler1, 1,10), length(filler1)=length(filler2)
from t2 ot where a in (select a from t1 it);
@@ -3520,11 +3520,11 @@ where (a1, a2) IN
where t2.b2 = substring(t2_16.b2,1,6) and
t2.b1 IN (select c1 from t3 where c2 > '0')));
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
-1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where
-1 PRIMARY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where
-1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Start temporary
+1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; End temporary; Using join buffer (Block Nested Loop)
Warnings:
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)))
drop table t1_16, t2_16, t3_16, t1, t2, t3;
@@ -4047,18 +4047,18 @@ EXPLAIN EXTENDED SELECT vkey FROM t0 WHE
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t0 ALL PRIMARY NULL NULL NULL 5 100.00
-1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00 Using where; Using join buffer (Batched Key Access)
-1 PRIMARY t2 ref vkey vkey 4 test.t1.vnokey 2 100.00 Using index; FirstMatch(t1)
+1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00 Using join buffer (Batched Key Access)
+1 PRIMARY t2 index vkey vkey 4 NULL 5 80.00 Using where; Using index; FirstMatch(t1); Using join buffer (Block Nested Loop)
Warnings:
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`))
SELECT vkey FROM t0 WHERE pk IN
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
vkey
g
-v
+n
t
u
-n
+v
DROP TABLE t0;
# End of bug#46556
@@ -4290,8 +4290,8 @@ SELECT t1_1 .varchar_key
FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1 .int_key
);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; FirstMatch(t1_1)
+1 PRIMARY t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index; Start materialize; Scan
+1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t0 ALL NULL NULL NULL NULL 20 Using where; Using join buffer (Block Nested Loop)
SELECT t0.int_key
FROM t0, t2
@@ -4311,8 +4311,8 @@ FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 system NULL NULL NULL NULL 1
-1 PRIMARY t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; FirstMatch(t1_1)
+1 PRIMARY t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index; Start materialize; Scan
+1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t0 ALL NULL NULL NULL NULL 20 Using where; Using join buffer (Block Nested Loop)
DROP TABLE t0, t1, t2;
# End of bug#46550
@@ -4498,8 +4498,8 @@ AND ot.val IN (SELECT it2.val FROM it2
WHERE it2.val LIKE 'a%' OR it2.val LIKE 'e%');
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY ot ALL NULL NULL NULL NULL 5
-1 PRIMARY it2 ALL NULL NULL NULL NULL 5 Using where; FirstMatch(ot); Using join buffer (Block Nested Loop)
-1 PRIMARY it1 ALL NULL NULL NULL NULL 6 Using where; FirstMatch(it2); Using join buffer (Block Nested Loop)
+1 PRIMARY it2 ALL NULL NULL NULL NULL 5 Using where; Materialize
+1 PRIMARY it1 ALL NULL NULL NULL NULL 6 Using where; Materialize
SELECT *
FROM ot
WHERE ot.val IN (SELECT it1.val FROM it1
@@ -4709,8 +4709,8 @@ WHERE PNUM IN
(SELECT PNUM FROM PROJ));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY STAFF ALL NULL NULL NULL NULL 5
-1 PRIMARY PROJ ALL NULL NULL NULL NULL 6
-1 PRIMARY WORKS ALL NULL NULL NULL NULL 12 Using where; FirstMatch(STAFF)
+1 PRIMARY PROJ ALL NULL NULL NULL NULL 6 Start materialize
+1 PRIMARY WORKS ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT EMPNUM, EMPNAME
FROM STAFF
WHERE EMPNUM IN
@@ -4861,7 +4861,7 @@ Note 1003 /* select#1 */ select `test`.`
explain extended SELECT one,two from t1 where ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = 'N');
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 8 100.00
-1 PRIMARY t2 ALL NULL NULL NULL NULL 9 100.00 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 9 100.00 Using where; Materialize
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`one` AS `one`,`test`.`t1`.`two` AS `two` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`two` = `test`.`t1`.`two`) and (`test`.`t2`.`one` = `test`.`t1`.`one`) and (`test`.`t2`.`flag` = 'N'))
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;
@@ -4886,8 +4886,8 @@ CREATE INDEX I1 ON t1 (a);
CREATE INDEX I2 ON t1 (b);
EXPLAIN SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t1 ref I2 I2 13 test.t1.a 2 Using index condition; Using join buffer (Batched Key Access)
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using index; LooseScan
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
a b
CREATE TABLE t2 (a VARCHAR(1), b VARCHAR(10));
@@ -4896,15 +4896,15 @@ CREATE INDEX I1 ON t2 (a);
CREATE INDEX I2 ON t2 (b);
EXPLAIN SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index I1 I1 4 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t2 ref I2 I2 13 test.t2.a 2 Using index condition; Using join buffer (Batched Key Access)
+1 PRIMARY t2 index I1 I1 4 NULL 2 Using index; LooseScan
+1 PRIMARY t2 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
a b
EXPLAIN
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t1 ref I2 I2 13 test.t1.a 2 Using index condition; Using join buffer (Batched Key Access)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
a b
DROP TABLE t1,t2;
@@ -5007,8 +5007,8 @@ FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5021,13 +5021,13 @@ WHERE EMPNUM IN
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP INDEX t1_IDX ON t1;
CREATE INDEX t1_IDX ON t1(EMPNUM);
@@ -5042,8 +5042,8 @@ FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5056,13 +5056,13 @@ WHERE EMPNUM IN
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP INDEX t1_IDX ON t1;
EXPLAIN SELECT EMPNAME
@@ -5076,8 +5076,8 @@ FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5090,13 +5090,13 @@ WHERE EMPNUM IN
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP TABLE t1, t2, t3;
#
@@ -5150,9 +5150,9 @@ FROM t2
WHERE 1 IN(SELECT 1
FROM t3));
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 End materialize; Using join buffer (Block Nested Loop)
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id` from `test`.`t1` semi join (`test`.`t3` join `test`.`t2`) where 1
delete from t2;
@@ -5189,9 +5189,9 @@ WHERE 1 IN(SELECT 1
FROM t4)));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 9
-1 PRIMARY t2 ALL NULL NULL NULL NULL 9
-1 PRIMARY t3 ALL NULL NULL NULL NULL 9
-1 PRIMARY t4 ALL NULL NULL NULL NULL 9 FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 9 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 9 Using join buffer (Block Nested Loop)
+1 PRIMARY t4 ALL NULL NULL NULL NULL 9 End materialize; Using join buffer (Block Nested Loop)
SELECT *
FROM t1
WHERE 1 IN(SELECT 1
@@ -5251,10 +5251,10 @@ explain select t2.uid from t2, t1
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
and t2.uid=t1.fid;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t4 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ref uid uid 5 const 1 Using where; Using join buffer (Batched Key Access)
+1 PRIMARY t4 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ref uid uid 5 const 1 Using where; End materialize; Using join buffer (Batched Key Access)
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
select t2.uid from t2, t1
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
and t2.uid=t1.fid;
@@ -5332,9 +5332,9 @@ t2.Code IN (SELECT Country FROM t3
WHERE Language='English' AND Percentage > 10 AND
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using index condition; Using MRR; Start temporary
+1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using index condition; Using MRR; Materialize; Scan
1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where; Using join buffer (Batched Key Access)
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using index condition; Using where; End temporary; Using join buffer (Batched Key Access)
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using index condition; Using where; Using join buffer (Batched Key Access)
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
@@ -6001,9 +6001,9 @@ INSERT INTO t3 VALUES (1), (2);
explain extended SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t3 LEFT JOIN t2 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (Block Nested Loop)
Warnings:
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` = `test`.`t3`.`i`)
SELECT * FROM t1 WHERE (t1.i) IN
@@ -6058,8 +6058,8 @@ insert into t3 values(2),(2);
explain select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
a
1
@@ -6078,10 +6078,10 @@ explain SELECT * FROM t1
WHERE t1.a IN (SELECT t2.a
FROM t2 LEFT JOIN (t2 AS t2inner, t3) ON t2.a=t3.a);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
1 PRIMARY t2inner ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1
WHERE t1.a IN (SELECT t2.a
FROM t2 LEFT JOIN (t2 AS t2inner, t3) ON t2.a=t3.a);
@@ -6160,8 +6160,8 @@ WHERE (varchar_nokey, varchar_nokey) IN
FROM t2
WHERE varchar_nokey < 'n' XOR pk);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL varchar_key NULL NULL NULL 15 Using where; Materialize; Scan
-1 PRIMARY t1 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 18
+1 PRIMARY t2 ALL varchar_key NULL NULL NULL 15 Using where; Materialize
DROP TABLE t1, t2;
# End of the test for bug#45174.
#
@@ -6186,8 +6186,8 @@ FROM t2 JOIN t3
WHERE t2.i + t3.i = 5);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 10
-1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 10 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 10 Using where; End materialize; Using join buffer (Block Nested Loop)
DROP TABLE t1,t2,t3;
# End of the test for bug#50019.
#
@@ -6221,7 +6221,7 @@ FROM it2,it3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY ot1 ALL NULL NULL NULL NULL 2
1 PRIMARY it2 ALL NULL NULL NULL NULL 4 Start materialize; Scan
-1 PRIMARY it3 ALL NULL NULL NULL NULL 6 End materialize
+1 PRIMARY it3 ALL NULL NULL NULL NULL 6 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY ot4 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (Block Nested Loop)
DROP TABLE IF EXISTS ot1, ot4, it2, it3;
# End of the test for bug#52068.
@@ -6439,10 +6439,10 @@ ON alias2.col_varchar_10_latin1_key
ON alias1.col_varchar_1024_utf8_key
WHERE alias1.pk AND alias1.pk < 3 OR alias1.pk AND alias3.pk);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY alias1 ALL NULL NULL NULL NULL 4 Using where; Start materialize; Scan
-1 PRIMARY alias3 index NULL PRIMARY 4 NULL 1 Using where; Using index
-1 PRIMARY alias2 index NULL col_varchar_10_latin1_key 13 NULL 4 Using where; Using index; End materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2
+1 PRIMARY alias1 ALL NULL NULL NULL NULL 4 Using where; Start materialize
+1 PRIMARY alias3 index NULL PRIMARY 4 NULL 1 Using where; Using index; Using join buffer (Block Nested Loop)
+1 PRIMARY alias2 index NULL col_varchar_10_latin1_key 13 NULL 4 Using where; Using index; End materialize; Using join buffer (Block Nested Loop)
SELECT *
FROM t3
WHERE col_varchar_10_latin1_key IN (
@@ -6523,8 +6523,8 @@ WHERE innr.col_varchar_key = 'a' OR innr
AND outr.col_varchar_nokey < 't'
ORDER BY outr.col_varchar_key, outr.pk;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY innr index PRIMARY,col_varchar_key col_varchar_key 7 NULL 20 Using where; Using index; Using temporary; Using filesort; LooseScan
-1 PRIMARY outr ref col_varchar_key col_varchar_key 3 test.innr.col_varchar_key 1 Using where; Using join buffer (Batched Key Access)
+1 PRIMARY 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
+1 PRIMARY outr ref col_varchar_key col_varchar_key 3 test.innr.col_varchar_key 1 Using where; End temporary; Using join buffer (Batched Key Access)
SELECT outr.col_varchar_key AS x, outr.pk AS y
FROM t1 AS outr
WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key
@@ -6581,7 +6581,7 @@ id select_type table type possible_keys
1 PRIMARY grandparent1 ALL NULL NULL NULL NULL 15 Using where
1 PRIMARY grandparent2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2 DEPENDENT SUBQUERY child1 ALL NULL NULL NULL NULL 15 Using where; Start materialize; Scan
-2 DEPENDENT SUBQUERY child2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+2 DEPENDENT SUBQUERY child2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
2 DEPENDENT SUBQUERY parent1 ref col_varchar_key col_varchar_key 4 test.child1.col_varchar_nokey 2 Using where; Using join buffer (Batched Key Access)
SELECT grandparent1.col_varchar_nokey
FROM t1 AS grandparent1 LEFT JOIN t2 AS grandparent2 USING (col_varchar_nokey)
@@ -6708,9 +6708,9 @@ AND grandparent1.col_varchar_key IS NOT
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
-2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start materialize; Scan
-2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index; End materialize
-2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using index condition; Using where; Using join buffer (Batched Key Access)
+2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start temporary
+2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index
+2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using index condition; Using where; End temporary; Using join buffer (Batched Key Access)
SELECT *
FROM t1
WHERE g1 NOT IN
=== modified file 'mysql-test/r/subquery_sj_all_bka_nixbnl.result'
--- a/mysql-test/r/subquery_sj_all_bka_nixbnl.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_all_bka_nixbnl.result 2011-11-03 14:17:25 +0000
@@ -1008,8 +1008,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1024,8 +1024,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1040,8 +1040,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1049,8 +1049,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1058,8 +1058,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1076,8 +1076,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1085,8 +1085,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1100,8 +1100,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1116,8 +1116,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1132,8 +1132,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1142,8 +1142,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1151,8 +1151,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1169,8 +1169,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1178,8 +1178,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1193,8 +1193,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1209,8 +1209,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1235,8 +1235,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1244,8 +1244,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1271,8 +1271,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1288,8 +1288,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1304,8 +1304,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1320,8 +1320,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1329,8 +1329,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1338,8 +1338,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1356,8 +1356,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1365,8 +1365,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1582,8 +1582,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1614,8 +1614,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1650,8 +1650,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2038,8 +2038,8 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2208,8 +2208,8 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2235,8 +2235,8 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2250,9 +2250,9 @@ c1 c2 c3
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -2269,9 +2269,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2288,9 +2288,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2298,9 +2298,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2308,9 +2308,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2326,18 +2326,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2388,9 +2388,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2410,9 +2410,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2437,9 +2437,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2622,9 +2622,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2896,8 +2896,8 @@ t22.a in (select t12.a from t11, t12 whe
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t11 ALL NULL NULL NULL NULL 8 Using where; Using temporary; Using filesort; Start materialize; Scan
1 PRIMARY t12 ALL NULL NULL NULL NULL 8 Using where; End materialize
-1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where
1 PRIMARY t22 ALL NULL NULL NULL NULL 26 Using where
+1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where
select t21.* from t21,t22 where t21.a = t22.a and
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;
a b c
@@ -2910,7 +2910,7 @@ select (select max(Y.a) from t1 Y where
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY X ALL NULL NULL NULL NULL 2
2 DEPENDENT SUBQUERY Y ALL NULL NULL NULL NULL 2 Using where
-2 DEPENDENT SUBQUERY Z ALL NULL NULL NULL NULL 2 Materialize
+2 DEPENDENT SUBQUERY Z ALL NULL NULL NULL NULL 2 Using where; FirstMatch(Y)
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;
subq
NULL
@@ -3109,7 +3109,7 @@ id select_type table type possible_keys
explain select * from t2 where a in (select a from t2);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t2)
explain select * from t2 where a in (select a from t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2
@@ -3124,7 +3124,7 @@ insert into t1 values (1),(2);
explain select * from t1 where a in (select a from t1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
drop table t1;
create table t1 (a int);
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
@@ -3193,7 +3193,7 @@ insert into t2 select A.a + 10*B.a, A.a
explain select * from t1 where (a,b) in (select a,b from t2);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 10
-1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Materialize
drop table t0, t1, t2;
create table t0 (a decimal(4,2));
insert into t0 values (10.24), (22.11);
@@ -3202,7 +3202,7 @@ insert into t1 select * from t0;
explain select * from t0 where a in (select a from t1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t0 ALL NULL NULL NULL NULL 2
-1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; FirstMatch(t0)
select * from t0 where a in (select a from t1);
a
10.24
@@ -3215,7 +3215,7 @@ insert into t1 select * from t0;
explain select * from t0 where a in (select a from t1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t0 ALL NULL NULL NULL NULL 2
-1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; FirstMatch(t0)
select * from t0 where a in (select a from t1);
a
2008-01-01
@@ -5251,10 +5251,10 @@ explain select t2.uid from t2, t1
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
and t2.uid=t1.fid;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t4 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ref uid uid 5 const 1 Using where; Using join buffer (Batched Key Access)
+1 PRIMARY t4 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ref uid uid 5 const 1 Using where; End materialize; Using join buffer (Batched Key Access)
1 PRIMARY t2 ALL NULL NULL NULL NULL 2
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
select t2.uid from t2, t1
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
and t2.uid=t1.fid;
@@ -5332,9 +5332,9 @@ t2.Code IN (SELECT Country FROM t3
WHERE Language='English' AND Percentage > 10 AND
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using index condition; Using MRR; Start temporary
+1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using index condition; Using MRR; Materialize; Scan
1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where; Using join buffer (Batched Key Access)
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using index condition; Using where; End temporary; Using join buffer (Batched Key Access)
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using index condition; Using where; Using join buffer (Batched Key Access)
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
@@ -5842,8 +5842,8 @@ INSERT INTO t2 VALUES (1, 0), (1, 1), (2
EXPLAIN
SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 5
-1 PRIMARY t2 index k k 10 NULL 4 Using where; Using index; Materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 5 Using where
+1 PRIMARY t2 ref k k 5 test.t1.i 1 Using where; Using index; FirstMatch(t1)
SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0);
i
1
@@ -6001,9 +6001,9 @@ INSERT INTO t3 VALUES (1), (2);
explain extended SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t3 LEFT JOIN t2 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where; End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where; End materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
Warnings:
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` = `test`.`t3`.`i`)
SELECT * FROM t1 WHERE (t1.i) IN
@@ -6523,8 +6523,8 @@ WHERE innr.col_varchar_key = 'a' OR innr
AND outr.col_varchar_nokey < 't'
ORDER BY outr.col_varchar_key, outr.pk;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY innr index PRIMARY,col_varchar_key col_varchar_key 7 NULL 20 Using where; Using index; Using temporary; Using filesort; LooseScan
-1 PRIMARY outr ref col_varchar_key col_varchar_key 3 test.innr.col_varchar_key 1 Using where; Using join buffer (Batched Key Access)
+1 PRIMARY 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
+1 PRIMARY outr ref col_varchar_key col_varchar_key 3 test.innr.col_varchar_key 1 Using where; End temporary; Using join buffer (Batched Key Access)
SELECT outr.col_varchar_key AS x, outr.pk AS y
FROM t1 AS outr
WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key
@@ -6708,9 +6708,9 @@ AND grandparent1.col_varchar_key IS NOT
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
-2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start materialize; Scan
-2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index; End materialize
-2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using index condition; Using where; Using join buffer (Batched Key Access)
+2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start temporary
+2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index
+2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using index condition; Using where; End temporary; Using join buffer (Batched Key Access)
SELECT *
FROM t1
WHERE g1 NOT IN
=== modified file 'mysql-test/r/subquery_sj_all_bkaunique.result'
--- a/mysql-test/r/subquery_sj_all_bkaunique.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_all_bkaunique.result 2011-11-03 14:17:25 +0000
@@ -1009,8 +1009,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1025,8 +1025,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1041,8 +1041,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1050,8 +1050,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1059,8 +1059,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1077,8 +1077,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1086,8 +1086,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1101,8 +1101,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1117,8 +1117,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1133,8 +1133,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1143,8 +1143,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1152,8 +1152,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1170,8 +1170,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1179,8 +1179,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1194,8 +1194,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1210,8 +1210,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1227,7 +1227,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1236,8 +1236,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1245,8 +1245,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1264,7 +1264,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1272,8 +1272,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1289,8 +1289,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1305,8 +1305,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1321,8 +1321,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1330,8 +1330,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1339,8 +1339,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1357,8 +1357,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1366,8 +1366,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1583,8 +1583,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1600,7 +1600,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1615,8 +1615,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1625,7 +1625,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1634,7 +1634,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1651,8 +1651,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1661,7 +1661,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1879,7 +1879,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
@@ -1895,7 +1895,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -1911,7 +1911,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -1920,7 +1920,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -1928,9 +1928,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1946,18 +1946,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch(t1)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1971,7 +1971,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
@@ -1987,7 +1987,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2003,7 +2003,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2013,7 +2013,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2039,8 +2039,8 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2096,7 +2096,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2134,7 +2134,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2160,7 +2160,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
@@ -2176,7 +2176,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2192,7 +2192,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2201,7 +2201,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2209,8 +2209,8 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2236,8 +2236,8 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2251,9 +2251,9 @@ c1 c2 c3
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -2270,9 +2270,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2289,9 +2289,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2299,9 +2299,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2309,9 +2309,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2327,18 +2327,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2389,9 +2389,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2411,9 +2411,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 FirstMatch
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2438,9 +2438,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 FirstMatch
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2472,7 +2472,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2497,7 +2497,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2506,7 +2506,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2533,7 +2533,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2566,9 +2566,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2595,9 +2595,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2623,9 +2623,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2647,9 +2647,9 @@ c1 c2 c3
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -2669,9 +2669,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2691,9 +2691,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2702,9 +2702,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2713,9 +2713,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2731,18 +2731,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2896,9 +2896,9 @@ explain select t21.* from t21,t22 where
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;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t11 ALL NULL NULL NULL NULL 8 Using where; Using temporary; Using filesort; Start materialize; Scan
-1 PRIMARY t12 ALL NULL NULL NULL NULL 8 Using where; End materialize
-1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t12 ALL NULL NULL NULL NULL 8 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t22 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
select t21.* from t21,t22 where t21.a = t22.a and
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;
a b c
@@ -2951,7 +2951,7 @@ a
explain select * from (select a from t0) X where a in (select a from t1);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 11
-1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Using where; FirstMatch(<derived2>); Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Materialize
2 DERIVED t0 ALL NULL NULL NULL NULL 11
drop table t0, t1;
create table t0 (a int);
@@ -2963,8 +2963,8 @@ create table t3 (a int);
insert into t3 select A.a + 10*B.a from t0 A, t0 B;
explain select * from t3 where a in (select kp1 from t1 where kp1<20);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; LooseScan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100
+1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; Materialize
select * from t3 where a in (select kp1 from t1 where kp1<20);
a
0
@@ -2989,8 +2989,8 @@ a
19
explain select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; LooseScan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; Materialize
select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
a
0
@@ -3018,9 +3018,9 @@ insert into t4 select a from t3;
explain select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using index condition; Using where; LooseScan
-1 PRIMARY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index; FirstMatch(t1)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100
+1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using index condition; Using where; Using MRR; Start materialize
+1 PRIMARY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index; End materialize
select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
a
@@ -3062,7 +3062,7 @@ id select_type table type possible_keys
1 PRIMARY A ALL NULL NULL NULL NULL 10
1 PRIMARY B ALL NULL NULL NULL NULL 10 Using join buffer (Block Nested Loop)
1 PRIMARY C ALL NULL NULL NULL NULL 10 Using join buffer (Block Nested Loop)
-1 PRIMARY D ALL NULL NULL NULL NULL 12 Using where; FirstMatch(C); Using join buffer (Block Nested Loop)
+1 PRIMARY D ALL NULL NULL NULL NULL 12 Materialize
flush status;
select count(*) from t0 A, t0 B, t0 C
where C.a in (select a from t1 D);
@@ -3180,12 +3180,12 @@ insert into t1 select A.a, B.a, 'filler'
create table t2 as select * from t1;
explain select * from t2 where a in (select b from t1 where a=3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range a a 5 NULL 8 Using where; Using index; LooseScan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 100
+1 PRIMARY t1 ref a a 5 const 8 Using index; Materialize
explain select * from t2 where (b,a) in (select a,b from t1 where a=3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range a a 5 NULL 8 Using where; Using index; LooseScan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t1 ref a a 5 const 8 Using index; Materialize
drop table t1,t2;
create table t1 (a int, b int);
insert into t1 select a,a from t0;
@@ -3194,7 +3194,7 @@ insert into t2 select A.a + 10*B.a, A.a
explain select * from t1 where (a,b) in (select a,b from t2);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 10
-1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Materialize
drop table t0, t1, t2;
create table t0 (a decimal(4,2));
insert into t0 values (10.24), (22.11);
@@ -3230,9 +3230,9 @@ insert into t2 select * from t2;
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);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3
-1 PRIMARY X ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY Y ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY Z ALL NULL NULL NULL NULL 6 Using where; FirstMatch(t1)
+1 PRIMARY X ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY Y ALL NULL NULL NULL NULL 6 Using join buffer (Block Nested Loop)
+1 PRIMARY Z ALL NULL NULL NULL NULL 6 End materialize; Using join buffer (Block Nested Loop)
drop table t0,t1,t2;
set @save_join_buffer_size = @@join_buffer_size;
set join_buffer_size= 8192;
@@ -3284,7 +3284,7 @@ a, mid(filler1, 1,10), length(filler1)=l
from t2 ot where a in (select a from t1 it);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY ot ALL NULL NULL NULL NULL 22
-1 PRIMARY it ALL NULL NULL NULL NULL 32 Using where; FirstMatch(ot); Using join buffer (Block Nested Loop)
+1 PRIMARY it ALL NULL NULL NULL NULL 32 Materialize
select
a, mid(filler1, 1,10), length(filler1)=length(filler2)
from t2 ot where a in (select a from t1 it);
@@ -3350,7 +3350,7 @@ a, mid(filler1, 1,10), length(filler1)=l
from t2 ot where a in (select a from t1 it);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY ot ALL NULL NULL NULL NULL 22
-1 PRIMARY it ALL NULL NULL NULL NULL 52 Using where; FirstMatch(ot); Using join buffer (Block Nested Loop)
+1 PRIMARY it ALL NULL NULL NULL NULL 52 Materialize
select
a, mid(filler1, 1,10), length(filler1)=length(filler2)
from t2 ot where a in (select a from t1 it);
@@ -3521,11 +3521,11 @@ where (a1, a2) IN
where t2.b2 = substring(t2_16.b2,1,6) and
t2.b1 IN (select c1 from t3 where c2 > '0')));
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
-1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where
-1 PRIMARY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where
-1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Start temporary
+1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; End temporary; Using join buffer (Block Nested Loop)
Warnings:
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)))
drop table t1_16, t2_16, t3_16, t1, t2, t3;
@@ -4048,18 +4048,18 @@ EXPLAIN EXTENDED SELECT vkey FROM t0 WHE
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t0 ALL PRIMARY NULL NULL NULL 5 100.00
-1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00 Using where; Using join buffer (Batched Key Access (unique))
-1 PRIMARY t2 ref vkey vkey 4 test.t1.vnokey 2 100.00 Using index; FirstMatch(t1)
+1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00 Using join buffer (Batched Key Access (unique))
+1 PRIMARY t2 index vkey vkey 4 NULL 5 80.00 Using where; Using index; FirstMatch(t1); Using join buffer (Block Nested Loop)
Warnings:
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`))
SELECT vkey FROM t0 WHERE pk IN
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
vkey
g
-v
+n
t
u
-n
+v
DROP TABLE t0;
# End of bug#46556
@@ -4291,8 +4291,8 @@ SELECT t1_1 .varchar_key
FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1 .int_key
);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; FirstMatch(t1_1)
+1 PRIMARY t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index; Start materialize; Scan
+1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t0 ALL NULL NULL NULL NULL 20 Using where; Using join buffer (Block Nested Loop)
SELECT t0.int_key
FROM t0, t2
@@ -4312,8 +4312,8 @@ FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 system NULL NULL NULL NULL 1
-1 PRIMARY t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; FirstMatch(t1_1)
+1 PRIMARY t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index; Start materialize; Scan
+1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t0 ALL NULL NULL NULL NULL 20 Using where; Using join buffer (Block Nested Loop)
DROP TABLE t0, t1, t2;
# End of bug#46550
@@ -4499,8 +4499,8 @@ AND ot.val IN (SELECT it2.val FROM it2
WHERE it2.val LIKE 'a%' OR it2.val LIKE 'e%');
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY ot ALL NULL NULL NULL NULL 5
-1 PRIMARY it2 ALL NULL NULL NULL NULL 5 Using where; FirstMatch(ot); Using join buffer (Block Nested Loop)
-1 PRIMARY it1 ALL NULL NULL NULL NULL 6 Using where; FirstMatch(it2); Using join buffer (Block Nested Loop)
+1 PRIMARY it2 ALL NULL NULL NULL NULL 5 Using where; Materialize
+1 PRIMARY it1 ALL NULL NULL NULL NULL 6 Using where; Materialize
SELECT *
FROM ot
WHERE ot.val IN (SELECT it1.val FROM it1
@@ -4710,8 +4710,8 @@ WHERE PNUM IN
(SELECT PNUM FROM PROJ));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY STAFF ALL NULL NULL NULL NULL 5
-1 PRIMARY PROJ ALL NULL NULL NULL NULL 6
-1 PRIMARY WORKS ALL NULL NULL NULL NULL 12 Using where; FirstMatch(STAFF)
+1 PRIMARY PROJ ALL NULL NULL NULL NULL 6 Start materialize
+1 PRIMARY WORKS ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT EMPNUM, EMPNAME
FROM STAFF
WHERE EMPNUM IN
@@ -4862,7 +4862,7 @@ Note 1003 /* select#1 */ select `test`.`
explain extended SELECT one,two from t1 where ROW(one,two) IN (SELECT one,two FROM t2 WHERE flag = 'N');
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 8 100.00
-1 PRIMARY t2 ALL NULL NULL NULL NULL 9 100.00 Using where; FirstMatch(t1); Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 9 100.00 Using where; Materialize
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`one` AS `one`,`test`.`t1`.`two` AS `two` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`two` = `test`.`t1`.`two`) and (`test`.`t2`.`one` = `test`.`t1`.`one`) and (`test`.`t2`.`flag` = 'N'))
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;
@@ -4887,8 +4887,8 @@ CREATE INDEX I1 ON t1 (a);
CREATE INDEX I2 ON t1 (b);
EXPLAIN SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t1 ref I2 I2 13 test.t1.a 2 Using index condition; Using join buffer (Batched Key Access (unique))
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using index; LooseScan
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
a b
CREATE TABLE t2 (a VARCHAR(1), b VARCHAR(10));
@@ -4897,15 +4897,15 @@ CREATE INDEX I1 ON t2 (a);
CREATE INDEX I2 ON t2 (b);
EXPLAIN SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index I1 I1 4 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t2 ref I2 I2 13 test.t2.a 2 Using index condition; Using join buffer (Batched Key Access (unique))
+1 PRIMARY t2 index I1 I1 4 NULL 2 Using index; LooseScan
+1 PRIMARY t2 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
a b
EXPLAIN
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t1 ref I2 I2 13 test.t1.a 2 Using index condition; Using join buffer (Batched Key Access (unique))
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
a b
DROP TABLE t1,t2;
@@ -5008,8 +5008,8 @@ FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5022,13 +5022,13 @@ WHERE EMPNUM IN
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP INDEX t1_IDX ON t1;
CREATE INDEX t1_IDX ON t1(EMPNUM);
@@ -5043,8 +5043,8 @@ FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5057,13 +5057,13 @@ WHERE EMPNUM IN
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP INDEX t1_IDX ON t1;
EXPLAIN SELECT EMPNAME
@@ -5077,8 +5077,8 @@ FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5091,13 +5091,13 @@ WHERE EMPNUM IN
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP TABLE t1, t2, t3;
#
@@ -5151,9 +5151,9 @@ FROM t2
WHERE 1 IN(SELECT 1
FROM t3));
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 End materialize; Using join buffer (Block Nested Loop)
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id` from `test`.`t1` semi join (`test`.`t3` join `test`.`t2`) where 1
delete from t2;
@@ -5190,9 +5190,9 @@ WHERE 1 IN(SELECT 1
FROM t4)));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 9
-1 PRIMARY t2 ALL NULL NULL NULL NULL 9
-1 PRIMARY t3 ALL NULL NULL NULL NULL 9
-1 PRIMARY t4 ALL NULL NULL NULL NULL 9 FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 9 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 9 Using join buffer (Block Nested Loop)
+1 PRIMARY t4 ALL NULL NULL NULL NULL 9 End materialize; Using join buffer (Block Nested Loop)
SELECT *
FROM t1
WHERE 1 IN(SELECT 1
@@ -5252,10 +5252,10 @@ explain select t2.uid from t2, t1
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
and t2.uid=t1.fid;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t4 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ref uid uid 5 const 1 Using where; Using join buffer (Batched Key Access (unique))
+1 PRIMARY t4 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ref uid uid 5 const 1 Using where; End materialize; Using join buffer (Batched Key Access (unique))
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
select t2.uid from t2, t1
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
and t2.uid=t1.fid;
@@ -5333,9 +5333,9 @@ t2.Code IN (SELECT Country FROM t3
WHERE Language='English' AND Percentage > 10 AND
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using index condition; Using MRR; Start temporary
+1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using index condition; Using MRR; Materialize; Scan
1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where; Using join buffer (Batched Key Access (unique))
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using index condition; Using where; End temporary; Using join buffer (Batched Key Access (unique))
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using index condition; Using where; Using join buffer (Batched Key Access (unique))
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
@@ -6002,9 +6002,9 @@ INSERT INTO t3 VALUES (1), (2);
explain extended SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t3 LEFT JOIN t2 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (Block Nested Loop)
Warnings:
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` = `test`.`t3`.`i`)
SELECT * FROM t1 WHERE (t1.i) IN
@@ -6059,8 +6059,8 @@ insert into t3 values(2),(2);
explain select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
a
1
@@ -6079,10 +6079,10 @@ explain SELECT * FROM t1
WHERE t1.a IN (SELECT t2.a
FROM t2 LEFT JOIN (t2 AS t2inner, t3) ON t2.a=t3.a);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
1 PRIMARY t2inner ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1
WHERE t1.a IN (SELECT t2.a
FROM t2 LEFT JOIN (t2 AS t2inner, t3) ON t2.a=t3.a);
@@ -6161,8 +6161,8 @@ WHERE (varchar_nokey, varchar_nokey) IN
FROM t2
WHERE varchar_nokey < 'n' XOR pk);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL varchar_key NULL NULL NULL 15 Using where; Materialize; Scan
-1 PRIMARY t1 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 18
+1 PRIMARY t2 ALL varchar_key NULL NULL NULL 15 Using where; Materialize
DROP TABLE t1, t2;
# End of the test for bug#45174.
#
@@ -6187,8 +6187,8 @@ FROM t2 JOIN t3
WHERE t2.i + t3.i = 5);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 10
-1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 10 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 10 Using where; End materialize; Using join buffer (Block Nested Loop)
DROP TABLE t1,t2,t3;
# End of the test for bug#50019.
#
@@ -6222,7 +6222,7 @@ FROM it2,it3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY ot1 ALL NULL NULL NULL NULL 2
1 PRIMARY it2 ALL NULL NULL NULL NULL 4 Start materialize; Scan
-1 PRIMARY it3 ALL NULL NULL NULL NULL 6 End materialize
+1 PRIMARY it3 ALL NULL NULL NULL NULL 6 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY ot4 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (Block Nested Loop)
DROP TABLE IF EXISTS ot1, ot4, it2, it3;
# End of the test for bug#52068.
@@ -6440,10 +6440,10 @@ ON alias2.col_varchar_10_latin1_key
ON alias1.col_varchar_1024_utf8_key
WHERE alias1.pk AND alias1.pk < 3 OR alias1.pk AND alias3.pk);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY alias1 ALL NULL NULL NULL NULL 4 Using where; Start materialize; Scan
-1 PRIMARY alias3 index NULL PRIMARY 4 NULL 1 Using where; Using index
-1 PRIMARY alias2 index NULL col_varchar_10_latin1_key 13 NULL 4 Using where; Using index; End materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2
+1 PRIMARY alias1 ALL NULL NULL NULL NULL 4 Using where; Start materialize
+1 PRIMARY alias3 index NULL PRIMARY 4 NULL 1 Using where; Using index; Using join buffer (Block Nested Loop)
+1 PRIMARY alias2 index NULL col_varchar_10_latin1_key 13 NULL 4 Using where; Using index; End materialize; Using join buffer (Block Nested Loop)
SELECT *
FROM t3
WHERE col_varchar_10_latin1_key IN (
@@ -6524,8 +6524,8 @@ WHERE innr.col_varchar_key = 'a' OR innr
AND outr.col_varchar_nokey < 't'
ORDER BY outr.col_varchar_key, outr.pk;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY innr index PRIMARY,col_varchar_key col_varchar_key 7 NULL 20 Using where; Using index; Using temporary; Using filesort; LooseScan
-1 PRIMARY outr ref col_varchar_key col_varchar_key 3 test.innr.col_varchar_key 1 Using where; Using join buffer (Batched Key Access (unique))
+1 PRIMARY 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
+1 PRIMARY outr ref col_varchar_key col_varchar_key 3 test.innr.col_varchar_key 1 Using where; End temporary; Using join buffer (Batched Key Access (unique))
SELECT outr.col_varchar_key AS x, outr.pk AS y
FROM t1 AS outr
WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key
@@ -6582,7 +6582,7 @@ id select_type table type possible_keys
1 PRIMARY grandparent1 ALL NULL NULL NULL NULL 15 Using where
1 PRIMARY grandparent2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2 DEPENDENT SUBQUERY child1 ALL NULL NULL NULL NULL 15 Using where; Start materialize; Scan
-2 DEPENDENT SUBQUERY child2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+2 DEPENDENT SUBQUERY child2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
2 DEPENDENT SUBQUERY parent1 ref col_varchar_key col_varchar_key 4 test.child1.col_varchar_nokey 2 Using where; Using join buffer (Batched Key Access (unique))
SELECT grandparent1.col_varchar_nokey
FROM t1 AS grandparent1 LEFT JOIN t2 AS grandparent2 USING (col_varchar_nokey)
@@ -6709,9 +6709,9 @@ AND grandparent1.col_varchar_key IS NOT
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
-2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start materialize; Scan
-2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index; End materialize
-2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using index condition; Using where; Using join buffer (Batched Key Access (unique))
+2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start temporary
+2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index
+2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using index condition; Using where; End temporary; Using join buffer (Batched Key Access (unique))
SELECT *
FROM t1
WHERE g1 NOT IN
=== modified file 'mysql-test/r/subquery_sj_dupsweed.result'
--- a/mysql-test/r/subquery_sj_dupsweed.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_dupsweed.result 2011-11-03 14:17:25 +0000
@@ -75,11 +75,11 @@ a
3
explain extended select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index; Start temporary
-1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ref a a 10 test.t2.a,test.t3.a 116 100.00 Using index; End temporary
+1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Start temporary
+1 PRIMARY t1 ref a a 5 test.t2.a 101 100.00 Using index
+1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1` join `test`.`t3`) where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t1`.`b` = `test`.`t3`.`a`))
+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`))
insert into t1 values (3,31);
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
a
@@ -2307,8 +2307,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2325,8 +2325,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2334,8 +2334,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2409,8 +2409,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2436,8 +2436,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2621,8 +2621,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -4884,8 +4884,8 @@ CREATE INDEX I1 ON t1 (a);
CREATE INDEX I2 ON t1 (b);
EXPLAIN SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index I1 I1 2 NULL 2 Using index; Start temporary
-1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Start temporary
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
a b
CREATE TABLE t2 (a VARCHAR(1), b VARCHAR(10));
@@ -4894,15 +4894,15 @@ CREATE INDEX I1 ON t2 (a);
CREATE INDEX I2 ON t2 (b);
EXPLAIN SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index I1 I1 4 NULL 2 Using index; Start temporary
-1 PRIMARY t2 ALL I2 NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL I2 NULL NULL NULL 2 Start temporary
+1 PRIMARY t2 index I1 I1 4 NULL 2 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
a b
EXPLAIN
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; Start temporary
-1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Start temporary
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
a b
DROP TABLE t1,t2;
@@ -5331,8 +5331,8 @@ WHERE Language='English' AND Percentage
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Start temporary
-1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where; End temporary
+1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where; End temporary
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
=== modified file 'mysql-test/r/subquery_sj_dupsweed_bka.result'
--- a/mysql-test/r/subquery_sj_dupsweed_bka.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_dupsweed_bka.result 2011-11-03 14:17:25 +0000
@@ -76,11 +76,11 @@ a
3
explain extended select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index; Start temporary
-1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ref a a 10 test.t2.a,test.t3.a 116 100.00 Using index; End temporary
+1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Start temporary
+1 PRIMARY t1 ref a a 5 test.t2.a 101 100.00 Using index
+1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1` join `test`.`t3`) where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t1`.`b` = `test`.`t3`.`a`))
+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`))
insert into t1 values (3,31);
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
a
@@ -2308,8 +2308,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2326,8 +2326,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2335,8 +2335,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2410,8 +2410,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2437,8 +2437,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2622,8 +2622,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -4885,8 +4885,8 @@ CREATE INDEX I1 ON t1 (a);
CREATE INDEX I2 ON t1 (b);
EXPLAIN SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index I1 I1 2 NULL 2 Using index; Start temporary
-1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Start temporary
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
a b
CREATE TABLE t2 (a VARCHAR(1), b VARCHAR(10));
@@ -4895,15 +4895,15 @@ CREATE INDEX I1 ON t2 (a);
CREATE INDEX I2 ON t2 (b);
EXPLAIN SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index I1 I1 4 NULL 2 Using index; Start temporary
-1 PRIMARY t2 ALL I2 NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL I2 NULL NULL NULL 2 Start temporary
+1 PRIMARY t2 index I1 I1 4 NULL 2 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
a b
EXPLAIN
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; Start temporary
-1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Start temporary
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
a b
DROP TABLE t1,t2;
@@ -5332,8 +5332,8 @@ WHERE Language='English' AND Percentage
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Start temporary
-1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where; End temporary
+1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where; End temporary
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
=== modified file 'mysql-test/r/subquery_sj_dupsweed_bka_nixbnl.result'
--- a/mysql-test/r/subquery_sj_dupsweed_bka_nixbnl.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_dupsweed_bka_nixbnl.result 2011-11-03 14:17:25 +0000
@@ -2308,8 +2308,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2326,8 +2326,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2335,8 +2335,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2410,8 +2410,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2437,8 +2437,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2622,8 +2622,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -5332,8 +5332,8 @@ WHERE Language='English' AND Percentage
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Start temporary
-1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where; End temporary
+1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where; End temporary
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
=== modified file 'mysql-test/r/subquery_sj_dupsweed_bkaunique.result'
--- a/mysql-test/r/subquery_sj_dupsweed_bkaunique.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_dupsweed_bkaunique.result 2011-11-03 14:17:25 +0000
@@ -77,11 +77,11 @@ a
3
explain extended select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index; Start temporary
-1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ref a a 10 test.t2.a,test.t3.a 116 100.00 Using index; End temporary
+1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Start temporary
+1 PRIMARY t1 ref a a 5 test.t2.a 101 100.00 Using index
+1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1` join `test`.`t3`) where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t1`.`b` = `test`.`t3`.`a`))
+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`))
insert into t1 values (3,31);
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
a
@@ -2309,8 +2309,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2327,8 +2327,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2336,8 +2336,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2411,8 +2411,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2438,8 +2438,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2623,8 +2623,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -4886,8 +4886,8 @@ CREATE INDEX I1 ON t1 (a);
CREATE INDEX I2 ON t1 (b);
EXPLAIN SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index I1 I1 2 NULL 2 Using index; Start temporary
-1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Start temporary
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
a b
CREATE TABLE t2 (a VARCHAR(1), b VARCHAR(10));
@@ -4896,15 +4896,15 @@ CREATE INDEX I1 ON t2 (a);
CREATE INDEX I2 ON t2 (b);
EXPLAIN SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index I1 I1 4 NULL 2 Using index; Start temporary
-1 PRIMARY t2 ALL I2 NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL I2 NULL NULL NULL 2 Start temporary
+1 PRIMARY t2 index I1 I1 4 NULL 2 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
a b
EXPLAIN
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; Start temporary
-1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Start temporary
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
a b
DROP TABLE t1,t2;
@@ -5333,8 +5333,8 @@ WHERE Language='English' AND Percentage
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Start temporary
-1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where; End temporary
+1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where; End temporary
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
=== modified file 'mysql-test/r/subquery_sj_firstmatch.result'
--- a/mysql-test/r/subquery_sj_firstmatch.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_firstmatch.result 2011-11-03 14:17:25 +0000
@@ -2037,9 +2037,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2207,9 +2207,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2234,9 +2234,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2307,9 +2307,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2325,18 +2325,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2409,9 +2409,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 FirstMatch
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2436,9 +2436,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 FirstMatch
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2621,9 +2621,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -3227,10 +3227,10 @@ create table t2 as select a as a, a as b
insert into t2 select * from t2;
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);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 3
-1 PRIMARY X ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY Y ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY Z ALL NULL NULL NULL NULL 6 Using where; FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Start temporary
+1 PRIMARY X ALL NULL NULL NULL NULL 6 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY Y ALL NULL NULL NULL NULL 6 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY Z ALL NULL NULL NULL NULL 6 Using where; End temporary; Using join buffer (Block Nested Loop)
drop table t0,t1,t2;
set @save_join_buffer_size = @@join_buffer_size;
set join_buffer_size= 8192;
@@ -3519,11 +3519,11 @@ where (a1, a2) IN
where t2.b2 = substring(t2_16.b2,1,6) and
t2.b1 IN (select c1 from t3 where c2 > '0')));
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
-1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where
-1 PRIMARY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where
-1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Start temporary
+1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; End temporary; Using join buffer (Block Nested Loop)
Warnings:
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)))
drop table t1_16, t2_16, t3_16, t1, t2, t3;
@@ -4046,18 +4046,18 @@ EXPLAIN EXTENDED SELECT vkey FROM t0 WHE
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t0 ALL PRIMARY NULL NULL NULL 5 100.00
-1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00 Using where
-1 PRIMARY t2 ref vkey vkey 4 test.t1.vnokey 2 100.00 Using index; FirstMatch(t1)
+1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00
+1 PRIMARY t2 index vkey vkey 4 NULL 5 80.00 Using where; Using index; FirstMatch(t1); Using join buffer (Block Nested Loop)
Warnings:
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`))
SELECT vkey FROM t0 WHERE pk IN
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
vkey
g
-v
+n
t
u
-n
+v
DROP TABLE t0;
# End of bug#46556
@@ -4885,8 +4885,8 @@ CREATE INDEX I1 ON t1 (a);
CREATE INDEX I2 ON t1 (b);
EXPLAIN SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where
-1 PRIMARY t1 ref I1 I1 2 test.t1.b 2 Using where; Using index; FirstMatch(t1)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; FirstMatch(t1); Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
a b
CREATE TABLE t2 (a VARCHAR(1), b VARCHAR(10));
@@ -4895,15 +4895,15 @@ CREATE INDEX I1 ON t2 (a);
CREATE INDEX I2 ON t2 (b);
EXPLAIN SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL I2 NULL NULL NULL 2 Using where
-1 PRIMARY t2 ref I1 I1 4 test.t2.b 2 Using where; Using index; FirstMatch(t2)
+1 PRIMARY t2 ALL I2 NULL NULL NULL 2
+1 PRIMARY t2 index I1 I1 4 NULL 2 Using where; Using index; FirstMatch(t2); Using join buffer (Block Nested Loop)
SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
a b
EXPLAIN
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where
-1 PRIMARY t1 ref I1 I1 2 test.t1.b 2 Using where; Using index; FirstMatch(t1)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; FirstMatch(t1); Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
a b
DROP TABLE t1,t2;
@@ -5005,9 +5005,9 @@ WHERE PNUM IN
FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 eq_ref t1_IDX t1_IDX 3 test.t3.EMPNUM 1 End temporary
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5019,14 +5019,14 @@ WHERE EMPNUM IN
WHERE PTYPE = 'Design'))";
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 eq_ref t1_IDX t1_IDX 3 test.t3.EMPNUM 1 End temporary
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start temporary
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
+1 SIMPLE t1 eq_ref t1_IDX t1_IDX 3 test.t3.EMPNUM 1 End temporary
DEALLOCATE PREPARE stmt;
DROP INDEX t1_IDX ON t1;
CREATE INDEX t1_IDX ON t1(EMPNUM);
@@ -5040,9 +5040,9 @@ WHERE PNUM IN
FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5 Using where; End temporary; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5054,14 +5054,14 @@ WHERE EMPNUM IN
WHERE PTYPE = 'Design'))";
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5 Using where; End temporary; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start temporary
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
+1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5 Using where; End temporary; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP INDEX t1_IDX ON t1;
EXPLAIN SELECT EMPNAME
@@ -5187,10 +5187,10 @@ FROM t3
WHERE 1 IN(SELECT 1
FROM t4)));
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 9
-1 PRIMARY t2 ALL NULL NULL NULL NULL 9
-1 PRIMARY t3 ALL NULL NULL NULL NULL 9
-1 PRIMARY t4 ALL NULL NULL NULL NULL 9 FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 9 Start temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 9 Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 9 Using join buffer (Block Nested Loop)
+1 PRIMARY t4 ALL NULL NULL NULL NULL 9 End temporary; Using join buffer (Block Nested Loop)
SELECT *
FROM t1
WHERE 1 IN(SELECT 1
@@ -5332,8 +5332,8 @@ WHERE Language='English' AND Percentage
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Start temporary
-1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where; End temporary
+1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where; End temporary
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
@@ -5841,8 +5841,8 @@ INSERT INTO t2 VALUES (1, 0), (1, 1), (2
EXPLAIN
SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 5 Using where
-1 PRIMARY t2 ref k k 5 test.t1.i 1 Using where; Using index; FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 5
+1 PRIMARY t2 index k k 10 NULL 4 Using where; Using index; FirstMatch(t1); Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0);
i
1
@@ -6056,9 +6056,9 @@ insert into t2 values(1),(1),(1),(1);
insert into t3 values(2),(2);
explain select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
a
1
@@ -6176,17 +6176,17 @@ SELECT * FROM t1 WHERE t1.i IN (SELECT t
FROM t2 JOIN t3
WHERE t2.i + t3.i = 5);
i
-1
-2
-3
4
+3
+2
+1
explain SELECT * FROM t1 WHERE t1.i IN (SELECT t2.i
FROM t2 JOIN t3
WHERE t2.i + t3.i = 5);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 10
-1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 10 Using where; FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 10 Start temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 10 Using where; End temporary; Using join buffer (Block Nested Loop)
DROP TABLE t1,t2,t3;
# End of the test for bug#50019.
#
@@ -6579,9 +6579,9 @@ ON (child1.col_varchar_key > child2.col_
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY grandparent1 ALL NULL NULL NULL NULL 15 Using where
1 PRIMARY grandparent2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-2 DEPENDENT SUBQUERY parent1 ALL col_varchar_key NULL NULL NULL 15 Using where
-2 DEPENDENT SUBQUERY child1 ALL NULL NULL NULL NULL 15 Using where
-2 DEPENDENT SUBQUERY child2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(parent1)
+2 DEPENDENT SUBQUERY child1 ALL NULL NULL NULL NULL 15 Using where; Start temporary
+2 DEPENDENT SUBQUERY child2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
+2 DEPENDENT SUBQUERY parent1 ref col_varchar_key col_varchar_key 4 test.child1.col_varchar_nokey 2 Using where; End temporary
SELECT grandparent1.col_varchar_nokey
FROM t1 AS grandparent1 LEFT JOIN t2 AS grandparent2 USING (col_varchar_nokey)
WHERE (grandparent1.col_varchar_key) IN
@@ -6708,9 +6708,9 @@ AND grandparent1.col_varchar_key IS NOT
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
-2 DEPENDENT SUBQUERY grandparent1 ALL col_varchar_key NULL NULL NULL 20 Using where
-2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Using where
-2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index; FirstMatch(grandparent1)
+2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start temporary
+2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using where
+2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index; End temporary
SELECT *
FROM t1
WHERE g1 NOT IN
=== modified file 'mysql-test/r/subquery_sj_firstmatch_bka.result'
--- a/mysql-test/r/subquery_sj_firstmatch_bka.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_firstmatch_bka.result 2011-11-03 14:17:25 +0000
@@ -2038,9 +2038,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2208,9 +2208,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2235,9 +2235,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2308,9 +2308,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2326,18 +2326,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2410,9 +2410,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 FirstMatch
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2437,9 +2437,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 FirstMatch
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2622,9 +2622,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -3228,10 +3228,10 @@ create table t2 as select a as a, a as b
insert into t2 select * from t2;
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);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 3
-1 PRIMARY X ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY Y ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY Z ALL NULL NULL NULL NULL 6 Using where; FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Start temporary
+1 PRIMARY X ALL NULL NULL NULL NULL 6 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY Y ALL NULL NULL NULL NULL 6 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY Z ALL NULL NULL NULL NULL 6 Using where; End temporary; Using join buffer (Block Nested Loop)
drop table t0,t1,t2;
set @save_join_buffer_size = @@join_buffer_size;
set join_buffer_size= 8192;
@@ -3520,11 +3520,11 @@ where (a1, a2) IN
where t2.b2 = substring(t2_16.b2,1,6) and
t2.b1 IN (select c1 from t3 where c2 > '0')));
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
-1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where
-1 PRIMARY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where
-1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Start temporary
+1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; End temporary; Using join buffer (Block Nested Loop)
Warnings:
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)))
drop table t1_16, t2_16, t3_16, t1, t2, t3;
@@ -4047,18 +4047,18 @@ EXPLAIN EXTENDED SELECT vkey FROM t0 WHE
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t0 ALL PRIMARY NULL NULL NULL 5 100.00
-1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00 Using where
-1 PRIMARY t2 ref vkey vkey 4 test.t1.vnokey 2 100.00 Using index; FirstMatch(t1)
+1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00
+1 PRIMARY t2 index vkey vkey 4 NULL 5 80.00 Using where; Using index; FirstMatch(t1); Using join buffer (Block Nested Loop)
Warnings:
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`))
SELECT vkey FROM t0 WHERE pk IN
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
vkey
g
-v
+n
t
u
-n
+v
DROP TABLE t0;
# End of bug#46556
@@ -4886,8 +4886,8 @@ CREATE INDEX I1 ON t1 (a);
CREATE INDEX I2 ON t1 (b);
EXPLAIN SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where
-1 PRIMARY t1 ref I1 I1 2 test.t1.b 2 Using where; Using index; FirstMatch(t1)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; FirstMatch(t1); Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
a b
CREATE TABLE t2 (a VARCHAR(1), b VARCHAR(10));
@@ -4896,15 +4896,15 @@ CREATE INDEX I1 ON t2 (a);
CREATE INDEX I2 ON t2 (b);
EXPLAIN SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL I2 NULL NULL NULL 2 Using where
-1 PRIMARY t2 ref I1 I1 4 test.t2.b 2 Using where; Using index; FirstMatch(t2)
+1 PRIMARY t2 ALL I2 NULL NULL NULL 2
+1 PRIMARY t2 index I1 I1 4 NULL 2 Using where; Using index; FirstMatch(t2); Using join buffer (Block Nested Loop)
SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
a b
EXPLAIN
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where
-1 PRIMARY t1 ref I1 I1 2 test.t1.b 2 Using where; Using index; FirstMatch(t1)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; FirstMatch(t1); Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
a b
DROP TABLE t1,t2;
@@ -5006,9 +5006,9 @@ WHERE PNUM IN
FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 eq_ref t1_IDX t1_IDX 3 test.t3.EMPNUM 1 End temporary
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5020,14 +5020,14 @@ WHERE EMPNUM IN
WHERE PTYPE = 'Design'))";
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 eq_ref t1_IDX t1_IDX 3 test.t3.EMPNUM 1 End temporary
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start temporary
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
+1 SIMPLE t1 eq_ref t1_IDX t1_IDX 3 test.t3.EMPNUM 1 End temporary
DEALLOCATE PREPARE stmt;
DROP INDEX t1_IDX ON t1;
CREATE INDEX t1_IDX ON t1(EMPNUM);
@@ -5041,9 +5041,9 @@ WHERE PNUM IN
FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5 Using where; End temporary; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5055,14 +5055,14 @@ WHERE EMPNUM IN
WHERE PTYPE = 'Design'))";
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5 Using where; End temporary; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start temporary
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
+1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5 Using where; End temporary; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP INDEX t1_IDX ON t1;
EXPLAIN SELECT EMPNAME
@@ -5188,10 +5188,10 @@ FROM t3
WHERE 1 IN(SELECT 1
FROM t4)));
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 9
-1 PRIMARY t2 ALL NULL NULL NULL NULL 9
-1 PRIMARY t3 ALL NULL NULL NULL NULL 9
-1 PRIMARY t4 ALL NULL NULL NULL NULL 9 FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 9 Start temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 9 Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 9 Using join buffer (Block Nested Loop)
+1 PRIMARY t4 ALL NULL NULL NULL NULL 9 End temporary; Using join buffer (Block Nested Loop)
SELECT *
FROM t1
WHERE 1 IN(SELECT 1
@@ -5333,8 +5333,8 @@ WHERE Language='English' AND Percentage
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Start temporary
-1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where; End temporary
+1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where; End temporary
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
@@ -5842,8 +5842,8 @@ INSERT INTO t2 VALUES (1, 0), (1, 1), (2
EXPLAIN
SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 5 Using where
-1 PRIMARY t2 ref k k 5 test.t1.i 1 Using where; Using index; FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 5
+1 PRIMARY t2 index k k 10 NULL 4 Using where; Using index; FirstMatch(t1); Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0);
i
1
@@ -6057,9 +6057,9 @@ insert into t2 values(1),(1),(1),(1);
insert into t3 values(2),(2);
explain select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
a
1
@@ -6177,17 +6177,17 @@ SELECT * FROM t1 WHERE t1.i IN (SELECT t
FROM t2 JOIN t3
WHERE t2.i + t3.i = 5);
i
-1
-2
-3
4
+3
+2
+1
explain SELECT * FROM t1 WHERE t1.i IN (SELECT t2.i
FROM t2 JOIN t3
WHERE t2.i + t3.i = 5);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 10
-1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 10 Using where; FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 10 Start temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 10 Using where; End temporary; Using join buffer (Block Nested Loop)
DROP TABLE t1,t2,t3;
# End of the test for bug#50019.
#
@@ -6580,9 +6580,9 @@ ON (child1.col_varchar_key > child2.col_
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY grandparent1 ALL NULL NULL NULL NULL 15 Using where
1 PRIMARY grandparent2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-2 DEPENDENT SUBQUERY parent1 ALL col_varchar_key NULL NULL NULL 15 Using where
-2 DEPENDENT SUBQUERY child1 ALL NULL NULL NULL NULL 15 Using where
-2 DEPENDENT SUBQUERY child2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(parent1)
+2 DEPENDENT SUBQUERY child1 ALL NULL NULL NULL NULL 15 Using where; Start temporary
+2 DEPENDENT SUBQUERY child2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
+2 DEPENDENT SUBQUERY parent1 ref col_varchar_key col_varchar_key 4 test.child1.col_varchar_nokey 2 Using where; End temporary
SELECT grandparent1.col_varchar_nokey
FROM t1 AS grandparent1 LEFT JOIN t2 AS grandparent2 USING (col_varchar_nokey)
WHERE (grandparent1.col_varchar_key) IN
@@ -6709,9 +6709,9 @@ AND grandparent1.col_varchar_key IS NOT
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
-2 DEPENDENT SUBQUERY grandparent1 ALL col_varchar_key NULL NULL NULL 20 Using where
-2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Using where
-2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index; FirstMatch(grandparent1)
+2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start temporary
+2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using where
+2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index; End temporary
SELECT *
FROM t1
WHERE g1 NOT IN
=== modified file 'mysql-test/r/subquery_sj_firstmatch_bka_nixbnl.result'
--- a/mysql-test/r/subquery_sj_firstmatch_bka_nixbnl.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_firstmatch_bka_nixbnl.result 2011-11-03 14:17:25 +0000
@@ -2038,9 +2038,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2208,9 +2208,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2235,9 +2235,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2308,9 +2308,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2326,18 +2326,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2410,9 +2410,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2437,9 +2437,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2622,9 +2622,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2949,8 +2949,8 @@ a
19
explain select * from (select a from t0) X where a in (select a from t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY <derived2> ALL NULL NULL NULL NULL 11
-1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Using where; FirstMatch(<derived2>)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Using where; Start temporary
+1 PRIMARY <derived2> ref auto_key0 auto_key0 5 test.t1.a 2 Using index; End temporary
2 DERIVED t0 ALL NULL NULL NULL NULL 11
drop table t0, t1;
create table t0 (a int);
@@ -5333,8 +5333,8 @@ WHERE Language='English' AND Percentage
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Start temporary
-1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where; End temporary
+1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where; End temporary
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
@@ -6709,9 +6709,9 @@ AND grandparent1.col_varchar_key IS NOT
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
-2 DEPENDENT SUBQUERY grandparent1 ALL col_varchar_key NULL NULL NULL 20 Using where
-2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Using where
-2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index; FirstMatch(grandparent1)
+2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start temporary
+2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using where
+2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index; End temporary
SELECT *
FROM t1
WHERE g1 NOT IN
=== modified file 'mysql-test/r/subquery_sj_firstmatch_bkaunique.result'
--- a/mysql-test/r/subquery_sj_firstmatch_bkaunique.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_firstmatch_bkaunique.result 2011-11-03 14:17:25 +0000
@@ -2039,9 +2039,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2209,9 +2209,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2236,9 +2236,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2309,9 +2309,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2327,18 +2327,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2411,9 +2411,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 FirstMatch
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2438,9 +2438,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 FirstMatch
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2623,9 +2623,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; FirstMatch
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; FirstMatch
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -3229,10 +3229,10 @@ create table t2 as select a as a, a as b
insert into t2 select * from t2;
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);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 3
-1 PRIMARY X ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY Y ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY Z ALL NULL NULL NULL NULL 6 Using where; FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Start temporary
+1 PRIMARY X ALL NULL NULL NULL NULL 6 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY Y ALL NULL NULL NULL NULL 6 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY Z ALL NULL NULL NULL NULL 6 Using where; End temporary; Using join buffer (Block Nested Loop)
drop table t0,t1,t2;
set @save_join_buffer_size = @@join_buffer_size;
set join_buffer_size= 8192;
@@ -3521,11 +3521,11 @@ where (a1, a2) IN
where t2.b2 = substring(t2_16.b2,1,6) and
t2.b1 IN (select c1 from t3 where c2 > '0')));
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00
-1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where
-1 PRIMARY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where
-1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Start temporary
+1 PRIMARY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; End temporary; Using join buffer (Block Nested Loop)
Warnings:
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)))
drop table t1_16, t2_16, t3_16, t1, t2, t3;
@@ -4048,18 +4048,18 @@ EXPLAIN EXTENDED SELECT vkey FROM t0 WHE
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
id select_type table type possible_keys key key_len ref rows filtered Extra
1 PRIMARY t0 ALL PRIMARY NULL NULL NULL 5 100.00
-1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00 Using where
-1 PRIMARY t2 ref vkey vkey 4 test.t1.vnokey 2 100.00 Using index; FirstMatch(t1)
+1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00
+1 PRIMARY t2 index vkey vkey 4 NULL 5 80.00 Using where; Using index; FirstMatch(t1); Using join buffer (Block Nested Loop)
Warnings:
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`))
SELECT vkey FROM t0 WHERE pk IN
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
vkey
g
-v
+n
t
u
-n
+v
DROP TABLE t0;
# End of bug#46556
@@ -4887,8 +4887,8 @@ CREATE INDEX I1 ON t1 (a);
CREATE INDEX I2 ON t1 (b);
EXPLAIN SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where
-1 PRIMARY t1 ref I1 I1 2 test.t1.b 2 Using where; Using index; FirstMatch(t1)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; FirstMatch(t1); Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
a b
CREATE TABLE t2 (a VARCHAR(1), b VARCHAR(10));
@@ -4897,15 +4897,15 @@ CREATE INDEX I1 ON t2 (a);
CREATE INDEX I2 ON t2 (b);
EXPLAIN SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL I2 NULL NULL NULL 2 Using where
-1 PRIMARY t2 ref I1 I1 4 test.t2.b 2 Using where; Using index; FirstMatch(t2)
+1 PRIMARY t2 ALL I2 NULL NULL NULL 2
+1 PRIMARY t2 index I1 I1 4 NULL 2 Using where; Using index; FirstMatch(t2); Using join buffer (Block Nested Loop)
SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
a b
EXPLAIN
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where
-1 PRIMARY t1 ref I1 I1 2 test.t1.b 2 Using where; Using index; FirstMatch(t1)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; FirstMatch(t1); Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
a b
DROP TABLE t1,t2;
@@ -5007,9 +5007,9 @@ WHERE PNUM IN
FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 eq_ref t1_IDX t1_IDX 3 test.t3.EMPNUM 1 End temporary
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5021,14 +5021,14 @@ WHERE EMPNUM IN
WHERE PTYPE = 'Design'))";
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 eq_ref t1_IDX t1_IDX 3 test.t3.EMPNUM 1 End temporary
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start temporary
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
+1 SIMPLE t1 eq_ref t1_IDX t1_IDX 3 test.t3.EMPNUM 1 End temporary
DEALLOCATE PREPARE stmt;
DROP INDEX t1_IDX ON t1;
CREATE INDEX t1_IDX ON t1(EMPNUM);
@@ -5042,9 +5042,9 @@ WHERE PNUM IN
FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5 Using where; End temporary; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5056,14 +5056,14 @@ WHERE EMPNUM IN
WHERE PTYPE = 'Design'))";
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5 Using where; End temporary; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; FirstMatch(t1)
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start temporary
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (Block Nested Loop)
+1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5 Using where; End temporary; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP INDEX t1_IDX ON t1;
EXPLAIN SELECT EMPNAME
@@ -5189,10 +5189,10 @@ FROM t3
WHERE 1 IN(SELECT 1
FROM t4)));
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 9
-1 PRIMARY t2 ALL NULL NULL NULL NULL 9
-1 PRIMARY t3 ALL NULL NULL NULL NULL 9
-1 PRIMARY t4 ALL NULL NULL NULL NULL 9 FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 9 Start temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 9 Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 9 Using join buffer (Block Nested Loop)
+1 PRIMARY t4 ALL NULL NULL NULL NULL 9 End temporary; Using join buffer (Block Nested Loop)
SELECT *
FROM t1
WHERE 1 IN(SELECT 1
@@ -5334,8 +5334,8 @@ WHERE Language='English' AND Percentage
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Start temporary
-1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where; End temporary
+1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where; End temporary
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
@@ -5843,8 +5843,8 @@ INSERT INTO t2 VALUES (1, 0), (1, 1), (2
EXPLAIN
SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 5 Using where
-1 PRIMARY t2 ref k k 5 test.t1.i 1 Using where; Using index; FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 5
+1 PRIMARY t2 index k k 10 NULL 4 Using where; Using index; FirstMatch(t1); Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0);
i
1
@@ -6058,9 +6058,9 @@ insert into t2 values(1),(1),(1),(1);
insert into t3 values(2),(2);
explain select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2
-1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
a
1
@@ -6178,17 +6178,17 @@ SELECT * FROM t1 WHERE t1.i IN (SELECT t
FROM t2 JOIN t3
WHERE t2.i + t3.i = 5);
i
-1
-2
-3
4
+3
+2
+1
explain SELECT * FROM t1 WHERE t1.i IN (SELECT t2.i
FROM t2 JOIN t3
WHERE t2.i + t3.i = 5);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 10
-1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Using where
-1 PRIMARY t3 ALL NULL NULL NULL NULL 10 Using where; FirstMatch(t1)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 10 Start temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 10 Using where; End temporary; Using join buffer (Block Nested Loop)
DROP TABLE t1,t2,t3;
# End of the test for bug#50019.
#
@@ -6581,9 +6581,9 @@ ON (child1.col_varchar_key > child2.col_
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY grandparent1 ALL NULL NULL NULL NULL 15 Using where
1 PRIMARY grandparent2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-2 DEPENDENT SUBQUERY parent1 ALL col_varchar_key NULL NULL NULL 15 Using where
-2 DEPENDENT SUBQUERY child1 ALL NULL NULL NULL NULL 15 Using where
-2 DEPENDENT SUBQUERY child2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(parent1)
+2 DEPENDENT SUBQUERY child1 ALL NULL NULL NULL NULL 15 Using where; Start temporary
+2 DEPENDENT SUBQUERY child2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
+2 DEPENDENT SUBQUERY parent1 ref col_varchar_key col_varchar_key 4 test.child1.col_varchar_nokey 2 Using where; End temporary
SELECT grandparent1.col_varchar_nokey
FROM t1 AS grandparent1 LEFT JOIN t2 AS grandparent2 USING (col_varchar_nokey)
WHERE (grandparent1.col_varchar_key) IN
@@ -6710,9 +6710,9 @@ AND grandparent1.col_varchar_key IS NOT
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
-2 DEPENDENT SUBQUERY grandparent1 ALL col_varchar_key NULL NULL NULL 20 Using where
-2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Using where
-2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index; FirstMatch(grandparent1)
+2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start temporary
+2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using where
+2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index; End temporary
SELECT *
FROM t1
WHERE g1 NOT IN
=== modified file 'mysql-test/r/subquery_sj_loosescan.result'
--- a/mysql-test/r/subquery_sj_loosescan.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_loosescan.result 2011-11-03 14:17:25 +0000
@@ -56,31 +56,31 @@ a
4
explain extended select * from t2 where t2.a in (select a from t1);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 index a a 10 NULL 10004 100.00 Using where; Using index; LooseScan
-1 PRIMARY t2 ref a a 5 test.t1.a 2 100.00 Using index
+1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index
+1 PRIMARY t1 ref a a 5 test.t2.a 101 100.00 Using index; Start temporary; End temporary
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) where (`test`.`t2`.`a` = `test`.`t1`.`a`)
+Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) where (`test`.`t1`.`a` = `test`.`t2`.`a`)
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
a
2
4
explain extended select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 index a a 10 NULL 10004 100.00 Using where; Using index; LooseScan
-1 PRIMARY t2 ref a a 5 test.t1.a 2 100.00 Using index
+1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index
+1 PRIMARY t1 ref a a 5 test.t2.a 101 100.00 Using where; Using index; Start temporary; End temporary
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) where ((`test`.`t2`.`a` = `test`.`t1`.`a`) and (`test`.`t1`.`b` <> 30))
+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))
select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
a
2
3
explain extended select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index; Start temporary
-1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ref a a 10 test.t2.a,test.t3.a 116 100.00 Using index; End temporary
+1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Start temporary
+1 PRIMARY t1 ref a a 5 test.t2.a 101 100.00 Using index
+1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1` join `test`.`t3`) where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t1`.`b` = `test`.`t3`.`a`))
+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`))
insert into t1 values (3,31);
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
a
@@ -93,10 +93,10 @@ a
4
explain extended select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 index a a 10 NULL 10005 100.00 Using where; Using index; LooseScan
-1 PRIMARY t2 ref a a 5 test.t1.a 2 100.00 Using index
+1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index
+1 PRIMARY t1 ref a a 5 test.t2.a 101 100.00 Using where; Using index; Start temporary; End temporary
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) where ((`test`.`t2`.`a` = `test`.`t1`.`a`) and (`test`.`t1`.`b` <> 30))
+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))
drop table t0, t1, t2, t3;
create table t0 (a int);
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
@@ -2308,8 +2308,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2326,8 +2326,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2335,8 +2335,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2410,8 +2410,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2437,8 +2437,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2622,8 +2622,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2961,8 +2961,8 @@ create table t3 (a int);
insert into t3 select A.a + 10*B.a from t0 A, t0 B;
explain select * from t3 where a in (select kp1 from t1 where kp1<20);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; LooseScan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t1 ref kp1 kp1 5 test.t3.a 1 Using index; Start temporary; End temporary
select * from t3 where a in (select kp1 from t1 where kp1<20);
a
0
@@ -2987,8 +2987,8 @@ a
19
explain select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; LooseScan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t1 ref kp1 kp1 5 test.t3.a 1 Using index; Start temporary; End temporary
select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
a
0
@@ -3016,9 +3016,9 @@ insert into t4 select a from t3;
explain select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; LooseScan
-1 PRIMARY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index; FirstMatch(t1)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t1 ref kp1 kp1 5 test.t3.a 1 Using where; Start temporary
+1 PRIMARY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index; End temporary
select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
a
@@ -4885,8 +4885,8 @@ CREATE INDEX I1 ON t1 (a);
CREATE INDEX I2 ON t1 (b);
EXPLAIN SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t1 ref I2 I2 13 test.t1.a 2 Using where
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using index; LooseScan
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
a b
CREATE TABLE t2 (a VARCHAR(1), b VARCHAR(10));
@@ -4895,15 +4895,15 @@ CREATE INDEX I1 ON t2 (a);
CREATE INDEX I2 ON t2 (b);
EXPLAIN SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index I1 I1 4 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t2 ref I2 I2 13 test.t2.a 2 Using where
+1 PRIMARY t2 index I1 I1 4 NULL 2 Using index; LooseScan
+1 PRIMARY t2 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
a b
EXPLAIN
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t1 ref I2 I2 13 test.t1.a 2 Using where
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
a b
DROP TABLE t1,t2;
@@ -5332,8 +5332,8 @@ WHERE Language='English' AND Percentage
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Start temporary
-1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where; End temporary
+1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where; End temporary
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
@@ -5646,8 +5646,8 @@ alter table t3 add primary key(id), add
The following must use loose index scan over t3, key a:
explain select count(a) from t2 where a in ( SELECT a FROM t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 index a a 5 NULL 30000 Using where; Using index; LooseScan
-1 PRIMARY t2 ref a a 5 test.t3.a 1 Using index
+1 PRIMARY t2 index a a 5 NULL 1000 Using where; Using index
+1 PRIMARY t3 ref a a 5 test.t2.a 30 Using index; Start temporary; End temporary
select count(a) from t2 where a in ( SELECT a FROM t3);
count(a)
1000
@@ -6522,8 +6522,8 @@ WHERE innr.col_varchar_key = 'a' OR innr
AND outr.col_varchar_nokey < 't'
ORDER BY outr.col_varchar_key, outr.pk;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY innr index PRIMARY,col_varchar_key col_varchar_key 7 NULL 20 Using where; Using index; Using temporary; Using filesort; LooseScan
-1 PRIMARY outr ref col_varchar_key col_varchar_key 3 test.innr.col_varchar_key 1 Using where
+1 PRIMARY 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
+1 PRIMARY outr ref col_varchar_key col_varchar_key 3 test.innr.col_varchar_key 1 Using where; End temporary
SELECT outr.col_varchar_key AS x, outr.pk AS y
FROM t1 AS outr
WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key
=== modified file 'mysql-test/r/subquery_sj_loosescan_bka.result'
--- a/mysql-test/r/subquery_sj_loosescan_bka.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_loosescan_bka.result 2011-11-03 14:17:25 +0000
@@ -57,31 +57,31 @@ a
4
explain extended select * from t2 where t2.a in (select a from t1);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 index a a 10 NULL 10004 100.00 Using where; Using index; LooseScan
-1 PRIMARY t2 ref a a 5 test.t1.a 2 100.00 Using index
+1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Start temporary
+1 PRIMARY t1 ref a a 5 test.t2.a 101 100.00 Using index; End temporary
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) where (`test`.`t2`.`a` = `test`.`t1`.`a`)
+Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) where (`test`.`t1`.`a` = `test`.`t2`.`a`)
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
a
2
4
explain extended select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 index a a 10 NULL 10004 100.00 Using where; Using index; LooseScan
-1 PRIMARY t2 ref a a 5 test.t1.a 2 100.00 Using index
+1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Start temporary
+1 PRIMARY t1 ref a a 5 test.t2.a 101 100.00 Using where; Using index; End temporary
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) where ((`test`.`t2`.`a` = `test`.`t1`.`a`) and (`test`.`t1`.`b` <> 30))
+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))
select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
a
2
3
explain extended select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index; Start temporary
-1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ref a a 10 test.t2.a,test.t3.a 116 100.00 Using index; End temporary
+1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Start temporary
+1 PRIMARY t1 ref a a 5 test.t2.a 101 100.00 Using index
+1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1` join `test`.`t3`) where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t1`.`b` = `test`.`t3`.`a`))
+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`))
insert into t1 values (3,31);
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
a
@@ -94,10 +94,10 @@ a
4
explain extended select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 index a a 10 NULL 10005 100.00 Using where; Using index; LooseScan
-1 PRIMARY t2 ref a a 5 test.t1.a 2 100.00 Using index
+1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Start temporary
+1 PRIMARY t1 ref a a 5 test.t2.a 101 100.00 Using where; Using index; End temporary
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) where ((`test`.`t2`.`a` = `test`.`t1`.`a`) and (`test`.`t1`.`b` <> 30))
+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))
drop table t0, t1, t2, t3;
create table t0 (a int);
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
@@ -2309,8 +2309,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2327,8 +2327,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2336,8 +2336,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2411,8 +2411,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2438,8 +2438,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2623,8 +2623,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2962,8 +2962,8 @@ create table t3 (a int);
insert into t3 select A.a + 10*B.a from t0 A, t0 B;
explain select * from t3 where a in (select kp1 from t1 where kp1<20);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; LooseScan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Start temporary
+1 PRIMARY t1 ref kp1 kp1 5 test.t3.a 1 Using index; End temporary
select * from t3 where a in (select kp1 from t1 where kp1<20);
a
0
@@ -2988,8 +2988,8 @@ a
19
explain select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; LooseScan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Start temporary
+1 PRIMARY t1 ref kp1 kp1 5 test.t3.a 1 Using index; End temporary
select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
a
0
@@ -3017,9 +3017,9 @@ insert into t4 select a from t3;
explain select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; LooseScan
-1 PRIMARY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index; FirstMatch(t1)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Start temporary
+1 PRIMARY t1 ref kp1 kp1 5 test.t3.a 1 Using where
+1 PRIMARY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index; End temporary
select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
a
@@ -4886,8 +4886,8 @@ CREATE INDEX I1 ON t1 (a);
CREATE INDEX I2 ON t1 (b);
EXPLAIN SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t1 ref I2 I2 13 test.t1.a 2 Using where
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using index; LooseScan
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
a b
CREATE TABLE t2 (a VARCHAR(1), b VARCHAR(10));
@@ -4896,15 +4896,15 @@ CREATE INDEX I1 ON t2 (a);
CREATE INDEX I2 ON t2 (b);
EXPLAIN SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index I1 I1 4 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t2 ref I2 I2 13 test.t2.a 2 Using where
+1 PRIMARY t2 index I1 I1 4 NULL 2 Using index; LooseScan
+1 PRIMARY t2 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
a b
EXPLAIN
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t1 ref I2 I2 13 test.t1.a 2 Using where
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
a b
DROP TABLE t1,t2;
@@ -5333,8 +5333,8 @@ WHERE Language='English' AND Percentage
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Start temporary
-1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where; End temporary
+1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where; End temporary
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
@@ -5647,8 +5647,8 @@ alter table t3 add primary key(id), add
The following must use loose index scan over t3, key a:
explain select count(a) from t2 where a in ( SELECT a FROM t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 index a a 5 NULL 30000 Using where; Using index; LooseScan
-1 PRIMARY t2 ref a a 5 test.t3.a 1 Using index
+1 PRIMARY t2 index a a 5 NULL 1000 Using where; Using index; Start temporary
+1 PRIMARY t3 ref a a 5 test.t2.a 30 Using index; End temporary
select count(a) from t2 where a in ( SELECT a FROM t3);
count(a)
1000
@@ -6523,8 +6523,8 @@ WHERE innr.col_varchar_key = 'a' OR innr
AND outr.col_varchar_nokey < 't'
ORDER BY outr.col_varchar_key, outr.pk;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY innr index PRIMARY,col_varchar_key col_varchar_key 7 NULL 20 Using where; Using index; Using temporary; Using filesort; LooseScan
-1 PRIMARY outr ref col_varchar_key col_varchar_key 3 test.innr.col_varchar_key 1 Using where
+1 PRIMARY 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
+1 PRIMARY outr ref col_varchar_key col_varchar_key 3 test.innr.col_varchar_key 1 Using where; End temporary
SELECT outr.col_varchar_key AS x, outr.pk AS y
FROM t1 AS outr
WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key
=== modified file 'mysql-test/r/subquery_sj_loosescan_bka_nixbnl.result'
--- a/mysql-test/r/subquery_sj_loosescan_bka_nixbnl.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_loosescan_bka_nixbnl.result 2011-11-03 14:17:25 +0000
@@ -2309,8 +2309,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2327,8 +2327,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2336,8 +2336,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2411,8 +2411,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2438,8 +2438,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2623,8 +2623,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2962,86 +2962,86 @@ create table t3 (a int);
insert into t3 select A.a + 10*B.a from t0 A, t0 B;
explain select * from t3 where a in (select kp1 from t1 where kp1<20);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; LooseScan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Start temporary
+1 PRIMARY t1 ref kp1 kp1 5 test.t3.a 1 Using index; End temporary
select * from t3 where a in (select kp1 from t1 where kp1<20);
a
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
10
+1
11
+2
12
+3
13
+4
14
+5
15
+6
16
+7
17
+8
18
+9
19
explain select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; LooseScan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Start temporary
+1 PRIMARY t1 ref kp1 kp1 5 test.t3.a 1 Using index; End temporary
select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
a
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
10
+1
11
+2
12
+3
13
+4
14
+5
15
+6
16
+7
17
+8
18
+9
19
create table t4 (pk int primary key);
insert into t4 select a from t3;
explain select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; LooseScan
-1 PRIMARY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index; FirstMatch(t1)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Start temporary
+1 PRIMARY t1 ref kp1 kp1 5 test.t3.a 1 Using where
+1 PRIMARY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index; End temporary
select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
a
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
10
+1
11
+2
12
+3
13
+4
14
+5
15
+6
16
+7
17
+8
18
+9
19
drop table t1, t3, t4;
create table t1 (a int);
@@ -3179,12 +3179,12 @@ insert into t1 select A.a, B.a, 'filler'
create table t2 as select * from t1;
explain select * from t2 where a in (select b from t1 where a=3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range a a 5 NULL 8 Using where; Using index; LooseScan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Start temporary
+1 PRIMARY t1 ref a a 10 const,test.t2.a 1 Using index; End temporary
explain select * from t2 where (b,a) in (select a,b from t1 where a=3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range a a 5 NULL 8 Using where; Using index; LooseScan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Start temporary
+1 PRIMARY t1 ref a a 10 const,test.t2.a 1 Using index; End temporary
drop table t1,t2;
create table t1 (a int, b int);
insert into t1 select a,a from t0;
@@ -5333,8 +5333,8 @@ WHERE Language='English' AND Percentage
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Start temporary
-1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where; End temporary
+1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where; End temporary
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
@@ -5647,8 +5647,8 @@ alter table t3 add primary key(id), add
The following must use loose index scan over t3, key a:
explain select count(a) from t2 where a in ( SELECT a FROM t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 index a a 5 NULL 30000 Using where; Using index; LooseScan
-1 PRIMARY t2 ref a a 5 test.t3.a 1 Using index
+1 PRIMARY t2 index a a 5 NULL 1000 Using where; Using index; Start temporary
+1 PRIMARY t3 ref a a 5 test.t2.a 30 Using index; End temporary
select count(a) from t2 where a in ( SELECT a FROM t3);
count(a)
1000
@@ -6523,8 +6523,8 @@ WHERE innr.col_varchar_key = 'a' OR innr
AND outr.col_varchar_nokey < 't'
ORDER BY outr.col_varchar_key, outr.pk;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY innr index PRIMARY,col_varchar_key col_varchar_key 7 NULL 20 Using where; Using index; Using temporary; Using filesort; LooseScan
-1 PRIMARY outr ref col_varchar_key col_varchar_key 3 test.innr.col_varchar_key 1 Using where
+1 PRIMARY 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
+1 PRIMARY outr ref col_varchar_key col_varchar_key 3 test.innr.col_varchar_key 1 Using where; End temporary
SELECT outr.col_varchar_key AS x, outr.pk AS y
FROM t1 AS outr
WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key
=== modified file 'mysql-test/r/subquery_sj_loosescan_bkaunique.result'
--- a/mysql-test/r/subquery_sj_loosescan_bkaunique.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_loosescan_bkaunique.result 2011-11-03 14:17:25 +0000
@@ -58,31 +58,31 @@ a
4
explain extended select * from t2 where t2.a in (select a from t1);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 index a a 10 NULL 10004 100.00 Using where; Using index; LooseScan
-1 PRIMARY t2 ref a a 5 test.t1.a 2 100.00 Using index
+1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Start temporary
+1 PRIMARY t1 ref a a 5 test.t2.a 101 100.00 Using index; End temporary
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) where (`test`.`t2`.`a` = `test`.`t1`.`a`)
+Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) where (`test`.`t1`.`a` = `test`.`t2`.`a`)
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
a
2
4
explain extended select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 index a a 10 NULL 10004 100.00 Using where; Using index; LooseScan
-1 PRIMARY t2 ref a a 5 test.t1.a 2 100.00 Using index
+1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Start temporary
+1 PRIMARY t1 ref a a 5 test.t2.a 101 100.00 Using where; Using index; End temporary
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) where ((`test`.`t2`.`a` = `test`.`t1`.`a`) and (`test`.`t1`.`b` <> 30))
+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))
select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
a
2
3
explain extended select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index; Start temporary
-1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ref a a 10 test.t2.a,test.t3.a 116 100.00 Using index; End temporary
+1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Start temporary
+1 PRIMARY t1 ref a a 5 test.t2.a 101 100.00 Using index
+1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1` join `test`.`t3`) where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t1`.`b` = `test`.`t3`.`a`))
+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`))
insert into t1 values (3,31);
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
a
@@ -95,10 +95,10 @@ a
4
explain extended select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 index a a 10 NULL 10005 100.00 Using where; Using index; LooseScan
-1 PRIMARY t2 ref a a 5 test.t1.a 2 100.00 Using index
+1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Start temporary
+1 PRIMARY t1 ref a a 5 test.t2.a 101 100.00 Using where; Using index; End temporary
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) where ((`test`.`t2`.`a` = `test`.`t1`.`a`) and (`test`.`t1`.`b` <> 30))
+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))
drop table t0, t1, t2, t3;
create table t0 (a int);
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
@@ -2310,8 +2310,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2328,8 +2328,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2337,8 +2337,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2412,8 +2412,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2439,8 +2439,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2624,8 +2624,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2963,8 +2963,8 @@ create table t3 (a int);
insert into t3 select A.a + 10*B.a from t0 A, t0 B;
explain select * from t3 where a in (select kp1 from t1 where kp1<20);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; LooseScan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Start temporary
+1 PRIMARY t1 ref kp1 kp1 5 test.t3.a 1 Using index; End temporary
select * from t3 where a in (select kp1 from t1 where kp1<20);
a
0
@@ -2989,8 +2989,8 @@ a
19
explain select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; LooseScan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Start temporary
+1 PRIMARY t1 ref kp1 kp1 5 test.t3.a 1 Using index; End temporary
select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
a
0
@@ -3018,9 +3018,9 @@ insert into t4 select a from t3;
explain select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; LooseScan
-1 PRIMARY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index; FirstMatch(t1)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Start temporary
+1 PRIMARY t1 ref kp1 kp1 5 test.t3.a 1 Using where
+1 PRIMARY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index; End temporary
select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
a
@@ -4887,8 +4887,8 @@ CREATE INDEX I1 ON t1 (a);
CREATE INDEX I2 ON t1 (b);
EXPLAIN SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t1 ref I2 I2 13 test.t1.a 2 Using where
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using index; LooseScan
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
a b
CREATE TABLE t2 (a VARCHAR(1), b VARCHAR(10));
@@ -4897,15 +4897,15 @@ CREATE INDEX I1 ON t2 (a);
CREATE INDEX I2 ON t2 (b);
EXPLAIN SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index I1 I1 4 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t2 ref I2 I2 13 test.t2.a 2 Using where
+1 PRIMARY t2 index I1 I1 4 NULL 2 Using index; LooseScan
+1 PRIMARY t2 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
a b
EXPLAIN
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; LooseScan
-1 PRIMARY t1 ref I2 I2 13 test.t1.a 2 Using where
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
a b
DROP TABLE t1,t2;
@@ -5334,8 +5334,8 @@ WHERE Language='English' AND Percentage
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Start temporary
-1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where; End temporary
+1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where; End temporary
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
@@ -5648,8 +5648,8 @@ alter table t3 add primary key(id), add
The following must use loose index scan over t3, key a:
explain select count(a) from t2 where a in ( SELECT a FROM t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 index a a 5 NULL 30000 Using where; Using index; LooseScan
-1 PRIMARY t2 ref a a 5 test.t3.a 1 Using index
+1 PRIMARY t2 index a a 5 NULL 1000 Using where; Using index; Start temporary
+1 PRIMARY t3 ref a a 5 test.t2.a 30 Using index; End temporary
select count(a) from t2 where a in ( SELECT a FROM t3);
count(a)
1000
@@ -6524,8 +6524,8 @@ WHERE innr.col_varchar_key = 'a' OR innr
AND outr.col_varchar_nokey < 't'
ORDER BY outr.col_varchar_key, outr.pk;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY innr index PRIMARY,col_varchar_key col_varchar_key 7 NULL 20 Using where; Using index; Using temporary; Using filesort; LooseScan
-1 PRIMARY outr ref col_varchar_key col_varchar_key 3 test.innr.col_varchar_key 1 Using where
+1 PRIMARY 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
+1 PRIMARY outr ref col_varchar_key col_varchar_key 3 test.innr.col_varchar_key 1 Using where; End temporary
SELECT outr.col_varchar_key AS x, outr.pk AS y
FROM t1 AS outr
WHERE outr.col_varchar_key IN (SELECT innr.col_varchar_key
=== modified file 'mysql-test/r/subquery_sj_mat.result'
--- a/mysql-test/r/subquery_sj_mat.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_mat.result 2011-11-03 14:17:25 +0000
@@ -76,11 +76,11 @@ a
3
explain extended select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index; Start temporary
-1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ref a a 10 test.t2.a,test.t3.a 116 100.00 Using index; End temporary
+1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Start temporary
+1 PRIMARY t1 ref a a 5 test.t2.a 101 100.00 Using index
+1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1` join `test`.`t3`) where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t1`.`b` = `test`.`t3`.`a`))
+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`))
insert into t1 values (3,31);
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
a
@@ -1008,7 +1008,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1024,7 +1024,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1040,7 +1040,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1049,7 +1049,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1058,7 +1058,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1076,7 +1076,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1085,7 +1085,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1100,7 +1100,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1116,7 +1116,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1132,7 +1132,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1142,7 +1142,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1151,7 +1151,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1169,7 +1169,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1178,7 +1178,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1193,7 +1193,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1209,7 +1209,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1225,7 +1225,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1235,7 +1235,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1244,7 +1244,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1262,7 +1262,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1271,7 +1271,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1288,7 +1288,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1304,7 +1304,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1320,7 +1320,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1329,7 +1329,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1338,7 +1338,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1356,7 +1356,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1365,7 +1365,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1379,8 +1379,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1398,8 +1398,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1417,8 +1417,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1427,8 +1427,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1437,8 +1437,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1455,8 +1455,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1464,8 +1464,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1517,8 +1517,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1555,8 +1555,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1582,7 +1582,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1598,7 +1598,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1614,7 +1614,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1623,7 +1623,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1632,7 +1632,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1650,7 +1650,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1659,7 +1659,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1692,8 +1692,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1721,8 +1721,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1731,8 +1731,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1758,8 +1758,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1773,8 +1773,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1792,8 +1792,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1811,8 +1811,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1821,8 +1821,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1831,8 +1831,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1849,8 +1849,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1858,8 +1858,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1877,7 +1877,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
@@ -1893,7 +1893,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -1909,7 +1909,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -1918,7 +1918,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -1927,7 +1927,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -1945,7 +1945,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -1954,7 +1954,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -1969,7 +1969,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
@@ -1985,7 +1985,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2001,7 +2001,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2011,7 +2011,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2020,7 +2020,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2038,7 +2038,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2047,7 +2047,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2094,7 +2094,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2113,9 +2113,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start temporary
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2132,7 +2132,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2140,9 +2140,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start temporary
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2158,7 +2158,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
@@ -2174,7 +2174,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2190,7 +2190,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2199,7 +2199,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2208,7 +2208,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2226,7 +2226,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2235,7 +2235,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2249,9 +2249,9 @@ c1 c2 c3
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -2268,9 +2268,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2287,9 +2287,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2297,9 +2297,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2307,9 +2307,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2325,18 +2325,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2387,9 +2387,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2410,8 +2410,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2427,9 +2427,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2437,8 +2437,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2470,7 +2470,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2495,7 +2495,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2504,7 +2504,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2521,9 +2521,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start temporary
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2531,7 +2531,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2564,9 +2564,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2593,9 +2593,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2603,9 +2603,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2622,17 +2622,17 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2645,9 +2645,9 @@ c1 c2 c3
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -2667,9 +2667,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2689,9 +2689,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2700,9 +2700,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2711,9 +2711,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2729,18 +2729,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2894,9 +2894,9 @@ explain select t21.* from t21,t22 where
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;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t11 ALL NULL NULL NULL NULL 8 Using where; Using temporary; Using filesort; Start materialize; Scan
-1 PRIMARY t12 ALL NULL NULL NULL NULL 8 Using where; End materialize
-1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t12 ALL NULL NULL NULL NULL 8 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t22 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
select t21.* from t21,t22 where t21.a = t22.a and
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;
a b c
@@ -2948,8 +2948,8 @@ a
19
explain select * from (select a from t0) X where a in (select a from t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Materialize; Scan
-1 PRIMARY <derived2> ALL NULL NULL NULL NULL 11 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 11
+1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Materialize
2 DERIVED t0 ALL NULL NULL NULL NULL 11
drop table t0, t1;
create table t0 (a int);
@@ -2961,8 +2961,8 @@ create table t3 (a int);
insert into t3 select A.a + 10*B.a from t0 A, t0 B;
explain select * from t3 where a in (select kp1 from t1 where kp1<20);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; Materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100
+1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; Materialize
select * from t3 where a in (select kp1 from t1 where kp1<20);
a
0
@@ -2987,8 +2987,8 @@ a
19
explain select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; Materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; Materialize
select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
a
0
@@ -3016,9 +3016,9 @@ insert into t4 select a from t3;
explain select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100
+1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Start materialize
1 PRIMARY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index; End materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
a
@@ -3178,12 +3178,12 @@ insert into t1 select A.a, B.a, 'filler'
create table t2 as select * from t1;
explain select * from t2 where a in (select b from t1 where a=3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ref a a 5 const 8 Using index; Materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 100
+1 PRIMARY t1 ref a a 5 const 8 Using index; Materialize
explain select * from t2 where (b,a) in (select a,b from t1 where a=3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ref a a 5 const 8 Using index; Materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t1 ref a a 5 const 8 Using index; Materialize
drop table t1,t2;
create table t1 (a int, b int);
insert into t1 select a,a from t0;
@@ -3229,8 +3229,8 @@ explain select * from t1 where (a,b,c) i
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3
1 PRIMARY X ALL NULL NULL NULL NULL 6 Using where; Start materialize
-1 PRIMARY Y ALL NULL NULL NULL NULL 6
-1 PRIMARY Z ALL NULL NULL NULL NULL 6 End materialize
+1 PRIMARY Y ALL NULL NULL NULL NULL 6 Using join buffer (Block Nested Loop)
+1 PRIMARY Z ALL NULL NULL NULL NULL 6 End materialize; Using join buffer (Block Nested Loop)
drop table t0,t1,t2;
set @save_join_buffer_size = @@join_buffer_size;
set join_buffer_size= 8192;
@@ -4290,7 +4290,7 @@ FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index; Start materialize; Scan
-1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; End materialize
+1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t0 ALL NULL NULL NULL NULL 20 Using where; Using join buffer (Block Nested Loop)
SELECT t0.int_key
FROM t0, t2
@@ -4311,7 +4311,7 @@ FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 system NULL NULL NULL NULL 1
1 PRIMARY t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index; Start materialize; Scan
-1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; End materialize
+1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t0 ALL NULL NULL NULL NULL 20 Using where; Using join buffer (Block Nested Loop)
DROP TABLE t0, t1, t2;
# End of bug#46550
@@ -4709,7 +4709,7 @@ WHERE PNUM IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY STAFF ALL NULL NULL NULL NULL 5
1 PRIMARY PROJ ALL NULL NULL NULL NULL 6 Start materialize
-1 PRIMARY WORKS ALL NULL NULL NULL NULL 12 Using where; End materialize
+1 PRIMARY WORKS ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT EMPNUM, EMPNAME
FROM STAFF
WHERE EMPNUM IN
@@ -4885,8 +4885,8 @@ CREATE INDEX I1 ON t1 (a);
CREATE INDEX I2 ON t1 (b);
EXPLAIN SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index I1 I1 2 NULL 2 Using index; Materialize; Scan
-1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using index; Materialize
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
a b
CREATE TABLE t2 (a VARCHAR(1), b VARCHAR(10));
@@ -4895,15 +4895,15 @@ CREATE INDEX I1 ON t2 (a);
CREATE INDEX I2 ON t2 (b);
EXPLAIN SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index I1 I1 4 NULL 2 Using index; Materialize; Scan
-1 PRIMARY t2 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL I2 NULL NULL NULL 2
+1 PRIMARY t2 index I1 I1 4 NULL 2 Using index; Materialize
SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
a b
EXPLAIN
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; Materialize; Scan
-1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; Materialize
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
a b
DROP TABLE t1,t2;
@@ -5005,9 +5005,9 @@ WHERE PNUM IN
FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5019,14 +5019,14 @@ WHERE EMPNUM IN
WHERE PTYPE = 'Design'))";
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize; Scan
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
-1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP INDEX t1_IDX ON t1;
CREATE INDEX t1_IDX ON t1(EMPNUM);
@@ -5040,9 +5040,9 @@ WHERE PNUM IN
FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5054,14 +5054,14 @@ WHERE EMPNUM IN
WHERE PTYPE = 'Design'))";
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize; Scan
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
-1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP INDEX t1_IDX ON t1;
EXPLAIN SELECT EMPNAME
@@ -5076,7 +5076,7 @@ WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 5
1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5090,12 +5090,12 @@ EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 5
1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP TABLE t1, t2, t3;
#
@@ -5149,9 +5149,9 @@ FROM t2
WHERE 1 IN(SELECT 1
FROM t3));
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 End materialize; Using join buffer (Block Nested Loop)
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id` from `test`.`t1` semi join (`test`.`t3` join `test`.`t2`) where 1
delete from t2;
@@ -5189,8 +5189,8 @@ FROM t4)));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 9
1 PRIMARY t2 ALL NULL NULL NULL NULL 9 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 9
-1 PRIMARY t4 ALL NULL NULL NULL NULL 9 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 9 Using join buffer (Block Nested Loop)
+1 PRIMARY t4 ALL NULL NULL NULL NULL 9 End materialize; Using join buffer (Block Nested Loop)
SELECT *
FROM t1
WHERE 1 IN(SELECT 1
@@ -5250,10 +5250,10 @@ explain select t2.uid from t2, t1
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
and t2.uid=t1.fid;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t4 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ref uid uid 5 const 1 Using where
+1 PRIMARY t4 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ref uid uid 5 const 1 Using where; End materialize
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
select t2.uid from t2, t1
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
and t2.uid=t1.fid;
@@ -5331,9 +5331,9 @@ t2.Code IN (SELECT Country FROM t3
WHERE Language='English' AND Percentage > 10 AND
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Start temporary
+1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Materialize; Scan
1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where; End temporary
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
@@ -5841,8 +5841,8 @@ INSERT INTO t2 VALUES (1, 0), (1, 1), (2
EXPLAIN
SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index k k 10 NULL 4 Using where; Using index; Materialize; Scan
-1 PRIMARY t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 5
+1 PRIMARY t2 index k k 10 NULL 4 Using where; Using index; Materialize
SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0);
i
1
@@ -6000,9 +6000,9 @@ INSERT INTO t3 VALUES (1), (2);
explain extended SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t3 LEFT JOIN t2 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (Block Nested Loop)
Warnings:
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` = `test`.`t3`.`i`)
SELECT * FROM t1 WHERE (t1.i) IN
@@ -6058,7 +6058,7 @@ explain select * from t1 where t1.a in (
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
a
1
@@ -6077,10 +6077,10 @@ explain SELECT * FROM t1
WHERE t1.a IN (SELECT t2.a
FROM t2 LEFT JOIN (t2 AS t2inner, t3) ON t2.a=t3.a);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
1 PRIMARY t2inner ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1
WHERE t1.a IN (SELECT t2.a
FROM t2 LEFT JOIN (t2 AS t2inner, t3) ON t2.a=t3.a);
@@ -6159,8 +6159,8 @@ WHERE (varchar_nokey, varchar_nokey) IN
FROM t2
WHERE varchar_nokey < 'n' XOR pk);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL varchar_key NULL NULL NULL 15 Using where; Materialize; Scan
-1 PRIMARY t1 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 18
+1 PRIMARY t2 ALL varchar_key NULL NULL NULL 15 Using where; Materialize
DROP TABLE t1, t2;
# End of the test for bug#45174.
#
@@ -6186,7 +6186,7 @@ WHERE t2.i + t3.i = 5);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 10
1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 10 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 10 Using where; End materialize; Using join buffer (Block Nested Loop)
DROP TABLE t1,t2,t3;
# End of the test for bug#50019.
#
@@ -6220,7 +6220,7 @@ FROM it2,it3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY ot1 ALL NULL NULL NULL NULL 2
1 PRIMARY it2 ALL NULL NULL NULL NULL 4 Start materialize; Scan
-1 PRIMARY it3 ALL NULL NULL NULL NULL 6 End materialize
+1 PRIMARY it3 ALL NULL NULL NULL NULL 6 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY ot4 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (Block Nested Loop)
DROP TABLE IF EXISTS ot1, ot4, it2, it3;
# End of the test for bug#52068.
@@ -6438,10 +6438,10 @@ ON alias2.col_varchar_10_latin1_key
ON alias1.col_varchar_1024_utf8_key
WHERE alias1.pk AND alias1.pk < 3 OR alias1.pk AND alias3.pk);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY alias1 ALL NULL NULL NULL NULL 4 Using where; Start materialize; Scan
-1 PRIMARY alias3 index NULL PRIMARY 4 NULL 1 Using where; Using index
-1 PRIMARY alias2 index NULL col_varchar_10_latin1_key 13 NULL 4 Using where; Using index; End materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2
+1 PRIMARY alias1 ALL NULL NULL NULL NULL 4 Using where; Start materialize
+1 PRIMARY alias3 index NULL PRIMARY 4 NULL 1 Using where; Using index; Using join buffer (Block Nested Loop)
+1 PRIMARY alias2 index NULL col_varchar_10_latin1_key 13 NULL 4 Using where; Using index; End materialize; Using join buffer (Block Nested Loop)
SELECT *
FROM t3
WHERE col_varchar_10_latin1_key IN (
@@ -6580,7 +6580,7 @@ id select_type table type possible_keys
1 PRIMARY grandparent1 ALL NULL NULL NULL NULL 15 Using where
1 PRIMARY grandparent2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2 DEPENDENT SUBQUERY child1 ALL NULL NULL NULL NULL 15 Using where; Start materialize; Scan
-2 DEPENDENT SUBQUERY child2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+2 DEPENDENT SUBQUERY child2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
2 DEPENDENT SUBQUERY parent1 ref col_varchar_key col_varchar_key 4 test.child1.col_varchar_nokey 2 Using where
SELECT grandparent1.col_varchar_nokey
FROM t1 AS grandparent1 LEFT JOIN t2 AS grandparent2 USING (col_varchar_nokey)
@@ -6707,9 +6707,9 @@ AND grandparent1.col_varchar_key IS NOT
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
-2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start materialize; Scan
-2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index; End materialize
-2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using where
+2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start temporary
+2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index
+2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using where; End temporary
SELECT *
FROM t1
WHERE g1 NOT IN
=== modified file 'mysql-test/r/subquery_sj_mat_bka.result'
--- a/mysql-test/r/subquery_sj_mat_bka.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_mat_bka.result 2011-11-03 14:17:25 +0000
@@ -77,11 +77,11 @@ a
3
explain extended select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index; Start temporary
-1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ref a a 10 test.t2.a,test.t3.a 116 100.00 Using index; End temporary
+1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Start temporary
+1 PRIMARY t1 ref a a 5 test.t2.a 101 100.00 Using index
+1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1` join `test`.`t3`) where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t1`.`b` = `test`.`t3`.`a`))
+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`))
insert into t1 values (3,31);
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
a
@@ -1009,7 +1009,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1025,7 +1025,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1041,7 +1041,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1050,7 +1050,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1059,7 +1059,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1077,7 +1077,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1086,7 +1086,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1101,7 +1101,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1117,7 +1117,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1133,7 +1133,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1143,7 +1143,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1152,7 +1152,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1170,7 +1170,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1179,7 +1179,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1194,7 +1194,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1210,7 +1210,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1226,7 +1226,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1236,7 +1236,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1245,7 +1245,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1263,7 +1263,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1272,7 +1272,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1289,7 +1289,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1305,7 +1305,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1321,7 +1321,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1330,7 +1330,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1339,7 +1339,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1357,7 +1357,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1366,7 +1366,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1380,8 +1380,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1399,8 +1399,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1418,8 +1418,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1428,8 +1428,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1438,8 +1438,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1456,8 +1456,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1465,8 +1465,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1518,8 +1518,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1556,8 +1556,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1583,7 +1583,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1599,7 +1599,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1615,7 +1615,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1624,7 +1624,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1633,7 +1633,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1651,7 +1651,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1660,7 +1660,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1693,8 +1693,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1722,8 +1722,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1732,8 +1732,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1759,8 +1759,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1774,8 +1774,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1793,8 +1793,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1812,8 +1812,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1822,8 +1822,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1832,8 +1832,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1850,8 +1850,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1859,8 +1859,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1878,7 +1878,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
@@ -1894,7 +1894,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -1910,7 +1910,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -1919,7 +1919,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -1928,7 +1928,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -1946,7 +1946,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -1955,7 +1955,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -1970,7 +1970,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
@@ -1986,7 +1986,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2002,7 +2002,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2012,7 +2012,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2021,7 +2021,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2039,7 +2039,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2048,7 +2048,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2095,7 +2095,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2114,9 +2114,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start temporary
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2133,7 +2133,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2141,9 +2141,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start temporary
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2159,7 +2159,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
@@ -2175,7 +2175,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2191,7 +2191,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2200,7 +2200,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2209,7 +2209,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2227,7 +2227,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2236,7 +2236,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2250,9 +2250,9 @@ c1 c2 c3
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -2269,9 +2269,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2288,9 +2288,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2298,9 +2298,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2308,9 +2308,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2326,18 +2326,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2388,9 +2388,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2411,8 +2411,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2428,9 +2428,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2438,8 +2438,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2471,7 +2471,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2496,7 +2496,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2505,7 +2505,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2522,9 +2522,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start temporary
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2532,7 +2532,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2565,9 +2565,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2594,9 +2594,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2604,9 +2604,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2623,17 +2623,17 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2646,9 +2646,9 @@ c1 c2 c3
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -2668,9 +2668,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2690,9 +2690,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2701,9 +2701,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2712,9 +2712,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2730,18 +2730,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2895,9 +2895,9 @@ explain select t21.* from t21,t22 where
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;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t11 ALL NULL NULL NULL NULL 8 Using where; Using temporary; Using filesort; Start materialize; Scan
-1 PRIMARY t12 ALL NULL NULL NULL NULL 8 Using where; End materialize
-1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t12 ALL NULL NULL NULL NULL 8 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t22 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
select t21.* from t21,t22 where t21.a = t22.a and
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;
a b c
@@ -2949,8 +2949,8 @@ a
19
explain select * from (select a from t0) X where a in (select a from t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Materialize; Scan
-1 PRIMARY <derived2> ALL NULL NULL NULL NULL 11 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 11
+1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Materialize
2 DERIVED t0 ALL NULL NULL NULL NULL 11
drop table t0, t1;
create table t0 (a int);
@@ -2962,8 +2962,8 @@ create table t3 (a int);
insert into t3 select A.a + 10*B.a from t0 A, t0 B;
explain select * from t3 where a in (select kp1 from t1 where kp1<20);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; Materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100
+1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; Materialize
select * from t3 where a in (select kp1 from t1 where kp1<20);
a
0
@@ -2988,8 +2988,8 @@ a
19
explain select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; Materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; Materialize
select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
a
0
@@ -3017,9 +3017,9 @@ insert into t4 select a from t3;
explain select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100
+1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Start materialize
1 PRIMARY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index; End materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
a
@@ -3179,12 +3179,12 @@ insert into t1 select A.a, B.a, 'filler'
create table t2 as select * from t1;
explain select * from t2 where a in (select b from t1 where a=3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ref a a 5 const 8 Using index; Materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 100
+1 PRIMARY t1 ref a a 5 const 8 Using index; Materialize
explain select * from t2 where (b,a) in (select a,b from t1 where a=3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ref a a 5 const 8 Using index; Materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t1 ref a a 5 const 8 Using index; Materialize
drop table t1,t2;
create table t1 (a int, b int);
insert into t1 select a,a from t0;
@@ -3230,8 +3230,8 @@ explain select * from t1 where (a,b,c) i
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3
1 PRIMARY X ALL NULL NULL NULL NULL 6 Using where; Start materialize
-1 PRIMARY Y ALL NULL NULL NULL NULL 6
-1 PRIMARY Z ALL NULL NULL NULL NULL 6 End materialize
+1 PRIMARY Y ALL NULL NULL NULL NULL 6 Using join buffer (Block Nested Loop)
+1 PRIMARY Z ALL NULL NULL NULL NULL 6 End materialize; Using join buffer (Block Nested Loop)
drop table t0,t1,t2;
set @save_join_buffer_size = @@join_buffer_size;
set join_buffer_size= 8192;
@@ -4291,7 +4291,7 @@ FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index; Start materialize; Scan
-1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; End materialize
+1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t0 ALL NULL NULL NULL NULL 20 Using where; Using join buffer (Block Nested Loop)
SELECT t0.int_key
FROM t0, t2
@@ -4312,7 +4312,7 @@ FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 system NULL NULL NULL NULL 1
1 PRIMARY t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index; Start materialize; Scan
-1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; End materialize
+1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t0 ALL NULL NULL NULL NULL 20 Using where; Using join buffer (Block Nested Loop)
DROP TABLE t0, t1, t2;
# End of bug#46550
@@ -4710,7 +4710,7 @@ WHERE PNUM IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY STAFF ALL NULL NULL NULL NULL 5
1 PRIMARY PROJ ALL NULL NULL NULL NULL 6 Start materialize
-1 PRIMARY WORKS ALL NULL NULL NULL NULL 12 Using where; End materialize
+1 PRIMARY WORKS ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT EMPNUM, EMPNAME
FROM STAFF
WHERE EMPNUM IN
@@ -4886,8 +4886,8 @@ CREATE INDEX I1 ON t1 (a);
CREATE INDEX I2 ON t1 (b);
EXPLAIN SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index I1 I1 2 NULL 2 Using index; Materialize; Scan
-1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using index; Materialize
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
a b
CREATE TABLE t2 (a VARCHAR(1), b VARCHAR(10));
@@ -4896,15 +4896,15 @@ CREATE INDEX I1 ON t2 (a);
CREATE INDEX I2 ON t2 (b);
EXPLAIN SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index I1 I1 4 NULL 2 Using index; Materialize; Scan
-1 PRIMARY t2 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL I2 NULL NULL NULL 2
+1 PRIMARY t2 index I1 I1 4 NULL 2 Using index; Materialize
SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
a b
EXPLAIN
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; Materialize; Scan
-1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; Materialize
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
a b
DROP TABLE t1,t2;
@@ -5006,9 +5006,9 @@ WHERE PNUM IN
FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5020,14 +5020,14 @@ WHERE EMPNUM IN
WHERE PTYPE = 'Design'))";
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize; Scan
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
-1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP INDEX t1_IDX ON t1;
CREATE INDEX t1_IDX ON t1(EMPNUM);
@@ -5041,9 +5041,9 @@ WHERE PNUM IN
FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5055,14 +5055,14 @@ WHERE EMPNUM IN
WHERE PTYPE = 'Design'))";
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize; Scan
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
-1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP INDEX t1_IDX ON t1;
EXPLAIN SELECT EMPNAME
@@ -5077,7 +5077,7 @@ WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 5
1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5091,12 +5091,12 @@ EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 5
1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP TABLE t1, t2, t3;
#
@@ -5150,9 +5150,9 @@ FROM t2
WHERE 1 IN(SELECT 1
FROM t3));
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 End materialize; Using join buffer (Block Nested Loop)
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id` from `test`.`t1` semi join (`test`.`t3` join `test`.`t2`) where 1
delete from t2;
@@ -5190,8 +5190,8 @@ FROM t4)));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 9
1 PRIMARY t2 ALL NULL NULL NULL NULL 9 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 9
-1 PRIMARY t4 ALL NULL NULL NULL NULL 9 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 9 Using join buffer (Block Nested Loop)
+1 PRIMARY t4 ALL NULL NULL NULL NULL 9 End materialize; Using join buffer (Block Nested Loop)
SELECT *
FROM t1
WHERE 1 IN(SELECT 1
@@ -5251,10 +5251,10 @@ explain select t2.uid from t2, t1
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
and t2.uid=t1.fid;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t4 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ref uid uid 5 const 1 Using where
+1 PRIMARY t4 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ref uid uid 5 const 1 Using where; End materialize
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
select t2.uid from t2, t1
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
and t2.uid=t1.fid;
@@ -5332,9 +5332,9 @@ t2.Code IN (SELECT Country FROM t3
WHERE Language='English' AND Percentage > 10 AND
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Start temporary
+1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Materialize; Scan
1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where; End temporary
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
@@ -5842,8 +5842,8 @@ INSERT INTO t2 VALUES (1, 0), (1, 1), (2
EXPLAIN
SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index k k 10 NULL 4 Using where; Using index; Materialize; Scan
-1 PRIMARY t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 5
+1 PRIMARY t2 index k k 10 NULL 4 Using where; Using index; Materialize
SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0);
i
1
@@ -6001,9 +6001,9 @@ INSERT INTO t3 VALUES (1), (2);
explain extended SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t3 LEFT JOIN t2 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (Block Nested Loop)
Warnings:
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` = `test`.`t3`.`i`)
SELECT * FROM t1 WHERE (t1.i) IN
@@ -6059,7 +6059,7 @@ explain select * from t1 where t1.a in (
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
a
1
@@ -6078,10 +6078,10 @@ explain SELECT * FROM t1
WHERE t1.a IN (SELECT t2.a
FROM t2 LEFT JOIN (t2 AS t2inner, t3) ON t2.a=t3.a);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
1 PRIMARY t2inner ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1
WHERE t1.a IN (SELECT t2.a
FROM t2 LEFT JOIN (t2 AS t2inner, t3) ON t2.a=t3.a);
@@ -6160,8 +6160,8 @@ WHERE (varchar_nokey, varchar_nokey) IN
FROM t2
WHERE varchar_nokey < 'n' XOR pk);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL varchar_key NULL NULL NULL 15 Using where; Materialize; Scan
-1 PRIMARY t1 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 18
+1 PRIMARY t2 ALL varchar_key NULL NULL NULL 15 Using where; Materialize
DROP TABLE t1, t2;
# End of the test for bug#45174.
#
@@ -6187,7 +6187,7 @@ WHERE t2.i + t3.i = 5);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 10
1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 10 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 10 Using where; End materialize; Using join buffer (Block Nested Loop)
DROP TABLE t1,t2,t3;
# End of the test for bug#50019.
#
@@ -6221,7 +6221,7 @@ FROM it2,it3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY ot1 ALL NULL NULL NULL NULL 2
1 PRIMARY it2 ALL NULL NULL NULL NULL 4 Start materialize; Scan
-1 PRIMARY it3 ALL NULL NULL NULL NULL 6 End materialize
+1 PRIMARY it3 ALL NULL NULL NULL NULL 6 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY ot4 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (Block Nested Loop)
DROP TABLE IF EXISTS ot1, ot4, it2, it3;
# End of the test for bug#52068.
@@ -6439,10 +6439,10 @@ ON alias2.col_varchar_10_latin1_key
ON alias1.col_varchar_1024_utf8_key
WHERE alias1.pk AND alias1.pk < 3 OR alias1.pk AND alias3.pk);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY alias1 ALL NULL NULL NULL NULL 4 Using where; Start materialize; Scan
-1 PRIMARY alias3 index NULL PRIMARY 4 NULL 1 Using where; Using index
-1 PRIMARY alias2 index NULL col_varchar_10_latin1_key 13 NULL 4 Using where; Using index; End materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2
+1 PRIMARY alias1 ALL NULL NULL NULL NULL 4 Using where; Start materialize
+1 PRIMARY alias3 index NULL PRIMARY 4 NULL 1 Using where; Using index; Using join buffer (Block Nested Loop)
+1 PRIMARY alias2 index NULL col_varchar_10_latin1_key 13 NULL 4 Using where; Using index; End materialize; Using join buffer (Block Nested Loop)
SELECT *
FROM t3
WHERE col_varchar_10_latin1_key IN (
@@ -6581,7 +6581,7 @@ id select_type table type possible_keys
1 PRIMARY grandparent1 ALL NULL NULL NULL NULL 15 Using where
1 PRIMARY grandparent2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2 DEPENDENT SUBQUERY child1 ALL NULL NULL NULL NULL 15 Using where; Start materialize; Scan
-2 DEPENDENT SUBQUERY child2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+2 DEPENDENT SUBQUERY child2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
2 DEPENDENT SUBQUERY parent1 ref col_varchar_key col_varchar_key 4 test.child1.col_varchar_nokey 2 Using where
SELECT grandparent1.col_varchar_nokey
FROM t1 AS grandparent1 LEFT JOIN t2 AS grandparent2 USING (col_varchar_nokey)
@@ -6708,9 +6708,9 @@ AND grandparent1.col_varchar_key IS NOT
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
-2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start materialize; Scan
-2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index; End materialize
-2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using where
+2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start temporary
+2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index
+2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using where; End temporary
SELECT *
FROM t1
WHERE g1 NOT IN
=== modified file 'mysql-test/r/subquery_sj_mat_bka_nixbnl.result'
--- a/mysql-test/r/subquery_sj_mat_bka_nixbnl.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_mat_bka_nixbnl.result 2011-11-03 14:17:25 +0000
@@ -1380,8 +1380,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1399,8 +1399,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1418,8 +1418,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1428,8 +1428,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1438,8 +1438,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1456,8 +1456,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1465,8 +1465,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1518,8 +1518,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1556,8 +1556,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1693,8 +1693,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1722,8 +1722,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1732,8 +1732,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1759,8 +1759,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1774,8 +1774,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1793,8 +1793,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1812,8 +1812,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1822,8 +1822,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1832,8 +1832,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1850,8 +1850,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1859,8 +1859,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2250,9 +2250,9 @@ c1 c2 c3
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -2269,9 +2269,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2288,9 +2288,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2298,9 +2298,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2308,9 +2308,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2326,18 +2326,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2388,9 +2388,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2411,8 +2411,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2428,9 +2428,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2438,8 +2438,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2604,9 +2604,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2623,17 +2623,17 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2896,8 +2896,8 @@ t22.a in (select t12.a from t11, t12 whe
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t11 ALL NULL NULL NULL NULL 8 Using where; Using temporary; Using filesort; Start materialize; Scan
1 PRIMARY t12 ALL NULL NULL NULL NULL 8 Using where; End materialize
-1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where
1 PRIMARY t22 ALL NULL NULL NULL NULL 26 Using where
+1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where
select t21.* from t21,t22 where t21.a = t22.a and
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;
a b c
@@ -5251,10 +5251,10 @@ explain select t2.uid from t2, t1
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
and t2.uid=t1.fid;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t4 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ref uid uid 5 const 1 Using where
+1 PRIMARY t4 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ref uid uid 5 const 1 Using where; End materialize
1 PRIMARY t2 ALL NULL NULL NULL NULL 2
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
select t2.uid from t2, t1
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
and t2.uid=t1.fid;
@@ -5332,9 +5332,9 @@ t2.Code IN (SELECT Country FROM t3
WHERE Language='English' AND Percentage > 10 AND
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Start temporary
+1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Materialize; Scan
1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where; End temporary
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
@@ -6001,9 +6001,9 @@ INSERT INTO t3 VALUES (1), (2);
explain extended SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t3 LEFT JOIN t2 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where; End temporary
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where; End materialize
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
Warnings:
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` = `test`.`t3`.`i`)
SELECT * FROM t1 WHERE (t1.i) IN
@@ -6708,9 +6708,9 @@ AND grandparent1.col_varchar_key IS NOT
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
-2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start materialize; Scan
-2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index; End materialize
-2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using where
+2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start temporary
+2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index
+2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using where; End temporary
SELECT *
FROM t1
WHERE g1 NOT IN
=== modified file 'mysql-test/r/subquery_sj_mat_bkaunique.result'
--- a/mysql-test/r/subquery_sj_mat_bkaunique.result 2011-10-24 14:01:11 +0000
+++ b/mysql-test/r/subquery_sj_mat_bkaunique.result 2011-11-03 14:17:25 +0000
@@ -78,11 +78,11 @@ a
3
explain extended select * from t2 where t2.a in (select t1.a from t1,t3 where t1.b=t3.a);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index; Start temporary
-1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ref a a 10 test.t2.a,test.t3.a 116 100.00 Using index; End temporary
+1 PRIMARY t2 index a a 5 NULL 4 100.00 Using where; Using index; Start temporary
+1 PRIMARY t1 ref a a 5 test.t2.a 101 100.00 Using index
+1 PRIMARY t3 index a a 5 NULL 3 100.00 Using where; Using index; End temporary; Using join buffer (Block Nested Loop)
Warnings:
-Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1` join `test`.`t3`) where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t1`.`b` = `test`.`t3`.`a`))
+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`))
insert into t1 values (3,31);
select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
a
@@ -1010,7 +1010,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1026,7 +1026,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1042,7 +1042,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1051,7 +1051,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1060,7 +1060,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1078,7 +1078,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1087,7 +1087,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1102,7 +1102,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1118,7 +1118,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1134,7 +1134,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1144,7 +1144,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1153,7 +1153,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1171,7 +1171,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1180,7 +1180,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1195,7 +1195,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1211,7 +1211,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1227,7 +1227,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1237,7 +1237,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1246,7 +1246,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1264,7 +1264,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1273,7 +1273,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1290,7 +1290,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1306,7 +1306,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1322,7 +1322,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1331,7 +1331,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1340,7 +1340,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1358,7 +1358,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1367,7 +1367,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1381,8 +1381,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1400,8 +1400,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1419,8 +1419,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1429,8 +1429,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1439,8 +1439,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1457,8 +1457,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1466,8 +1466,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1519,8 +1519,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1557,8 +1557,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1584,7 +1584,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1600,7 +1600,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1616,7 +1616,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1625,7 +1625,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1634,7 +1634,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1652,7 +1652,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1661,7 +1661,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1694,8 +1694,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1723,8 +1723,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1733,8 +1733,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1760,8 +1760,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1775,8 +1775,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -1794,8 +1794,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1813,8 +1813,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1823,8 +1823,8 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1833,8 +1833,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -1851,8 +1851,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -1860,8 +1860,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 system NULL NULL NULL NULL 1
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -1879,7 +1879,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
@@ -1895,7 +1895,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -1911,7 +1911,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -1920,7 +1920,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -1929,7 +1929,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -1947,7 +1947,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -1956,7 +1956,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -1971,7 +1971,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
@@ -1987,7 +1987,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2003,7 +2003,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2013,7 +2013,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2022,7 +2022,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2040,7 +2040,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2049,7 +2049,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2096,7 +2096,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2115,9 +2115,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start temporary
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2134,7 +2134,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2142,9 +2142,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 0 Start temporary
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2160,7 +2160,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
@@ -2176,7 +2176,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2192,7 +2192,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Start materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2201,7 +2201,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2210,7 +2210,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2228,7 +2228,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
@@ -2237,7 +2237,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2251,9 +2251,9 @@ c1 c2 c3
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -2270,9 +2270,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2289,9 +2289,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2299,9 +2299,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2309,9 +2309,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2327,18 +2327,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2389,9 +2389,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2412,8 +2412,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2429,9 +2429,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2439,8 +2439,8 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2472,7 +2472,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2497,7 +2497,7 @@ EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2506,7 +2506,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
@@ -2523,9 +2523,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start materialize
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; Start temporary
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2533,7 +2533,7 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 0 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
@@ -2566,9 +2566,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2595,9 +2595,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2605,9 +2605,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2624,17 +2624,17 @@ EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Start temporary
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2647,9 +2647,9 @@ c1 c2 c3
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 INNER JOIN t3 ON t2.i=t3.i);
i
@@ -2669,9 +2669,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2691,9 +2691,9 @@ DEALLOCATE PREPARE stmt;
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
@@ -2702,9 +2702,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2713,9 +2713,9 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 LEFT JOIN t3 ON t2.i=t3.i);
i
@@ -2731,18 +2731,18 @@ i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Start materialize
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 RIGHT JOIN t3 ON t2.i=t3.i);
i
EXPLAIN SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1 WHERE (11) IN
(SELECT t3.i FROM t2 STRAIGHT_JOIN t3);
i
@@ -2896,9 +2896,9 @@ explain select t21.* from t21,t22 where
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;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t11 ALL NULL NULL NULL NULL 8 Using where; Using temporary; Using filesort; Start materialize; Scan
-1 PRIMARY t12 ALL NULL NULL NULL NULL 8 Using where; End materialize
-1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t12 ALL NULL NULL NULL NULL 8 Using where; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t22 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (Block Nested Loop)
select t21.* from t21,t22 where t21.a = t22.a and
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;
a b c
@@ -2950,8 +2950,8 @@ a
19
explain select * from (select a from t0) X where a in (select a from t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Materialize; Scan
-1 PRIMARY <derived2> ALL NULL NULL NULL NULL 11 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 11
+1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Materialize
2 DERIVED t0 ALL NULL NULL NULL NULL 11
drop table t0, t1;
create table t0 (a int);
@@ -2963,8 +2963,8 @@ create table t3 (a int);
insert into t3 select A.a + 10*B.a from t0 A, t0 B;
explain select * from t3 where a in (select kp1 from t1 where kp1<20);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; Materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100
+1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; Materialize
select * from t3 where a in (select kp1 from t1 where kp1<20);
a
0
@@ -2989,8 +2989,8 @@ a
19
explain select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; Materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; Materialize
select * from t3 where a in (select kp1 from t1 where kp1<20) and a<20;
a
0
@@ -3018,9 +3018,9 @@ insert into t4 select a from t3;
explain select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Start materialize; Scan
+1 PRIMARY t3 ALL NULL NULL NULL NULL 100
+1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Start materialize
1 PRIMARY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index; End materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
select * from t3 where a in
(select t1.kp1 from t1,t4 where kp1<20 and t4.pk=t1.c);
a
@@ -3180,12 +3180,12 @@ insert into t1 select A.a, B.a, 'filler'
create table t2 as select * from t1;
explain select * from t2 where a in (select b from t1 where a=3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ref a a 5 const 8 Using index; Materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 100
+1 PRIMARY t1 ref a a 5 const 8 Using index; Materialize
explain select * from t2 where (b,a) in (select a,b from t1 where a=3);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ref a a 5 const 8 Using index; Materialize; Scan
-1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where
+1 PRIMARY t1 ref a a 5 const 8 Using index; Materialize
drop table t1,t2;
create table t1 (a int, b int);
insert into t1 select a,a from t0;
@@ -3231,8 +3231,8 @@ explain select * from t1 where (a,b,c) i
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 3
1 PRIMARY X ALL NULL NULL NULL NULL 6 Using where; Start materialize
-1 PRIMARY Y ALL NULL NULL NULL NULL 6
-1 PRIMARY Z ALL NULL NULL NULL NULL 6 End materialize
+1 PRIMARY Y ALL NULL NULL NULL NULL 6 Using join buffer (Block Nested Loop)
+1 PRIMARY Z ALL NULL NULL NULL NULL 6 End materialize; Using join buffer (Block Nested Loop)
drop table t0,t1,t2;
set @save_join_buffer_size = @@join_buffer_size;
set join_buffer_size= 8192;
@@ -4292,7 +4292,7 @@ FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index; Start materialize; Scan
-1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; End materialize
+1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t0 ALL NULL NULL NULL NULL 20 Using where; Using join buffer (Block Nested Loop)
SELECT t0.int_key
FROM t0, t2
@@ -4313,7 +4313,7 @@ FROM t1 AS t1_1 JOIN t1 AS t1_2 ON t1_1
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 system NULL NULL NULL NULL 1
1 PRIMARY t1_1 index varchar_key varchar_key 9 NULL 2 Using where; Using index; Start materialize; Scan
-1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; End materialize
+1 PRIMARY t1_2 index NULL int_key 5 NULL 2 Using index; End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY t0 ALL NULL NULL NULL NULL 20 Using where; Using join buffer (Block Nested Loop)
DROP TABLE t0, t1, t2;
# End of bug#46550
@@ -4711,7 +4711,7 @@ WHERE PNUM IN
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY STAFF ALL NULL NULL NULL NULL 5
1 PRIMARY PROJ ALL NULL NULL NULL NULL 6 Start materialize
-1 PRIMARY WORKS ALL NULL NULL NULL NULL 12 Using where; End materialize
+1 PRIMARY WORKS ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT EMPNUM, EMPNAME
FROM STAFF
WHERE EMPNUM IN
@@ -4887,8 +4887,8 @@ CREATE INDEX I1 ON t1 (a);
CREATE INDEX I2 ON t1 (b);
EXPLAIN SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index I1 I1 2 NULL 2 Using index; Materialize; Scan
-1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using index; Materialize
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1);
a b
CREATE TABLE t2 (a VARCHAR(1), b VARCHAR(10));
@@ -4897,15 +4897,15 @@ CREATE INDEX I1 ON t2 (a);
CREATE INDEX I2 ON t2 (b);
EXPLAIN SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index I1 I1 4 NULL 2 Using index; Materialize; Scan
-1 PRIMARY t2 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t2 ALL I2 NULL NULL NULL 2
+1 PRIMARY t2 index I1 I1 4 NULL 2 Using index; Materialize
SELECT a,b FROM t2 WHERE b IN (SELECT a FROM t2);
a b
EXPLAIN
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; Materialize; Scan
-1 PRIMARY t1 ALL I2 NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL I2 NULL NULL NULL 2
+1 PRIMARY t1 index I1 I1 2 NULL 2 Using where; Using index; Materialize
SELECT a,b FROM t1 WHERE b IN (SELECT a FROM t1 WHERE LENGTH(a)<500);
a b
DROP TABLE t1,t2;
@@ -5007,9 +5007,9 @@ WHERE PNUM IN
FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5021,14 +5021,14 @@ WHERE EMPNUM IN
WHERE PTYPE = 'Design'))";
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize; Scan
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
-1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP INDEX t1_IDX ON t1;
CREATE INDEX t1_IDX ON t1(EMPNUM);
@@ -5042,9 +5042,9 @@ WHERE PNUM IN
FROM t2
WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5056,14 +5056,14 @@ WHERE EMPNUM IN
WHERE PTYPE = 'Design'))";
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize; Scan
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
-1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
+1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
-1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize; Scan
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
-1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 SIMPLE t1 ALL t1_IDX NULL NULL NULL 5
+1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP INDEX t1_IDX ON t1;
EXPLAIN SELECT EMPNAME
@@ -5078,7 +5078,7 @@ WHERE PTYPE = 'Design'));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 5
1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
FROM t1
WHERE EMPNUM IN
@@ -5092,12 +5092,12 @@ EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 5
1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
EXECUTE stmt;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Start materialize
-1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize
+1 SIMPLE t3 ALL NULL NULL NULL NULL 12 Using where; End materialize; Using join buffer (Block Nested Loop)
DEALLOCATE PREPARE stmt;
DROP TABLE t1, t2, t3;
#
@@ -5151,9 +5151,9 @@ FROM t2
WHERE 1 IN(SELECT 1
FROM t3));
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Start materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 End materialize; Using join buffer (Block Nested Loop)
Warnings:
Note 1003 /* select#1 */ select `test`.`t1`.`id` AS `id` from `test`.`t1` semi join (`test`.`t3` join `test`.`t2`) where 1
delete from t2;
@@ -5191,8 +5191,8 @@ FROM t4)));
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 9
1 PRIMARY t2 ALL NULL NULL NULL NULL 9 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 9
-1 PRIMARY t4 ALL NULL NULL NULL NULL 9 End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 9 Using join buffer (Block Nested Loop)
+1 PRIMARY t4 ALL NULL NULL NULL NULL 9 End materialize; Using join buffer (Block Nested Loop)
SELECT *
FROM t1
WHERE 1 IN(SELECT 1
@@ -5252,10 +5252,10 @@ explain select t2.uid from t2, t1
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
and t2.uid=t1.fid;
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t4 ALL NULL NULL NULL NULL 1 Start temporary
-1 PRIMARY t3 ref uid uid 5 const 1 Using where
+1 PRIMARY t4 ALL NULL NULL NULL NULL 1 Start materialize; Scan
+1 PRIMARY t3 ref uid uid 5 const 1 Using where; End materialize
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
select t2.uid from t2, t1
where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid)
and t2.uid=t1.fid;
@@ -5333,9 +5333,9 @@ t2.Code IN (SELECT Country FROM t3
WHERE Language='English' AND Percentage > 10 AND
t2.Population > 100000);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Start temporary
+1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using where; Materialize; Scan
1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
-1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where; End temporary
+1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t2.Code,const 1 Using where
DROP TABLE t1,t2,t3;
CREATE TABLE t1 (
Code char(3) NOT NULL DEFAULT '',
@@ -5843,8 +5843,8 @@ INSERT INTO t2 VALUES (1, 0), (1, 1), (2
EXPLAIN
SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 index k k 10 NULL 4 Using where; Using index; Materialize; Scan
-1 PRIMARY t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 5
+1 PRIMARY t2 index k k 10 NULL 4 Using where; Using index; Materialize
SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0);
i
1
@@ -6002,9 +6002,9 @@ INSERT INTO t3 VALUES (1), (2);
explain extended SELECT * FROM t1 WHERE (t1.i) IN
(SELECT t3.i FROM t3 LEFT JOIN t2 ON t2.i=t3.i);
id select_type table type possible_keys key key_len ref rows filtered Extra
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where; Using join buffer (Block Nested Loop)
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00 Start materialize; Scan
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where; End materialize; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (Block Nested Loop)
Warnings:
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` = `test`.`t3`.`i`)
SELECT * FROM t1 WHERE (t1.i) IN
@@ -6060,7 +6060,7 @@ explain select * from t1 where t1.a in (
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
1 PRIMARY t2 ALL NULL NULL NULL NULL 4 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a);
a
1
@@ -6079,10 +6079,10 @@ explain SELECT * FROM t1
WHERE t1.a IN (SELECT t2.a
FROM t2 LEFT JOIN (t2 AS t2inner, t3) ON t2.a=t3.a);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Start temporary
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Start materialize
1 PRIMARY t2inner ALL NULL NULL NULL NULL 2 Using join buffer (Block Nested Loop)
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End materialize; Using join buffer (Block Nested Loop)
SELECT * FROM t1
WHERE t1.a IN (SELECT t2.a
FROM t2 LEFT JOIN (t2 AS t2inner, t3) ON t2.a=t3.a);
@@ -6161,8 +6161,8 @@ WHERE (varchar_nokey, varchar_nokey) IN
FROM t2
WHERE varchar_nokey < 'n' XOR pk);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY t2 ALL varchar_key NULL NULL NULL 15 Using where; Materialize; Scan
-1 PRIMARY t1 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t1 ALL NULL NULL NULL NULL 18
+1 PRIMARY t2 ALL varchar_key NULL NULL NULL 15 Using where; Materialize
DROP TABLE t1, t2;
# End of the test for bug#45174.
#
@@ -6188,7 +6188,7 @@ WHERE t2.i + t3.i = 5);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 10
1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Start materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 10 Using where; End materialize
+1 PRIMARY t3 ALL NULL NULL NULL NULL 10 Using where; End materialize; Using join buffer (Block Nested Loop)
DROP TABLE t1,t2,t3;
# End of the test for bug#50019.
#
@@ -6222,7 +6222,7 @@ FROM it2,it3);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY ot1 ALL NULL NULL NULL NULL 2
1 PRIMARY it2 ALL NULL NULL NULL NULL 4 Start materialize; Scan
-1 PRIMARY it3 ALL NULL NULL NULL NULL 6 End materialize
+1 PRIMARY it3 ALL NULL NULL NULL NULL 6 End materialize; Using join buffer (Block Nested Loop)
1 PRIMARY ot4 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (Block Nested Loop)
DROP TABLE IF EXISTS ot1, ot4, it2, it3;
# End of the test for bug#52068.
@@ -6440,10 +6440,10 @@ ON alias2.col_varchar_10_latin1_key
ON alias1.col_varchar_1024_utf8_key
WHERE alias1.pk AND alias1.pk < 3 OR alias1.pk AND alias3.pk);
id select_type table type possible_keys key key_len ref rows Extra
-1 PRIMARY alias1 ALL NULL NULL NULL NULL 4 Using where; Start materialize; Scan
-1 PRIMARY alias3 index NULL PRIMARY 4 NULL 1 Using where; Using index
-1 PRIMARY alias2 index NULL col_varchar_10_latin1_key 13 NULL 4 Using where; Using index; End materialize
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (Block Nested Loop)
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2
+1 PRIMARY alias1 ALL NULL NULL NULL NULL 4 Using where; Start materialize
+1 PRIMARY alias3 index NULL PRIMARY 4 NULL 1 Using where; Using index; Using join buffer (Block Nested Loop)
+1 PRIMARY alias2 index NULL col_varchar_10_latin1_key 13 NULL 4 Using where; Using index; End materialize; Using join buffer (Block Nested Loop)
SELECT *
FROM t3
WHERE col_varchar_10_latin1_key IN (
@@ -6582,7 +6582,7 @@ id select_type table type possible_keys
1 PRIMARY grandparent1 ALL NULL NULL NULL NULL 15 Using where
1 PRIMARY grandparent2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (Block Nested Loop)
2 DEPENDENT SUBQUERY child1 ALL NULL NULL NULL NULL 15 Using where; Start materialize; Scan
-2 DEPENDENT SUBQUERY child2 ALL NULL NULL NULL NULL 1 Using where; End materialize
+2 DEPENDENT SUBQUERY child2 ALL NULL NULL NULL NULL 1 Using where; End materialize; Using join buffer (Block Nested Loop)
2 DEPENDENT SUBQUERY parent1 ref col_varchar_key col_varchar_key 4 test.child1.col_varchar_nokey 2 Using where
SELECT grandparent1.col_varchar_nokey
FROM t1 AS grandparent1 LEFT JOIN t2 AS grandparent2 USING (col_varchar_nokey)
@@ -6709,9 +6709,9 @@ AND grandparent1.col_varchar_key IS NOT
);
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
-2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start materialize; Scan
-2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index; End materialize
-2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using where
+2 DEPENDENT SUBQUERY parent1 ALL NULL NULL NULL NULL 20 Start temporary
+2 DEPENDENT SUBQUERY parent2 eq_ref PRIMARY PRIMARY 4 test.parent1.pk 1 Using index
+2 DEPENDENT SUBQUERY grandparent1 ref col_varchar_key col_varchar_key 3 test.parent1.col_varchar_nokey 1 Using where; End temporary
SELECT *
FROM t1
WHERE g1 NOT IN
=== modified file 'mysql-test/suite/opt_trace/r/bugs_no_prot_all.result'
--- a/mysql-test/suite/opt_trace/r/bugs_no_prot_all.result 2011-10-31 08:27:57 +0000
+++ b/mysql-test/suite/opt_trace/r/bugs_no_prot_all.result 2011-11-03 14:17:25 +0000
@@ -577,20 +577,20 @@ FROM t1
"tables": [
] /* tables */
} /* recalculate_access_paths_and_cost */,
- "cost": 2.0049,
+ "cost": 2.2049,
"rows": 1,
"chosen": true
},
{
"strategy": "MaterializeLookup",
- "cost": 2.3049,
+ "cost": 4.6049,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
},
{
"strategy": "DuplicatesWeedout",
- "cost": 2.1049,
+ "cost": 4.6049,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
@@ -1316,7 +1316,7 @@ ON table2 .col_int_key = table1 .col_int
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 21.835,
+ "cost": 41.435,
"rows": 6,
"duplicate_tables_left": true,
"chosen": true
@@ -1371,7 +1371,7 @@ ON table2 .col_int_key = table1 .col_int
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 21.84,
+ "cost": 43.84,
"rows": 6,
"duplicate_tables_left": true,
"chosen": true
@@ -1453,7 +1453,7 @@ ON table2 .col_int_key = table1 .col_int
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 21.835,
+ "cost": 41.435,
"rows": 6,
"duplicate_tables_left": true,
"chosen": true
@@ -1508,7 +1508,7 @@ ON table2 .col_int_key = table1 .col_int
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 21.84,
+ "cost": 43.84,
"rows": 6,
"duplicate_tables_left": true,
"chosen": true
@@ -1627,30 +1627,29 @@ ON table2 .col_int_key = table1 .col_int
},
{
"access_type": "scan",
- "using_join_cache": true,
"rows": 3,
- "cost": 2.2101,
- "chosen": true
+ "cost": 26.482,
+ "chosen": false
}
] /* considered_access_paths */
} /* best_access_path */
}
] /* tables */
} /* recalculate_access_paths_and_cost */,
- "cost": 11.569,
+ "cost": 28.838,
"rows": 6,
"chosen": true
},
{
"strategy": "MaterializeLookup",
- "cost": 11.533,
+ "cost": 16.233,
"rows": 6,
"duplicate_tables_left": false,
"chosen": true
},
{
"strategy": "DuplicatesWeedout",
- "cost": 16.639,
+ "cost": 36.039,
"rows": 6,
"duplicate_tables_left": false,
"chosen": false
@@ -1749,30 +1748,29 @@ ON table2 .col_int_key = table1 .col_int
},
{
"access_type": "scan",
- "using_join_cache": true,
"rows": 3,
- "cost": 2.2101,
- "chosen": true
+ "cost": 26.482,
+ "chosen": false
}
] /* considered_access_paths */
} /* best_access_path */
}
] /* tables */
} /* recalculate_access_paths_and_cost */,
- "cost": 11.569,
+ "cost": 28.838,
"rows": 6,
"chosen": true
},
{
"strategy": "MaterializeLookup",
- "cost": 11.533,
+ "cost": 16.233,
"rows": 6,
"duplicate_tables_left": false,
"chosen": true
},
{
"strategy": "DuplicatesWeedout",
- "cost": 16.639,
+ "cost": 36.039,
"rows": 6,
"duplicate_tables_left": false,
"chosen": false
=== modified file 'mysql-test/suite/opt_trace/r/bugs_ps_prot_all.result'
--- a/mysql-test/suite/opt_trace/r/bugs_ps_prot_all.result 2011-10-31 08:27:57 +0000
+++ b/mysql-test/suite/opt_trace/r/bugs_ps_prot_all.result 2011-11-03 14:17:25 +0000
@@ -577,20 +577,20 @@ FROM t1
"tables": [
] /* tables */
} /* recalculate_access_paths_and_cost */,
- "cost": 2.0049,
+ "cost": 2.2049,
"rows": 1,
"chosen": true
},
{
"strategy": "MaterializeLookup",
- "cost": 2.3049,
+ "cost": 4.6049,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
},
{
"strategy": "DuplicatesWeedout",
- "cost": 2.1049,
+ "cost": 4.6049,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
@@ -1316,7 +1316,7 @@ ON table2 .col_int_key = table1 .col_int
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 21.835,
+ "cost": 41.435,
"rows": 6,
"duplicate_tables_left": true,
"chosen": true
@@ -1371,7 +1371,7 @@ ON table2 .col_int_key = table1 .col_int
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 21.84,
+ "cost": 43.84,
"rows": 6,
"duplicate_tables_left": true,
"chosen": true
@@ -1453,7 +1453,7 @@ ON table2 .col_int_key = table1 .col_int
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 21.835,
+ "cost": 41.435,
"rows": 6,
"duplicate_tables_left": true,
"chosen": true
@@ -1508,7 +1508,7 @@ ON table2 .col_int_key = table1 .col_int
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 21.84,
+ "cost": 43.84,
"rows": 6,
"duplicate_tables_left": true,
"chosen": true
@@ -1627,30 +1627,29 @@ ON table2 .col_int_key = table1 .col_int
},
{
"access_type": "scan",
- "using_join_cache": true,
"rows": 3,
- "cost": 2.2101,
- "chosen": true
+ "cost": 26.482,
+ "chosen": false
}
] /* considered_access_paths */
} /* best_access_path */
}
] /* tables */
} /* recalculate_access_paths_and_cost */,
- "cost": 11.569,
+ "cost": 28.838,
"rows": 6,
"chosen": true
},
{
"strategy": "MaterializeLookup",
- "cost": 11.533,
+ "cost": 16.233,
"rows": 6,
"duplicate_tables_left": false,
"chosen": true
},
{
"strategy": "DuplicatesWeedout",
- "cost": 16.639,
+ "cost": 36.039,
"rows": 6,
"duplicate_tables_left": false,
"chosen": false
@@ -1749,30 +1748,29 @@ ON table2 .col_int_key = table1 .col_int
},
{
"access_type": "scan",
- "using_join_cache": true,
"rows": 3,
- "cost": 2.2101,
- "chosen": true
+ "cost": 26.482,
+ "chosen": false
}
] /* considered_access_paths */
} /* best_access_path */
}
] /* tables */
} /* recalculate_access_paths_and_cost */,
- "cost": 11.569,
+ "cost": 28.838,
"rows": 6,
"chosen": true
},
{
"strategy": "MaterializeLookup",
- "cost": 11.533,
+ "cost": 16.233,
"rows": 6,
"duplicate_tables_left": false,
"chosen": true
},
{
"strategy": "DuplicatesWeedout",
- "cost": 16.639,
+ "cost": 36.039,
"rows": 6,
"duplicate_tables_left": false,
"chosen": false
=== modified file 'mysql-test/suite/opt_trace/r/general_no_prot_all.result'
--- a/mysql-test/suite/opt_trace/r/general_no_prot_all.result 2011-10-25 10:28:05 +0000
+++ b/mysql-test/suite/opt_trace/r/general_no_prot_all.result 2011-11-03 14:17:25 +0000
@@ -1599,20 +1599,20 @@ explain SELECT c FROM t5 where c+1 in (s
"tables": [
] /* tables */
} /* recalculate_access_paths_and_cost */,
- "cost": 1,
+ "cost": 1.2,
"rows": 1,
"chosen": true
},
{
"strategy": "MaterializeLookup",
- "cost": 1.3,
+ "cost": 3.6,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
},
{
"strategy": "DuplicatesWeedout",
- "cost": 1.1,
+ "cost": 3.6,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
@@ -5067,7 +5067,7 @@ trace
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 5.1035,
+ "cost": 8.0035,
"rows": 1,
"duplicate_tables_left": true,
"chosen": true
@@ -5122,7 +5122,7 @@ trace
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 5.1036,
+ "cost": 8.0036,
"rows": 1,
"duplicate_tables_left": true,
"chosen": true
@@ -5240,9 +5240,8 @@ trace
"considered_access_paths": [
{
"access_type": "scan",
- "using_join_cache": true,
"rows": 1,
- "cost": 2.0018,
+ "cost": 2.0017,
"chosen": true
}
] /* considered_access_paths */
@@ -5250,19 +5249,19 @@ trace
}
] /* tables */
} /* recalculate_access_paths_and_cost */,
- "cost": 5.2036,
+ "cost": 5.6034,
"rows": 1,
"chosen": true
},
{
"strategy": "DuplicatesWeedout",
- "cost": 5.3036,
+ "cost": 8.0036,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
}
] /* semijoin_strategy_choice */,
- "pruned_by_cost": true
+ "chosen": true
}
] /* rest_of_plan */
},
@@ -5289,7 +5288,39 @@ trace
] /* rest_of_plan */
},
{
- "final_semijoin_strategy": "DuplicateWeedout"
+ "final_semijoin_strategy": "FirstMatch",
+ "recalculate_access_paths_and_cost": {
+ "tables": [
+ {
+ "database": "test",
+ "table": "t1",
+ "best_access_path": {
+ "considered_access_paths": [
+ {
+ "access_type": "scan",
+ "rows": 1,
+ "cost": 2.0017,
+ "chosen": true
+ }
+ ] /* considered_access_paths */
+ } /* best_access_path */
+ },
+ {
+ "database": "test",
+ "table": "t2",
+ "best_access_path": {
+ "considered_access_paths": [
+ {
+ "access_type": "scan",
+ "rows": 1,
+ "cost": 2.0017,
+ "chosen": true
+ }
+ ] /* considered_access_paths */
+ } /* best_access_path */
+ }
+ ] /* tables */
+ } /* recalculate_access_paths_and_cost */
}
] /* considered_execution_plans */
}
@@ -5501,7 +5532,7 @@ trace
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 5.1035,
+ "cost": 8.0035,
"rows": 1,
"duplicate_tables_left": true,
"chosen": true
@@ -5556,7 +5587,7 @@ trace
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 5.1036,
+ "cost": 8.0036,
"rows": 1,
"duplicate_tables_left": true,
"chosen": true
@@ -5674,9 +5705,8 @@ trace
"considered_access_paths": [
{
"access_type": "scan",
- "using_join_cache": true,
"rows": 1,
- "cost": 2.0018,
+ "cost": 2.0017,
"chosen": true
}
] /* considered_access_paths */
@@ -5684,19 +5714,19 @@ trace
}
] /* tables */
} /* recalculate_access_paths_and_cost */,
- "cost": 5.2036,
+ "cost": 5.6034,
"rows": 1,
"chosen": true
},
{
"strategy": "DuplicatesWeedout",
- "cost": 5.3036,
+ "cost": 8.0036,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
}
] /* semijoin_strategy_choice */,
- "pruned_by_cost": true
+ "chosen": true
}
] /* rest_of_plan */
},
@@ -5723,7 +5753,39 @@ trace
] /* rest_of_plan */
},
{
- "final_semijoin_strategy": "DuplicateWeedout"
+ "final_semijoin_strategy": "FirstMatch",
+ "recalculate_access_paths_and_cost": {
+ "tables": [
+ {
+ "database": "test",
+ "table": "t1",
+ "best_access_path": {
+ "considered_access_paths": [
+ {
+ "access_type": "scan",
+ "rows": 1,
+ "cost": 2.0017,
+ "chosen": true
+ }
+ ] /* considered_access_paths */
+ } /* best_access_path */
+ },
+ {
+ "database": "test",
+ "table": "t2",
+ "best_access_path": {
+ "considered_access_paths": [
+ {
+ "access_type": "scan",
+ "rows": 1,
+ "cost": 2.0017,
+ "chosen": true
+ }
+ ] /* considered_access_paths */
+ } /* best_access_path */
+ }
+ ] /* tables */
+ } /* recalculate_access_paths_and_cost */
}
] /* considered_execution_plans */
}
@@ -7671,7 +7733,7 @@ select * from t6 where d in (select f1()
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 5.2289,
+ "cost": 8.6289,
"rows": 1,
"duplicate_tables_left": true,
"chosen": true
@@ -7745,20 +7807,20 @@ select * from t6 where d in (select f1()
}
] /* tables */
} /* recalculate_access_paths_and_cost */,
- "cost": 3.2213,
+ "cost": 3.8213,
"rows": 1,
"chosen": true
},
{
"strategy": "MaterializeLookup",
- "cost": 4.0212,
+ "cost": 6.6212,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
},
{
"strategy": "DuplicatesWeedout",
- "cost": 3.8213,
+ "cost": 6.6213,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
@@ -7779,8 +7841,9 @@ select * from t6 where d in (select f1()
"considered_access_paths": [
{
"access_type": "scan",
+ "using_join_cache": true,
"rows": 3,
- "cost": 2.0212,
+ "cost": 2.0215,
"chosen": true
}
] /* considered_access_paths */
@@ -8363,7 +8426,7 @@ select d into res from t6 where d in (se
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 5.2289,
+ "cost": 8.6289,
"rows": 1,
"duplicate_tables_left": true,
"chosen": true
@@ -8437,20 +8500,20 @@ select d into res from t6 where d in (se
}
] /* tables */
} /* recalculate_access_paths_and_cost */,
- "cost": 3.2213,
+ "cost": 3.8213,
"rows": 1,
"chosen": true
},
{
"strategy": "MaterializeLookup",
- "cost": 4.0212,
+ "cost": 6.6212,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
},
{
"strategy": "DuplicatesWeedout",
- "cost": 3.8213,
+ "cost": 6.6213,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
@@ -8471,8 +8534,9 @@ select d into res from t6 where d in (se
"considered_access_paths": [
{
"access_type": "scan",
+ "using_join_cache": true,
"rows": 3,
- "cost": 2.0212,
+ "cost": 2.0215,
"chosen": true
}
] /* considered_access_paths */
@@ -9991,20 +10055,20 @@ select d into res from t6 where d in (se
}
] /* tables */
} /* recalculate_access_paths_and_cost */,
- "cost": 3.2496,
+ "cost": 4.6496,
"rows": 1,
"chosen": true
},
{
"strategy": "MaterializeLookup",
- "cost": 5.0496,
+ "cost": 8.2496,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
},
{
"strategy": "DuplicatesWeedout",
- "cost": 6.0496,
+ "cost": 8.2496,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
@@ -10031,7 +10095,7 @@ select d into res from t6 where d in (se
"rows_for_plan": 7,
"semijoin_strategy_choice": [
] /* semijoin_strategy_choice */,
- "pruned_by_cost": true
+ "pruned_by_heuristic": true
},
{
"final_semijoin_strategy": "FirstMatch",
@@ -10044,6 +10108,7 @@ select d into res from t6 where d in (se
"considered_access_paths": [
{
"access_type": "scan",
+ "using_join_cache": true,
"rows": 7,
"cost": 2.0496,
"chosen": true
=== modified file 'mysql-test/suite/opt_trace/r/general_ps_prot_all.result'
--- a/mysql-test/suite/opt_trace/r/general_ps_prot_all.result 2011-10-25 10:28:05 +0000
+++ b/mysql-test/suite/opt_trace/r/general_ps_prot_all.result 2011-11-03 14:17:25 +0000
@@ -1579,20 +1579,20 @@ explain SELECT c FROM t5 where c+1 in (s
"tables": [
] /* tables */
} /* recalculate_access_paths_and_cost */,
- "cost": 1,
+ "cost": 1.2,
"rows": 1,
"chosen": true
},
{
"strategy": "MaterializeLookup",
- "cost": 1.3,
+ "cost": 3.6,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
},
{
"strategy": "DuplicatesWeedout",
- "cost": 1.1,
+ "cost": 3.6,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
@@ -5047,7 +5047,7 @@ trace
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 5.1035,
+ "cost": 8.0035,
"rows": 1,
"duplicate_tables_left": true,
"chosen": true
@@ -5102,7 +5102,7 @@ trace
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 5.1036,
+ "cost": 8.0036,
"rows": 1,
"duplicate_tables_left": true,
"chosen": true
@@ -5220,9 +5220,8 @@ trace
"considered_access_paths": [
{
"access_type": "scan",
- "using_join_cache": true,
"rows": 1,
- "cost": 2.0018,
+ "cost": 2.0017,
"chosen": true
}
] /* considered_access_paths */
@@ -5230,19 +5229,19 @@ trace
}
] /* tables */
} /* recalculate_access_paths_and_cost */,
- "cost": 5.2036,
+ "cost": 5.6034,
"rows": 1,
"chosen": true
},
{
"strategy": "DuplicatesWeedout",
- "cost": 5.3036,
+ "cost": 8.0036,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
}
] /* semijoin_strategy_choice */,
- "pruned_by_cost": true
+ "chosen": true
}
] /* rest_of_plan */
},
@@ -5269,7 +5268,39 @@ trace
] /* rest_of_plan */
},
{
- "final_semijoin_strategy": "DuplicateWeedout"
+ "final_semijoin_strategy": "FirstMatch",
+ "recalculate_access_paths_and_cost": {
+ "tables": [
+ {
+ "database": "test",
+ "table": "t1",
+ "best_access_path": {
+ "considered_access_paths": [
+ {
+ "access_type": "scan",
+ "rows": 1,
+ "cost": 2.0017,
+ "chosen": true
+ }
+ ] /* considered_access_paths */
+ } /* best_access_path */
+ },
+ {
+ "database": "test",
+ "table": "t2",
+ "best_access_path": {
+ "considered_access_paths": [
+ {
+ "access_type": "scan",
+ "rows": 1,
+ "cost": 2.0017,
+ "chosen": true
+ }
+ ] /* considered_access_paths */
+ } /* best_access_path */
+ }
+ ] /* tables */
+ } /* recalculate_access_paths_and_cost */
}
] /* considered_execution_plans */
}
@@ -5481,7 +5512,7 @@ trace
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 5.1035,
+ "cost": 8.0035,
"rows": 1,
"duplicate_tables_left": true,
"chosen": true
@@ -5536,7 +5567,7 @@ trace
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 5.1036,
+ "cost": 8.0036,
"rows": 1,
"duplicate_tables_left": true,
"chosen": true
@@ -5654,9 +5685,8 @@ trace
"considered_access_paths": [
{
"access_type": "scan",
- "using_join_cache": true,
"rows": 1,
- "cost": 2.0018,
+ "cost": 2.0017,
"chosen": true
}
] /* considered_access_paths */
@@ -5664,19 +5694,19 @@ trace
}
] /* tables */
} /* recalculate_access_paths_and_cost */,
- "cost": 5.2036,
+ "cost": 5.6034,
"rows": 1,
"chosen": true
},
{
"strategy": "DuplicatesWeedout",
- "cost": 5.3036,
+ "cost": 8.0036,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
}
] /* semijoin_strategy_choice */,
- "pruned_by_cost": true
+ "chosen": true
}
] /* rest_of_plan */
},
@@ -5703,7 +5733,39 @@ trace
] /* rest_of_plan */
},
{
- "final_semijoin_strategy": "DuplicateWeedout"
+ "final_semijoin_strategy": "FirstMatch",
+ "recalculate_access_paths_and_cost": {
+ "tables": [
+ {
+ "database": "test",
+ "table": "t1",
+ "best_access_path": {
+ "considered_access_paths": [
+ {
+ "access_type": "scan",
+ "rows": 1,
+ "cost": 2.0017,
+ "chosen": true
+ }
+ ] /* considered_access_paths */
+ } /* best_access_path */
+ },
+ {
+ "database": "test",
+ "table": "t2",
+ "best_access_path": {
+ "considered_access_paths": [
+ {
+ "access_type": "scan",
+ "rows": 1,
+ "cost": 2.0017,
+ "chosen": true
+ }
+ ] /* considered_access_paths */
+ } /* best_access_path */
+ }
+ ] /* tables */
+ } /* recalculate_access_paths_and_cost */
}
] /* considered_execution_plans */
}
@@ -7643,7 +7705,7 @@ select * from t6 where d in (select f1()
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 5.2289,
+ "cost": 8.6289,
"rows": 1,
"duplicate_tables_left": true,
"chosen": true
@@ -7717,20 +7779,20 @@ select * from t6 where d in (select f1()
}
] /* tables */
} /* recalculate_access_paths_and_cost */,
- "cost": 3.2213,
+ "cost": 3.8213,
"rows": 1,
"chosen": true
},
{
"strategy": "MaterializeLookup",
- "cost": 4.0212,
+ "cost": 6.6212,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
},
{
"strategy": "DuplicatesWeedout",
- "cost": 3.8213,
+ "cost": 6.6213,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
@@ -7751,8 +7813,9 @@ select * from t6 where d in (select f1()
"considered_access_paths": [
{
"access_type": "scan",
+ "using_join_cache": true,
"rows": 3,
- "cost": 2.0212,
+ "cost": 2.0215,
"chosen": true
}
] /* considered_access_paths */
@@ -8325,7 +8388,7 @@ select d into res from t6 where d in (se
"semijoin_strategy_choice": [
{
"strategy": "DuplicatesWeedout",
- "cost": 5.2289,
+ "cost": 8.6289,
"rows": 1,
"duplicate_tables_left": true,
"chosen": true
@@ -8399,20 +8462,20 @@ select d into res from t6 where d in (se
}
] /* tables */
} /* recalculate_access_paths_and_cost */,
- "cost": 3.2213,
+ "cost": 3.8213,
"rows": 1,
"chosen": true
},
{
"strategy": "MaterializeLookup",
- "cost": 4.0212,
+ "cost": 6.6212,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
},
{
"strategy": "DuplicatesWeedout",
- "cost": 3.8213,
+ "cost": 6.6213,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
@@ -8433,8 +8496,9 @@ select d into res from t6 where d in (se
"considered_access_paths": [
{
"access_type": "scan",
+ "using_join_cache": true,
"rows": 3,
- "cost": 2.0212,
+ "cost": 2.0215,
"chosen": true
}
] /* considered_access_paths */
@@ -9967,20 +10031,20 @@ select d into res from t6 where d in (se
}
] /* tables */
} /* recalculate_access_paths_and_cost */,
- "cost": 3.2496,
+ "cost": 4.6496,
"rows": 1,
"chosen": true
},
{
"strategy": "MaterializeLookup",
- "cost": 5.0496,
+ "cost": 8.2496,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
},
{
"strategy": "DuplicatesWeedout",
- "cost": 6.0496,
+ "cost": 8.2496,
"rows": 1,
"duplicate_tables_left": false,
"chosen": false
@@ -10007,7 +10071,7 @@ select d into res from t6 where d in (se
"rows_for_plan": 7,
"semijoin_strategy_choice": [
] /* semijoin_strategy_choice */,
- "pruned_by_cost": true
+ "pruned_by_heuristic": true
},
{
"final_semijoin_strategy": "FirstMatch",
@@ -10020,6 +10084,7 @@ select d into res from t6 where d in (se
"considered_access_paths": [
{
"access_type": "scan",
+ "using_join_cache": true,
"rows": 7,
"cost": 2.0496,
"chosen": true
=== modified file 'mysql-test/t/derived.test'
--- a/mysql-test/t/derived.test 2011-11-02 12:52:33 +0000
+++ b/mysql-test/t/derived.test 2011-11-03 14:17:25 +0000
@@ -980,6 +980,9 @@ DROP TABLE t1, t2;
--echo # Bug#13106350: MRR initialization on a derived table caused crash.
--echo #
+SET @save_switch= @@optimizer_switch;
+SET @@optimizer_switch="materialization=off";
+
CREATE TABLE t1 (pk INTEGER PRIMARY KEY, vc VARCHAR(20));
INSERT INTO t1 VALUES(7, 'seven'), (13, 'thirteen');
@@ -1001,6 +1004,8 @@ WHERE derived.vc IN (
eval explain $query;
eval $query;
+SET @@optimizer_switch= @save_switch;
+
DROP TABLE t1, t2, t3;
--echo #
=== modified file 'sql/sql_const.h'
--- a/sql/sql_const.h 2011-10-31 08:27:57 +0000
+++ b/sql/sql_const.h 2011-11-03 14:17:25 +0000
@@ -194,12 +194,6 @@
Lookup and write operations are currently assumed to be equally costly
(concerns HEAP_TEMPTABLE_ROW_COST and DISK_TEMPTABLE_ROW_COST).
*/
-
-#define HEAP_TEMPTABLE_CREATE_COST 0.0
-#define HEAP_TEMPTABLE_ROW_COST 0.05
-#define DISK_TEMPTABLE_CREATE_COST 0.0
-#define DISK_TEMPTABLE_ROW_COST 1.0
-#if defined(FUTURE)
/*
Creating a Heap temporary table is by benchmark found to be as costly as
writing 10 rows into the table.
@@ -221,7 +215,6 @@
be 5 times slower (ie the cost is 1.0).
*/
#define DISK_TEMPTABLE_ROW_COST 1.0
-#endif
#define MY_CHARSET_BIN_MB_MAXLEN 1
=== modified file 'sql/sql_select.cc'
--- a/sql/sql_select.cc 2011-10-31 08:27:57 +0000
+++ b/sql/sql_select.cc 2011-11-03 14:17:25 +0000
@@ -65,7 +65,7 @@ static void optimize_keyuse(JOIN *join,
static bool make_join_statistics(JOIN *join, TABLE_LIST *leaves, Item *conds,
Key_use_array *keyuse,
bool first_optimization);
-static bool optimize_semijoin_nests(JOIN *join);
+static bool optimize_semijoin_nests_for_materialization(JOIN *join);
static bool pull_out_semijoin_tables(JOIN *join);
static bool update_ref_and_keys(THD *thd, Key_use_array *keyuse,
JOIN_TAB *join_tab,
@@ -321,10 +321,10 @@ private:
If non-NULL, we are optimizing a materialized semi-join nest.
If NULL, we are optimizing a complete join plan.
*/
- TABLE_LIST *const emb_sjm_nest;
+ const TABLE_LIST *const emb_sjm_nest;
/**
When calculating a plan for a materialized semi-join nest,
- best_access_plan() needs to know not only the remaining tables within the
+ best_access_path() needs to know not only the remaining tables within the
semi-join nest, but also all tables outside of this nest, because there may
be key references between the semi-join nest and the outside tables
that should not be considered when materializing the semi-join nest.
@@ -5661,7 +5661,7 @@ const_table_extraction_done:
if (join->const_tables != join->tables)
optimize_keyuse(join, keyuse_array);
- if (optimize_semijoin_nests(join))
+ if (optimize_semijoin_nests_for_materialization(join))
DBUG_RETURN(true);
if (Optimize_table_order(thd, join, NULL).choose_table_order() || thd->killed)
@@ -5710,9 +5710,9 @@ error:
@return false if successful, true if error
*/
-static bool optimize_semijoin_nests(JOIN *join)
+static bool optimize_semijoin_nests_for_materialization(JOIN *join)
{
- DBUG_ENTER("optimize_semijoin_nests");
+ DBUG_ENTER("optimize_semijoin_nests_for_materialization");
List_iterator<TABLE_LIST> sj_list_it(join->select_lex->sj_nests);
TABLE_LIST *sj_nest;
Opt_trace_context * const trace= &join->thd->opt_trace;
@@ -5802,8 +5802,8 @@ static bool optimize_semijoin_nests(JOIN
double row_cost; // The cost to write or lookup a row in temp. table
double create_cost; // The cost to create a temporary table
- // @todo: Size of temp table should be distinct_rowcount
- if (rowlen * sjm_rowcount < join->thd->variables.max_heap_table_size)
+ if (rowlen * distinct_rowcount <
+ join->thd->variables.max_heap_table_size)
{
row_cost= HEAP_TEMPTABLE_ROW_COST;
create_cost= HEAP_TEMPTABLE_CREATE_COST;
@@ -7359,7 +7359,7 @@ public:
}
void init(JOIN_TAB *s, table_map remaining_tables,
- table_map cur_sj_inner_tables, bool complete_query)
+ table_map cur_sj_inner_tables, bool is_sjm_nest)
{
/*
Discover the bound equalities. We need to do this if
@@ -7375,7 +7375,7 @@ public:
6. Not a derived table/view. (a temporary restriction)
*/
best_loose_scan_cost= DBL_MAX;
- if (s->emb_sj_nest && complete_query && // (1)
+ if (s->emb_sj_nest && !is_sjm_nest && // (1)
s->emb_sj_nest->nested_join->sj_inner_exprs.elements < 64 &&
((remaining_tables & s->emb_sj_nest->sj_inner_tables) == // (2)
s->emb_sj_nest->sj_inner_tables) && // (2)
@@ -7621,7 +7621,7 @@ void Optimize_table_order::best_access_p
Opt_trace_array trace_paths(trace, "considered_access_paths");
loose_scan_opt.init(s, remaining_tables, cur_sj_inner_tables,
- emb_sjm_nest == NULL);
+ emb_sjm_nest != NULL);
/*
This isn't unlikely at all, but unlikely() cuts 6% CPU time on a 20-table
@@ -9812,9 +9812,10 @@ bool Optimize_table_order::fix_semijoin_
emb_sj_nest->sj_mat_exec= sjm_exec;
/*
This memcpy() copies a partial QEP produced by
- optimize_semijoin_nests() (source) into the final top-level QEP
- (target), in order to re-use the source plan for to-be-materialized
- inner tables. It is however possible that the source QEP had picked
+ optimize_semijoin_nests_for_materialization() (source) into the final
+ top-level QEP (target), in order to re-use the source plan for
+ to-be-materialized inner tables.
+ It is however possible that the source QEP had picked
some semijoin strategy (noted SJY), different from
materialization. The target QEP rules (it has seen more tables), but
this memcpy() is going to copy the source stale strategy SJY,
@@ -9963,6 +9964,14 @@ bool JOIN::get_best_combination()
{
JOIN_TAB *const tab= join_tab + tableno;
*tab= *best_positions[tableno].table;
+ /*
+ The following member poked into the old JOIN_TAB array, which is no
+ longer valid. Going further, best_positions and join_tab are indexed
+ equivalently, hence keeping a join_tab pointer from best_positions
+ would be useless.
+ */
+ best_positions[tableno].table= NULL;
+
TABLE *const table= tab->table;
all_tables[tableno]= table;
table->reginfo.join_tab= tab;
@@ -11936,7 +11945,7 @@ static bool setup_join_buffering(JOIN_TA
COST_VECT cost;
ha_rows rows;
uint bufsz= 4096;
- JOIN_CACHE *prev_cache= NULL;
+ JOIN_CACHE *prev_cache;
const bool bnl_on= join->thd->optimizer_switch_flag(OPTIMIZER_SWITCH_BNL);
const bool bka_on= join->thd->optimizer_switch_flag(OPTIMIZER_SWITCH_BKA);
const uint tableno= tab - join->join_tab;
@@ -11981,30 +11990,64 @@ static bool setup_join_buffering(JOIN_TA
!tab->first_upper->use_join_cache)
goto no_join_cache;
- /*
- Use join cache with FirstMatch semi-join strategy only when semi-join
- contains only one table.
- */
- if (tab_sj_strategy == SJ_OPT_FIRST_MATCH &&
- !tab->is_single_inner_of_semi_join())
+ switch (tab_sj_strategy)
{
+ case SJ_OPT_FIRST_MATCH:
+ /*
+ Use join cache with FirstMatch semi-join strategy only when semi-join
+ contains only one table.
+ */
+ if (!tab->is_single_inner_of_semi_join())
+ {
+ DBUG_ASSERT(tab->use_join_cache == JOIN_CACHE::ALG_NONE);
+ goto no_join_cache;
+ }
+ break;
+
+ case SJ_OPT_LOOSE_SCAN:
+ /* No join buffering if this semijoin nest is handled by loosescan */
DBUG_ASSERT(tab->use_join_cache == JOIN_CACHE::ALG_NONE);
goto no_join_cache;
+
+ case SJ_OPT_MATERIALIZE_LOOKUP:
+ case SJ_OPT_MATERIALIZE_SCAN:
+ /*
+ The Materialize strategies reuse the join_tab belonging to the
+ first table that was materialized. Neither table can use join buffering:
+ - The first table in a join never uses join buffering.
+ - The join_tab used for looking up a row in the materialized table, or
+ scanning the rows of a materialized table, cannot use join buffering.
+ We allow join buffering for the remaining tables of the materialized
+ semi-join nest.
+ */
+ if (tab->first_sj_inner_tab == tab)
+ {
+ DBUG_ASSERT(tab->use_join_cache == JOIN_CACHE::ALG_NONE);
+ goto no_join_cache;
+ }
+ break;
+
+ case SJ_OPT_DUPS_WEEDOUT:
+ // This strategy allows the same join buffering as a regular join would.
+ case SJ_OPT_NONE:
+ break;
}
- /* No join buffering if this semijoin nest is handled by loosescan */
- if (tab_sj_strategy == SJ_OPT_LOOSE_SCAN)
- {
- DBUG_ASSERT(tab->use_join_cache == JOIN_CACHE::ALG_NONE);
- goto no_join_cache;
- }
+
/*
- No join buffering if this semijoin nest is handled by materialization.
- This condition is not handled by earlier optimizer stages.
- */
- if (sj_is_materialize_strategy(tab_sj_strategy))
- goto no_join_cache;
+ Link with the previous join cache, but make sure that we do not link
+ join caches of two different operations when the previous operation was
+ MaterializeLookup or MaterializeScan, ie if:
+ 1. the previous join_tab has join buffering enabled, and
+ 2. the previous join_tab belongs to a materialized semi-join nest, and
+ 3. this join_tab represents a regular table, or is part of a different
+ semi-join interval than the previous join_tab.
+ */
+ prev_cache= (tab-1)->cache;
+ if (prev_cache != NULL && // 1
+ sj_is_materialize_strategy((tab-1)->get_sj_strategy()) && // 2
+ tab->first_sj_inner_tab != (tab-1)->first_sj_inner_tab) // 3
+ prev_cache= NULL;
- prev_cache= tab[-1].cache;
switch (tab->type) {
case JT_ALL:
if (!bnl_on)
@@ -15294,7 +15337,8 @@ bool Optimize_table_order::check_interle
@param first_tab The first tab to calculate access paths for,
this is always a semi-join inner table.
@param last_tab The last tab to calculate access paths for,
- this is always a semi-join inner table.
+ always a semi-join inner table for FirstMatch,
+ may be inner or outer for LooseScan.
@param remaining_tables Bitmap of tables that are not in the
[0...last_tab] join prefix
@param loosescan If true, use LooseScan strategy, otherwise FirstMatch
@@ -15315,8 +15359,8 @@ bool Optimize_table_order::check_interle
in the range [first_tab; last_tab] according to the constraints set by the
relevant semi-join strategy. Those constraints are:
- - For the LooseScan strategy, join buffering cannot be used for the inner
- tables, only for the outer tables.
+ - For the LooseScan strategy, join buffering can be used for the outer
+ tables following the last inner table.
- For the FirstMatch strategy, join buffering can be used if there is a
single inner table in the semi-join nest.
@@ -15324,6 +15368,9 @@ bool Optimize_table_order::check_interle
For FirstMatch, the handled range of tables may be a mix of inner tables
and non-dependent outer tables. The first and last table in the handled
range are always inner tables.
+ For LooseScan, the handled range can be a mix of inner tables and
+ dependent and non-dependent outer tables. The first table is always an
+ inner table.
*/
bool Optimize_table_order::semijoin_firstmatch_loosescan_access_paths(
@@ -15333,51 +15380,45 @@ bool Optimize_table_order::semijoin_firs
{
DBUG_ENTER(
"Optimize_table_order::semijoin_firstmatch_loosescan_access_paths");
- double cost, outer_fanout, inner_fanout= 1.0;
+ double cost; // Contains running estimate of calculated cost.
+ double rowcount; // Rowcount of join prefix (ie before first_tab).
+ double outer_fanout= 1.0; // Fanout contributed by outer tables in range.
+ double inner_fanout= 1.0; // Fanout contributed by inner tables in range.
Opt_trace_context *const trace= &thd->opt_trace;
Opt_trace_object recalculate(trace, "recalculate_access_paths_and_cost");
Opt_trace_array trace_tables(trace, "tables");
POSITION *const positions= final ? join->best_positions : join->positions;
- if (first_tab > join->const_tables)
+ if (first_tab == join->const_tables)
{
- cost= positions[first_tab - 1].prefix_cost.total_cost();
- outer_fanout= positions[first_tab - 1].prefix_record_count;
+ cost= 0.0;
+ rowcount= 1.0;
}
else
{
- cost= 0.0;
- outer_fanout= 1.0;
+ cost= positions[first_tab - 1].prefix_cost.total_cost();
+ rowcount= positions[first_tab - 1].prefix_record_count;
}
- /*
- LooseScan: May use join buffering for all tables after last inner table.
- FirstMatch: May use join buffering if there is only one inner table.
- */
+
const uint table_count=
my_count_bits(positions[first_tab].table->emb_sj_nest->sj_inner_tables);
uint no_jbuf_before;
if (loosescan)
{
+ // LooseScan: May use join buffering for all tables after last inner table.
for (no_jbuf_before= last_tab; no_jbuf_before > first_tab; no_jbuf_before--)
{
if (positions[no_jbuf_before].table->emb_sj_nest != NULL)
- break; // Encountered the last inner table?
+ break; // Encountered the last inner table.
}
no_jbuf_before++;
}
else
+ {
+ // FirstMatch: May use join buffering if there is only one inner table.
no_jbuf_before= (table_count > 1) ? last_tab + 1 : first_tab;
-
- // @todo: Remove this bug preservation
- if (!loosescan && !final)
- no_jbuf_before= last_tab;
- else if (!loosescan && final)
- no_jbuf_before= last_tab + 1;
- else if (loosescan && !final)
- no_jbuf_before= first_tab + table_count;
- else if (loosescan && final)
- no_jbuf_before= last_tab + 1;
+ }
for (uint i= first_tab; i <= last_tab; i++)
remaining_tables|= positions[i].table->table->map;
@@ -15399,7 +15440,8 @@ bool Optimize_table_order::semijoin_firs
// Find the best access method with specified join buffering strategy.
best_access_path(tab, remaining_tables, i,
- i < no_jbuf_before, inner_fanout * outer_fanout,
+ i < no_jbuf_before,
+ rowcount * inner_fanout * outer_fanout,
dst_pos, &loose_scan_pos);
if (i == first_tab && loosescan) // Use loose scan position
*dst_pos= loose_scan_pos;
@@ -15425,10 +15467,11 @@ bool Optimize_table_order::semijoin_firs
else
outer_fanout*= pos->records_read;
- cost+= pos->read_time; // @todo: Bug preserving
+ cost+= pos->read_time +
+ rowcount * inner_fanout * outer_fanout * ROW_EVALUATE_COST;
}
- *newcount= outer_fanout;
+ *newcount= rowcount * outer_fanout;
*newcost= cost;
DBUG_RETURN(true);
@@ -15468,32 +15511,40 @@ void Optimize_table_order::semijoin_mat_
Opt_trace_context *const trace= &thd->opt_trace;
Opt_trace_object recalculate(trace, "recalculate_access_paths_and_cost");
Opt_trace_array trace_tables(trace, "tables");
- double cost, rowcount;
+ double cost; // Calculated running cost of operation
+ double rowcount; // Rowcount of join prefix (ie before first_inner).
POSITION *const positions= final ? join->best_positions : join->positions;
const uint inner_count= my_count_bits(sjm_nest->sj_inner_tables);
// Get the prefix cost.
- if (last_inner_tab < join->const_tables + inner_count)
+ const uint first_inner= last_inner_tab + 1 - inner_count;
+ if (first_inner == join->const_tables)
{
rowcount= 1.0;
cost= 0.0;
}
else
{
- rowcount= positions[last_inner_tab - inner_count].prefix_record_count;
- cost= positions[last_inner_tab - inner_count].prefix_cost.total_cost();
+ rowcount= positions[first_inner - 1].prefix_record_count;
+ cost= positions[first_inner - 1].prefix_cost.total_cost();
}
// Add materialization cost.
cost+= sjm_nest->nested_join->sjm.materialization_cost.total_cost() +
rowcount * sjm_nest->nested_join->sjm.scan_cost.total_cost();
- rowcount*= sjm_nest->nested_join->sjm.expected_rowcount;
for (uint i= last_inner_tab + 1; i <= last_outer_tab; i++)
remaining_tables|= positions[i].table->table->map;
+ /*
+ Materialization removes duplicates from the materialized table, so
+ number of rows to scan is probably less than the number of rows
+ from a full join, on which the access paths of outer tables are currently
+ based. Rerun best_access_path to adjust for reduced rowcount.
+ */
+ const double inner_fanout= sjm_nest->nested_join->sjm.expected_rowcount;
+ double outer_fanout= 1.0;
- // Need to rerun best_access_path as rowcount of join prefix has changed.
for (uint i= last_inner_tab + 1; i <= last_outer_tab; i++)
{
Opt_trace_object trace_one_table(trace);
@@ -15502,13 +15553,14 @@ void Optimize_table_order::semijoin_mat_
POSITION regular_pos, dummy;
POSITION *const dst_pos= final ? positions + i : ®ular_pos;
best_access_path(tab, remaining_tables, i, false,
- rowcount, dst_pos, &dummy);
+ rowcount * inner_fanout * outer_fanout, dst_pos, &dummy);
remaining_tables&= ~tab->table->map;
- rowcount*= dst_pos->records_read;
- cost+= dst_pos->read_time; // @todo: Bug preserving
+ outer_fanout*= dst_pos->records_read;
+ cost+= dst_pos->read_time +
+ rowcount * inner_fanout * outer_fanout * ROW_EVALUATE_COST;
}
- *newcount= rowcount;
+ *newcount= rowcount * outer_fanout;
*newcost= cost;
DBUG_VOID_RETURN;
@@ -15540,15 +15592,16 @@ void Optimize_table_order::semijoin_mat_
const uint inner_count= my_count_bits(sjm_nest->sj_inner_tables);
double rowcount, cost;
- if (last_inner < join->const_tables + inner_count)
+ const uint first_inner= last_inner + 1 - inner_count;
+ if (first_inner == join->const_tables)
{
cost= 0.0;
rowcount= 1.0;
}
else
{
- cost= join->positions[last_inner-inner_count].prefix_cost.total_cost();
- rowcount= join->positions[last_inner-inner_count].prefix_record_count;
+ cost= join->positions[first_inner - 1].prefix_cost.total_cost();
+ rowcount= join->positions[first_inner - 1].prefix_record_count;
}
cost+= sjm_nest->nested_join->sjm.materialization_cost.total_cost() +
@@ -15610,7 +15663,27 @@ void Optimize_table_order::semijoin_dups
rowcount= join->positions[first_tab - 1].prefix_record_count;
rowsize= 8; // This is not true but we'll make it so
}
-
+ /**
+ @todo: Some times, some outer fanout is "absorbed" into the inner fanout.
+ In this case, we should make a better estimate for outer_fanout that
+ is used to calculate the output rowcount.
+ Trial code:
+ if (inner_fanout > 1.0)
+ {
+ // We have inner table(s) before an outer table. If there are
+ // dependencies between these tables, the fanout for the outer
+ // table is not a good estimate for the final number of rows from
+ // the weedout execution, therefore we convert some of the inner
+ // fanout into an outer fanout, limited to the number of possible
+ // rows in the outer table.
+ double fanout= min(inner_fanout*p->records_read,
+ p->table->table->quick_condition_rows);
+ inner_fanout*= p->records_read / fanout;
+ outer_fanout*= fanout;
+ }
+ else
+ outer_fanout*= p->records_read;
+ */
for (uint j= first_tab; j <= last_tab; j++)
{
const POSITION *const p= join->positions + j;
@@ -15624,10 +15697,12 @@ void Optimize_table_order::semijoin_dups
rowsize+= p->table->table->file->ref_length;
}
- cost+= p->read_time; // @todo bug preserving
+ cost+= p->read_time +
+ rowcount * inner_fanout * outer_fanout * ROW_EVALUATE_COST;
}
/*
+ @todo: Change this paragraph in concert with the todo note above.
Add the cost of temptable use. The table will have outer_fanout rows,
and we will make
- rowcount * outer_fanout writes
@@ -15645,10 +15720,8 @@ void Optimize_table_order::semijoin_dups
one_lookup_cost= HEAP_TEMPTABLE_ROW_COST;
create_cost= HEAP_TEMPTABLE_CREATE_COST;
}
- double write_cost= join->positions[first_tab].prefix_record_count *
- outer_fanout * one_lookup_cost;
- double full_lookup_cost= join->positions[first_tab].prefix_record_count *
- outer_fanout* inner_fanout * one_lookup_cost;
+ const double write_cost= rowcount * outer_fanout * one_lookup_cost;
+ const double full_lookup_cost= write_cost * inner_fanout;
cost+= create_cost + write_cost + full_lookup_cost;
*newcount= rowcount * outer_fanout;
@@ -15929,7 +16002,7 @@ void Optimize_table_order::advance_sj_st
add("rows", *current_rowcount);
handled_by_fm_or_ls= first->table->emb_sj_nest->sj_inner_tables;
}
- trace_one_strategy.add("chosen", true);
+ trace_one_strategy.add("chosen", sj_strategy == SJ_OPT_LOOSE_SCAN);
}
}
@@ -16116,6 +16189,20 @@ void Optimize_table_order::advance_sj_st
}
}
pos->sj_strategy= sj_strategy;
+ /*
+ If a semi-join strategy is chosen, update cost and rowcount in positions
+ as well. These values may be used as prefix cost and rowcount for later
+ semi-join calculations, e.g for plans like "ot1 - it1 - it2 - ot2",
+ where we have two semi-join nests containing it1 and it2, respectively,
+ and we have a dependency between ot1 and it1, and between ot2 and it2.
+ When looking at a semi-join plan for "it2 - ot2", the correct prefix cost
+ (located in the join_tab for it1) must be filled in properly.
+ */
+ if (sj_strategy != SJ_OPT_NONE)
+ {
+ pos->prefix_cost.convert_from_cost(*current_cost);
+ pos->prefix_record_count= *current_rowcount;
+ }
DBUG_VOID_RETURN;
}
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-trunk branch (roy.lyseng:3472 to 3473) Bug#12407753 | Roy Lyseng | 7 Nov |