maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #03662
Re: [Commits] Rev 2828: MWL#128: Added into EXPLAIN output info about types of the used join buffers and in file:///home/igor/maria/maria-5.3-mwl128-names/
Hello Igor,
Ok to push (.result differences checked), with exception that change to
Makefile.am must not be pushed.
On Fri, Oct 08, 2010 at 12:30:18PM -0700, Igor Babaev wrote:
> At file:///home/igor/maria/maria-5.3-mwl128-names/
>
> ------------------------------------------------------------
> revno: 2828
> revision-id: igor@xxxxxxxxxxxx-20101008193016-r9cuu8bvkpa1bmxg
> parent: igor@xxxxxxxxxxxx-20101006202712-ehecsi9kc0tj52jc
> committer: Igor Babaev <igor@xxxxxxxxxxxx>
> branch nick: maria-5.3-mwl128-names
> timestamp: Fri 2010-10-08 12:30:16 -0700
> message:
> MWL#128: Added into EXPLAIN output info about types of the used join buffers and
> about the employed join algorithms.
> Refactored constructors of the JOIN_CACHE* classes.
> === modified file 'Makefile.am'
> --- a/Makefile.am 2010-03-29 15:13:53 +0000
> +++ b/Makefile.am 2010-10-08 19:30:16 +0000
> @@ -317,10 +317,15 @@
> #
>
> abi_check: $(API_PREPROCESSOR_HEADER)
> - $(MAKE) abi_headers="$^" do_abi_check
> + echo "OK"
> +
> +#$(MAKE) abi_headers="$^" do_abi_check
>
> abi_check_all: $(TEST_PREPROCESSOR_HEADER)
> - $(MAKE) abi_headers="$^" do_abi_check
> + echo "OK"
> +
> +
> +# $(MAKE) abi_headers="$^" do_abi_check
>
> do_abi_check:
> set -ex; \
>
> === modified file 'mysql-test/r/archive_gis.result'
> --- a/mysql-test/r/archive_gis.result 2009-02-10 13:27:35 +0000
> +++ b/mysql-test/r/archive_gis.result 2010-10-08 19:30:16 +0000
> @@ -403,7 +403,7 @@
> FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE g1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
> -1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer
> +1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
> DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
>
> === modified file 'mysql-test/r/compress.result'
> --- a/mysql-test/r/compress.result 2009-12-15 07:16:46 +0000
> +++ b/mysql-test/r/compress.result 2010-10-08 19:30:16 +0000
> @@ -1435,7 +1435,7 @@
> explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join)
> select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
> fld1 companynr fld3 period
> 038008 37 reporters 1008
>
> === modified file 'mysql-test/r/ctype_utf8.result'
> --- a/mysql-test/r/ctype_utf8.result 2010-03-04 08:03:07 +0000
> +++ b/mysql-test/r/ctype_utf8.result 2010-10-08 19:30:16 +0000
> @@ -1537,7 +1537,7 @@
> select substr(Z.a,-1), Z.a from t1 as Y join t1 as Z on Y.a=Z.a order by 1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Y ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
> -1 SIMPLE Z ALL NULL NULL NULL NULL 2 Using where; Using join buffer
> +1 SIMPLE Z ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
> select substr(Z.a,-1), Z.a from t1 as Y join t1 as Z on Y.a=Z.a order by 1;
> substr(Z.a,-1) a
> 3 123
>
> === modified file 'mysql-test/r/derived.result'
> --- a/mysql-test/r/derived.result 2009-07-11 18:44:29 +0000
> +++ b/mysql-test/r/derived.result 2010-10-08 19:30:16 +0000
> @@ -58,7 +58,7 @@
> explain select * from t1 as x1, (select * from t1) as x2;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY x1 ALL NULL NULL NULL NULL 4
> -1 PRIMARY <derived2> ALL NULL NULL NULL NULL 4 Using join buffer
> +1 PRIMARY <derived2> ALL NULL NULL NULL NULL 4 Using join buffer (flat, BNL join)
> 2 DERIVED t1 ALL NULL NULL NULL NULL 4
> drop table if exists t2,t3;
> select * from (select 1) as a;
> @@ -189,13 +189,13 @@
> explain SELECT STRAIGHT_JOIN d.pla_id, m2.mat_id FROM t1 m2 INNER JOIN (SELECT mp.pla_id, MIN(m1.matintnum) AS matintnum FROM t2 mp INNER JOIN t1 m1 ON mp.mat_id=m1.mat_id GROUP BY mp.pla_id) d ON d.matintnum=m2.matintnum;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY m2 ALL NULL NULL NULL NULL 9
> -1 PRIMARY <derived2> ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 PRIMARY <derived2> ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 2 DERIVED mp ALL NULL NULL NULL NULL 9 Using temporary; Using filesort
> 2 DERIVED m1 eq_ref PRIMARY PRIMARY 3 test.mp.mat_id 1
> explain SELECT STRAIGHT_JOIN d.pla_id, m2.test FROM t1 m2 INNER JOIN (SELECT mp.pla_id, MIN(m1.matintnum) AS matintnum FROM t2 mp INNER JOIN t1 m1 ON mp.mat_id=m1.mat_id GROUP BY mp.pla_id) d ON d.matintnum=m2.matintnum;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY m2 ALL NULL NULL NULL NULL 9
> -1 PRIMARY <derived2> ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 PRIMARY <derived2> ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 2 DERIVED mp ALL NULL NULL NULL NULL 9 Using temporary; Using filesort
> 2 DERIVED m1 eq_ref PRIMARY PRIMARY 3 test.mp.mat_id 1
> drop table t1,t2;
> @@ -246,7 +246,7 @@
> explain select * from ( select * from t1 union select * from t1) a,(select * from t1 union select * from t1) b;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2
> -1 PRIMARY <derived4> ALL NULL NULL NULL NULL 2 Using join buffer
> +1 PRIMARY <derived4> ALL NULL NULL NULL NULL 2 Using join buffer (flat, BNL join)
> 4 DERIVED t1 ALL NULL NULL NULL NULL 2
> 5 UNION t1 ALL NULL NULL NULL NULL 2
> NULL UNION RESULT <union4,5> ALL NULL NULL NULL NULL NULL
> @@ -313,7 +313,7 @@
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY <derived2> ALL NULL NULL NULL NULL 3 Using temporary; Using filesort
> 2 DERIVED x ALL NULL NULL NULL NULL 17 Using temporary; Using filesort
> -2 DERIVED y ALL NULL NULL NULL NULL 17 Using where; Using join buffer
> +2 DERIVED y ALL NULL NULL NULL NULL 17 Using where; Using join buffer (flat, BNL join)
> drop table t1;
> create table t2 (a int, b int, primary key (a));
> insert into t2 values (1,7),(2,7);
>
> === modified file 'mysql-test/r/distinct.result'
> --- a/mysql-test/r/distinct.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/distinct.result 2010-10-08 19:30:16 +0000
> @@ -175,7 +175,7 @@
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 4 Using where; Using temporary
> 1 SIMPLE t3 ref a a 5 test.t1.b 2 Using index
> -1 SIMPLE t2 index a a 4 NULL 5 Using where; Using index; Distinct; Using join buffer
> +1 SIMPLE t2 index a a 4 NULL 5 Using where; Using index; Distinct; Using join buffer (flat, BNL join)
> SELECT distinct t3.a FROM t3,t2,t1 WHERE t3.a=t1.b AND t1.a=t2.a;
> a
> 1
> @@ -300,11 +300,11 @@
> AND ((t1.id=j_lj_t3.id AND t3_lj.id IS NULL) OR (t1.id=t3.id AND t3.idx=2));
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 index id id 4 NULL 2 Using index; Using temporary
> -1 SIMPLE t2 index id id 8 NULL 1 Using index; Distinct; Using join buffer
> -1 SIMPLE t3 index id id 8 NULL 1 Using index; Distinct; Using join buffer
> -1 SIMPLE j_lj_t2 index id id 4 NULL 2 Using where; Using index; Distinct; Using join buffer
> +1 SIMPLE t2 index id id 8 NULL 1 Using index; Distinct; Using join buffer (flat, BNL join)
> +1 SIMPLE t3 index id id 8 NULL 1 Using index; Distinct; Using join buffer (flat, BNL join)
> +1 SIMPLE j_lj_t2 index id id 4 NULL 2 Using where; Using index; Distinct; Using join buffer (flat, BNL join)
> 1 SIMPLE t2_lj ref id id 4 test.j_lj_t2.id 1 Using where; Using index; Distinct
> -1 SIMPLE j_lj_t3 index id id 4 NULL 2 Using where; Using index; Distinct; Using join buffer
> +1 SIMPLE j_lj_t3 index id id 4 NULL 2 Using where; Using index; Distinct; Using join buffer (flat, BNL join)
> 1 SIMPLE t3_lj ref id id 4 test.j_lj_t3.id 1 Using where; Using index; Distinct
> SELECT DISTINCT
> t1.id
> @@ -515,7 +515,7 @@
> EXPLAIN SELECT DISTINCT t1_1.a, t1_1.b FROM t1 t1_1, t1 t1_2;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1_1 ALL NULL NULL NULL NULL 3 Using temporary
> -1 SIMPLE t1_2 index NULL PRIMARY 4 NULL 3 Using index; Distinct; Using join buffer
> +1 SIMPLE t1_2 index NULL PRIMARY 4 NULL 3 Using index; Distinct; Using join buffer (flat, BNL join)
> EXPLAIN SELECT DISTINCT t1_1.a, t1_1.b FROM t1 t1_1, t1 t1_2
> WHERE t1_1.a = t1_2.a;
> id select_type table type possible_keys key key_len ref rows Extra
>
> === modified file 'mysql-test/r/explain.result'
> --- a/mysql-test/r/explain.result 2010-06-26 10:05:41 +0000
> +++ b/mysql-test/r/explain.result 2010-10-08 19:30:16 +0000
> @@ -116,7 +116,7 @@
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 100.00
> 2 DERIVED t1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
> -2 DERIVED t2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer
> +2 DERIVED t2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select 1 AS `1` from (select count(distinct `test`.`t1`.`a`) AS `COUNT(DISTINCT t1.a)` from `test`.`t1` join `test`.`t2` group by `test`.`t1`.`a`) `s1`
> EXPLAIN EXTENDED SELECT 1
> @@ -124,34 +124,34 @@
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 100.00
> 2 DERIVED t1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
> -2 DERIVED t2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer
> -Warnings:
> -Note 1003 select 1 AS `1` from (select count(distinct `test`.`t1`.`a`) AS `COUNT(DISTINCT t1.a)` from `test`.`t1` join `test`.`t2` group by `test`.`t1`.`a`) `s1`
> -prepare s1 from
> -'EXPLAIN EXTENDED SELECT 1
> - FROM (SELECT COUNT(DISTINCT t1.a) FROM t1,t2 GROUP BY t1.a) AS s1';
> -execute s1;
> -id select_type table type possible_keys key key_len ref rows filtered Extra
> -1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 100.00
> -2 DERIVED t1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
> -2 DERIVED t2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer
> -Warnings:
> -Note 1003 select 1 AS `1` from (select count(distinct `test`.`t1`.`a`) AS `COUNT(DISTINCT t1.a)` from `test`.`t1` join `test`.`t2` group by `test`.`t1`.`a`) `s1`
> -prepare s1 from
> -'EXPLAIN EXTENDED SELECT 1
> - FROM (SELECT COUNT(DISTINCT t1.a) FROM t1,t2 GROUP BY t1.a) AS s1';
> -execute s1;
> -id select_type table type possible_keys key key_len ref rows filtered Extra
> -1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 100.00
> -2 DERIVED t1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
> -2 DERIVED t2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer
> -Warnings:
> -Note 1003 select 1 AS `1` from (select count(distinct `test`.`t1`.`a`) AS `COUNT(DISTINCT t1.a)` from `test`.`t1` join `test`.`t2` group by `test`.`t1`.`a`) `s1`
> -execute s1;
> -id select_type table type possible_keys key key_len ref rows filtered Extra
> -1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 100.00
> -2 DERIVED t1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
> -2 DERIVED t2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer
> +2 DERIVED t2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (flat, BNL join)
> +Warnings:
> +Note 1003 select 1 AS `1` from (select count(distinct `test`.`t1`.`a`) AS `COUNT(DISTINCT t1.a)` from `test`.`t1` join `test`.`t2` group by `test`.`t1`.`a`) `s1`
> +prepare s1 from
> +'EXPLAIN EXTENDED SELECT 1
> + FROM (SELECT COUNT(DISTINCT t1.a) FROM t1,t2 GROUP BY t1.a) AS s1';
> +execute s1;
> +id select_type table type possible_keys key key_len ref rows filtered Extra
> +1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 100.00
> +2 DERIVED t1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
> +2 DERIVED t2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (flat, BNL join)
> +Warnings:
> +Note 1003 select 1 AS `1` from (select count(distinct `test`.`t1`.`a`) AS `COUNT(DISTINCT t1.a)` from `test`.`t1` join `test`.`t2` group by `test`.`t1`.`a`) `s1`
> +prepare s1 from
> +'EXPLAIN EXTENDED SELECT 1
> + FROM (SELECT COUNT(DISTINCT t1.a) FROM t1,t2 GROUP BY t1.a) AS s1';
> +execute s1;
> +id select_type table type possible_keys key key_len ref rows filtered Extra
> +1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 100.00
> +2 DERIVED t1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
> +2 DERIVED t2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (flat, BNL join)
> +Warnings:
> +Note 1003 select 1 AS `1` from (select count(distinct `test`.`t1`.`a`) AS `COUNT(DISTINCT t1.a)` from `test`.`t1` join `test`.`t2` group by `test`.`t1`.`a`) `s1`
> +execute s1;
> +id select_type table type possible_keys key key_len ref rows filtered Extra
> +1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 100.00
> +2 DERIVED t1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
> +2 DERIVED t2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select 1 AS `1` from (select count(distinct `test`.`t1`.`a`) AS `COUNT(DISTINCT t1.a)` from `test`.`t1` join `test`.`t2` group by `test`.`t1`.`a`) `s1`
> DROP TABLE t1,t2;
>
> === modified file 'mysql-test/r/func_gconcat.result'
> --- a/mysql-test/r/func_gconcat.result 2010-03-31 13:00:56 +0000
> +++ b/mysql-test/r/func_gconcat.result 2010-10-08 19:30:16 +0000
> @@ -986,7 +986,7 @@
> 1 PRIMARY <derived2> system NULL NULL NULL NULL 1 100.00
> 1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
> 2 DERIVED t1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort; Distinct
> -2 DERIVED td ALL NULL NULL NULL NULL 2 100.00 Distinct; Using join buffer
> +2 DERIVED td ALL NULL NULL NULL NULL 2 100.00 Distinct; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select 1 AS `1` from (select distinct group_concat(`test`.`td`.`f1` separator ',') AS `GROUP_CONCAT(td.f1)` from `test`.`t1` join `test`.`t1` `td` group by `test`.`td`.`f1`) `d` join `test`.`t1`
> SELECT 1 FROM
> @@ -1006,7 +1006,7 @@
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY <derived2> system NULL NULL NULL NULL 1 100.00
> 2 DERIVED t2 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
> -2 DERIVED t1 ALL NULL NULL NULL NULL 2 100.00 Using join buffer
> +2 DERIVED t1 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select 1 AS `1` from (select group_concat(`test`.`t1`.`a` order by `test`.`t1`.`a` ASC separator ',') AS `GROUP_CONCAT(t1.a ORDER BY t1.a ASC)` from `test`.`t1` `t2` join `test`.`t1` group by `test`.`t1`.`a`) `d`
> DROP TABLE t1;
>
> === modified file 'mysql-test/r/func_group.result'
> --- a/mysql-test/r/func_group.result 2010-03-20 12:01:47 +0000
> +++ b/mysql-test/r/func_group.result 2010-10-08 19:30:16 +0000
> @@ -614,7 +614,7 @@
> select max(t1.a3), min(t2.a2) from t1, t2 where t1.a2 = 2 and t1.a3 < 'MIN' and t2.a3 > 'CA';
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 range k1 k1 7 NULL 1 Using where; Using index
> -1 SIMPLE t2 range k1 k1 3 NULL 4 Using where; Using index; Using join buffer
> +1 SIMPLE t2 range k1 k1 3 NULL 4 Using where; Using index; Using join buffer (flat, BNL join)
> explain
> select min(a4 - 0.01) from t1;
> id select_type table type possible_keys key key_len ref rows Extra
> @@ -651,7 +651,7 @@
> select concat(min(t1.a1),min(t2.a4)) from t1, t2 where t2.a4 <> 'AME';
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 range k2 k2 4 NULL 6 Using where; Using index
> -1 SIMPLE t1 index NULL PRIMARY 3 NULL 15 Using index; Using join buffer
> +1 SIMPLE t1 index NULL PRIMARY 3 NULL 15 Using index; Using join buffer (flat, BNL join)
> drop table t1, t2;
> create table t1 (a char(10));
> insert into t1 values ('a'),('b'),('c');
>
> === modified file 'mysql-test/r/func_group_innodb.result'
> --- a/mysql-test/r/func_group_innodb.result 2007-05-29 12:58:18 +0000
> +++ b/mysql-test/r/func_group_innodb.result 2010-10-08 19:30:16 +0000
> @@ -79,7 +79,7 @@
> explain select min(7) from t2i join t1i;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2i ALL NULL NULL NULL NULL 1
> -1 SIMPLE t1i ALL NULL NULL NULL NULL 1 Using join buffer
> +1 SIMPLE t1i ALL NULL NULL NULL NULL 1 Using join buffer (flat, BNL join)
> select min(7) from t2i join t1i;
> min(7)
> NULL
> @@ -95,7 +95,7 @@
> explain select max(7) from t2i join t1i;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2i ALL NULL NULL NULL NULL 1
> -1 SIMPLE t1i ALL NULL NULL NULL NULL 1 Using join buffer
> +1 SIMPLE t1i ALL NULL NULL NULL NULL 1 Using join buffer (flat, BNL join)
> select max(7) from t2i join t1i;
> max(7)
> NULL
>
> === modified file 'mysql-test/r/func_str.result'
> --- a/mysql-test/r/func_str.result 2010-03-26 05:49:35 +0000
> +++ b/mysql-test/r/func_str.result 2010-10-08 19:30:16 +0000
> @@ -2550,12 +2550,12 @@
> explain select 1 as a from t1,(select decode(f1,f1) as b from t1) 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 <derived2> ALL NULL NULL NULL NULL 2 Using join buffer
> +1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 Using join buffer (flat, BNL join)
> 2 DERIVED t1 ALL NULL NULL NULL NULL 2
> explain select 1 as a from t1,(select encode(f1,f1) as b from t1) 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 <derived2> ALL NULL NULL NULL NULL 2 Using join buffer
> +1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 Using join buffer (flat, BNL join)
> 2 DERIVED t1 ALL NULL NULL NULL NULL 2
> drop table t1;
> #
>
> === modified file 'mysql-test/r/gis.result'
> --- a/mysql-test/r/gis.result 2010-02-26 13:16:46 +0000
> +++ b/mysql-test/r/gis.result 2010-10-08 19:30:16 +0000
> @@ -395,7 +395,7 @@
> FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE g1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
> -1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer
> +1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
> DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
>
> === modified file 'mysql-test/r/greedy_optimizer.result'
> --- a/mysql-test/r/greedy_optimizer.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/greedy_optimizer.result 2010-10-08 19:30:16 +0000
> @@ -121,11 +121,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -133,11 +133,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -145,11 +145,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -157,11 +157,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -169,11 +169,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -181,11 +181,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -201,11 +201,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -213,11 +213,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -225,11 +225,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using join buffer (flat, BNL join)
> 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -237,11 +237,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using join buffer (flat, BNL join)
> 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -249,11 +249,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -261,11 +261,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -277,11 +277,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -289,11 +289,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -304,9 +304,9 @@
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> show status like 'Last_query_cost';
> Variable_name Value
> Last_query_cost 794.837037
> @@ -316,9 +316,9 @@
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> show status like 'Last_query_cost';
> Variable_name Value
> Last_query_cost 794.837037
> @@ -328,9 +328,9 @@
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> show status like 'Last_query_cost';
> Variable_name Value
> Last_query_cost 794.837037
> @@ -340,9 +340,9 @@
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> show status like 'Last_query_cost';
> Variable_name Value
> Last_query_cost 794.837037
> @@ -353,11 +353,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -365,11 +365,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -377,11 +377,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using join buffer (flat, BNL join)
> 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -389,11 +389,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using join buffer (flat, BNL join)
> 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -401,11 +401,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -413,11 +413,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -433,11 +433,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -445,11 +445,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -457,11 +457,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -469,11 +469,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -481,11 +481,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -493,11 +493,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -509,11 +509,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -521,11 +521,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -536,9 +536,9 @@
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> show status like 'Last_query_cost';
> Variable_name Value
> Last_query_cost 794.837037
> @@ -548,9 +548,9 @@
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> show status like 'Last_query_cost';
> Variable_name Value
> Last_query_cost 794.837037
> @@ -560,9 +560,9 @@
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> show status like 'Last_query_cost';
> Variable_name Value
> Last_query_cost 794.837037
> @@ -572,9 +572,9 @@
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> show status like 'Last_query_cost';
> Variable_name Value
> Last_query_cost 794.837037
> @@ -585,11 +585,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -597,11 +597,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -609,11 +609,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -621,11 +621,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -633,11 +633,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -645,11 +645,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
>
> === modified file 'mysql-test/r/group_by.result'
> --- a/mysql-test/r/group_by.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/group_by.result 2010-10-08 19:30:16 +0000
> @@ -537,11 +537,11 @@
> explain select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using temporary; Using filesort
> -1 SIMPLE t2 ALL a NULL NULL NULL 4 Using where; Using join buffer
> +1 SIMPLE t2 ALL a NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
> explain select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b ORDER BY NULL;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using temporary
> -1 SIMPLE t2 ALL a NULL NULL NULL 4 Using where; Using join buffer
> +1 SIMPLE t2 ALL a NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
> drop table t1,t2;
> create table t1 (a int, b int);
> insert into t1 values (1, 4),(10, 40),(1, 4),(10, 43),(1, 4),(10, 41),(1, 4),(10, 43),(1, 4);
>
> === modified file 'mysql-test/r/group_min_max.result'
> --- a/mysql-test/r/group_min_max.result 2010-06-26 10:05:41 +0000
> +++ b/mysql-test/r/group_min_max.result 2010-10-08 19:30:16 +0000
> @@ -2267,7 +2267,7 @@
> AND t1_outer1.b = t1_outer2.b;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t1_outer1 ref a a 5 const 1 Using where; Using index
> -1 PRIMARY t1_outer2 index NULL a 10 NULL 15 Using where; Using index; Using join buffer
> +1 PRIMARY t1_outer2 index NULL a 10 NULL 15 Using where; Using index; Using join buffer (flat, BNL join)
> 2 SUBQUERY t1 range NULL a 5 NULL 8 Using index for group-by
> EXPLAIN SELECT (SELECT (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) x
> FROM t1 AS t1_outer) x2 FROM t1 AS t1_outer2;
>
> === modified file 'mysql-test/r/index_merge_myisam.result'
> --- a/mysql-test/r/index_merge_myisam.result 2010-07-16 08:58:24 +0000
> +++ b/mysql-test/r/index_merge_myisam.result 2010-10-08 19:30:16 +0000
> @@ -271,7 +271,7 @@
> (t1.key1 = t0.key1 or t1.key8 = t0.key1);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t0 ref i1 i1 4 const 1
> -1 SIMPLE t1 index_merge i1,i8 i1,i8 4,4 NULL 2 Using union(i1,i8); Using where; Using join buffer
> +1 SIMPLE t1 index_merge i1,i8 i1,i8 4,4 NULL 2 Using union(i1,i8); Using where; Using join buffer (flat, BNL join)
> explain select * from t0,t1 where t0.key1 < 3 and
> (t1.key1 = t0.key1 or t1.key8 = t0.key1);
> id select_type table type possible_keys key key_len ref rows Extra
> @@ -348,7 +348,7 @@
> and (B.key1 < 500000 or B.key2 < 3);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE A index_merge i1,i2 i1,i2 4,4 NULL 1013 Using sort_union(i1,i2); Using where
> -1 SIMPLE B index_merge i1,i2 i1,i2 4,4 NULL 1013 Using sort_union(i1,i2); Using where; Using join buffer
> +1 SIMPLE B index_merge i1,i2 i1,i2 4,4 NULL 1013 Using sort_union(i1,i2); Using where; Using join buffer (flat, BNL join)
> select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
> from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
> where (A.key1 < 500000 or A.key2 < 3)
> @@ -362,7 +362,7 @@
> and (B.key1 = 1 or B.key2 = 1);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE A index_merge i1,i2 i1,i2 4,4 NULL 1020 Using union(i1,i2); Using where
> -1 SIMPLE B index_merge i1,i2 i1,i2 4,4 NULL 1020 Using union(i1,i2); Using where; Using join buffer
> +1 SIMPLE B index_merge i1,i2 i1,i2 4,4 NULL 1020 Using union(i1,i2); Using where; Using join buffer (flat, BNL join)
> select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
> from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
> where (A.key1 = 1 or A.key2 = 1)
> @@ -377,7 +377,7 @@
> and (B.key1 = 1 and B.key2 = 1 and B.key3 = 1 and B.key4=1 and B.key5=1 and B.key6=1 and B.key7 = 1 or B.key8=1);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE A index_merge i1,i2,i3,i4,i5,i6,i7?,i8 i2,i3,i4,i5,i6,i7?,i8 X NULL # Using union(intersect(i2,i3,i4,i5,i6,i7?),i8); Using where
> -1 SIMPLE B index_merge i1,i2,i3,i4,i5,i6,i7?,i8 i2,i3,i4,i5,i6,i7?,i8 X NULL # Using union(intersect(i2,i3,i4,i5,i6,i7?),i8); Using where; Using join buffer
> +1 SIMPLE B index_merge i1,i2,i3,i4,i5,i6,i7?,i8 i2,i3,i4,i5,i6,i7?,i8 X NULL # Using union(intersect(i2,i3,i4,i5,i6,i7?),i8); Using where; Using join buffer (flat, BNL join)
> select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
> from t0 as A, t0 as B
> where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key7 = 1 or A.key8=1)
>
> === modified file 'mysql-test/r/information_schema.result'
> --- a/mysql-test/r/information_schema.result 2010-06-07 21:53:25 +0000
> +++ b/mysql-test/r/information_schema.result 2010-10-08 19:30:16 +0000
> @@ -323,7 +323,7 @@
> a.ROUTINE_SCHEMA = b.SCHEMA_NAME;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE # ALL NULL NULL NULL NULL NULL
> -1 SIMPLE # ALL NULL NULL NULL NULL NULL Using where; Using join buffer
> +1 SIMPLE # ALL NULL NULL NULL NULL NULL Using where; Using join buffer (flat, BNL join)
> select a.ROUTINE_NAME, b.name from information_schema.ROUTINES a,
> mysql.proc b where a.ROUTINE_NAME = convert(b.name using utf8) AND a.ROUTINE_SCHEMA='test' order by 1;
> ROUTINE_NAME name
> @@ -1450,7 +1450,7 @@
> where a.table_name='t1' and a.table_schema='test' and b.table_name=a.table_name;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE a ALL NULL TABLE_SCHEMA,TABLE_NAME NULL NULL NULL Using where; Skip_open_table; Scanned 0 databases
> -1 SIMPLE b ALL NULL NULL NULL NULL NULL Using where; Open_frm_only; Scanned all databases; Using join buffer
> +1 SIMPLE b ALL NULL NULL NULL NULL NULL Using where; Open_frm_only; Scanned all databases; Using join buffer (flat, BNL join)
> SELECT * FROM INFORMATION_SCHEMA.SCHEMATA
> WHERE SCHEMA_NAME = 'mysqltest';
> CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
>
> === modified file 'mysql-test/r/innodb_gis.result'
> --- a/mysql-test/r/innodb_gis.result 2009-02-10 13:27:35 +0000
> +++ b/mysql-test/r/innodb_gis.result 2010-10-08 19:30:16 +0000
> @@ -403,7 +403,7 @@
> FROM gis_geometrycollection g1, gis_geometrycollection g2 ORDER BY first, second;
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE g1 ALL NULL NULL NULL NULL 2 100.00 Using temporary; Using filesort
> -1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer
> +1 SIMPLE g2 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`g1`.`fid` AS `first`,`test`.`g2`.`fid` AS `second`,within(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `w`,contains(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `c`,overlaps(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `o`,equals(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `e`,disjoint(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `d`,touches(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `t`,intersects(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `i`,crosses(`test`.`g1`.`g`,`test`.`g2`.`g`) AS `r` from `test`.`gis_geometrycollection` `g1` join `test`.`gis_geometrycollection` `g2` order by `test`.`g1`.`fid`,`test`.`g2`.`fid`
> DROP TABLE gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
>
> === modified file 'mysql-test/r/innodb_mysql.result'
> --- a/mysql-test/r/innodb_mysql.result 2010-06-26 10:05:41 +0000
> +++ b/mysql-test/r/innodb_mysql.result 2010-10-08 19:30:16 +0000
> @@ -187,7 +187,7 @@
> explain select min(7) from t2i join t1i;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2i ALL NULL NULL NULL NULL 1
> -1 SIMPLE t1i ALL NULL NULL NULL NULL 1 Using join buffer
> +1 SIMPLE t1i ALL NULL NULL NULL NULL 1 Using join buffer (flat, BNL join)
> select min(7) from t2i join t1i;
> min(7)
> NULL
> @@ -203,7 +203,7 @@
> explain select max(7) from t2i join t1i;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2i ALL NULL NULL NULL NULL 1
> -1 SIMPLE t1i ALL NULL NULL NULL NULL 1 Using join buffer
> +1 SIMPLE t1i ALL NULL NULL NULL NULL 1 Using join buffer (flat, BNL join)
> select max(7) from t2i join t1i;
> max(7)
> NULL
>
> === modified file 'mysql-test/r/join.result'
> --- a/mysql-test/r/join.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/join.result 2010-10-08 19:30:16 +0000
> @@ -404,7 +404,7 @@
> ORDER BY t1.b, t1.c;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 32 Using temporary; Using filesort
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 16 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 16 Using where; Using join buffer (flat, BNL join)
> SELECT STRAIGHT_JOIN t2.e FROM t1,t2 WHERE t2.d=1 AND t1.b=t2.e
> ORDER BY t1.b, t1.c;
> e
> @@ -1099,7 +1099,7 @@
> 1 SIMPLE t4 ALL NULL NULL NULL NULL 0 Using where
> 1 SIMPLE t5 ALL NULL NULL NULL NULL 0 Using where
> 1 SIMPLE t6 ALL NULL NULL NULL NULL 0 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using where; Using join buffer (flat, BNL join)
> SELECT *
> FROM
> t1 JOIN t2 ON t1.a = t2.a
>
> === modified file 'mysql-test/r/join_cache.result'
> --- a/mysql-test/r/join_cache.result 2010-10-04 01:45:46 +0000
> +++ b/mysql-test/r/join_cache.result 2010-10-08 19:30:16 +0000
> @@ -45,7 +45,7 @@
> Country.Name LIKE 'L%' AND City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
> -1 SIMPLE City ALL NULL NULL NULL NULL 4079 Using where; Using join buffer
> +1 SIMPLE City ALL NULL NULL NULL NULL 4079 Using where; Using join buffer (flat, BNL join)
> SELECT City.Name, Country.Name FROM City,Country
> WHERE City.Country=Country.Code AND
> Country.Name LIKE 'L%' AND City.Population > 100000;
> @@ -74,8 +74,8 @@
> CountryLanguage.Percentage > 50;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
> -1 SIMPLE CountryLanguage ALL NULL NULL NULL NULL 984 Using where; Using join buffer
> -1 SIMPLE City ALL NULL NULL NULL NULL 4079 Using where; Using join buffer
> +1 SIMPLE CountryLanguage ALL NULL NULL NULL NULL 984 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE City ALL NULL NULL NULL NULL 4079 Using where; Using join buffer (flat, BNL join)
> SELECT City.Name, Country.Name, CountryLanguage.Language
> FROM City,Country,CountryLanguage
> WHERE City.Country=Country.Code AND
> @@ -233,7 +233,7 @@
> Country.Name LIKE 'L%' AND City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
> -1 SIMPLE City ALL NULL NULL NULL NULL 4079 Using where; Using join buffer
> +1 SIMPLE City ALL NULL NULL NULL NULL 4079 Using where; Using join buffer (flat, BNL join)
> SELECT City.Name, Country.Name FROM City,Country
> WHERE City.Country=Country.Code AND
> Country.Name LIKE 'L%' AND City.Population > 100000;
> @@ -262,8 +262,8 @@
> CountryLanguage.Percentage > 50;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
> -1 SIMPLE CountryLanguage ALL NULL NULL NULL NULL 984 Using where; Using join buffer
> -1 SIMPLE City ALL NULL NULL NULL NULL 4079 Using where; Using join buffer
> +1 SIMPLE CountryLanguage ALL NULL NULL NULL NULL 984 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE City ALL NULL NULL NULL NULL 4079 Using where; Using join buffer (incremental, BNL join)
> SELECT City.Name, Country.Name, CountryLanguage.Language
> FROM City,Country,CountryLanguage
> WHERE City.Country=Country.Code AND
> @@ -425,7 +425,7 @@
> Country.Name LIKE 'L%' AND City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
> -1 SIMPLE City ALL NULL NULL NULL NULL 4079 Using where; Using join buffer
> +1 SIMPLE City ALL NULL NULL NULL NULL 4079 Using where; Using join buffer (flat, BNL join)
> SELECT City.Name, Country.Name FROM City,Country
> WHERE City.Country=Country.Code AND
> Country.Name LIKE 'L%' AND City.Population > 100000;
> @@ -454,8 +454,8 @@
> CountryLanguage.Percentage > 50;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
> -1 SIMPLE CountryLanguage ALL NULL NULL NULL NULL 984 Using where; Using join buffer
> -1 SIMPLE City ALL NULL NULL NULL NULL 4079 Using where; Using join buffer
> +1 SIMPLE CountryLanguage ALL NULL NULL NULL NULL 984 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE City ALL NULL NULL NULL NULL 4079 Using where; Using join buffer (flat, BNL join)
> SELECT City.Name, Country.Name, CountryLanguage.Language
> FROM City,Country,CountryLanguage
> WHERE City.Country=Country.Code AND
> @@ -613,7 +613,7 @@
> Country.Name LIKE 'L%' AND City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
> -1 SIMPLE City ALL NULL NULL NULL NULL 4079 Using where; Using join buffer
> +1 SIMPLE City ALL NULL NULL NULL NULL 4079 Using where; Using join buffer (flat, BNL join)
> SELECT City.Name, Country.Name FROM City,Country
> WHERE City.Country=Country.Code AND
> Country.Name LIKE 'L%' AND City.Population > 100000;
> @@ -642,8 +642,8 @@
> CountryLanguage.Percentage > 50;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
> -1 SIMPLE CountryLanguage ALL NULL NULL NULL NULL 984 Using where; Using join buffer
> -1 SIMPLE City ALL NULL NULL NULL NULL 4079 Using where; Using join buffer
> +1 SIMPLE CountryLanguage ALL NULL NULL NULL NULL 984 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE City ALL NULL NULL NULL NULL 4079 Using where; Using join buffer (incremental, BNL join)
> SELECT City.Name, Country.Name, CountryLanguage.Language
> FROM City,Country,CountryLanguage
> WHERE City.Country=Country.Code AND
> @@ -840,7 +840,7 @@
> Country.Name LIKE 'L%' AND City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BNLH join)
> SELECT City.Name, Country.Name FROM City,Country
> WHERE City.Country=Country.Code AND
> Country.Name LIKE 'L%' AND City.Population > 100000;
> @@ -869,8 +869,8 @@
> CountryLanguage.Percentage > 50;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
> -1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer
> -1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BNLH join)
> +1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BNLH join)
> SELECT City.Name, Country.Name, CountryLanguage.Language
> FROM City,Country,CountryLanguage
> WHERE City.Country=Country.Code AND
> @@ -1024,7 +1024,7 @@
> City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BNLH join)
> SELECT Name FROM City
> WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
> City.Population > 100000;
> @@ -1052,7 +1052,7 @@
> Country.Population > 10000000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
> -1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer
> +1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BNLH join)
> SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage)
> FROM Country LEFT JOIN CountryLanguage ON
> (CountryLanguage.Country=Country.Code AND Language='English')
> @@ -1150,7 +1150,7 @@
> Country.Name LIKE 'L%' AND City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BNLH join)
> SELECT City.Name, Country.Name FROM City,Country
> WHERE City.Country=Country.Code AND
> Country.Name LIKE 'L%' AND City.Population > 100000;
> @@ -1179,8 +1179,8 @@
> CountryLanguage.Percentage > 50;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
> -1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer
> -1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BNLH join)
> +1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using where; Using join buffer (incremental, BNLH join)
> SELECT City.Name, Country.Name, CountryLanguage.Language
> FROM City,Country,CountryLanguage
> WHERE City.Country=Country.Code AND
> @@ -1334,7 +1334,7 @@
> City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BNLH join)
> SELECT Name FROM City
> WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
> City.Population > 100000;
> @@ -1362,7 +1362,7 @@
> Country.Population > 10000000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
> -1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer
> +1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BNLH join)
> SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage)
> FROM Country LEFT JOIN CountryLanguage ON
> (CountryLanguage.Country=Country.Code AND Language='English')
> @@ -1460,7 +1460,7 @@
> Country.Name LIKE 'L%' AND City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join)
> SELECT City.Name, Country.Name FROM City,Country
> WHERE City.Country=Country.Code AND
> Country.Name LIKE 'L%' AND City.Population > 100000;
> @@ -1489,8 +1489,8 @@
> CountryLanguage.Percentage > 50;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
> -1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer
> -1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using index condition(BKA); Using where; Using join buffer
> +1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKA join)
> +1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using index condition(BKA); Using where; Using join buffer (flat, BKA join)
> SELECT City.Name, Country.Name, CountryLanguage.Language
> FROM City,Country,CountryLanguage
> WHERE City.Country=Country.Code AND
> @@ -1644,7 +1644,7 @@
> City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join)
> SELECT Name FROM City
> WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
> City.Population > 100000;
> @@ -1672,7 +1672,7 @@
> Country.Population > 10000000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
> -1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer
> +1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKA join)
> SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage)
> FROM Country LEFT JOIN CountryLanguage ON
> (CountryLanguage.Country=Country.Code AND Language='English')
> @@ -1767,7 +1767,7 @@
> Country.Name LIKE 'L%' AND City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join)
> SELECT City.Name, Country.Name FROM City,Country
> WHERE City.Country=Country.Code AND
> Country.Name LIKE 'L%' AND City.Population > 100000;
> @@ -1796,8 +1796,8 @@
> CountryLanguage.Percentage > 50;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
> -1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer
> -1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using index condition(BKA); Using where; Using join buffer
> +1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKA join)
> +1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using index condition(BKA); Using where; Using join buffer (incremental, BKA join)
> SELECT City.Name, Country.Name, CountryLanguage.Language
> FROM City,Country,CountryLanguage
> WHERE City.Country=Country.Code AND
> @@ -1951,7 +1951,7 @@
> City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join)
> SELECT Name FROM City
> WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
> City.Population > 100000;
> @@ -1979,7 +1979,7 @@
> Country.Population > 10000000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
> -1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer
> +1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKA join)
> SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage)
> FROM Country LEFT JOIN CountryLanguage ON
> (CountryLanguage.Country=Country.Code AND Language='English')
> @@ -2074,7 +2074,7 @@
> Country.Name LIKE 'L%' AND City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join)
> SELECT City.Name, Country.Name FROM City,Country
> WHERE City.Country=Country.Code AND
> Country.Name LIKE 'L%' AND City.Population > 100000;
> @@ -2103,8 +2103,8 @@
> CountryLanguage.Percentage > 50;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
> -1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer
> -1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using index condition(BKA); Using where; Using join buffer
> +1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKAH join)
> +1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using index condition(BKA); Using where; Using join buffer (flat, BKAH join)
> SELECT City.Name, Country.Name, CountryLanguage.Language
> FROM City,Country,CountryLanguage
> WHERE City.Country=Country.Code AND
> @@ -2258,7 +2258,7 @@
> City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join)
> SELECT Name FROM City
> WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
> City.Population > 100000;
> @@ -2286,7 +2286,7 @@
> Country.Population > 10000000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
> -1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer
> +1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKAH join)
> SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage)
> FROM Country LEFT JOIN CountryLanguage ON
> (CountryLanguage.Country=Country.Code AND Language='English')
> @@ -2381,7 +2381,7 @@
> Country.Name LIKE 'L%' AND City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join)
> SELECT City.Name, Country.Name FROM City,Country
> WHERE City.Country=Country.Code AND
> Country.Name LIKE 'L%' AND City.Population > 100000;
> @@ -2410,8 +2410,8 @@
> CountryLanguage.Percentage > 50;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
> -1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer
> -1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using index condition(BKA); Using where; Using join buffer
> +1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKAH join)
> +1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using index condition(BKA); Using where; Using join buffer (incremental, BKAH join)
> SELECT City.Name, Country.Name, CountryLanguage.Language
> FROM City,Country,CountryLanguage
> WHERE City.Country=Country.Code AND
> @@ -2565,7 +2565,7 @@
> City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join)
> SELECT Name FROM City
> WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
> City.Population > 100000;
> @@ -2593,7 +2593,7 @@
> Country.Population > 10000000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
> -1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer
> +1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKAH join)
> SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage)
> FROM Country LEFT JOIN CountryLanguage ON
> (CountryLanguage.Country=Country.Code AND Language='English')
> @@ -2692,7 +2692,7 @@
> Country.Name LIKE 'L%' AND City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BNLH join)
> SELECT City.Name, Country.Name FROM City,Country
> WHERE City.Country=Country.Code AND
> Country.Name LIKE 'L%' AND City.Population > 100000;
> @@ -2721,8 +2721,8 @@
> CountryLanguage.Percentage > 50;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
> -1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer
> -1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BNLH join)
> +1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BNLH join)
> SELECT City.Name, Country.Name, CountryLanguage.Language
> FROM City,Country,CountryLanguage
> WHERE City.Country=Country.Code AND
> @@ -2876,7 +2876,7 @@
> City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BNLH join)
> SELECT Name FROM City
> WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
> City.Population > 100000;
> @@ -2906,7 +2906,7 @@
> Country.Name LIKE 'L%' AND City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BNLH join)
> SELECT City.Name, Country.Name FROM City,Country
> WHERE City.Country=Country.Code AND
> Country.Name LIKE 'L%' AND City.Population > 100000;
> @@ -2935,8 +2935,8 @@
> CountryLanguage.Percentage > 50;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
> -1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer
> -1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BNLH join)
> +1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using where; Using join buffer (incremental, BNLH join)
> SELECT City.Name, Country.Name, CountryLanguage.Language
> FROM City,Country,CountryLanguage
> WHERE City.Country=Country.Code AND
> @@ -3090,7 +3090,7 @@
> City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BNLH join)
> SELECT Name FROM City
> WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
> City.Population > 100000;
> @@ -3120,7 +3120,7 @@
> Country.Name LIKE 'L%' AND City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join)
> SELECT City.Name, Country.Name FROM City,Country
> WHERE City.Country=Country.Code AND
> Country.Name LIKE 'L%' AND City.Population > 100000;
> @@ -3149,8 +3149,8 @@
> CountryLanguage.Percentage > 50;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
> -1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer
> -1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using index condition(BKA); Using where; Using join buffer
> +1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKA join)
> +1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using index condition(BKA); Using where; Using join buffer (flat, BKA join)
> SELECT City.Name, Country.Name, CountryLanguage.Language
> FROM City,Country,CountryLanguage
> WHERE City.Country=Country.Code AND
> @@ -3304,7 +3304,7 @@
> City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join)
> SELECT Name FROM City
> WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
> City.Population > 100000;
> @@ -3334,7 +3334,7 @@
> Country.Name LIKE 'L%' AND City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join)
> SELECT City.Name, Country.Name FROM City,Country
> WHERE City.Country=Country.Code AND
> Country.Name LIKE 'L%' AND City.Population > 100000;
> @@ -3363,8 +3363,8 @@
> CountryLanguage.Percentage > 50;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
> -1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer
> -1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using index condition(BKA); Using where; Using join buffer
> +1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKA join)
> +1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using index condition(BKA); Using where; Using join buffer (incremental, BKA join)
> SELECT City.Name, Country.Name, CountryLanguage.Language
> FROM City,Country,CountryLanguage
> WHERE City.Country=Country.Code AND
> @@ -3518,7 +3518,7 @@
> City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join)
> SELECT Name FROM City
> WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
> City.Population > 100000;
> @@ -3548,7 +3548,7 @@
> Country.Name LIKE 'L%' AND City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join)
> SELECT City.Name, Country.Name FROM City,Country
> WHERE City.Country=Country.Code AND
> Country.Name LIKE 'L%' AND City.Population > 100000;
> @@ -3577,8 +3577,8 @@
> CountryLanguage.Percentage > 50;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
> -1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer
> -1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using index condition(BKA); Using where; Using join buffer
> +1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKAH join)
> +1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using index condition(BKA); Using where; Using join buffer (flat, BKAH join)
> SELECT City.Name, Country.Name, CountryLanguage.Language
> FROM City,Country,CountryLanguage
> WHERE City.Country=Country.Code AND
> @@ -3732,7 +3732,7 @@
> City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join)
> SELECT Name FROM City
> WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
> City.Population > 100000;
> @@ -3762,7 +3762,7 @@
> Country.Name LIKE 'L%' AND City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join)
> SELECT City.Name, Country.Name FROM City,Country
> WHERE City.Country=Country.Code AND
> Country.Name LIKE 'L%' AND City.Population > 100000;
> @@ -3791,8 +3791,8 @@
> CountryLanguage.Percentage > 50;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
> -1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer
> -1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using index condition(BKA); Using where; Using join buffer
> +1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKAH join)
> +1 SIMPLE City ref Country Country 3 world.Country.Code 18 Using index condition(BKA); Using where; Using join buffer (incremental, BKAH join)
> SELECT City.Name, Country.Name, CountryLanguage.Language
> FROM City,Country,CountryLanguage
> WHERE City.Country=Country.Code AND
> @@ -3946,7 +3946,7 @@
> City.Population > 100000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
> -1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer
> +1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join)
> SELECT Name FROM City
> WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
> City.Population > 100000;
> @@ -4031,7 +4031,7 @@
> WHERE City.Country=Country.Code AND City.Population > 3000000;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE City range Population,Country Population 4 NULL # Using index condition; Using MRR
> -1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.City.Country # Using join buffer
> +1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.City.Country # Using join buffer (flat, BKAH join)
> SELECT City.Name, Country.Name FROM City,Country
> WHERE City.Country=Country.Code AND City.Population > 3000000;
> Name Name
> @@ -4320,15 +4320,15 @@
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t6 system PRIMARY NULL NULL NULL 1
> 1 SIMPLE t1 ref t1_affiliateid,t1_metaid t1_affiliateid 4 const 1
> -1 SIMPLE t4 ref PRIMARY,t4_formatclassid,t4_formats_idx t4_formats_idx 1 const 1 Using index condition; Using where; Using join buffer
> -1 SIMPLE t5 eq_ref PRIMARY,t5_formattypeid PRIMARY 4 test.t4.formatclassid 1 Using where; Using join buffer
> -1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.metaid 1 Using join buffer
> +1 SIMPLE t4 ref PRIMARY,t4_formatclassid,t4_formats_idx t4_formats_idx 1 const 1 Using index condition; Using where; Using join buffer (flat, BKA join)
> +1 SIMPLE t5 eq_ref PRIMARY,t5_formattypeid PRIMARY 4 test.t4.formatclassid 1 Using where; Using join buffer (incremental, BKA join)
> +1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.metaid 1 Using join buffer (incremental, BKA join)
> 1 SIMPLE t7 ref PRIMARY PRIMARY 4 test.t1.metaid 1 Using index
> -1 SIMPLE t3 ref t3_metaid,t3_formatid,t3_metaidformatid t3_metaid 4 test.t1.metaid 2 Using where; Using join buffer
> -1 SIMPLE t8 eq_ref PRIMARY PRIMARY 4 test.t7.artistid 1 Using join buffer
> -1 SIMPLE t9 index PRIMARY,t9_subgenreid,t9_metaid PRIMARY 8 NULL 2 Using where; Using index; Using join buffer
> -1 SIMPLE t10 eq_ref PRIMARY,t10_genreid PRIMARY 4 test.t9.subgenreid 1 Using join buffer
> -1 SIMPLE t11 eq_ref PRIMARY PRIMARY 4 test.t10.genreid 1 Using join buffer
> +1 SIMPLE t3 ref t3_metaid,t3_formatid,t3_metaidformatid t3_metaid 4 test.t1.metaid 2 Using where; Using join buffer (flat, BKA join)
> +1 SIMPLE t8 eq_ref PRIMARY PRIMARY 4 test.t7.artistid 1 Using join buffer (incremental, BKA join)
> +1 SIMPLE t9 index PRIMARY,t9_subgenreid,t9_metaid PRIMARY 8 NULL 2 Using where; Using index; Using join buffer (incremental, BNL join)
> +1 SIMPLE t10 eq_ref PRIMARY,t10_genreid PRIMARY 4 test.t9.subgenreid 1 Using join buffer (incremental, BKA join)
> +1 SIMPLE t11 eq_ref PRIMARY PRIMARY 4 test.t10.genreid 1 Using join buffer (incremental, BKA join)
> SELECT t1.uniquekey, t1.xml AS affiliateXml,
> t8.name AS artistName, t8.artistid,
> t11.name AS genreName, t11.genreid, t11.priority AS genrePriority,
> @@ -4409,7 +4409,7 @@
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 9 Using where
> 1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.a1 1 Using index
> -1 SIMPLE t3 ref idx idx 5 test.t2.b2 5 Using where; Using join buffer
> +1 SIMPLE t3 ref idx idx 5 test.t2.b2 5 Using where; Using join buffer (flat, BKA join)
> SELECT a1<>a2, a1, a2, b2, b3, c3,
> SUBSTR(filler1,1,1) AS s1, SUBSTR(filler2,1,1) AS s2
> FROM t1,t2,t3 WHERE a1=a2 AND b2=b3 AND MOD(c3,10)>7;
> @@ -4441,7 +4441,7 @@
> EXPLAIN SELECT * FROM t1,t2 WHERE t1.a=t2.a AND t1.b >= 30;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL idx NULL NULL NULL 7 Using where
> -1 SIMPLE t2 ref idx idx 5 test.t1.a 2 Using join buffer
> +1 SIMPLE t2 ref idx idx 5 test.t1.a 2 Using join buffer (flat, BKAH join)
> SELECT * FROM t1,t2 WHERE t1.a=t2.a AND t1.b >= 30;
> a b a b
> 7 40 7 10
> @@ -4474,7 +4474,7 @@
> SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a WHERE t2.b IS NULL;
> 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 ref i_a i_a 4 test.t1.a 2 Using where; Not exists; Using join buffer
> +1 SIMPLE t2 ref i_a i_a 4 test.t1.a 2 Using where; Not exists; Using join buffer (flat, BKA join)
> SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a WHERE t2.b IS NULL;
> a a b
> 3 NULL NULL
> @@ -4501,7 +4501,7 @@
> from t1 left join t2 on t1.a=t2.a and t2.p % 2 = 1 group by t1.a;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 8 Using temporary; Using filesort
> -1 SIMPLE t2 ref i_a i_a 5 test.t1.a 2 Using where; Using join buffer
> +1 SIMPLE t2 ref i_a i_a 5 test.t1.a 2 Using where; Using join buffer (flat, BKA join)
> select t1.a, count(t2.p) as count
> from t1 left join t2 on t1.a=t2.a and t2.p % 2 = 1 group by t1.a;
> a count
> @@ -4553,7 +4553,7 @@
> explain select * from t1 left join t2 on t1.a=t2.a where t2.c=102 or t2.c is null;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> select * from t1 left join t2 on t1.a=t2.a where t2.c=102 or t2.c is null;
> a b a c
> 3 30 3 102
> @@ -4576,7 +4576,7 @@
> explain select * from t1 left join t2 on (1=0) where a=40;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
> select * from t1 left join t2 on (1=0) where a=40;
> a b
> 40 NULL
> @@ -4620,7 +4620,7 @@
> EXPLAIN SELECT AVG(c) FROM t1,t2 WHERE t1.a=t2.b;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 2050 Using where
> -1 SIMPLE t2 ref idx idx 5 test.t1.a 640 Using join buffer
> +1 SIMPLE t2 ref idx idx 5 test.t1.a 640 Using join buffer (flat, BKA join)
> SELECT AVG(c) FROM t1,t2 WHERE t1.a=t2.b;
> AVG(c)
> 5.0000
> @@ -4660,8 +4660,8 @@
> t1.b IS NULL AND t2.b IS NULL AND t3.b IS NULL;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 16384 Using where
> -1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using join buffer
> -1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using join buffer
> +1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using join buffer (flat, BKAH join)
> +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using join buffer (flat, BKAH join)
> SELECT COUNT(*) FROM t1,t2,t3
> WHERE t1.a=t2.a AND t2.a=t3.a AND
> t1.b IS NULL AND t2.b IS NULL AND t3.b IS NULL;
> @@ -4726,7 +4726,7 @@
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 2 Using index
> 1 SIMPLE t2 ref PRIMARY PRIMARY 8 test.t1.a 1 Using index
> -1 SIMPLE t3 ref idx idx 16 test.t1.a,test.t2.b 2 Using join buffer
> +1 SIMPLE t3 ref idx idx 16 test.t1.a,test.t2.b 2 Using join buffer (flat, BKA join)
> SELECT t1.a, t2.a, t3.a, t2.b, t3.b, t3.val
> FROM (t1,t2) LEFT JOIN t3 ON (t1.a=t3.a AND t2.b=t3.b)
> WHERE t1.a=t2.a;
> @@ -4751,7 +4751,7 @@
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 2 Using index
> 1 SIMPLE t2 ref PRIMARY PRIMARY 8 test.t1.a 1 Using index
> -1 SIMPLE t3 ALL NULL NULL NULL NULL 24 Using where; Using join buffer
> +1 SIMPLE t3 ALL NULL NULL NULL NULL 24 Using where; Using join buffer (flat, BNL join)
> SELECT t1.a, t2.a, t3.a, t2.b, t3.b, t3.val
> FROM (t1,t2) LEFT JOIN t3 ON (t1.a=t3.a AND t2.b=t3.b)
> WHERE t1.a=t2.a;
> @@ -4797,7 +4797,7 @@
> where t1.f1=t2.f1 and t2.f2 between t1.f1 and t2.f2;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using join buffer
> +1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using join buffer (flat, BKA join)
> set join_cache_level=6;
> select t2.f1, t2.f2, t2.f3 from t1,t2
> where t1.f1=t2.f1 and t2.f2 between t1.f1 and t1.f2 and t2.f2 + 1 >= t1.f1 + 1;
> @@ -4810,7 +4810,7 @@
> where t1.f1=t2.f1 and t2.f2 between t1.f1 and t2.f2;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using join buffer
> +1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using join buffer (flat, BKA join)
> set join_cache_level=7;
> select t2.f1, t2.f2, t2.f3 from t1,t2
> where t1.f1=t2.f1 and t2.f2 between t1.f1 and t1.f2 and t2.f2 + 1 >= t1.f1 + 1;
> @@ -4823,7 +4823,7 @@
> where t1.f1=t2.f1 and t2.f2 between t1.f1 and t2.f2;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using where; Using join buffer
> +1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using where; Using join buffer (flat, BKAH join)
> set join_cache_level=8;
> select t2.f1, t2.f2, t2.f3 from t1,t2
> where t1.f1=t2.f1 and t2.f2 between t1.f1 and t1.f2 and t2.f2 + 1 >= t1.f1 + 1;
> @@ -4836,7 +4836,7 @@
> where t1.f1=t2.f1 and t2.f2 between t1.f1 and t2.f2;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using where; Using join buffer
> +1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using where; Using join buffer (flat, BKAH join)
> drop table t1,t2;
> set join_cache_level=default;
> #
> @@ -4855,7 +4855,7 @@
> where t1.d=3 group by t1.id1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref idx1 idx1 5 const 4 Using where; Using index; Using temporary; Using filesort
> -1 SIMPLE t2 ref idx2 idx2 5 test.t1.id1 2 Using join buffer
> +1 SIMPLE t2 ref idx2 idx2 5 test.t1.id1 2 Using join buffer (flat, BKA join)
> select t1.id1, sum(t2.id2) from t1 join t2 on t1.id1=t2.id1
> where t1.d=3 group by t1.id1;
> id1 sum(t2.id2)
> @@ -4867,7 +4867,7 @@
> where t1.d=3 and t2.id2 > 200 order by t1.id1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref idx1 idx1 5 const 4 Using where; Using index; Using temporary; Using filesort
> -1 SIMPLE t2 ref idx2 idx2 5 test.t1.id1 2 Using where; Using join buffer
> +1 SIMPLE t2 ref idx2 idx2 5 test.t1.id1 2 Using where; Using join buffer (flat, BKA join)
> select t1.id1 from t1 join t2 on t1.id1=t2.id1
> where t1.d=3 and t2.id2 > 200 order by t1.id1;
> id1
> @@ -4924,9 +4924,9 @@
> where t2.b=t1.b and t3.d=t1.d and t4.c=t1.c;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 7 Using where
> -1 SIMPLE t2 ref idx idx 5 test.t1.b 1 Using join buffer
> -1 SIMPLE t3 ref idx idx 5 test.t1.d 1 Using join buffer
> -1 SIMPLE t4 ref idx idx 5 test.t1.c 1 Using join buffer
> +1 SIMPLE t2 ref idx idx 5 test.t1.b 1 Using join buffer (flat, BKA join)
> +1 SIMPLE t3 ref idx idx 5 test.t1.d 1 Using join buffer (incremental, BKA join)
> +1 SIMPLE t4 ref idx idx 5 test.t1.c 1 Using join buffer (incremental, BKA join)
> select t1.a, t1.b, t1.c, t1.d, t2.e, t3.f, t4.g from t1,t2,t3,t4
> where t2.b=t1.b and t3.d=t1.d and t4.c=t1.c;
> a b c d e f g
> @@ -4975,10 +4975,10 @@
> t5.enum2='Active' AND t3.id4=t2.id4 AND t2.id3=t1.id3 AND t3.text1<'D';
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 349 Using where
> -1 SIMPLE t2 eq_ref PRIMARY PRIMARY 8 test.t1.id3 1 Using where; Using join buffer
> -1 SIMPLE t3 eq_ref PRIMARY PRIMARY 8 test.t2.id4 1 Using where; Using join buffer
> -1 SIMPLE t4 eq_ref PRIMARY PRIMARY 8 test.t1.id2 1 Using join buffer
> -1 SIMPLE t5 eq_ref PRIMARY PRIMARY 16 test.t1.id1,test.t1.id2 1 Using where; Using join buffer
> +1 SIMPLE t2 eq_ref PRIMARY PRIMARY 8 test.t1.id3 1 Using where; Using join buffer (flat, BKAH join)
> +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 8 test.t2.id4 1 Using where; Using join buffer (incremental, BKAH join)
> +1 SIMPLE t4 eq_ref PRIMARY PRIMARY 8 test.t1.id2 1 Using join buffer (incremental, BKAH join)
> +1 SIMPLE t5 eq_ref PRIMARY PRIMARY 16 test.t1.id1,test.t1.id2 1 Using where; Using join buffer (incremental, BKAH join)
> SELECT STRAIGHT_JOIN t1.id1, t1.num3, t3.text1, t3.id4, t2.id3, t4.dummy
> FROM t1 JOIN t2 JOIN t3 JOIN t4 JOIN t5
> WHERE t1.id1=t5.id1 AND t1.id2=t5.id2 and t4.id2=t1.id2 AND
> @@ -5075,7 +5075,7 @@
> ORDER BY t1.int_key;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 index NULL int_key 4 NULL 14 Using index
> -1 SIMPLE t2 index NULL int_key 4 NULL 2 Using index; Using join buffer
> +1 SIMPLE t2 index NULL int_key 4 NULL 2 Using index; Using join buffer (flat, BNL join)
>
> DROP TABLE t1,t2;
> SET join_cache_level=default;
> @@ -5109,7 +5109,7 @@
> ORDER BY t2.v;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
> -1 SIMPLE t1 index NULL PRIMARY 4 NULL 4 Using index; Using join buffer
> +1 SIMPLE t1 index NULL PRIMARY 4 NULL 4 Using index; Using join buffer (flat, BNL join)
>
> DROP TABLE t1,t2;
> #
> @@ -5143,8 +5143,8 @@
> explain select t1.* from t1,t2,t3;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 2
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using join buffer
> -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using join buffer (flat, BNL join)
> +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using join buffer (flat, BNL join)
> select t1.* from t1,t2,t3;
> a b
> 1 1
> @@ -5159,8 +5159,8 @@
> explain select t1.* from t1,t2,t3;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 2
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using join buffer
> -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using join buffer (flat, BNL join)
> +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using join buffer (incremental, BNL join)
> select t1.* from t1,t2,t3;
> a b
> 1 1
> @@ -5190,8 +5190,8 @@
> SELECT t3.a FROM t1,t2,t3 WHERE t1.a = t3.a AND t1.b = t3.b;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using join buffer
> -1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using join buffer (flat, BNL join)
> +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using join buffer (incremental, BKA join)
> SELECT t3.a FROM t1,t2,t3 WHERE t1.a = t3.a AND t1.b = t3.b;
> a
> 27
> @@ -5237,7 +5237,7 @@
> ON t3.carrier = t1.carrier;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 2
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.carrier 1 Using where
> 1 SIMPLE t4 ref carrier_id carrier_id 5 test.t3.id 2 Using index
> SET join_cache_level=default;
> @@ -5253,7 +5253,7 @@
> explain SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 2
> -1 SIMPLE t2 ref b b 5 test.t1.b 2 Using where; Using join buffer
> +1 SIMPLE t2 ref b b 5 test.t1.b 2 Using where; Using join buffer (flat, BKA join)
> SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
> a
> NULL
> @@ -5262,7 +5262,7 @@
> explain SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 2
> -1 SIMPLE t2 ref b b 5 test.t1.b 2 Using where; Using join buffer
> +1 SIMPLE t2 ref b b 5 test.t1.b 2 Using where; Using join buffer (flat, BKAH join)
> SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
> a
> NULL
> @@ -5273,7 +5273,7 @@
> explain SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 2
> -1 SIMPLE t2 ref b b 5 test.t1.b 2 Using where; Using join buffer
> +1 SIMPLE t2 ref b b 5 test.t1.b 2 Using where; Using join buffer (flat, BKA join)
> SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
> a
> NULL
> @@ -5287,7 +5287,7 @@
> explain SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 2
> -1 SIMPLE t2 ref b b 103 test.t1.b 2 Using where; Using join buffer
> +1 SIMPLE t2 ref b b 103 test.t1.b 2 Using where; Using join buffer (flat, BKA join)
> SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
> a
> NULL
> @@ -5296,7 +5296,7 @@
> explain SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 2
> -1 SIMPLE t2 ref b b 103 test.t1.b 2 Using where; Using join buffer
> +1 SIMPLE t2 ref b b 103 test.t1.b 2 Using where; Using join buffer (flat, BKAH join)
> SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
> a
> NULL
> @@ -5322,7 +5322,7 @@
> WHERE s.pk AND s.a >= t.pk AND s.b = t.c;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t ALL NULL NULL NULL NULL 2 Using where
> -1 SIMPLE s ref idx idx 19 test.t.c 1 Using index condition(BKA); Using where; Using join buffer
> +1 SIMPLE s ref idx idx 19 test.t.c 1 Using index condition(BKA); Using where; Using join buffer (flat, BKAH join)
> SELECT t.a FROM t1 t, t1 s FORCE INDEX(idx)
> WHERE s.pk AND s.a >= t.pk AND s.b = t.c;
> a
> @@ -5345,8 +5345,8 @@
> WHERE t1.a OR t3.a;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 4
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer
> -1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (incremental, BNL join)
> SELECT t1.a
> FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON t2.a) ON 0
> WHERE t1.a OR t3.a;
> @@ -5359,9 +5359,9 @@
> WHERE t1.a OR t4.a;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 4
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer
> -1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 0 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (incremental, BNL join)
> SELECT t1.a
> FROM t1 LEFT JOIN (t2 LEFT JOIN (t3 LEFT JOIN t4 ON 1) ON t2.a) ON 0
> WHERE t1.a OR t4.a;
>
> === modified file 'mysql-test/r/join_nested.result'
> --- a/mysql-test/r/join_nested.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/join_nested.result 2010-10-08 19:30:16 +0000
> @@ -229,7 +229,7 @@
> ON t7.b=t8.b AND t6.b < 10;
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (flat, BNL join)
> 1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
> Warnings:
> Note 1003 select `test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b` from `test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t7`.`b` = `test`.`t8`.`b`) and (`test`.`t6`.`b` < 10))) where 1
> @@ -544,7 +544,7 @@
> (t2.a >= 4 OR t2.c IS NULL);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
> 1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where
> @@ -639,7 +639,7 @@
> (t9.a=1);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
> 1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where
> @@ -647,7 +647,7 @@
> 1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
> 1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
> -1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
> SELECT t9.a,t9.b
> @@ -836,7 +836,7 @@
> WHERE t1.a <= 2;
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (flat, BNL join)
> 1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where
> Warnings:
> @@ -850,7 +850,7 @@
> ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (flat, BNL join)
> 1 SIMPLE t2 ref idx_b idx_b 5 test.t3.b 2 100.00 Using where
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00
> Warnings:
> @@ -906,7 +906,7 @@
> (t9.a=1);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
> 1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where
> @@ -914,7 +914,7 @@
> 1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
> 1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
> -1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
> CREATE INDEX idx_b ON t4(b);
> @@ -956,7 +956,7 @@
> (t9.a=1);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
> 1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where
> @@ -964,7 +964,7 @@
> 1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
> 1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
> -1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on((((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1)) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
> CREATE INDEX idx_b ON t8(b);
> @@ -1005,7 +1005,7 @@
> (t9.a=1);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
> 1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where
> @@ -1013,7 +1013,7 @@
> 1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
> 1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where
> -1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on((((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1)) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on((((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
> CREATE INDEX idx_b ON t1(b);
> @@ -1063,7 +1063,7 @@
> 1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
> 1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where
> -1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on((((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1)) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on((((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
> SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
>
> === modified file 'mysql-test/r/join_nested_jcl6.result'
> --- a/mysql-test/r/join_nested_jcl6.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/join_nested_jcl6.result 2010-10-08 19:30:16 +0000
> @@ -80,8 +80,8 @@
> WHERE t3.a=1 OR t3.c IS NULL;
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00
> -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> Warnings:
> Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t2` left join (`test`.`t3` join `test`.`t4`) on((`test`.`t4`.`b` = `test`.`t2`.`b`)) where ((`test`.`t3`.`a` = 1) or isnull(`test`.`t3`.`c`))
> SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
> @@ -156,9 +156,9 @@
> WHERE t3.a>1 OR t3.c IS NULL;
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00
> -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t5 ALL NULL NULL NULL NULL 3 100.00 Using join buffer
> +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t5 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (incremental, BNL join)
> Warnings:
> Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b` from `test`.`t2` left join (`test`.`t3` join `test`.`t4` join `test`.`t5`) on((`test`.`t4`.`b` = `test`.`t2`.`b`)) where ((`test`.`t3`.`a` > 1) or isnull(`test`.`t3`.`c`))
> SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
> @@ -186,9 +186,9 @@
> (t5.a<3 OR t5.c IS NULL);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00
> -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t5 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t5 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> Warnings:
> Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b` from `test`.`t2` left join (`test`.`t3` join `test`.`t4` join `test`.`t5`) on((`test`.`t4`.`b` = `test`.`t2`.`b`)) where (((`test`.`t3`.`a` > 1) or isnull(`test`.`t3`.`c`)) and ((`test`.`t5`.`a` < 3) or isnull(`test`.`t5`.`c`)))
> SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
> @@ -236,8 +236,8 @@
> ON t7.b=t8.b AND t6.b < 10;
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using join buffer
> -1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (flat, BNL join)
> +1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> Warnings:
> Note 1003 select `test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b` from `test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t7`.`b` = `test`.`t8`.`b`) and (`test`.`t6`.`b` < 10))) where 1
> SELECT t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
> @@ -551,14 +551,14 @@
> (t2.a >= 4 OR t2.c IS NULL);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t5 ALL NULL NULL NULL NULL 3 100.00 Using join buffer
> -1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t5 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (incremental, BNL join)
> +1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> Warnings:
> Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) where ((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)))
> SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
> @@ -646,15 +646,15 @@
> (t9.a=1);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t5 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t5 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> Warnings:
> Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
> SELECT t9.a,t9.b
> @@ -843,9 +843,9 @@
> WHERE t1.a <= 2;
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using join buffer
> -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (flat, BNL join)
> +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> Warnings:
> Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t1` join `test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) where (`test`.`t1`.`a` <= 2)
> CREATE INDEX idx_b ON t2(b);
> @@ -857,9 +857,9 @@
> ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using join buffer
> -1 SIMPLE t2 ref idx_b idx_b 5 test.t3.b 2 100.00 Using where; Using join buffer
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (flat, BNL join)
> +1 SIMPLE t2 ref idx_b idx_b 5 test.t3.b 2 100.00 Using where; Using join buffer (incremental, BKA join)
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (incremental, BNL join)
> Warnings:
> Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t3` join `test`.`t4` left join (`test`.`t1` join `test`.`t2`) on((((`test`.`t3`.`a` = 1) and (`test`.`t3`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` = `test`.`t4`.`b`)) and (`test`.`t3`.`b` is not null))) where 1
> SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
> @@ -913,15 +913,15 @@
> (t9.a=1);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t5 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t5 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> Warnings:
> Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
> CREATE INDEX idx_b ON t4(b);
> @@ -963,15 +963,15 @@
> (t9.a=1);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer
> -1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BKA join)
> +1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> Warnings:
> Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on((((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1)) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
> CREATE INDEX idx_b ON t8(b);
> @@ -1012,15 +1012,15 @@
> (t9.a=1);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer
> -1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where; Using join buffer
> -1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BKA join)
> +1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BKA join)
> +1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> Warnings:
> Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on((((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1)) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on((((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
> CREATE INDEX idx_b ON t1(b);
> @@ -1062,15 +1062,15 @@
> (t9.a=1);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t0 ref idx_a idx_a 5 const 1 100.00 Using where
> -1 SIMPLE t1 ref idx_b idx_b 5 test.t0.b 2 100.00 Using join buffer
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer
> -1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> -1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where; Using join buffer
> -1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t1 ref idx_b idx_b 5 test.t0.b 2 100.00 Using join buffer (flat, BKA join)
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BKA join)
> +1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BKA join)
> +1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
> Warnings:
> Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on((((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1)) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on((((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
> SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
> @@ -1324,8 +1324,8 @@
> EXPLAIN SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON c21=c31) ON c11=c21;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 2
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer
> -1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t3 ALL NULL NULL NULL NULL 0 Using where; Using join buffer (incremental, BNL join)
> DROP TABLE t1,t2,t3;
> CREATE TABLE t1 (goods int(12) NOT NULL, price varchar(128) NOT NULL);
> INSERT INTO t1 VALUES (23, 2340), (26, 9900);
> @@ -1452,27 +1452,27 @@
> t2 left join (t3 join t5 on t5.a=t3.b) on t3.a=t2.b where t4.a<=>t3.b;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL X
> -1 SIMPLE t3 ref a a 5 test.t2.b X Using where; Using join buffer
> -1 SIMPLE t5 ref a a 5 test.t3.b X Using join buffer
> -1 SIMPLE t4 ref a a 5 test.t3.b X Using index condition(BKA); Using join buffer
> +1 SIMPLE t3 ref a a 5 test.t2.b X Using where; Using join buffer (flat, BKA join)
> +1 SIMPLE t5 ref a a 5 test.t3.b X Using join buffer (incremental, BKA join)
> +1 SIMPLE t4 ref a a 5 test.t3.b X Using index condition(BKA); Using join buffer (incremental, BKA join)
> explain select * from (t4 join t6 on t6.a=t4.b) right join t3 on t4.a=t3.b
> join t2 left join (t5 join t7 on t7.a=t5.b) on t5.a=t2.b where t3.a<=>t2.b;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL X
> -1 SIMPLE t3 ref a a 5 test.t2.b X Using index condition(BKA); Using join buffer
> -1 SIMPLE t4 ref a a 5 test.t3.b X Using where; Using join buffer
> -1 SIMPLE t6 ref a a 5 test.t4.b X Using join buffer
> -1 SIMPLE t5 ref a a 5 test.t2.b X Using where; Using join buffer
> -1 SIMPLE t7 ref a a 5 test.t5.b X Using join buffer
> +1 SIMPLE t3 ref a a 5 test.t2.b X Using index condition(BKA); Using join buffer (flat, BKA join)
> +1 SIMPLE t4 ref a a 5 test.t3.b X Using where; Using join buffer (incremental, BKA join)
> +1 SIMPLE t6 ref a a 5 test.t4.b X Using join buffer (incremental, BKA join)
> +1 SIMPLE t5 ref a a 5 test.t2.b X Using where; Using join buffer (incremental, BKA join)
> +1 SIMPLE t7 ref a a 5 test.t5.b X Using join buffer (incremental, BKA join)
> explain select * from t2 left join
> (t3 left join (t4 join t6 on t6.a=t4.b) on t4.a=t3.b
> join t5 on t5.a=t3.b) on t3.a=t2.b;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL X
> -1 SIMPLE t3 ref a a 5 test.t2.b X Using where; Using join buffer
> -1 SIMPLE t4 ref a a 5 test.t3.b X Using where; Using join buffer
> -1 SIMPLE t6 ref a a 5 test.t4.b X Using join buffer
> -1 SIMPLE t5 ref a a 5 test.t3.b X Using join buffer
> +1 SIMPLE t3 ref a a 5 test.t2.b X Using where; Using join buffer (flat, BKA join)
> +1 SIMPLE t4 ref a a 5 test.t3.b X Using where; Using join buffer (incremental, BKA join)
> +1 SIMPLE t6 ref a a 5 test.t4.b X Using join buffer (incremental, BKA join)
> +1 SIMPLE t5 ref a a 5 test.t3.b X Using join buffer (incremental, BKA join)
> drop table t0, t1, t2, t3, t4, t5, t6, t7;
> create table t1 (a int);
> insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
> @@ -1485,8 +1485,8 @@
> on (t1.a = t2.a);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 10
> -1 SIMPLE t2 ref a a 5 test.t1.a 1 Using where; Using join buffer
> -1 SIMPLE t3 ref a a 5 test.t2.a 1 Using where; Using join buffer
> +1 SIMPLE t2 ref a a 5 test.t1.a 1 Using where; Using join buffer (flat, BKA join)
> +1 SIMPLE t3 ref a a 5 test.t2.a 1 Using where; Using join buffer (incremental, BKA join)
> drop table t1, t2, t3;
> CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, type varchar(10));
> CREATE TABLE t2 (pid int NOT NULL PRIMARY KEY, type varchar(10));
> @@ -1737,7 +1737,7 @@
> ON t4.carrier = t1.carrier;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 index package_id package_id 5 NULL 45 Using where; Using index
> -1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.package_id 1 Using join buffer
> +1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.package_id 1 Using join buffer (flat, BKA join)
> 1 SIMPLE t4 eq_ref PRIMARY,id PRIMARY 2 test.t1.carrier 1 Using where
> 1 SIMPLE t5 ref carrier_id carrier_id 5 test.t4.id 22 Using index
> 1 SIMPLE t3 ref package_id package_id 5 test.t1.id 1 Using where; Using index
> @@ -1773,9 +1773,9 @@
> (t8.a > 0 OR t8.c IS NULL);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t5 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t7 ref b_i b_i 5 test.t5.b 2 Using where; Using join buffer
> -1 SIMPLE t6 ALL b_i NULL NULL NULL 3 Using where; Using join buffer
> -1 SIMPLE t8 ref b_i b_i 5 test.t7.b 2 Using where; Using join buffer
> +1 SIMPLE t7 ref b_i b_i 5 test.t5.b 2 Using where; Using join buffer (flat, BKA join)
> +1 SIMPLE t6 ALL b_i NULL NULL NULL 3 Using where; Using join buffer (incremental, BNL join)
> +1 SIMPLE t8 ref b_i b_i 5 test.t7.b 2 Using where; Using join buffer (incremental, BKA join)
> SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
> FROM t5
> LEFT JOIN
> @@ -1808,9 +1808,9 @@
> ON (t5.b=t8.b);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t5 ALL NULL NULL NULL NULL 2
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 1 Using join buffer
> -1 SIMPLE t7 const PRIMARY PRIMARY 4 const 1 Using join buffer
> -1 SIMPLE t8 ALL b_i NULL NULL NULL 1 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 1 Using join buffer (flat, BNL join)
> +1 SIMPLE t7 const PRIMARY PRIMARY 4 const 1 Using join buffer (incremental, BKA join)
> +1 SIMPLE t8 ALL b_i NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join)
> SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
> FROM t5 LEFT JOIN
> (t6 LEFT JOIN t7 ON t7.a=1, t8)
> @@ -1825,9 +1825,9 @@
> ON (t5.b=t8.b);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t5 ALL NULL NULL NULL NULL 2
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 1 Using join buffer
> -1 SIMPLE t7 ref b_i b_i 5 const 0 Using join buffer
> -1 SIMPLE t8 ALL b_i NULL NULL NULL 1 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 1 Using join buffer (flat, BNL join)
> +1 SIMPLE t7 ref b_i b_i 5 const 0 Using join buffer (incremental, BKA join)
> +1 SIMPLE t8 ALL b_i NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join)
> SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
> FROM t5 LEFT JOIN
> (t6 LEFT JOIN t7 ON t7.b=2, t8)
> @@ -1842,9 +1842,9 @@
> ON (t5.b=t8.b);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t5 ALL NULL NULL NULL NULL 2
> -1 SIMPLE t8 ALL b_i NULL NULL NULL 1 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 1 Using join buffer
> -1 SIMPLE t7 const PRIMARY PRIMARY 4 const 1 Using join buffer
> +1 SIMPLE t8 ALL b_i NULL NULL NULL 1 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 1 Using join buffer (incremental, BNL join)
> +1 SIMPLE t7 const PRIMARY PRIMARY 4 const 1 Using join buffer (incremental, BKA join)
> SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
> FROM t5 LEFT JOIN
> (t8, t6 LEFT JOIN t7 ON t7.a=1)
>
> === modified file 'mysql-test/r/join_outer_jcl6.result'
> --- a/mysql-test/r/join_outer_jcl6.result 2010-10-06 20:27:12 +0000
> +++ b/mysql-test/r/join_outer_jcl6.result 2010-10-08 19:30:16 +0000
> @@ -102,7 +102,7 @@
> explain select t1.*,t2.* from t1 left join t2 on t1.a=t2.a where isnull(t2.a)=1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 7
> -1 SIMPLE t2 eq_ref PRIMARY PRIMARY 8 test.t1.a 1 Using where; Using join buffer
> +1 SIMPLE t2 eq_ref PRIMARY PRIMARY 8 test.t1.a 1 Using where; Using join buffer (flat, BKA join)
> select t1.*,t2.*,t3.a from t1 left join t2 on (t1.a=t2.a) left join t1 as t3 on (t2.a=t3.a);
> grp a c id a c d a
> 1 1 a 1 1 a 1 1
> @@ -319,11 +319,11 @@
> explain select t1.name, t2.name, t2.id from t1 left join t2 on (t1.id = t2.owner) where t2.id is null;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where; Not exists; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where; Not exists; Using join buffer (flat, BNL join)
> explain select t1.name, t2.name, t2.id from t1 left join t2 on (t1.id = t2.owner) where t2.name is null;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> select count(*) from t1 left join t2 on (t1.id = t2.owner);
> count(*)
> 4
> @@ -339,11 +339,11 @@
> explain select t1.name, t2.name, t2.id from t2 right join t1 on (t1.id = t2.owner) where t2.id is null;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where; Not exists; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where; Not exists; Using join buffer (flat, BNL join)
> explain select t1.name, t2.name, t2.id from t2 right join t1 on (t1.id = t2.owner) where t2.name is null;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> select count(*) from t2 right join t1 on (t1.id = t2.owner);
> count(*)
> 4
> @@ -695,8 +695,8 @@
> explain select * from t1 left join t2 on b1 = a1 left join t3 on c1 = a1 and b1 is null;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer
> -1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (incremental, BNL join)
> drop table t1, t2, t3;
> create table t1 (
> a int(11),
> @@ -745,13 +745,13 @@
> order by m.match_id desc;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE s ALL NULL NULL NULL NULL 10 Using temporary; Using filesort
> -1 SIMPLE m const match_id,match_id_2 match_id 1 const 1 Using join buffer
> +1 SIMPLE m const match_id,match_id_2 match_id 1 const 1 Using join buffer (flat, BKA join)
> explain select s.*, '*', m.*, (s.match_1_h - m.home) UUX from
> (t2 s left join t1 m on m.match_id = 1)
> order by UUX desc;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE s ALL NULL NULL NULL NULL 10 Using temporary; Using filesort
> -1 SIMPLE m const match_id,match_id_2 match_id 1 const 1 Using join buffer
> +1 SIMPLE m const match_id,match_id_2 match_id 1 const 1 Using join buffer (flat, BKA join)
> select s.*, '*', m.*, (s.match_1_h - m.home) UUX from
> (t2 s left join t1 m on m.match_id = 1)
> order by UUX desc;
> @@ -771,7 +771,7 @@
> order by UUX desc;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE s ALL NULL NULL NULL NULL 10 Using temporary; Using filesort
> -1 SIMPLE m const match_id,match_id_2 match_id 1 const 1 Using join buffer
> +1 SIMPLE m const match_id,match_id_2 match_id 1 const 1 Using join buffer (flat, BKA join)
> select s.*, '*', m.*, (s.match_1_h - m.home) UUX from
> t2 s straight_join t1 m where m.match_id = 1
> order by UUX desc;
> @@ -1134,15 +1134,15 @@
> EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a = t2.a OR t1.a = t2.b;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4 Using where
> -1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using join buffer
> +1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using join buffer (flat, BKA join)
> EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a IN(t2.a, t2.b);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4 Using where
> -1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using join buffer
> +1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using join buffer (flat, BKA join)
> EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a > IF(t1.a = t2.b-2, t2.b, t2.b-1);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4 Using where
> -1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using join buffer
> +1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using join buffer (flat, BKA join)
> DROP TABLE t1,t2;
> DROP VIEW IF EXISTS v1,v2;
> DROP TABLE IF EXISTS t1,t2;
> @@ -1231,7 +1231,7 @@
> SELECT t1.id, a FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.b IS NULL;
> 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 ref idx idx 4 test.t1.id 2 Using where; Not exists; Using join buffer
> +1 SIMPLE t2 ref idx idx 4 test.t1.id 2 Using where; Not exists; Using join buffer (flat, BKA join)
> flush status;
> SELECT t1.id, a FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.b IS NULL;
> id a
>
> === modified file 'mysql-test/r/key_diff.result'
> --- a/mysql-test/r/key_diff.result 2007-05-29 12:58:18 +0000
> +++ b/mysql-test/r/key_diff.result 2010-10-08 19:30:16 +0000
> @@ -36,7 +36,7 @@
> explain select t1.*,t2.* from t1,t1 as t2 where t1.A=t2.B;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL a NULL NULL NULL 5
> -1 SIMPLE t2 ALL b NULL NULL NULL 5 Using where; Using join buffer
> +1 SIMPLE t2 ALL b NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join)
> select t1.*,t2.* from t1,t1 as t2 where t1.A=t2.B order by binary t1.a,t2.a;
> a b a b
> A B a a
>
> === modified file 'mysql-test/r/myisam.result'
> --- a/mysql-test/r/myisam.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/myisam.result 2010-10-08 19:30:16 +0000
> @@ -346,11 +346,11 @@
> explain select * from t1,t2 where t1.a=t2.a;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL a NULL NULL NULL 2
> -1 SIMPLE t1 ALL a NULL NULL NULL 5 Using where; Using join buffer
> +1 SIMPLE t1 ALL a NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join)
> explain select * from t1,t2 force index(a) where t1.a=t2.a;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL a NULL NULL NULL 2
> -1 SIMPLE t1 ALL a NULL NULL NULL 5 Using where; Using join buffer
> +1 SIMPLE t1 ALL a NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join)
> explain select * from t1 force index(a),t2 force index(a) where t1.a=t2.a;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL a NULL NULL NULL 2
> @@ -362,7 +362,7 @@
> explain select * from t1,t2 force index(c) where t1.a=t2.a;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 2
> -1 SIMPLE t1 ALL a NULL NULL NULL 5 Using where; Using join buffer
> +1 SIMPLE t1 ALL a NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join)
> explain select * from t1 where a=0 or a=2;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL a NULL NULL NULL 5 Using where
>
> === modified file 'mysql-test/r/order_by.result'
> --- a/mysql-test/r/order_by.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/order_by.result 2010-10-08 19:30:16 +0000
> @@ -1608,18 +1608,18 @@
> SELECT * FROM t1 FORCE INDEX FOR ORDER BY (a), t2 WHERE t1.a < 2 ORDER BY t1.a;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 range a a 5 NULL 2 Using index condition; Using MRR; Using temporary; Using filesort
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
> # should have "using filesort"
> EXPLAIN
> SELECT * FROM t1 USE INDEX FOR ORDER BY (a), t2 WHERE t1.a < 2 ORDER BY t1.a;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 range a a 5 NULL 2 Using index condition; Using MRR; Using temporary; Using filesort
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
> # should have "using filesort"
> EXPLAIN
> SELECT * FROM t1 FORCE INDEX FOR JOIN (a), t2 WHERE t1.a < 2 ORDER BY t1.a;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 range a a 5 NULL 2 Using index condition; Using MRR; Using temporary; Using filesort
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
> DROP TABLE t1, t2;
> End of 5.1 tests
>
> === modified file 'mysql-test/r/pool_of_threads.result'
> --- a/mysql-test/r/pool_of_threads.result 2009-12-15 07:16:46 +0000
> +++ b/mysql-test/r/pool_of_threads.result 2010-10-08 19:30:16 +0000
> @@ -1429,7 +1429,7 @@
> explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join)
> select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
> fld1 companynr fld3 period
> 038008 37 reporters 1008
>
> === modified file 'mysql-test/r/range.result'
> --- a/mysql-test/r/range.result 2010-03-20 12:01:47 +0000
> +++ b/mysql-test/r/range.result 2010-10-08 19:30:16 +0000
> @@ -221,27 +221,27 @@
> explain select * from t1, t1 t2 where t1.y = 8 and t2.x between 7 and t1.y+0;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref y y 5 const 1
> -1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Using MRR; Using join buffer
> +1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Using MRR; Using join buffer (flat, BNL join)
> explain select * from t1, t1 t2 where t1.y = 8 and t2.x >= 7 and t2.x <= t1.y+0;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref y y 5 const 1
> -1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Using MRR; Using join buffer
> +1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Using MRR; Using join buffer (flat, BNL join)
> explain select * from t1, t1 t2 where t1.y = 2 and t2.x between t1.y-1 and t1.y+1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref y y 5 const 1
> -1 SIMPLE t2 range x x 5 NULL 3 Using index condition; Using MRR; Using join buffer
> +1 SIMPLE t2 range x x 5 NULL 3 Using index condition; Using MRR; Using join buffer (flat, BNL join)
> explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= t1.y-1 and t2.x <= t1.y+1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref y y 5 const 1
> -1 SIMPLE t2 range x x 5 NULL 3 Using index condition; Using MRR; Using join buffer
> +1 SIMPLE t2 range x x 5 NULL 3 Using index condition; Using MRR; Using join buffer (flat, BNL join)
> explain select * from t1, t1 t2 where t1.y = 2 and t2.x between 0 and t1.y;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref y y 5 const 1
> -1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Using MRR; Using join buffer
> +1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Using MRR; Using join buffer (flat, BNL join)
> explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= 0 and t2.x <= t1.y;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref y y 5 const 1
> -1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Using MRR; Using join buffer
> +1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Using MRR; Using join buffer (flat, BNL join)
> explain select count(*) from t1 where x in (1);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref x x 5 const 1 Using index
> @@ -256,12 +256,12 @@
> explain select * from t1, t2 where (t1.key1 <t2.keya + 1) and t2.keya=3;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ref j1 j1 4 const 1 Using index
> -1 SIMPLE t1 index i1 i1 4 NULL 7 Using where; Using index; Using join buffer
> +1 SIMPLE t1 index i1 i1 4 NULL 7 Using where; Using index; Using join buffer (flat, BNL join)
> explain select * from t1 force index(i1), t2 force index(j1) where
> (t1.key1 <t2.keya + 1) and t2.keya=3;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ref j1 j1 4 const 1 Using index
> -1 SIMPLE t1 index i1 i1 4 NULL 7 Using where; Using index; Using join buffer
> +1 SIMPLE t1 index i1 i1 4 NULL 7 Using where; Using index; Using join buffer (flat, BNL join)
> DROP TABLE t1,t2;
> CREATE TABLE t1 (
> a int(11) default NULL,
>
> === modified file 'mysql-test/r/row.result'
> --- a/mysql-test/r/row.result 2010-04-16 11:42:34 +0000
> +++ b/mysql-test/r/row.result 2010-10-08 19:30:16 +0000
> @@ -377,7 +377,7 @@
> EXPLAIN EXTENDED SELECT * FROM t1,t2 WHERE (t1.a-1,t1.b)=(t2.a-1,t2.b+1);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t1 index NULL PRIMARY 8 NULL 6 100.00 Using index
> -1 SIMPLE t2 index NULL PRIMARY 12 NULL 7 100.00 Using where; Using index; Using join buffer
> +1 SIMPLE t2 index NULL PRIMARY 12 NULL 7 100.00 Using where; Using index; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t1` join `test`.`t2` where (((`test`.`t1`.`a` - 1) = (`test`.`t2`.`a` - 1)) and (`test`.`t1`.`b` = (`test`.`t2`.`b` + 1)))
> SELECT * FROM t1,t2 WHERE (t1.a-1,t1.b)=(t2.a-1,t2.b+1);
>
> === modified file 'mysql-test/r/select.result'
> --- a/mysql-test/r/select.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/select.result 2010-10-08 19:30:16 +0000
> @@ -1431,7 +1431,7 @@
> explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join)
> select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
> fld1 companynr fld3 period
> 038008 37 reporters 1008
> @@ -2363,7 +2363,7 @@
> explain select * from t1 left join t2 on a=c where d in (4);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ref c,d d 5 const 2
> -1 SIMPLE t1 ALL a NULL NULL NULL 4 Using where; Using join buffer
> +1 SIMPLE t1 ALL a NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
> select * from t1 left join t2 on a=c where d in (4);
> a b c d
> 3 2 3 4
> @@ -2371,7 +2371,7 @@
> explain select * from t1 left join t2 on a=c where d = 4;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ref c,d d 5 const 2
> -1 SIMPLE t1 ALL a NULL NULL NULL 4 Using where; Using join buffer
> +1 SIMPLE t1 ALL a NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
> select * from t1 left join t2 on a=c where d = 4;
> a b c d
> 3 2 3 4
> @@ -2717,7 +2717,7 @@
> t2.b like '%%' order by t2.b limit 0,1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref b,c b 5 const 1 Using temporary; Using filesort
> -1 SIMPLE t3 index PRIMARY,a,b PRIMARY 8 NULL 2 Using index; Using join buffer
> +1 SIMPLE t3 index PRIMARY,a,b PRIMARY 8 NULL 2 Using index; Using join buffer (flat, BNL join)
> 1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 2 Range checked for each record (index map: 0x1)
> DROP TABLE t1,t2,t3;
> CREATE TABLE t1 (a int, INDEX idx(a));
> @@ -2738,7 +2738,7 @@
> EXPLAIN SELECT STRAIGHT_JOIN SQL_NO_CACHE COUNT(*) FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 index b b 5 NULL 2 Using index
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> SELECT STRAIGHT_JOIN SQL_NO_CACHE * FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
> a b a b
> 1 NULL 1 1
> @@ -2748,7 +2748,7 @@
> EXPLAIN SELECT STRAIGHT_JOIN SQL_NO_CACHE COUNT(*) FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 index b b 5 NULL 2 Using index
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> SELECT STRAIGHT_JOIN SQL_NO_CACHE * FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
> a b a b
> 1 NULL 1 1
> @@ -2910,11 +2910,11 @@
> EXPLAIN SELECT t1.a FROM t1 STRAIGHT_JOIN t2 ON t1.a=t2.a;
> 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 3 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> EXPLAIN SELECT t1.a FROM t1 INNER JOIN t2 ON t1.a=t2.a;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join)
> DROP TABLE t1,t2;
> select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0;
> x'10' + 0 X'10' + 0 b'10' + 0 B'10' + 0
>
> === modified file 'mysql-test/r/select_jcl6.result'
> --- a/mysql-test/r/select_jcl6.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/select_jcl6.result 2010-10-08 19:30:16 +0000
> @@ -611,15 +611,15 @@
> explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using temporary; Using filesort
> -1 SIMPLE t3 ref period period 4 test.t1.period 4181 Using join buffer
> +1 SIMPLE t3 ref period period 4 test.t1.period 4181 Using join buffer (flat, BKA join)
> explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t3 ALL period NULL NULL NULL 41810 Using temporary; Using filesort
> -1 SIMPLE t1 ref period period 4 test.t3.period 4181 Using join buffer
> +1 SIMPLE t1 ref period period 4 test.t3.period 4181 Using join buffer (flat, BKA join)
> explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using temporary; Using filesort
> -1 SIMPLE t3 ref period period 4 test.t1.period 4181 Using join buffer
> +1 SIMPLE t3 ref period period 4 test.t1.period 4181 Using join buffer (flat, BKA join)
> select period from t1;
> period
> 9410
> @@ -1366,11 +1366,11 @@
> explain select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 1200
> -1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using where; Not exists; Using join buffer
> +1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using where; Not exists; Using join buffer (flat, BKA join)
> explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr is null;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t4 ALL NULL NULL NULL NULL 12
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1200 Using where; Not exists; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1200 Using where; Not exists; Using join buffer (flat, BNL join)
> select companynr,companyname from t2 left join t4 using (companynr) where companynr is null;
> companynr companyname
> select count(*) from t2 left join t4 using (companynr) where companynr is not null;
> @@ -1386,51 +1386,51 @@
> explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
> -1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using join buffer
> +1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using join buffer (flat, BKA join)
> explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
> -1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using join buffer
> +1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using join buffer (flat, BKA join)
> explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 and t4.companynr > 0;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
> -1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using join buffer
> +1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using join buffer (flat, BKA join)
> explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join)
> explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join)
> explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 and companynr > 0;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join)
> explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr is null;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t4 ALL NULL NULL NULL NULL 12
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join)
> explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0 or t4.companynr > 0;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join)
> explain select t2.companynr,companyname from t4 left join t2 using (companynr) where ifnull(t2.companynr,1)>0;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t4 ALL NULL NULL NULL NULL 12
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join)
> explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr is null;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join)
> explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0 or companynr > 0;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join)
> explain select companynr,companyname from t4 left join t2 using (companynr) where ifnull(companynr,1)>0;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join)
> select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
> companynr companynr
> 37 36
> @@ -1438,7 +1438,7 @@
> explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join)
> select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
> fld1 companynr fld3 period
> 038008 37 reporters 1008
> @@ -2337,7 +2337,7 @@
> 1 SIMPLE t3 system NULL NULL NULL NULL 0 const row not found
> 1 SIMPLE t4 const id4 NULL NULL NULL 1
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 2
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (flat, BNL join)
> select * from t1 left join t2 on id1 = id2 left join t3 on id1 = id3
> left join t4 on id3 = id4 where id2 = 1 or id4 = 1;
> id1 id2 id3 id4 id44
> @@ -2370,7 +2370,7 @@
> explain select * from t1 left join t2 on a=c where d in (4);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ref c,d d 5 const 2
> -1 SIMPLE t1 ALL a NULL NULL NULL 4 Using where; Using join buffer
> +1 SIMPLE t1 ALL a NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
> select * from t1 left join t2 on a=c where d in (4);
> a b c d
> 3 2 3 4
> @@ -2378,7 +2378,7 @@
> explain select * from t1 left join t2 on a=c where d = 4;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ref c,d d 5 const 2
> -1 SIMPLE t1 ALL a NULL NULL NULL 4 Using where; Using join buffer
> +1 SIMPLE t1 ALL a NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
> select * from t1 left join t2 on a=c where d = 4;
> a b c d
> 3 2 3 4
> @@ -2724,7 +2724,7 @@
> t2.b like '%%' order by t2.b limit 0,1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref b,c b 5 const 1 Using temporary; Using filesort
> -1 SIMPLE t3 index PRIMARY,a,b PRIMARY 8 NULL 2 Using index; Using join buffer
> +1 SIMPLE t3 index PRIMARY,a,b PRIMARY 8 NULL 2 Using index; Using join buffer (flat, BNL join)
> 1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 2 Range checked for each record (index map: 0x1)
> DROP TABLE t1,t2,t3;
> CREATE TABLE t1 (a int, INDEX idx(a));
> @@ -2745,7 +2745,7 @@
> EXPLAIN SELECT STRAIGHT_JOIN SQL_NO_CACHE COUNT(*) FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 index b b 5 NULL 2 Using index
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> SELECT STRAIGHT_JOIN SQL_NO_CACHE * FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
> a b a b
> 1 NULL 1 1
> @@ -2755,7 +2755,7 @@
> EXPLAIN SELECT STRAIGHT_JOIN SQL_NO_CACHE COUNT(*) FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 index b b 5 NULL 2 Using index
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> SELECT STRAIGHT_JOIN SQL_NO_CACHE * FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
> a b a b
> 1 NULL 1 1
> @@ -2917,11 +2917,11 @@
> EXPLAIN SELECT t1.a FROM t1 STRAIGHT_JOIN t2 ON t1.a=t2.a;
> 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 3 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> EXPLAIN SELECT t1.a FROM t1 INNER JOIN t2 ON t1.a=t2.a;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join)
> DROP TABLE t1,t2;
> select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0;
> x'10' + 0 X'10' + 0 b'10' + 0 B'10' + 0
> @@ -3461,7 +3461,7 @@
> and B.a=5 and B.b=A.e and (B.b =1 or B.b = 3 or B.b=5);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE A range PRIMARY PRIMARY 12 NULL 4 Using index condition; Using where; Using MRR
> -1 SIMPLE B ref PRIMARY PRIMARY 8 const,test.A.e 10 Using join buffer
> +1 SIMPLE B ref PRIMARY PRIMARY 8 const,test.A.e 10 Using join buffer (flat, BKA join)
> drop table t1, t2;
> CREATE TABLE t1 (a int PRIMARY KEY, b int, INDEX(b));
> INSERT INTO t1 VALUES (1, 3), (9,4), (7,5), (4,5), (6,2),
> @@ -3475,12 +3475,12 @@
> SELECT a, c, d, f FROM t1,t2 WHERE a=c AND b BETWEEN 4 AND 6;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 range PRIMARY,b b 5 NULL 3 Using index condition; Using MRR
> -1 SIMPLE t2 ref c c 5 test.t1.a 2 Using join buffer
> +1 SIMPLE t2 ref c c 5 test.t1.a 2 Using join buffer (flat, BKA join)
> EXPLAIN
> SELECT a, c, d, f FROM t1,t2 WHERE a=c AND b BETWEEN 4 AND 6 AND a > 0;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 range PRIMARY,b b 5 NULL 3 Using index condition; Using where; Using MRR
> -1 SIMPLE t2 ref c c 5 test.t1.a 2 Using join buffer
> +1 SIMPLE t2 ref c c 5 test.t1.a 2 Using join buffer (flat, BKA join)
> DROP TABLE t1, t2;
> create table t1 (
> a int unsigned not null auto_increment primary key,
> @@ -3570,19 +3570,19 @@
> WHERE t2.fk < 'c' AND t2.pk=t1.fk;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 3 Using index condition; Using where; Using MRR
> -1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where; Using join buffer
> +1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where; Using join buffer (flat, BKA join)
> EXPLAIN SELECT t2.*
> FROM t1 JOIN t2 ON t2.fk=t1.pk
> WHERE t2.fk BETWEEN 'a' AND 'b' AND t2.pk=t1.fk;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 2 Using index condition; Using where; Using MRR
> -1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where; Using join buffer
> +1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where; Using join buffer (flat, BKA join)
> EXPLAIN SELECT t2.*
> FROM t1 JOIN t2 ON t2.fk=t1.pk
> WHERE t2.fk IN ('a','b') AND t2.pk=t1.fk;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 2 Using index condition; Using where; Using MRR
> -1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where; Using join buffer
> +1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where; Using join buffer (flat, BKA join)
> DROP TABLE t1,t2;
> CREATE TABLE t1 (a int, b varchar(20) NOT NULL, PRIMARY KEY(a));
> CREATE TABLE t2 (a int, b varchar(20) NOT NULL,
> @@ -3616,7 +3616,7 @@
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
> 1 SIMPLE t2 range si si 5 NULL 4 Using index condition; Using where; Using MRR
> -1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where; Using join buffer
> +1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where; Using join buffer (flat, BKA join)
> EXPLAIN
> SELECT t3.a FROM t1,t2,t3
> WHERE t1.id = 8 AND t2.i BETWEEN t1.b AND t1.e AND
> @@ -3624,7 +3624,7 @@
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
> 1 SIMPLE t2 range si,ai si 5 NULL 4 Using index condition; Using where; Using MRR
> -1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where; Using join buffer
> +1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where; Using join buffer (flat, BKA join)
> EXPLAIN
> SELECT t3.a FROM t1,t2 FORCE INDEX (si),t3
> WHERE t1.id = 8 AND (t2.i=t1.b OR t2.i=t1.e) AND t3.a=t2.a AND
> @@ -3632,7 +3632,7 @@
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
> 1 SIMPLE t2 range si si 5 NULL 2 Using index condition; Using where; Using MRR
> -1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where; Using join buffer
> +1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where; Using join buffer (flat, BKA join)
> EXPLAIN
> SELECT t3.a FROM t1,t2,t3
> WHERE t1.id = 8 AND (t2.i=t1.b OR t2.i=t1.e) AND t3.a=t2.a AND
> @@ -3640,7 +3640,7 @@
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
> 1 SIMPLE t2 range si,ai si 5 NULL 2 Using index condition; Using where; Using MRR
> -1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where; Using join buffer
> +1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where; Using join buffer (flat, BKA join)
> DROP TABLE t1,t2,t3;
> CREATE TABLE t1 ( f1 int primary key, f2 int, f3 int, f4 int, f5 int, f6 int, checked_out int);
> CREATE TABLE t2 ( f11 int PRIMARY KEY );
> @@ -4403,7 +4403,7 @@
> EXPLAIN SELECT 1 FROM t1 NATURAL LEFT JOIN t1 AS t2;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 2
> -1 SIMPLE t2 ALL a NULL NULL NULL 2 Using where; Using join buffer
> +1 SIMPLE t2 ALL a NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
> SELECT 1 FROM t1 NATURAL LEFT JOIN t1 AS t2;
> 1
> 1
> @@ -4413,7 +4413,7 @@
> EXPLAIN SELECT 1 FROM t1 NATURAL LEFT JOIN t1 AS t2 FORCE INDEX(a);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 2
> -1 SIMPLE t2 ALL a NULL NULL NULL 2 Using where; Using join buffer
> +1 SIMPLE t2 ALL a NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
> SELECT 1 FROM t1 NATURAL LEFT JOIN t1 AS t2 FORCE INDEX(a);
> 1
> 1
>
> === modified file 'mysql-test/r/select_pkeycache.result'
> --- a/mysql-test/r/select_pkeycache.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/select_pkeycache.result 2010-10-08 19:30:16 +0000
> @@ -1431,7 +1431,7 @@
> explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join)
> select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
> fld1 companynr fld3 period
> 038008 37 reporters 1008
> @@ -2363,7 +2363,7 @@
> explain select * from t1 left join t2 on a=c where d in (4);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ref c,d d 5 const 2
> -1 SIMPLE t1 ALL a NULL NULL NULL 4 Using where; Using join buffer
> +1 SIMPLE t1 ALL a NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
> select * from t1 left join t2 on a=c where d in (4);
> a b c d
> 3 2 3 4
> @@ -2371,7 +2371,7 @@
> explain select * from t1 left join t2 on a=c where d = 4;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ref c,d d 5 const 2
> -1 SIMPLE t1 ALL a NULL NULL NULL 4 Using where; Using join buffer
> +1 SIMPLE t1 ALL a NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
> select * from t1 left join t2 on a=c where d = 4;
> a b c d
> 3 2 3 4
> @@ -2717,7 +2717,7 @@
> t2.b like '%%' order by t2.b limit 0,1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref b,c b 5 const 1 Using temporary; Using filesort
> -1 SIMPLE t3 index PRIMARY,a,b PRIMARY 8 NULL 2 Using index; Using join buffer
> +1 SIMPLE t3 index PRIMARY,a,b PRIMARY 8 NULL 2 Using index; Using join buffer (flat, BNL join)
> 1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 2 Range checked for each record (index map: 0x1)
> DROP TABLE t1,t2,t3;
> CREATE TABLE t1 (a int, INDEX idx(a));
> @@ -2738,7 +2738,7 @@
> EXPLAIN SELECT STRAIGHT_JOIN SQL_NO_CACHE COUNT(*) FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 index b b 5 NULL 2 Using index
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> SELECT STRAIGHT_JOIN SQL_NO_CACHE * FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
> a b a b
> 1 NULL 1 1
> @@ -2748,7 +2748,7 @@
> EXPLAIN SELECT STRAIGHT_JOIN SQL_NO_CACHE COUNT(*) FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 index b b 5 NULL 2 Using index
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> SELECT STRAIGHT_JOIN SQL_NO_CACHE * FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
> a b a b
> 1 NULL 1 1
> @@ -2910,11 +2910,11 @@
> EXPLAIN SELECT t1.a FROM t1 STRAIGHT_JOIN t2 ON t1.a=t2.a;
> 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 3 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> EXPLAIN SELECT t1.a FROM t1 INNER JOIN t2 ON t1.a=t2.a;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join)
> DROP TABLE t1,t2;
> select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0;
> x'10' + 0 X'10' + 0 b'10' + 0 B'10' + 0
>
> === modified file 'mysql-test/r/ssl.result'
> --- a/mysql-test/r/ssl.result 2009-12-15 07:16:46 +0000
> +++ b/mysql-test/r/ssl.result 2010-10-08 19:30:16 +0000
> @@ -1432,7 +1432,7 @@
> explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join)
> select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
> fld1 companynr fld3 period
> 038008 37 reporters 1008
>
> === modified file 'mysql-test/r/ssl_compress.result'
> --- a/mysql-test/r/ssl_compress.result 2009-12-15 07:16:46 +0000
> +++ b/mysql-test/r/ssl_compress.result 2010-10-08 19:30:16 +0000
> @@ -1435,7 +1435,7 @@
> explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join)
> select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
> fld1 companynr fld3 period
> 038008 37 reporters 1008
>
> === modified file 'mysql-test/r/subselect.result'
> --- a/mysql-test/r/subselect.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/subselect.result 2010-10-08 19:30:16 +0000
> @@ -906,7 +906,7 @@
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY t1 index NULL PRIMARY 4 NULL 4 100.00 Using index
> 2 DEPENDENT SUBQUERY t2 ref_or_null a a 5 func 2 100.00 Using index
> -2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t1`.`a` AS `a`,<in_optimizer>(`test`.`t1`.`a`,<exists>(select 1 from `test`.`t2` join `test`.`t3` where ((`test`.`t3`.`a` = `test`.`t2`.`a`) and ((<cache>(`test`.`t1`.`a`) = `test`.`t2`.`a`) or isnull(`test`.`t2`.`a`))) having <is_not_null_test>(`test`.`t2`.`a`))) AS `t1.a in (select t2.a from t2,t3 where t3.a=t2.a)` from `test`.`t1`
> drop table t1,t2,t3;
> @@ -1296,7 +1296,7 @@
> 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 t2 index PRIMARY PRIMARY 4 NULL 4 100.00 Using index
> -1 PRIMARY t1 index PRIMARY PRIMARY 4 NULL 4 75.00 Using where; Using index; Using join buffer
> +1 PRIMARY t1 index PRIMARY PRIMARY 4 NULL 4 75.00 Using where; Using index; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t1` join `test`.`t2` where (`test`.`t1`.`a` = `test`.`t2`.`a`)
> select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
> @@ -1306,7 +1306,7 @@
> 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 t2 index PRIMARY PRIMARY 4 NULL 4 100.00 Using index
> -1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer
> +1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t1` join `test`.`t2` 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);
> @@ -1316,7 +1316,7 @@
> 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 t2 index PRIMARY PRIMARY 4 NULL 4 100.00 Using index
> -1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer
> +1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer (flat, BNL join)
> 1 PRIMARY t3 eq_ref PRIMARY PRIMARY 4 test.t1.b 1 100.00 Using index
> Warnings:
> Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t1` join `test`.`t3` join `test`.`t2` where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t3`.`a` = `test`.`t1`.`b`))
>
> === modified file 'mysql-test/r/subselect3.result'
> --- a/mysql-test/r/subselect3.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/subselect3.result 2010-10-08 19:30:16 +0000
> @@ -261,7 +261,7 @@
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00
> 2 DEPENDENT SUBQUERY t1 ref_or_null a a 5 func 2 100.00 Using where; Full scan on NULL key
> -2 DEPENDENT SUBQUERY t4 ALL NULL NULL NULL NULL 100 100.00 Using where; Using join buffer
> +2 DEPENDENT SUBQUERY t4 ALL NULL NULL NULL NULL 100 100.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1276 Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
> Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`oref` AS `oref`,<in_optimizer>((`test`.`t2`.`a`,`test`.`t2`.`b`),<exists>(select `test`.`t1`.`a`,`test`.`t1`.`b` from `test`.`t1` join `test`.`t4` where ((`test`.`t1`.`c` = `test`.`t2`.`oref`) and trigcond(((<cache>(`test`.`t2`.`a`) = `test`.`t1`.`a`) or isnull(`test`.`t1`.`a`))) and trigcond(((<cache>(`test`.`t2`.`b`) = `test`.`t1`.`b`) or isnull(`test`.`t1`.`b`)))) having (trigcond(<is_not_null_test>(`test`.`t1`.`a`)) and trigcond(<is_not_null_test>(`test`.`t1`.`b`))))) AS `Z` from `test`.`t2`
> @@ -1024,10 +1024,10 @@
> 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 subselect2 ALL unique_key NULL NULL NULL 8 Using temporary; Using filesort
> -1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where; Using join buffer
> -1 PRIMARY t22 ALL NULL NULL NULL NULL 26 Using where; Using join buffer
> +1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (flat, BNL join)
> +1 PRIMARY t22 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (flat, BNL join)
> 2 SUBQUERY t11 ALL NULL NULL NULL NULL 8 Using where
> -2 SUBQUERY t12 ALL NULL NULL NULL NULL 8 Using where; Using join buffer
> +2 SUBQUERY t12 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (flat, BNL join)
> 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
> @@ -1058,7 +1058,7 @@
> explain select * from t1 where 2 in (select a from t0);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t0 ALL NULL NULL NULL NULL 11 Using where; Start temporary; End temporary
> -1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Using join buffer
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Using join buffer (flat, BNL join)
> select * from t1 where 2 in (select a from t0);
> a
> 0
> @@ -1085,7 +1085,7 @@
> explain select * from t1 where 2 in (select a from t0);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t0 ALL NULL NULL NULL NULL 11 Using where; FirstMatch
> -1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Using join buffer
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Using join buffer (flat, BNL join)
> select * from t1 where 2 in (select a from t0);
> a
> 0
> @@ -1125,7 +1125,7 @@
> 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
> +1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join)
> 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
> @@ -1133,7 +1133,7 @@
> 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; Using MRR; 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
> +1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join)
> drop table t1, t3, t4;
> create table t1 (a int) as select * from t0 where a < 5;
> set @save_max_heap_table_size=@@max_heap_table_size;
> @@ -1142,10 +1142,10 @@
> explain select count(*) from t0 A, t0 B, t0 C, t0 D where D.a in (select a from t1 E);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY E ALL NULL NULL NULL NULL 5 Start temporary
> -1 PRIMARY A ALL NULL NULL NULL NULL 10 Using join buffer
> -1 PRIMARY B ALL NULL NULL NULL NULL 10 Using join buffer
> -1 PRIMARY C ALL NULL NULL NULL NULL 10 Using join buffer
> -1 PRIMARY D ALL NULL NULL NULL NULL 10 Using where; End temporary; Using join buffer
> +1 PRIMARY A ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
> +1 PRIMARY B ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
> +1 PRIMARY C ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
> +1 PRIMARY D ALL NULL NULL NULL NULL 10 Using where; End temporary; Using join buffer (flat, BNL join)
> flush status;
> select count(*) from t0 A, t0 B, t0 C, t0 D where D.a in (select a from t1 E);
> count(*)
> @@ -1183,26 +1183,26 @@
> explain select * from t2 where a in (select a from t1);
> 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 t1 ALL NULL NULL NULL NULL 4 Using where; End temporary; Using join buffer
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; End temporary; Using join buffer (flat, BNL join)
> 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 Start temporary
> -1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer
> +1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (flat, BNL join)
> 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 Start temporary
> -1 PRIMARY t3 ALL NULL NULL NULL NULL 6 Using where; End temporary; Using join buffer
> +1 PRIMARY t3 ALL NULL NULL NULL NULL 6 Using where; End temporary; Using join buffer (flat, BNL join)
> explain select * from t1 where a in (select a from t3);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Start temporary
> -1 PRIMARY t3 ALL NULL NULL NULL NULL 6 Using where; End temporary; Using join buffer
> +1 PRIMARY t3 ALL NULL NULL NULL NULL 6 Using where; End temporary; Using join buffer (flat, BNL join)
> drop table t1, t2, t3;
> create table t1 (a decimal);
> 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 Start temporary
> -1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (flat, BNL join)
> drop table t1;
> set @@optimizer_switch=@save_optimizer_switch;
> create table t1 (a int);
> @@ -1219,25 +1219,25 @@
> explain select straight_join * from t1 A, t1 B where A.a in (select a from t2);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY A ALL NULL NULL NULL NULL 10 Using where
> -1 PRIMARY B ALL NULL NULL NULL NULL 10 Using join buffer
> +1 PRIMARY B ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
> 2 SUBQUERY t2 ALL NULL NULL NULL NULL 10
> explain select * from t2 where a in (select straight_join A.a from t1 A, t1 B);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Using where
> 2 SUBQUERY A ALL NULL NULL NULL NULL 10
> -2 SUBQUERY B ALL NULL NULL NULL NULL 10 Using join buffer
> +2 SUBQUERY B ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
> explain select * from t2 where a in (select straight_join A.a from t1 A, t1 B);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Using where
> 2 SUBQUERY A ALL NULL NULL NULL NULL 10
> -2 SUBQUERY B ALL NULL NULL NULL NULL 10 Using join buffer
> +2 SUBQUERY B ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
> explain select straight_join * from t2 X, t2 Y
> where X.a in (select straight_join A.a from t1 A, t1 B);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY X ALL NULL NULL NULL NULL 10 Using where
> -1 PRIMARY Y ALL NULL NULL NULL NULL 10 Using join buffer
> +1 PRIMARY Y ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
> 2 SUBQUERY A ALL NULL NULL NULL NULL 10
> -2 SUBQUERY B ALL NULL NULL NULL NULL 10 Using join buffer
> +2 SUBQUERY B ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
> create table t0 (a int, b int);
> insert into t0 values(1,1);
> explain select * from t0, t3 where t3.a in (select a from t2) and (t3.a < 10 or t3.a >30);
> @@ -1262,11 +1262,11 @@
> 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
> +1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join)
> 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
> +1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join)
> drop table t1,t2;
> create table t1 (a int, b int);
> insert into t1 select a,a from t0;
> @@ -1324,8 +1324,8 @@
> 1 PRIMARY t1 ALL NULL NULL NULL NULL 3
> 1 PRIMARY subselect2 eq_ref unique_key unique_key 15 func 1
> 2 SUBQUERY X ALL NULL NULL NULL NULL 6 Using where
> -2 SUBQUERY Y ALL NULL NULL NULL NULL 6 Using join buffer
> -2 SUBQUERY Z ALL NULL NULL NULL NULL 6 Using join buffer
> +2 SUBQUERY Y ALL NULL NULL NULL NULL 6 Using join buffer (flat, BNL join)
> +2 SUBQUERY Z ALL NULL NULL NULL NULL 6 Using join buffer (flat, BNL join)
> drop table t0,t1,t2;
>
> BUG#37842: Assertion in DsMrr_impl::dsmrr_init, at handler.cc:4307
> @@ -1396,7 +1396,7 @@
> );
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 2 1.00
> -1 PRIMARY a index PRIMARY PRIMARY 4 NULL 2 100.00 Using where; Using index; Using join buffer
> +1 PRIMARY a index PRIMARY PRIMARY 4 NULL 2 100.00 Using where; Using index; Using join buffer (flat, BNL join)
> 2 SUBQUERY cona ALL NULL NULL NULL NULL 2 100.00 Using where
> 2 SUBQUERY c eq_ref PRIMARY PRIMARY 4 test.cona.idContact 1 100.00
> Warnings:
>
> === modified file 'mysql-test/r/subselect3_jcl6.result'
> --- a/mysql-test/r/subselect3_jcl6.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/subselect3_jcl6.result 2010-10-08 19:30:16 +0000
> @@ -167,7 +167,7 @@
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY t3 ALL NULL NULL NULL NULL 3 100.00
> 2 DEPENDENT SUBQUERY t1 ref_or_null a a 5 func 4 100.00 Using where; Full scan on NULL key
> -2 DEPENDENT SUBQUERY t2 ref a a 5 test.t1.b 1 100.00 Using where; Using join buffer
> +2 DEPENDENT SUBQUERY t2 ref a a 5 test.t1.b 1 100.00 Using where; Using join buffer (flat, BKA join)
> Warnings:
> Note 1276 Field or reference 'test.t3.oref' of SELECT #2 was resolved in SELECT #1
> Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t3`.`oref` AS `oref`,<in_optimizer>(`test`.`t3`.`a`,<exists>(select 1 from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`a` = `test`.`t1`.`b`) and (`test`.`t2`.`b` = `test`.`t3`.`oref`) and trigcond(((<cache>(`test`.`t3`.`a`) = `test`.`t1`.`a`) or isnull(`test`.`t1`.`a`)))) having trigcond(<is_not_null_test>(`test`.`t1`.`a`)))) AS `Z` from `test`.`t3`
> @@ -195,7 +195,7 @@
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY t3 ALL NULL NULL NULL NULL 3 100.00
> 2 DEPENDENT SUBQUERY t1 ref a a 4 func 2 100.00 Using where; Full scan on NULL key
> -2 DEPENDENT SUBQUERY t2 ref a a 4 test.t1.b 1 100.00 Using where; Using join buffer
> +2 DEPENDENT SUBQUERY t2 ref a a 4 test.t1.b 1 100.00 Using where; Using join buffer (flat, BKA join)
> Warnings:
> Note 1276 Field or reference 'test.t3.oref' of SELECT #2 was resolved in SELECT #1
> Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t3`.`oref` AS `oref`,<in_optimizer>(`test`.`t3`.`a`,<exists>(select 1 from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`a` = `test`.`t1`.`b`) and (`test`.`t2`.`b` = `test`.`t3`.`oref`) and trigcond((<cache>(`test`.`t3`.`a`) = `test`.`t1`.`a`))))) AS `Z` from `test`.`t3`
> @@ -268,7 +268,7 @@
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00
> 2 DEPENDENT SUBQUERY t1 ref_or_null a a 5 func 2 100.00 Using where; Full scan on NULL key
> -2 DEPENDENT SUBQUERY t4 ALL NULL NULL NULL NULL 100 100.00 Using where; Using join buffer
> +2 DEPENDENT SUBQUERY t4 ALL NULL NULL NULL NULL 100 100.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1276 Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
> Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`oref` AS `oref`,<in_optimizer>((`test`.`t2`.`a`,`test`.`t2`.`b`),<exists>(select `test`.`t1`.`a`,`test`.`t1`.`b` from `test`.`t1` join `test`.`t4` where ((`test`.`t1`.`c` = `test`.`t2`.`oref`) and trigcond(((<cache>(`test`.`t2`.`a`) = `test`.`t1`.`a`) or isnull(`test`.`t1`.`a`))) and trigcond(((<cache>(`test`.`t2`.`b`) = `test`.`t1`.`b`) or isnull(`test`.`t1`.`b`)))) having (trigcond(<is_not_null_test>(`test`.`t1`.`a`)) and trigcond(<is_not_null_test>(`test`.`t1`.`b`))))) AS `Z` from `test`.`t2`
> @@ -739,7 +739,7 @@
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where
> 2 DEPENDENT SUBQUERY t2 eq_ref PRIMARY PRIMARY 4 func 1 Using where; Using index; Full scan on NULL key
> -2 DEPENDENT SUBQUERY t3 eq_ref PRIMARY PRIMARY 4 func 1 Using index condition(BKA); Using where; Full scan on NULL key; Using join buffer
> +2 DEPENDENT SUBQUERY t3 eq_ref PRIMARY PRIMARY 4 func 1 Using index condition(BKA); Using where; Full scan on NULL key; Using join buffer (flat, BKA join)
> SELECT * FROM t1
> WHERE t1.id NOT IN (SELECT t2.id FROM t2,t3
> WHERE t3.name='xxx' AND t2.id=t3.id);
> @@ -1031,10 +1031,10 @@
> 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 subselect2 ALL unique_key NULL NULL NULL 8 Using temporary; Using filesort
> -1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where; Using join buffer
> -1 PRIMARY t22 ALL NULL NULL NULL NULL 26 Using where; Using join buffer
> +1 PRIMARY t21 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (incremental, BNL join)
> +1 PRIMARY t22 ALL NULL NULL NULL NULL 26 Using where; Using join buffer (incremental, BNL join)
> 2 SUBQUERY t11 ALL NULL NULL NULL NULL 8 Using where
> -2 SUBQUERY t12 ALL NULL NULL NULL NULL 8 Using where; Using join buffer
> +2 SUBQUERY t12 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (flat, BNL join)
> 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
> @@ -1066,7 +1066,7 @@
> explain select * from t1 where 2 in (select a from t0);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t0 ALL NULL NULL NULL NULL 11 Using where; Start temporary; End temporary
> -1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Using join buffer
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Using join buffer (flat, BNL join)
> select * from t1 where 2 in (select a from t0);
> a
> 0
> @@ -1093,7 +1093,7 @@
> explain select * from t1 where 2 in (select a from t0);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t0 ALL NULL NULL NULL NULL 11 Using where; FirstMatch
> -1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Using join buffer
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Using join buffer (flat, BNL join)
> select * from t1 where 2 in (select a from t0);
> a
> 0
> @@ -1120,7 +1120,7 @@
> 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
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 20 Using where; FirstMatch(<derived2>); Using join buffer (flat, BNL join)
> 2 DERIVED t0 ALL NULL NULL NULL NULL 11
> drop table t0, t1;
> create table t0 (a int);
> @@ -1133,7 +1133,7 @@
> 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
> +1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join)
> 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
> @@ -1141,7 +1141,7 @@
> 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; Using MRR; 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
> +1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join)
> drop table t1, t3, t4;
> create table t1 (a int) as select * from t0 where a < 5;
> set @save_max_heap_table_size=@@max_heap_table_size;
> @@ -1150,10 +1150,10 @@
> explain select count(*) from t0 A, t0 B, t0 C, t0 D where D.a in (select a from t1 E);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY E ALL NULL NULL NULL NULL 5 Start temporary
> -1 PRIMARY A ALL NULL NULL NULL NULL 10 Using join buffer
> -1 PRIMARY B ALL NULL NULL NULL NULL 10 Using join buffer
> -1 PRIMARY C ALL NULL NULL NULL NULL 10 Using join buffer
> -1 PRIMARY D ALL NULL NULL NULL NULL 10 Using where; End temporary; Using join buffer
> +1 PRIMARY A ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
> +1 PRIMARY B ALL NULL NULL NULL NULL 10 Using join buffer (incremental, BNL join)
> +1 PRIMARY C ALL NULL NULL NULL NULL 10 Using join buffer (incremental, BNL join)
> +1 PRIMARY D ALL NULL NULL NULL NULL 10 Using where; End temporary; Using join buffer (incremental, BNL join)
> flush status;
> select count(*) from t0 A, t0 B, t0 C, t0 D where D.a in (select a from t1 E);
> count(*)
> @@ -1173,7 +1173,7 @@
> explain select * from t3 where a in (select a from t2) and (a > 5 or a < 10);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 2
> -1 PRIMARY t3 ref a a 5 test.t2.a 1 Using join buffer
> +1 PRIMARY t3 ref a a 5 test.t2.a 1 Using join buffer (flat, BKA join)
> 2 SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where
> select * from t3 where a in (select a from t2);
> a filler
> @@ -1191,26 +1191,26 @@
> explain select * from t2 where a in (select a from t1);
> 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 t1 ALL NULL NULL NULL NULL 4 Using where; End temporary; Using join buffer
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; End temporary; Using join buffer (flat, BNL join)
> 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 Start temporary
> -1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer
> +1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (flat, BNL join)
> 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 Start temporary
> -1 PRIMARY t3 ALL NULL NULL NULL NULL 6 Using where; End temporary; Using join buffer
> +1 PRIMARY t3 ALL NULL NULL NULL NULL 6 Using where; End temporary; Using join buffer (flat, BNL join)
> explain select * from t1 where a in (select a from t3);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Start temporary
> -1 PRIMARY t3 ALL NULL NULL NULL NULL 6 Using where; End temporary; Using join buffer
> +1 PRIMARY t3 ALL NULL NULL NULL NULL 6 Using where; End temporary; Using join buffer (flat, BNL join)
> drop table t1, t2, t3;
> create table t1 (a decimal);
> 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 Start temporary
> -1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (flat, BNL join)
> drop table t1;
> set @@optimizer_switch=@save_optimizer_switch;
> create table t1 (a int);
> @@ -1222,44 +1222,44 @@
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t1 ALL NULL NULL NULL NULL 10 Using where
> 1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 10
> -1 PRIMARY t3 ref a a 5 test.t2.a 10 Using join buffer
> +1 PRIMARY t3 ref a a 5 test.t2.a 10 Using join buffer (flat, BKA join)
> 2 SUBQUERY t2 ALL NULL NULL NULL NULL 10 Using where
> explain select straight_join * from t1 A, t1 B where A.a in (select a from t2);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY A ALL NULL NULL NULL NULL 10 Using where
> -1 PRIMARY B ALL NULL NULL NULL NULL 10 Using join buffer
> +1 PRIMARY B ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
> 2 SUBQUERY t2 ALL NULL NULL NULL NULL 10
> explain select * from t2 where a in (select straight_join A.a from t1 A, t1 B);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Using where
> 2 SUBQUERY A ALL NULL NULL NULL NULL 10
> -2 SUBQUERY B ALL NULL NULL NULL NULL 10 Using join buffer
> +2 SUBQUERY B ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
> explain select * from t2 where a in (select straight_join A.a from t1 A, t1 B);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t2 ALL NULL NULL NULL NULL 10 Using where
> 2 SUBQUERY A ALL NULL NULL NULL NULL 10
> -2 SUBQUERY B ALL NULL NULL NULL NULL 10 Using join buffer
> +2 SUBQUERY B ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
> explain select straight_join * from t2 X, t2 Y
> where X.a in (select straight_join A.a from t1 A, t1 B);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY X ALL NULL NULL NULL NULL 10 Using where
> -1 PRIMARY Y ALL NULL NULL NULL NULL 10 Using join buffer
> +1 PRIMARY Y ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
> 2 SUBQUERY A ALL NULL NULL NULL NULL 10
> -2 SUBQUERY B ALL NULL NULL NULL NULL 10 Using join buffer
> +2 SUBQUERY B ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
> create table t0 (a int, b int);
> insert into t0 values(1,1);
> explain select * from t0, t3 where t3.a in (select a from t2) and (t3.a < 10 or t3.a >30);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t0 system NULL NULL NULL NULL 1
> 1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 10
> -1 PRIMARY t3 ref a a 5 test.t2.a 10 Using join buffer
> +1 PRIMARY t3 ref a a 5 test.t2.a 10 Using join buffer (flat, BKA join)
> 2 SUBQUERY t2 ALL NULL NULL NULL NULL 10 Using where
> create table t4 as select a as x, a as y from t1;
> explain select * from t0, t3 where (t3.a, t3.b) in (select x,y from t4) and (t3.a < 10 or t3.a >30);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t0 system NULL NULL NULL NULL 1
> 1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 10
> -1 PRIMARY t3 ref a a 5 test.t4.x 10 Using where; Using join buffer
> +1 PRIMARY t3 ref a a 5 test.t4.x 10 Using where; Using join buffer (flat, BKA join)
> 2 SUBQUERY t4 ALL NULL NULL NULL NULL 10 Using where
> drop table t0,t1,t2,t3,t4;
> create table t0 (a int);
> @@ -1270,11 +1270,11 @@
> 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
> +1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join)
> 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
> +1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join)
> drop table t1,t2;
> create table t1 (a int, b int);
> insert into t1 select a,a from t0;
> @@ -1303,7 +1303,7 @@
> 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 Using where; FirstMatch(t0); Using join buffer
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; FirstMatch(t0); Using join buffer (flat, BNL join)
> select * from t0 where a in (select a from t1);
> a
> 10.24
> @@ -1316,7 +1316,7 @@
> 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 Using where; FirstMatch(t0); Using join buffer
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; FirstMatch(t0); Using join buffer (flat, BNL join)
> select * from t0 where a in (select a from t1);
> a
> 2008-01-01
> @@ -1332,8 +1332,8 @@
> 1 PRIMARY t1 ALL NULL NULL NULL NULL 3
> 1 PRIMARY subselect2 eq_ref unique_key unique_key 15 func 1
> 2 SUBQUERY X ALL NULL NULL NULL NULL 6 Using where
> -2 SUBQUERY Y ALL NULL NULL NULL NULL 6 Using join buffer
> -2 SUBQUERY Z ALL NULL NULL NULL NULL 6 Using join buffer
> +2 SUBQUERY Y ALL NULL NULL NULL NULL 6 Using join buffer (flat, BNL join)
> +2 SUBQUERY Z ALL NULL NULL NULL NULL 6 Using join buffer (incremental, BNL join)
> drop table t0,t1,t2;
>
> BUG#37842: Assertion in DsMrr_impl::dsmrr_init, at handler.cc:4307
> @@ -1404,9 +1404,9 @@
> );
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 2 1.00
> -1 PRIMARY a index PRIMARY PRIMARY 4 NULL 2 100.00 Using where; Using index; Using join buffer
> +1 PRIMARY a index PRIMARY PRIMARY 4 NULL 2 100.00 Using where; Using index; Using join buffer (incremental, BNL join)
> 2 SUBQUERY cona ALL NULL NULL NULL NULL 2 100.00 Using where
> -2 SUBQUERY c eq_ref PRIMARY PRIMARY 4 test.cona.idContact 1 100.00 Using join buffer
> +2 SUBQUERY c eq_ref PRIMARY PRIMARY 4 test.cona.idContact 1 100.00 Using join buffer (flat, BKA join)
> Warnings:
> Note 1003 select `test`.`a`.`idIndividual` AS `idIndividual` from `test`.`t1` `a` semi join (`test`.`t3` `cona` join `test`.`t2` `c`) where ((`test`.`c`.`idContact` = `test`.`cona`.`idContact`) and (`test`.`a`.`idIndividual` = `test`.`c`.`idObj`) and (`test`.`cona`.`postalStripped` = 'T2H3B2'))
> drop table t1,t2,t3;
>
> === modified file 'mysql-test/r/subselect4.result'
> --- a/mysql-test/r/subselect4.result 2010-06-26 10:05:41 +0000
> +++ b/mysql-test/r/subselect4.result 2010-10-08 19:30:16 +0000
> @@ -51,7 +51,7 @@
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
> 2 DEPENDENT SUBQUERY t1 index NULL PRIMARY 4 NULL 2 Using index
> -2 DEPENDENT SUBQUERY t2 index b b 5 NULL 2 Using where; Using index; Using join buffer
> +2 DEPENDENT SUBQUERY t2 index b b 5 NULL 2 Using where; Using index; Using join buffer (flat, BNL join)
> # should return 0 rows
> SELECT
> (SELECT 1 FROM t1,t2 WHERE t2.b > t3.b)
> @@ -218,7 +218,7 @@
> 1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
> 1 PRIMARY subselect2 eq_ref unique_key unique_key 3 func 1
> 2 SUBQUERY t2 ALL NULL NULL NULL NULL 6 Using where
> -2 SUBQUERY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +2 SUBQUERY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
> FROM t1
> WHERE EMPNUM IN
> @@ -233,13 +233,13 @@
> 1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
> 1 PRIMARY subselect2 eq_ref unique_key unique_key 3 func 1
> 2 SUBQUERY t2 ALL NULL NULL NULL NULL 6 Using where
> -2 SUBQUERY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +2 SUBQUERY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 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 subselect2 eq_ref unique_key unique_key 3 func 1
> 2 SUBQUERY t2 ALL NULL NULL NULL NULL 6 Using where
> -2 SUBQUERY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +2 SUBQUERY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> DEALLOCATE PREPARE stmt;
> DROP INDEX t1_IDX ON t1;
> CREATE INDEX t1_IDX ON t1(EMPNUM);
> @@ -256,7 +256,7 @@
> 1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
> 1 PRIMARY subselect2 eq_ref unique_key unique_key 3 func 1
> 2 SUBQUERY t2 ALL NULL NULL NULL NULL 6 Using where
> -2 SUBQUERY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +2 SUBQUERY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
> FROM t1
> WHERE EMPNUM IN
> @@ -271,13 +271,13 @@
> 1 PRIMARY t1 ALL t1_IDX NULL NULL NULL 5
> 1 PRIMARY subselect2 eq_ref unique_key unique_key 3 func 1
> 2 SUBQUERY t2 ALL NULL NULL NULL NULL 6 Using where
> -2 SUBQUERY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +2 SUBQUERY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 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 subselect2 eq_ref unique_key unique_key 3 func 1
> 2 SUBQUERY t2 ALL NULL NULL NULL NULL 6 Using where
> -2 SUBQUERY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +2 SUBQUERY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> DEALLOCATE PREPARE stmt;
> DROP INDEX t1_IDX ON t1;
> EXPLAIN SELECT EMPNAME
> @@ -293,7 +293,7 @@
> 1 PRIMARY t1 ALL NULL NULL NULL NULL 5
> 1 PRIMARY subselect2 eq_ref unique_key unique_key 3 func 1
> 2 SUBQUERY t2 ALL NULL NULL NULL NULL 6 Using where
> -2 SUBQUERY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +2 SUBQUERY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> PREPARE stmt FROM "EXPLAIN SELECT EMPNAME
> FROM t1
> WHERE EMPNUM IN
> @@ -308,13 +308,13 @@
> 1 PRIMARY t1 ALL NULL NULL NULL NULL 5
> 1 PRIMARY subselect2 eq_ref unique_key unique_key 3 func 1
> 2 SUBQUERY t2 ALL NULL NULL NULL NULL 6 Using where
> -2 SUBQUERY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +2 SUBQUERY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 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 subselect2 eq_ref unique_key unique_key 3 func 1
> 2 SUBQUERY t2 ALL NULL NULL NULL NULL 6 Using where
> -2 SUBQUERY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +2 SUBQUERY t3 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> DEALLOCATE PREPARE stmt;
> SET SESSION optimizer_switch = @old_optimizer_switch;
> SET SESSION join_cache_level = @old_join_cache_level;
>
> === modified file 'mysql-test/r/subselect_mat.result'
> --- a/mysql-test/r/subselect_mat.result 2010-07-16 11:02:15 +0000
> +++ b/mysql-test/r/subselect_mat.result 2010-10-08 19:30:16 +0000
> @@ -423,7 +423,7 @@
> a1 = c1;
> 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 t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer
> +1 PRIMARY t3 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (flat, BNL join)
> 4 SUBQUERY t3 ALL NULL NULL NULL NULL 4 100.00 Using where
> 5 SUBQUERY t2i index it2i2 it2i3 18 NULL 5 100.00 Using where; Using index
> 2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
> @@ -659,7 +659,7 @@
> 1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
> 2 DEPENDENT SUBQUERY t1_16 ALL NULL NULL NULL NULL 3 100.00 Using where
> 3 DEPENDENT SUBQUERY t2_16 ALL NULL NULL NULL NULL 3 100.00 Using where
> -3 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; Using join buffer
> +3 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 5 100.00 Using where; Using join buffer (flat, BNL join)
> 4 SUBQUERY t3 ALL NULL NULL NULL NULL 4 100.00 Using where
> Warnings:
> Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2` from `test`.`t1` where <in_optimizer>(concat(`test`.`t1`.`a1`,'x'),<exists>(select 1 from `test`.`t1_16` where (<in_optimizer>((`test`.`t1_16`.`a1`,`test`.`t1_16`.`a2`),<exists>(select `test`.`t2_16`.`b1`,`test`.`t2_16`.`b2` from `test`.`t2_16` join `test`.`t2` where ((`test`.`t2`.`b2` = substr(`test`.`t2_16`.`b2`,1,6)) and <in_optimizer>(`test`.`t2`.`b1`,`test`.`t2`.`b1` in ( <materialize> (select `test`.`t3`.`c1` from `test`.`t3` where (`test`.`t3`.`c2` > '0') ), <primary_index_lookup>(`test`.`t2`.`b1` in <temporary table> on distinct_key where ((`test`.`t2`.`b1` = `materialized subselect`.`c1`))))) and (<cache>(`test`.`t1_16`.`a1`) = `test`.`t2_16`.`b1`) and (<cache>(`test`.`t1_16`.`a2`) = `test`.`t2_16`.`b2`)))) and (<cache>(concat(`test`.`t1`.`a1`,'x')) = left(`test`.`t1_16`.`a1`,8)))))
> @@ -1191,7 +1191,7 @@
> EXPLAIN SELECT COUNT(*) FROM t1 WHERE (f1,f2) IN (SELECT f1,f2 FROM t2);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 2
> -1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> 2 SUBQUERY t2 ALL NULL NULL NULL NULL 2
> SELECT COUNT(*) FROM t1 WHERE (f1,f2) IN (SELECT f1,f2 FROM t2);
> COUNT(*)
>
> === modified file 'mysql-test/r/subselect_no_mat.result'
> --- a/mysql-test/r/subselect_no_mat.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/subselect_no_mat.result 2010-10-08 19:30:16 +0000
> @@ -910,7 +910,7 @@
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY t1 index NULL PRIMARY 4 NULL 4 100.00 Using index
> 2 DEPENDENT SUBQUERY t2 ref_or_null a a 5 func 2 100.00 Using index
> -2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t1`.`a` AS `a`,<in_optimizer>(`test`.`t1`.`a`,<exists>(select 1 from `test`.`t2` join `test`.`t3` where ((`test`.`t3`.`a` = `test`.`t2`.`a`) and ((<cache>(`test`.`t1`.`a`) = `test`.`t2`.`a`) or isnull(`test`.`t2`.`a`))) having <is_not_null_test>(`test`.`t2`.`a`))) AS `t1.a in (select t2.a from t2,t3 where t3.a=t2.a)` from `test`.`t1`
> drop table t1,t2,t3;
> @@ -1300,7 +1300,7 @@
> 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 t2 index PRIMARY PRIMARY 4 NULL 4 100.00 Using index
> -1 PRIMARY t1 index PRIMARY PRIMARY 4 NULL 4 75.00 Using where; Using index; Using join buffer
> +1 PRIMARY t1 index PRIMARY PRIMARY 4 NULL 4 75.00 Using where; Using index; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t1` join `test`.`t2` where (`test`.`t1`.`a` = `test`.`t2`.`a`)
> select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
> @@ -1310,7 +1310,7 @@
> 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 t2 index PRIMARY PRIMARY 4 NULL 4 100.00 Using index
> -1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer
> +1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t1` join `test`.`t2` 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);
> @@ -1320,7 +1320,7 @@
> 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 t2 index PRIMARY PRIMARY 4 NULL 4 100.00 Using index
> -1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer
> +1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer (flat, BNL join)
> 1 PRIMARY t3 eq_ref PRIMARY PRIMARY 4 test.t1.b 1 100.00 Using index
> Warnings:
> Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t1` join `test`.`t3` join `test`.`t2` where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t3`.`a` = `test`.`t1`.`b`))
>
> === modified file 'mysql-test/r/subselect_no_opts.result'
> --- a/mysql-test/r/subselect_no_opts.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/subselect_no_opts.result 2010-10-08 19:30:16 +0000
> @@ -907,7 +907,7 @@
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY t1 index NULL PRIMARY 4 NULL 4 100.00 Using index
> 2 DEPENDENT SUBQUERY t2 ref_or_null a a 5 func 2 100.00 Using index
> -2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t1`.`a` AS `a`,<in_optimizer>(`test`.`t1`.`a`,<exists>(select 1 from `test`.`t2` join `test`.`t3` where ((`test`.`t3`.`a` = `test`.`t2`.`a`) and ((<cache>(`test`.`t1`.`a`) = `test`.`t2`.`a`) or isnull(`test`.`t2`.`a`))) having <is_not_null_test>(`test`.`t2`.`a`))) AS `t1.a in (select t2.a from t2,t3 where t3.a=t2.a)` from `test`.`t1`
> drop table t1,t2,t3;
> @@ -1361,7 +1361,7 @@
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY t2 index NULL a 5 NULL 4 100.00 Using where; Using index
> 2 DEPENDENT SUBQUERY t1 ref a a 5 func 1001 100.00 Using index
> -2 DEPENDENT SUBQUERY t3 index a a 5 NULL 3 100.00 Using where; Using index; Using join buffer
> +2 DEPENDENT SUBQUERY t3 index a a 5 NULL 3 100.00 Using where; Using index; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(select 1 from `test`.`t1` join `test`.`t3` where ((`test`.`t3`.`a` = `test`.`t1`.`b`) and (<cache>(`test`.`t2`.`a`) = `test`.`t1`.`a`))))
> insert into t1 values (3,31);
>
> === modified file 'mysql-test/r/subselect_no_semijoin.result'
> --- a/mysql-test/r/subselect_no_semijoin.result 2010-07-16 08:58:24 +0000
> +++ b/mysql-test/r/subselect_no_semijoin.result 2010-10-08 19:30:16 +0000
> @@ -907,7 +907,7 @@
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY t1 index NULL PRIMARY 4 NULL 4 100.00 Using index
> 2 DEPENDENT SUBQUERY t2 ref_or_null a a 5 func 2 100.00 Using index
> -2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t1`.`a` AS `a`,<in_optimizer>(`test`.`t1`.`a`,<exists>(select 1 from `test`.`t2` join `test`.`t3` where ((`test`.`t3`.`a` = `test`.`t2`.`a`) and ((<cache>(`test`.`t1`.`a`) = `test`.`t2`.`a`) or isnull(`test`.`t2`.`a`))) having <is_not_null_test>(`test`.`t2`.`a`))) AS `t1.a in (select t2.a from t2,t3 where t3.a=t2.a)` from `test`.`t1`
> drop table t1,t2,t3;
> @@ -1318,7 +1318,7 @@
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY t2 index NULL PRIMARY 4 NULL 4 100.00 Using where; Using index
> 2 SUBQUERY t3 index PRIMARY PRIMARY 4 NULL 3 100.00 Using index
> -2 SUBQUERY t1 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer
> +2 SUBQUERY t1 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,`test`.`t2`.`a` in ( <materialize> (select `test`.`t1`.`a` from `test`.`t1` join `test`.`t3` where (`test`.`t1`.`b` = `test`.`t3`.`a`) ), <primary_index_lookup>(`test`.`t2`.`a` in <temporary table> on distinct_key where ((`test`.`t2`.`a` = `materialized subselect`.`a`)))))
> drop table t1, t2, t3;
> @@ -1361,7 +1361,7 @@
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY t2 index NULL a 5 NULL 4 100.00 Using where; Using index
> 2 SUBQUERY t3 index a a 5 NULL 3 100.00 Using index
> -2 SUBQUERY t1 index NULL a 10 NULL 10004 100.00 Using where; Using index; Using join buffer
> +2 SUBQUERY t1 index NULL a 10 NULL 10004 100.00 Using where; Using index; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,`test`.`t2`.`a` in ( <materialize> (select `test`.`t1`.`a` from `test`.`t1` join `test`.`t3` where (`test`.`t1`.`b` = `test`.`t3`.`a`) ), <primary_index_lookup>(`test`.`t2`.`a` in <temporary table> on distinct_key where ((`test`.`t2`.`a` = `materialized subselect`.`a`)))))
> insert into t1 values (3,31);
>
> === modified file 'mysql-test/r/subselect_sj.result'
> --- a/mysql-test/r/subselect_sj.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/subselect_sj.result 2010-10-08 19:30:16 +0000
> @@ -101,75 +101,75 @@
> );
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY s00 ALL NULL NULL NULL NULL 3 Using where
> -1 PRIMARY s01 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s02 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s03 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s04 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s05 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s06 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s07 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s08 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s09 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s10 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s11 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s12 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s13 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s14 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s15 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s16 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s17 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s18 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s19 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s20 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s21 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s22 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s23 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s24 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s25 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s26 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s27 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s28 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s29 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s30 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s31 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s32 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s33 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s34 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s35 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s36 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s37 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s38 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s39 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s40 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s41 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s42 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s43 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s44 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s45 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s46 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s47 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s48 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s49 ALL NULL NULL NULL NULL 3 Using join buffer
> +1 PRIMARY s01 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s02 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s03 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s04 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s05 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s06 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s07 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s08 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s09 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s10 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s11 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s12 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s13 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s14 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s15 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s16 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s17 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s18 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s19 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s20 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s21 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s22 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s23 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s24 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s25 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s26 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s27 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s28 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s29 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s30 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s31 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s32 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s33 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s34 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s35 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s36 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s37 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s38 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s39 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s40 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s41 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s42 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s43 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s44 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s45 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s46 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s47 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s48 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s49 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> 2 DEPENDENT SUBQUERY m00 ALL NULL NULL NULL NULL 3 Using where
> -2 DEPENDENT SUBQUERY m01 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m02 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m03 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m04 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m05 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m06 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m07 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m08 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m09 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m10 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m11 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m12 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m13 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m14 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m15 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m16 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m17 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m18 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m19 ALL NULL NULL NULL NULL 3 Using where; Using join buffer
> +2 DEPENDENT SUBQUERY m01 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m02 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m03 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m04 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m05 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m06 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m07 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m08 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m09 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m10 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m11 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m12 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m13 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m14 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m15 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m16 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m17 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m18 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m19 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> select * from
> t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10))
> where t1.a < 5;
> @@ -195,7 +195,7 @@
> explain extended select * from t1 where a in (select pk from t10 where pk<3);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY t10 range PRIMARY PRIMARY 4 NULL 4 100.00 Using where; Using index
> -1 PRIMARY t1 ALL NULL NULL NULL NULL 103 100.00 Using where; Using join buffer
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 103 100.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t10` join `test`.`t1` where ((`test`.`t1`.`a` = `test`.`t10`.`pk`) and (`test`.`t10`.`pk` < 3))
> drop table t0, t1, t2;
> @@ -738,7 +738,7 @@
> FROM it1 LEFT JOIN it2 ON it2.datetime_key);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY it1 index NULL int_key 4 NULL 2 Using index; Start temporary
> -1 PRIMARY ot1 ALL NULL NULL NULL NULL 20 Using join buffer
> +1 PRIMARY ot1 ALL NULL NULL NULL NULL 20 Using join buffer (flat, BNL join)
> 1 PRIMARY it2 ALL NULL NULL NULL NULL 20 Using where; End temporary
> DROP TABLE ot1, it1, it2;
> # End of BUG#38075
> @@ -770,7 +770,7 @@
> where a in (select c from t2 where d >= some(select e from t3 where b=e));
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY t2 ALL NULL NULL NULL NULL 6 100.00 Start temporary
> -1 PRIMARY t1 ALL NULL NULL NULL NULL 7 100.00 Using where; End temporary; Using join buffer
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 7 100.00 Using where; End temporary; Using join buffer (flat, BNL join)
> 3 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 4 100.00 Using where
> Warnings:
> Note 1276 Field or reference 'test.t1.b' of SELECT #3 was resolved in SELECT #1
>
> === modified file 'mysql-test/r/subselect_sj2.result'
> --- a/mysql-test/r/subselect_sj2.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/subselect_sj2.result 2010-10-08 19:30:16 +0000
> @@ -130,7 +130,7 @@
> from t1 ot where a in (select a from t2 it);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 22
> -1 PRIMARY ot ALL NULL NULL NULL NULL 32 Using where; Using join buffer
> +1 PRIMARY ot ALL NULL NULL NULL NULL 32 Using where; Using join buffer (flat, BNL join)
> 2 SUBQUERY it ALL NULL NULL NULL NULL 22
> select
> a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z
> @@ -198,7 +198,7 @@
> from t1 ot where a in (select a from t2 it);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 22
> -1 PRIMARY ot ALL NULL NULL NULL NULL 52 Using where; Using join buffer
> +1 PRIMARY ot ALL NULL NULL NULL NULL 52 Using where; Using join buffer (flat, BNL join)
> 2 SUBQUERY it ALL NULL NULL NULL NULL 22
> select
> a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z
> @@ -272,7 +272,7 @@
> (select t2.a+t3.a from t1 left join (t2 join t3) on t2.a=t1.a and t3.a=t1.a);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t0 ALL NULL NULL NULL NULL 10 Start temporary
> -1 PRIMARY t1 index NULL a 5 NULL 10 Using index; Using join buffer
> +1 PRIMARY t1 index NULL a 5 NULL 10 Using index; Using join buffer (flat, BNL join)
> 1 PRIMARY t2 ref a a 5 test.t1.a 1 Using where; Using index
> 1 PRIMARY t3 ref a a 5 test.t1.a 1 Using where; Using index; End temporary
> drop table t0, t1,t2,t3;
>
> === modified file 'mysql-test/r/subselect_sj2_jcl6.result'
> --- a/mysql-test/r/subselect_sj2_jcl6.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/subselect_sj2_jcl6.result 2010-10-08 19:30:16 +0000
> @@ -40,7 +40,7 @@
> explain select * from t2 where b in (select a from t1);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 3
> -1 PRIMARY t2 ref b b 5 test.t1.a 2 Using join buffer
> +1 PRIMARY t2 ref b b 5 test.t1.a 2 Using join buffer (flat, BKA join)
> 2 SUBQUERY t1 ALL NULL NULL NULL NULL 3 Using where
> select * from t2 where b in (select a from t1);
> a b
> @@ -59,7 +59,7 @@
> explain select * from t3 where b in (select a from t1);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t3 ALL b NULL NULL NULL 10
> -1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where; FirstMatch(t3); Using join buffer
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where; FirstMatch(t3); Using join buffer (flat, BNL join)
> select * from t3 where b in (select a from t1);
> a b pk1 pk2 pk3
> 1 1 1 1 1
> @@ -82,7 +82,7 @@
> explain select * from t3 where b in (select a from t0);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 10
> -1 PRIMARY t3 ref b b 5 test.t0.a 1 Using join buffer
> +1 PRIMARY t3 ref b b 5 test.t0.a 1 Using join buffer (flat, BKA join)
> 2 SUBQUERY t0 ALL NULL NULL NULL NULL 10 Using where
> set @save_ecp= @@engine_condition_pushdown;
> set engine_condition_pushdown=0;
> @@ -137,7 +137,7 @@
> from t1 ot where a in (select a from t2 it);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 22
> -1 PRIMARY ot ALL NULL NULL NULL NULL 32 Using where; Using join buffer
> +1 PRIMARY ot ALL NULL NULL NULL NULL 32 Using where; Using join buffer (flat, BNL join)
> 2 SUBQUERY it ALL NULL NULL NULL NULL 22
> select
> a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z
> @@ -205,7 +205,7 @@
> from t1 ot where a in (select a from t2 it);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 22
> -1 PRIMARY ot ALL NULL NULL NULL NULL 52 Using where; Using join buffer
> +1 PRIMARY ot ALL NULL NULL NULL NULL 52 Using where; Using join buffer (flat, BNL join)
> 2 SUBQUERY it ALL NULL NULL NULL NULL 22
> select
> a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z
> @@ -279,7 +279,7 @@
> (select t2.a+t3.a from t1 left join (t2 join t3) on t2.a=t1.a and t3.a=t1.a);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t0 ALL NULL NULL NULL NULL 10 Start temporary
> -1 PRIMARY t1 index NULL a 5 NULL 10 Using index; Using join buffer
> +1 PRIMARY t1 index NULL a 5 NULL 10 Using index; Using join buffer (flat, BNL join)
> 1 PRIMARY t2 ref a a 5 test.t1.a 1 Using where; Using index
> 1 PRIMARY t3 ref a a 5 test.t1.a 1 Using where; Using index; End temporary
> drop table t0, t1,t2,t3;
> @@ -318,8 +318,8 @@
> 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
> -1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t1.Country,const 1 Using index condition; Using where; Using join buffer
> -1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t3.Country 1 Using index condition(BKA); Using where; Using join buffer
> +1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t1.Country,const 1 Using index condition; Using where; Using join buffer (flat, BKA join)
> +1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t3.Country 1 Using index condition(BKA); Using where; Using join buffer (incremental, BKA join)
> DROP TABLE t1,t2,t3;
> CREATE TABLE t1 (
> Code char(3) NOT NULL DEFAULT '',
> @@ -433,8 +433,8 @@
> t1.b=t2.b);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY t0 ALL NULL NULL NULL NULL 5 100.00 Using where; Start temporary
> -1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Using join buffer
> -1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 100.00 Using where; End temporary; Using join buffer
> +1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Using join buffer (flat, BKA join)
> +1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 100.00 Using where; End temporary; Using join buffer (incremental, BKA join)
> Warnings:
> Note 1276 Field or reference 'test.t0.a' of SELECT #2 was resolved in SELECT #1
> Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t1`.`a` = `test`.`t0`.`a`) and (`test`.`t2`.`a` = `test`.`t0`.`a`))
> @@ -587,7 +587,7 @@
> select * from t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t3));
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t1 ALL NULL NULL NULL NULL 3
> -1 PRIMARY t2 ALL NULL NULL NULL NULL 3 Using where; Using join buffer
> +1 PRIMARY t2 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> 2 DEPENDENT SUBQUERY t3 unique_subquery PRIMARY PRIMARY 4 func 1 Using index
> drop table t0, t1, t2, t3;
> create table t1 (a int);
> @@ -728,9 +728,9 @@
> c1 in (select convert(c6,char(1)) from t2);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where
> -1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using join buffer
> -1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer
> -1 PRIMARY t3 ALL NULL NULL NULL NULL 2 FirstMatch(t2); Using join buffer
> +1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using join buffer (flat, BNL join)
> +1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join)
> +1 PRIMARY t3 ALL NULL NULL NULL NULL 2 FirstMatch(t2); Using join buffer (incremental, BNL join)
> drop table t2, t3;
> set join_cache_level=default;
> show variables like 'join_cache_level';
>
> === modified file 'mysql-test/r/subselect_sj_jcl6.result'
> --- a/mysql-test/r/subselect_sj_jcl6.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/subselect_sj_jcl6.result 2010-10-08 19:30:16 +0000
> @@ -59,7 +59,7 @@
> explain select * from t1 where a in (select pk from t10 where t10.a in (select pk from t12));
> 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 t10 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using join buffer
> +1 PRIMARY t10 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using join buffer (flat, BKA join)
> 1 PRIMARY t12 eq_ref PRIMARY PRIMARY 4 test.t10.a 1 Using index
> select * from t1 where a in (select pk from t10 where t10.a in (select pk from t12));
> a b
> @@ -70,7 +70,7 @@
> explain extended select * from t1 where a in (select t10.pk from t10, t12 where t12.pk=t10.a);
> 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 t10 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 100.00 Using where; Using join buffer
> +1 PRIMARY t10 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 100.00 Using where; Using join buffer (flat, BKA join)
> 1 PRIMARY t12 eq_ref PRIMARY PRIMARY 4 test.t10.a 1 100.00 Using index
> Warnings:
> Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t10` join `test`.`t12` join `test`.`t1` where ((`test`.`t10`.`pk` = `test`.`t1`.`a`) and (`test`.`t12`.`pk` = `test`.`t10`.`a`))
> @@ -79,8 +79,8 @@
> select * from t1 left join (t2 A, t2 B) on ( A.A= t1.A And B.A in (select pk from t10));
> 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 A ALL NULL NULL NULL NULL 3 100.00 Using where; Using join Buffer
> -1 PRIMARY B ALL NULL NULL NULL NULL 3 100.00 Using where; Using join Buffer
> +1 PRIMARY A ALL NULL NULL NULL NULL 3 100.00 Using where; Using join Buffer (flAt, BNL join)
> +1 PRIMARY B ALL NULL NULL NULL NULL 3 100.00 Using where; Using join Buffer (incrementAl, BNL join)
> 2 DEPENDENT SUBQUERY t10 unique_suBquery PRIMARY PRIMARY 4 func 1 100.00 Using index
> Warnings:
> Note 1003 select `test`.`t1`.`A` AS `A`,`test`.`t1`.`B` AS `B`,`test`.`A`.`A` AS `A`,`test`.`A`.`B` AS `B`,`test`.`B`.`A` AS `A`,`test`.`B`.`B` AS `B` from `test`.`t1` left join (`test`.`t2` `A` join `test`.`t2` `B`) on(((`test`.`A`.`A` = `test`.`t1`.`A`) And <in_optimizer>(`test`.`B`.`A`,<exists>(<primAry_index_lookup>(<cAche>(`test`.`B`.`A`) in t10 on PRIMARY))))) where 1
> @@ -89,7 +89,7 @@
> select * from t1 left join t2 on (t2.A= t1.A And t2.A in (select pk from t10));
> 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; Using join Buffer
> +1 PRIMARY t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join Buffer (flAt, BNL join)
> 2 DEPENDENT SUBQUERY t10 unique_suBquery PRIMARY PRIMARY 4 func 1 100.00 Using index
> Warnings:
> Note 1003 select `test`.`t1`.`A` AS `A`,`test`.`t1`.`B` AS `B`,`test`.`t2`.`A` AS `A`,`test`.`t2`.`B` AS `B` from `test`.`t1` left join `test`.`t2` on(((`test`.`t2`.`A` = `test`.`t1`.`A`) And <in_optimizer>(`test`.`t2`.`A`,<exists>(<primAry_index_lookup>(<cAche>(`test`.`t2`.`A`) in t10 on PRIMARY))))) where 1
> @@ -108,75 +108,75 @@
> );
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY s00 ALL NULL NULL NULL NULL 3 Using where
> -1 PRIMARY s01 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s02 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s03 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s04 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s05 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s06 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s07 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s08 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s09 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s10 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s11 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s12 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s13 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s14 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s15 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s16 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s17 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s18 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s19 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s20 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s21 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s22 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s23 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s24 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s25 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s26 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s27 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s28 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s29 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s30 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s31 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s32 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s33 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s34 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s35 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s36 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s37 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s38 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s39 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s40 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s41 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s42 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s43 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s44 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s45 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s46 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s47 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s48 ALL NULL NULL NULL NULL 3 Using join buffer
> -1 PRIMARY s49 ALL NULL NULL NULL NULL 3 Using join buffer
> +1 PRIMARY s01 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +1 PRIMARY s02 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s03 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s04 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s05 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s06 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s07 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s08 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s09 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s10 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s11 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s12 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s13 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s14 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s15 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s16 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s17 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s18 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s19 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s20 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s21 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s22 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s23 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s24 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s25 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s26 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s27 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s28 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s29 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s30 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s31 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s32 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s33 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s34 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s35 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s36 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s37 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s38 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s39 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s40 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s41 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s42 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s43 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s44 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s45 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s46 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s47 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s48 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +1 PRIMARY s49 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> 2 DEPENDENT SUBQUERY m00 ALL NULL NULL NULL NULL 3 Using where
> -2 DEPENDENT SUBQUERY m01 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m02 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m03 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m04 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m05 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m06 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m07 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m08 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m09 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m10 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m11 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m12 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m13 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m14 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m15 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m16 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m17 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m18 ALL NULL NULL NULL NULL 3 Using join buffer
> -2 DEPENDENT SUBQUERY m19 ALL NULL NULL NULL NULL 3 Using where; Using join buffer
> +2 DEPENDENT SUBQUERY m01 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> +2 DEPENDENT SUBQUERY m02 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +2 DEPENDENT SUBQUERY m03 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +2 DEPENDENT SUBQUERY m04 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +2 DEPENDENT SUBQUERY m05 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +2 DEPENDENT SUBQUERY m06 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +2 DEPENDENT SUBQUERY m07 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +2 DEPENDENT SUBQUERY m08 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +2 DEPENDENT SUBQUERY m09 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +2 DEPENDENT SUBQUERY m10 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +2 DEPENDENT SUBQUERY m11 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +2 DEPENDENT SUBQUERY m12 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +2 DEPENDENT SUBQUERY m13 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +2 DEPENDENT SUBQUERY m14 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +2 DEPENDENT SUBQUERY m15 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +2 DEPENDENT SUBQUERY m16 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +2 DEPENDENT SUBQUERY m17 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +2 DEPENDENT SUBQUERY m18 ALL NULL NULL NULL NULL 3 Using join buffer (incremental, BNL join)
> +2 DEPENDENT SUBQUERY m19 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (incremental, BNL join)
> select * from
> t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10))
> where t1.a < 5;
> @@ -202,7 +202,7 @@
> explain extended select * from t1 where a in (select pk from t10 where pk<3);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY t10 range PRIMARY PRIMARY 4 NULL 4 100.00 Using where; Using index
> -1 PRIMARY t1 ALL NULL NULL NULL NULL 103 100.00 Using where; Using join buffer
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 103 100.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t10` join `test`.`t1` where ((`test`.`t1`.`a` = `test`.`t10`.`pk`) and (`test`.`t10`.`pk` < 3))
> drop table t0, t1, t2;
> @@ -340,8 +340,8 @@
> (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 Using join buffer
> -1 PRIMARY WORKS ALL NULL NULL NULL NULL 12 Using where; FirstMatch(STAFF); Using join buffer
> +1 PRIMARY PROJ ALL NULL NULL NULL NULL 6 Using join buffer (flat, BNL join)
> +1 PRIMARY WORKS ALL NULL NULL NULL NULL 12 Using where; FirstMatch(STAFF); Using join buffer (incremental, BNL join)
> SELECT EMPNUM, EMPNAME
> FROM STAFF
> WHERE EMPNUM IN
> @@ -515,7 +515,7 @@
> (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
> +1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00 Using where; Using join buffer (flat, BKA join)
> 1 PRIMARY t2 ref vkey vkey 4 test.t1.vnokey 2 100.00 Using index; FirstMatch(t1)
> Warnings:
> Note 1003 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`))
> @@ -745,8 +745,8 @@
> FROM it1 LEFT JOIN it2 ON it2.datetime_key);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY it1 index NULL int_key 4 NULL 2 Using index; Start temporary
> -1 PRIMARY ot1 ALL NULL NULL NULL NULL 20 Using join buffer
> -1 PRIMARY it2 ALL NULL NULL NULL NULL 20 Using where; End temporary; Using join buffer
> +1 PRIMARY ot1 ALL NULL NULL NULL NULL 20 Using join buffer (flat, BNL join)
> +1 PRIMARY it2 ALL NULL NULL NULL NULL 20 Using where; End temporary; Using join buffer (incremental, BNL join)
> DROP TABLE ot1, it1, it2;
> # End of BUG#38075
> #
> @@ -777,7 +777,7 @@
> where a in (select c from t2 where d >= some(select e from t3 where b=e));
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY t2 ALL NULL NULL NULL NULL 6 100.00 Start temporary
> -1 PRIMARY t1 ALL NULL NULL NULL NULL 7 100.00 Using where; End temporary; Using join buffer
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 7 100.00 Using where; End temporary; Using join buffer (flat, BNL join)
> 3 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 4 100.00 Using where
> Warnings:
> Note 1276 Field or reference 'test.t1.b' of SELECT #3 was resolved in SELECT #1
> @@ -828,7 +828,7 @@
> EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, c) IN (SELECT b, c FROM t2 WHERE pk > 0);
> 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 t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer
> +1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`c` = `test`.`t1`.`c`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
> SELECT pk FROM t1 WHERE (b, c) IN (SELECT b, c FROM t2 WHERE pk > 0);
> @@ -838,7 +838,7 @@
> EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, d) IN (SELECT b, d FROM t2 WHERE pk > 0);
> 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 t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer
> +1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`d` = `test`.`t1`.`d`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
> SELECT pk FROM t1 WHERE (b, d) IN (SELECT b, d FROM t2 WHERE pk > 0);
> @@ -847,7 +847,7 @@
> EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, e) IN (SELECT b, e FROM t2 WHERE pk > 0);
> 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 t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer
> +1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`e` = `test`.`t1`.`e`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
> SELECT pk FROM t1 WHERE (b, e) IN (SELECT b, e FROM t2 WHERE pk > 0);
> @@ -857,7 +857,7 @@
> EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, f) IN (SELECT b, f FROM t2 WHERE pk > 0);
> 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 t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer
> +1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`f` = `test`.`t1`.`f`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
> SELECT pk FROM t1 WHERE (b, f) IN (SELECT b, f FROM t2 WHERE pk > 0);
> @@ -867,7 +867,7 @@
> EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, g) IN (SELECT b, g FROM t2 WHERE pk > 0);
> 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 t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer
> +1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`g` = `test`.`t1`.`g`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
> SELECT pk FROM t1 WHERE (b, g) IN (SELECT b, g FROM t2 WHERE pk > 0);
> @@ -877,7 +877,7 @@
> EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, h) IN (SELECT b, h FROM t2 WHERE pk > 0);
> 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 t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer
> +1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`h` = `test`.`t1`.`h`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
> SELECT pk FROM t1 WHERE (b, h) IN (SELECT b, h FROM t2 WHERE pk > 0);
> @@ -887,7 +887,7 @@
> EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, i) IN (SELECT b, i FROM t2 WHERE pk > 0);
> 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 t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer
> +1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`i` = `test`.`t1`.`i`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
> SELECT pk FROM t1 WHERE (b, i) IN (SELECT b, i FROM t2 WHERE pk > 0);
> @@ -897,7 +897,7 @@
> EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, j) IN (SELECT b, j FROM t2 WHERE pk > 0);
> 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 t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer
> +1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`j` = `test`.`t1`.`j`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
> SELECT pk FROM t1 WHERE (b, j) IN (SELECT b, j FROM t2 WHERE pk > 0);
> @@ -907,7 +907,7 @@
> EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, k) IN (SELECT b, k FROM t2 WHERE pk > 0);
> 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 t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer
> +1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`k` = `test`.`t1`.`k`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
> SELECT pk FROM t1 WHERE (b, k) IN (SELECT b, k FROM t2 WHERE pk > 0);
> @@ -1069,8 +1069,8 @@
> WHERE t3.val LIKE 'a%' OR t3.val LIKE 'e%');
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t1 ALL NULL NULL NULL NULL 5
> -1 PRIMARY t3 ALL NULL NULL NULL NULL 5 Using where; FirstMatch(t1); Using join buffer
> -1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; FirstMatch(t3); Using join buffer
> +1 PRIMARY t3 ALL NULL NULL NULL NULL 5 Using where; FirstMatch(t1); Using join buffer (flat, BNL join)
> +1 PRIMARY t2 ALL NULL NULL NULL NULL 6 Using where; FirstMatch(t3); Using join buffer (incremental, BNL join)
> SELECT *
> FROM t1
> WHERE t1.val IN (SELECT t2.val FROM t2
> @@ -1104,8 +1104,8 @@
> (SELECT t1.a FROM t1, t2 WHERE t2.a=t0.a AND t1.b=t2.b);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t0 ALL NULL NULL NULL NULL 5 Using where; Start temporary
> -1 PRIMARY t1 ref a a 5 test.t0.a 1 Using join buffer
> -1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 Using where; End temporary; Using join buffer
> +1 PRIMARY t1 ref a a 5 test.t0.a 1 Using join buffer (flat, BKA join)
> +1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 Using where; End temporary; Using join buffer (incremental, BKA join)
> SELECT * FROM t0 WHERE t0.a IN
> (SELECT t1.a FROM t1, t2 WHERE t2.a=t0.a AND t1.b=t2.b);
> a
>
> === modified file 'mysql-test/r/union.result'
> --- a/mysql-test/r/union.result 2010-06-26 10:05:41 +0000
> +++ b/mysql-test/r/union.result 2010-10-08 19:30:16 +0000
> @@ -542,7 +542,7 @@
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
> 2 UNION t1 index PRIMARY PRIMARY 4 NULL 4 Using index
> -2 UNION t2 index PRIMARY PRIMARY 4 NULL 4 Using where; Using index; Using join buffer
> +2 UNION t2 index PRIMARY PRIMARY 4 NULL 4 Using where; Using index; Using join buffer (flat, BNL join)
> NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL
> explain (select * from t1 where a=1) union (select * from t1 where b=1);
> id select_type table type possible_keys key key_len ref rows Extra
>
> === modified file 'mysql-test/r/view.result'
> --- a/mysql-test/r/view.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/r/view.result 2010-10-08 19:30:16 +0000
> @@ -2350,7 +2350,7 @@
> EXPLAIN SELECT * FROM v2 WHERE a=1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref a a 5 const 1 Using index
> -1 SIMPLE t3 ALL NULL NULL NULL NULL 3 Using where; Using join buffer
> +1 SIMPLE t3 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> DROP VIEW v1,v2;
> DROP TABLE t1,t2,t3;
> create table t1 (f1 int);
>
> === modified file 'mysql-test/suite/pbxt/r/derived.result'
> --- a/mysql-test/suite/pbxt/r/derived.result 2009-04-02 10:03:14 +0000
> +++ b/mysql-test/suite/pbxt/r/derived.result 2010-10-08 19:30:16 +0000
> @@ -58,7 +58,7 @@
> explain select * from t1 as x1, (select * from t1) as x2;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY x1 ALL NULL NULL NULL NULL 4
> -1 PRIMARY <derived2> ALL NULL NULL NULL NULL 4 Using join buffer
> +1 PRIMARY <derived2> ALL NULL NULL NULL NULL 4 Using join buffer (flat, BNL join)
> 2 DERIVED t1 ALL NULL NULL NULL NULL 4
> drop table if exists t2,t3;
> select * from (select 1) as a;
> @@ -115,7 +115,7 @@
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY <derived2> system NULL NULL NULL NULL 1
> 2 DERIVED t2 ALL NULL NULL NULL NULL 1
> -2 DERIVED t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer
> +2 DERIVED t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
> drop table t1, t2;
> create table t1(a int not null, t char(8), index(a));
> SELECT * FROM (SELECT * FROM t1) as b ORDER BY a ASC LIMIT 0,20;
> @@ -143,7 +143,7 @@
> explain select count(*) from t1 as tt1, (select * from t1) as tt2;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY tt1 index NULL a 4 NULL 10000 Using index
> -1 PRIMARY <derived2> ALL NULL NULL NULL NULL 10000 Using join buffer
> +1 PRIMARY <derived2> ALL NULL NULL NULL NULL 10000 Using join buffer (flat, BNL join)
> 2 DERIVED t1 ALL NULL NULL NULL NULL 10000
> drop table t1;
> SELECT * FROM (SELECT (SELECT * FROM (SELECT 1 as a) as a )) as b;
> @@ -190,13 +190,13 @@
> explain SELECT STRAIGHT_JOIN d.pla_id, m2.mat_id FROM t1 m2 INNER JOIN (SELECT mp.pla_id, MIN(m1.matintnum) AS matintnum FROM t2 mp INNER JOIN t1 m1 ON mp.mat_id=m1.mat_id GROUP BY mp.pla_id) d ON d.matintnum=m2.matintnum;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY m2 ALL NULL NULL NULL NULL 9
> -1 PRIMARY <derived2> ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 PRIMARY <derived2> ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 2 DERIVED mp ALL NULL NULL NULL NULL 9 Using temporary; Using filesort
> 2 DERIVED m1 eq_ref PRIMARY PRIMARY 3 test.mp.mat_id 1
> explain SELECT STRAIGHT_JOIN d.pla_id, m2.test FROM t1 m2 INNER JOIN (SELECT mp.pla_id, MIN(m1.matintnum) AS matintnum FROM t2 mp INNER JOIN t1 m1 ON mp.mat_id=m1.mat_id GROUP BY mp.pla_id) d ON d.matintnum=m2.matintnum;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY m2 ALL NULL NULL NULL NULL 9
> -1 PRIMARY <derived2> ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 PRIMARY <derived2> ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 2 DERIVED mp ALL NULL NULL NULL NULL 9 Using temporary; Using filesort
> 2 DERIVED m1 eq_ref PRIMARY PRIMARY 3 test.mp.mat_id 1
> drop table t1,t2;
> @@ -250,7 +250,7 @@
> explain select * from ( select * from t1 union select * from t1) a,(select * from t1 union select * from t1) b;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2
> -1 PRIMARY <derived4> ALL NULL NULL NULL NULL 2 Using join buffer
> +1 PRIMARY <derived4> ALL NULL NULL NULL NULL 2 Using join buffer (flat, BNL join)
> 4 DERIVED t1 ALL NULL NULL NULL NULL 2
> 5 UNION t1 ALL NULL NULL NULL NULL 2
> NULL UNION RESULT <union4,5> ALL NULL NULL NULL NULL NULL
> @@ -317,7 +317,7 @@
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY <derived2> ALL NULL NULL NULL NULL 3 Using temporary; Using filesort
> 2 DERIVED x ALL NULL NULL NULL NULL 17 Using temporary; Using filesort
> -2 DERIVED y ALL NULL NULL NULL NULL 17 Using where; Using join buffer
> +2 DERIVED y ALL NULL NULL NULL NULL 17 Using where; Using join buffer (flat, BNL join)
> drop table t1;
> create table t2 (a int, b int, primary key (a));
> insert into t2 values (1,7),(2,7);
>
> === modified file 'mysql-test/suite/pbxt/r/distinct.result'
> --- a/mysql-test/suite/pbxt/r/distinct.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/suite/pbxt/r/distinct.result 2010-10-08 19:30:16 +0000
> @@ -300,11 +300,11 @@
> AND ((t1.id=j_lj_t3.id AND t3_lj.id IS NULL) OR (t1.id=t3.id AND t3.idx=2));
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 index id id 4 NULL 2 Using index; Using temporary
> -1 SIMPLE t2 index id id 8 NULL 1 Using index; Distinct; Using join buffer
> -1 SIMPLE t3 index id id 8 NULL 1 Using index; Distinct; Using join buffer
> -1 SIMPLE j_lj_t2 index id id 4 NULL 2 Using where; Using index; Distinct; Using join buffer
> +1 SIMPLE t2 index id id 8 NULL 1 Using index; Distinct; Using join buffer (flat, BNL join)
> +1 SIMPLE t3 index id id 8 NULL 1 Using index; Distinct; Using join buffer (flat, BNL join)
> +1 SIMPLE j_lj_t2 index id id 4 NULL 2 Using where; Using index; Distinct; Using join buffer (flat, BNL join)
> 1 SIMPLE t2_lj ref id id 4 test.j_lj_t2.id 1 Using where; Using index; Distinct
> -1 SIMPLE j_lj_t3 index id id 4 NULL 2 Using where; Using index; Distinct; Using join buffer
> +1 SIMPLE j_lj_t3 index id id 4 NULL 2 Using where; Using index; Distinct; Using join buffer (flat, BNL join)
> 1 SIMPLE t3_lj ref id id 4 test.j_lj_t3.id 1 Using where; Using index; Distinct
> SELECT DISTINCT
> t1.id
> @@ -515,7 +515,7 @@
> EXPLAIN SELECT DISTINCT t1_1.a, t1_1.b FROM t1 t1_1, t1 t1_2;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1_1 ALL NULL NULL NULL NULL 3 Using temporary
> -1 SIMPLE t1_2 index NULL PRIMARY 4 NULL 3 Using index; Distinct; Using join buffer
> +1 SIMPLE t1_2 index NULL PRIMARY 4 NULL 3 Using index; Distinct; Using join buffer (flat, BNL join)
> EXPLAIN SELECT DISTINCT t1_1.a, t1_1.b FROM t1 t1_1, t1 t1_2
> WHERE t1_1.a = t1_2.a;
> id select_type table type possible_keys key key_len ref rows Extra
>
> === modified file 'mysql-test/suite/pbxt/r/func_group.result'
> --- a/mysql-test/suite/pbxt/r/func_group.result 2010-01-16 05:12:57 +0000
> +++ b/mysql-test/suite/pbxt/r/func_group.result 2010-10-08 19:30:16 +0000
> @@ -614,7 +614,7 @@
> select max(t1.a3), min(t2.a2) from t1, t2 where t1.a2 = 2 and t1.a3 < 'MIN' and t2.a3 > 'CA';
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 range k1 k1 7 NULL 1 Using where; Using index
> -1 SIMPLE t2 range k1 k1 3 NULL 1 Using where; Using index; Using join buffer
> +1 SIMPLE t2 range k1 k1 3 NULL 1 Using where; Using index; Using join buffer (flat, BNL join)
> explain
> select min(a4 - 0.01) from t1;
> id select_type table type possible_keys key key_len ref rows Extra
> @@ -651,7 +651,7 @@
> select concat(min(t1.a1),min(t2.a4)) from t1, t2 where t2.a4 <> 'AME';
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 index k2 k2 4 NULL 7 Using where; Using index
> -1 SIMPLE t1 index NULL PRIMARY 3 NULL 15 Using index; Using join buffer
> +1 SIMPLE t1 index NULL PRIMARY 3 NULL 15 Using index; Using join buffer (flat, BNL join)
> drop table t1, t2;
> create table t1 (a char(10));
> insert into t1 values ('a'),('b'),('c');
>
> === modified file 'mysql-test/suite/pbxt/r/greedy_optimizer.result'
> --- a/mysql-test/suite/pbxt/r/greedy_optimizer.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/suite/pbxt/r/greedy_optimizer.result 2010-10-08 19:30:16 +0000
> @@ -121,11 +121,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -133,11 +133,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -145,11 +145,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -157,11 +157,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -169,11 +169,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -181,11 +181,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -201,11 +201,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -213,11 +213,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -225,11 +225,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using join buffer (flat, BNL join)
> 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -237,11 +237,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using join buffer (flat, BNL join)
> 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -249,11 +249,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -261,11 +261,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -277,11 +277,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -289,11 +289,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -304,9 +304,9 @@
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> show status like 'Last_query_cost';
> Variable_name Value
> Last_query_cost 795.625316
> @@ -316,9 +316,9 @@
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> show status like 'Last_query_cost';
> Variable_name Value
> Last_query_cost 795.625316
> @@ -328,9 +328,9 @@
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> show status like 'Last_query_cost';
> Variable_name Value
> Last_query_cost 795.625316
> @@ -340,9 +340,9 @@
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> show status like 'Last_query_cost';
> Variable_name Value
> Last_query_cost 795.625316
> @@ -353,11 +353,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -365,11 +365,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -377,11 +377,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using join buffer (flat, BNL join)
> 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -389,11 +389,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using join buffer (flat, BNL join)
> 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -401,11 +401,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -413,11 +413,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.c21 1 Using where
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -433,11 +433,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -445,11 +445,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -457,11 +457,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -469,11 +469,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -481,11 +481,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -493,11 +493,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -509,11 +509,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -521,11 +521,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -536,9 +536,9 @@
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> show status like 'Last_query_cost';
> Variable_name Value
> Last_query_cost 795.625316
> @@ -548,9 +548,9 @@
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> show status like 'Last_query_cost';
> Variable_name Value
> Last_query_cost 795.625316
> @@ -560,9 +560,9 @@
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> show status like 'Last_query_cost';
> Variable_name Value
> Last_query_cost 795.625316
> @@ -572,9 +572,9 @@
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> show status like 'Last_query_cost';
> Variable_name Value
> Last_query_cost 795.625316
> @@ -585,11 +585,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -597,11 +597,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.c22 1
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t4.c42 1
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -609,11 +609,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -621,11 +621,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using index
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using index
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -633,11 +633,11 @@
> explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
> @@ -645,11 +645,11 @@
> explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.c12 1 Using where
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t1.c14 1 Using where
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
> show status like 'Last_query_cost';
> Variable_name Value
>
> === modified file 'mysql-test/suite/pbxt/r/group_by.result'
> --- a/mysql-test/suite/pbxt/r/group_by.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/suite/pbxt/r/group_by.result 2010-10-08 19:30:16 +0000
> @@ -537,11 +537,11 @@
> explain select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using temporary; Using filesort
> -1 SIMPLE t2 ALL a NULL NULL NULL 4 Using where; Using join buffer
> +1 SIMPLE t2 ALL a NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
> explain select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b ORDER BY NULL;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using temporary
> -1 SIMPLE t2 ALL a NULL NULL NULL 4 Using where; Using join buffer
> +1 SIMPLE t2 ALL a NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
> drop table t1,t2;
> create table t1 (a int, b int);
> insert into t1 values (1, 4),(10, 40),(1, 4),(10, 43),(1, 4),(10, 41),(1, 4),(10, 43),(1, 4);
>
> === modified file 'mysql-test/suite/pbxt/r/group_min_max.result'
> --- a/mysql-test/suite/pbxt/r/group_min_max.result 2010-06-26 10:05:41 +0000
> +++ b/mysql-test/suite/pbxt/r/group_min_max.result 2010-10-08 19:30:16 +0000
> @@ -2268,7 +2268,7 @@
> AND t1_outer1.b = t1_outer2.b;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t1_outer1 ref a a 5 const 1 Using where; Using index
> -1 PRIMARY t1_outer2 index NULL a 10 NULL 15 Using where; Using index; Using join buffer
> +1 PRIMARY t1_outer2 index NULL a 10 NULL 15 Using where; Using index; Using join buffer (flat, BNL join)
> 2 SUBQUERY t1 index NULL a 10 NULL 15 Using index
> EXPLAIN SELECT (SELECT (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) x
> FROM t1 AS t1_outer) x2 FROM t1 AS t1_outer2;
>
> === modified file 'mysql-test/suite/pbxt/r/join_nested.result'
> --- a/mysql-test/suite/pbxt/r/join_nested.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/suite/pbxt/r/join_nested.result 2010-10-08 19:30:16 +0000
> @@ -229,7 +229,7 @@
> ON t7.b=t8.b AND t6.b < 10;
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00
> -1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using join buffer
> +1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (flat, BNL join)
> 1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
> Warnings:
> Note 1003 select `test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b` from `test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t7`.`b` = `test`.`t8`.`b`) and (`test`.`t6`.`b` < 10))) where 1
> @@ -544,7 +544,7 @@
> (t2.a >= 4 OR t2.c IS NULL);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
> 1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where
> @@ -639,7 +639,7 @@
> (t9.a=1);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
> 1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where
> @@ -647,7 +647,7 @@
> 1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
> 1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
> -1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
> SELECT t9.a,t9.b
> @@ -836,7 +836,7 @@
> WHERE t1.a <= 2;
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (flat, BNL join)
> 1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where
> Warnings:
> @@ -850,7 +850,7 @@
> ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00
> -1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using join buffer
> +1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (flat, BNL join)
> 1 SIMPLE t2 ref idx_b idx_b 5 test.t3.b 1 100.00 Using where
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00
> Warnings:
> @@ -906,7 +906,7 @@
> (t9.a=1);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
> 1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using where
> @@ -914,7 +914,7 @@
> 1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
> 1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
> -1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
> CREATE INDEX idx_b ON t4(b);
> @@ -956,7 +956,7 @@
> (t9.a=1);
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
> 1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 1 100.00 Using where
> @@ -964,7 +964,7 @@
> 1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
> 1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
> 1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
> -1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on((((`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t3`.`a` = 1)) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` < 10)))) on(((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t6`.`b` >= 2)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and ((`test`.`t5`.`b` = `test`.`t0`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
> CREATE INDEX idx_b ON t8(b);
> @@ -1005,7 +1005,7 @@
> (t9.a=1);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t0 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 3
> 1 SIMPLE t3 ALL NULL NULL NULL NULL 2
> 1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 1
> @@ -1013,7 +1013,7 @@
> 1 SIMPLE t6 ALL NULL NULL NULL NULL 3
> 1 SIMPLE t7 ALL NULL NULL NULL NULL 2
> 1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 1
> -1 SIMPLE t9 ALL NULL NULL NULL NULL 3 Using join buffer
> +1 SIMPLE t9 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> ATTENTION: the above EXPLAIN has several competing QEPs with identical
> . costs. To combat the plan change it uses --sorted_result and
> . and --replace tricks
> @@ -1064,7 +1064,7 @@
> 1 SIMPLE t6 ALL NULL NULL NULL NULL 3
> 1 SIMPLE t7 ALL NULL NULL NULL NULL 2
> 1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 1
> -1 SIMPLE t9 ALL NULL NULL NULL NULL 3 Using join buffer
> +1 SIMPLE t9 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join)
> ATTENTION: the above EXPLAIN has several competing QEPs with identical
> . costs. To combat the plan change it uses --sorted_result
> . and --replace tricks
>
> === modified file 'mysql-test/suite/pbxt/r/range.result'
> --- a/mysql-test/suite/pbxt/r/range.result 2010-06-26 10:05:41 +0000
> +++ b/mysql-test/suite/pbxt/r/range.result 2010-10-08 19:30:16 +0000
> @@ -222,27 +222,27 @@
> explain select * from t1, t1 t2 where t1.y = 8 and t2.x between 7 and t1.y+0;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref y y 5 const 1
> -1 SIMPLE t2 range x x 5 NULL 1 Using where; Using join buffer
> +1 SIMPLE t2 range x x 5 NULL 1 Using where; Using join buffer (flat, BNL join)
> explain select * from t1, t1 t2 where t1.y = 8 and t2.x >= 7 and t2.x <= t1.y+0;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref y y 5 const 1
> -1 SIMPLE t2 range x x 5 NULL 1 Using where; Using join buffer
> +1 SIMPLE t2 range x x 5 NULL 1 Using where; Using join buffer (flat, BNL join)
> explain select * from t1, t1 t2 where t1.y = 2 and t2.x between t1.y-1 and t1.y+1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref y y 5 const 1
> -1 SIMPLE t2 range x x 5 NULL 1 Using where; Using join buffer
> +1 SIMPLE t2 range x x 5 NULL 1 Using where; Using join buffer (flat, BNL join)
> explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= t1.y-1 and t2.x <= t1.y+1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref y y 5 const 1
> -1 SIMPLE t2 range x x 5 NULL 1 Using where; Using join buffer
> +1 SIMPLE t2 range x x 5 NULL 1 Using where; Using join buffer (flat, BNL join)
> explain select * from t1, t1 t2 where t1.y = 2 and t2.x between 0 and t1.y;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref y y 5 const 1
> -1 SIMPLE t2 range x x 5 NULL 1 Using where; Using join buffer
> +1 SIMPLE t2 range x x 5 NULL 1 Using where; Using join buffer (flat, BNL join)
> explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= 0 and t2.x <= t1.y;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref y y 5 const 1
> -1 SIMPLE t2 range x x 5 NULL 1 Using where; Using join buffer
> +1 SIMPLE t2 range x x 5 NULL 1 Using where; Using join buffer (flat, BNL join)
> explain select count(*) from t1 where x in (1);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref x x 5 const 1 Using index
> @@ -422,20 +422,20 @@
> test.t2 analyze status OK
> explain select * from t1, t2 where t1.uid=t2.uid AND t1.uid > 0;
> id select_type table type possible_keys key key_len ref rows Extra
> -1 SIMPLE t1 range uid_index uid_index 4 NULL 1 Using where
> -1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 1
> +1 SIMPLE t2 range uid_index uid_index 4 NULL 1 Using where
> +1 SIMPLE t1 ref uid_index uid_index 4 test.t2.uid 1
> explain select * from t1, t2 where t1.uid=t2.uid AND t2.uid > 0;
> id select_type table type possible_keys key key_len ref rows Extra
> -1 SIMPLE t1 range uid_index uid_index 4 NULL 1 Using where
> -1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 1
> +1 SIMPLE t2 range uid_index uid_index 4 NULL 1 Using where
> +1 SIMPLE t1 ref uid_index uid_index 4 test.t2.uid 1
> explain select * from t1, t2 where t1.uid=t2.uid AND t1.uid != 0;
> id select_type table type possible_keys key key_len ref rows Extra
> -1 SIMPLE t1 range uid_index uid_index 4 NULL 2 Using where
> -1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 1
> +1 SIMPLE t2 range uid_index uid_index 4 NULL 2 Using where
> +1 SIMPLE t1 ref uid_index uid_index 4 test.t2.uid 1
> explain select * from t1, t2 where t1.uid=t2.uid AND t2.uid != 0;
> id select_type table type possible_keys key key_len ref rows Extra
> -1 SIMPLE t1 range uid_index uid_index 4 NULL 2 Using where
> -1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 1
> +1 SIMPLE t2 range uid_index uid_index 4 NULL 2 Using where
> +1 SIMPLE t1 ref uid_index uid_index 4 test.t2.uid 1
> select * from t1, t2 where t1.uid=t2.uid AND t1.uid > 0;
> id name uid id name uid
> 1001 A 1 1001 A 1
>
> === modified file 'mysql-test/suite/pbxt/r/select.result'
> --- a/mysql-test/suite/pbxt/r/select.result 2010-09-28 19:39:33 +0000
> +++ b/mysql-test/suite/pbxt/r/select.result 2010-10-08 19:30:16 +0000
> @@ -1437,7 +1437,7 @@
> explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary
> -1 SIMPLE t2 ALL NULL NULL NULL NULL 1200 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 1200 Using where; Using join buffer (flat, BNL join)
> select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008;
> fld1 companynr fld3 period
> 038008 37 reporters 1008
> @@ -2723,7 +2723,7 @@
> t2.b like '%%' order by t2.b limit 0,1;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ref b,c b 5 const 1 Using temporary; Using filesort
> -1 SIMPLE t3 index PRIMARY,a,b PRIMARY 8 NULL 2 Using index; Using join buffer
> +1 SIMPLE t3 index PRIMARY,a,b PRIMARY 8 NULL 2 Using index; Using join buffer (flat, BNL join)
> 1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 2 Range checked for each record (index map: 0x1)
> DROP TABLE t1,t2,t3;
> CREATE TABLE t1 (a int, INDEX idx(a));
> @@ -2746,7 +2746,7 @@
> EXPLAIN SELECT STRAIGHT_JOIN SQL_NO_CACHE COUNT(*) FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 index b b 5 NULL 2 Using index
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> SELECT STRAIGHT_JOIN SQL_NO_CACHE * FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
> a b a b
> 1 NULL 1 1
> @@ -2756,7 +2756,7 @@
> EXPLAIN SELECT STRAIGHT_JOIN SQL_NO_CACHE COUNT(*) FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 index b b 5 NULL 2 Using index
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> SELECT STRAIGHT_JOIN SQL_NO_CACHE * FROM t2, t1 WHERE t1.b = t2.b OR t2.b IS NULL;
> a b a b
> 1 NULL 1 1
> @@ -2910,11 +2910,11 @@
> EXPLAIN SELECT t1.a FROM t1 STRAIGHT_JOIN t2 ON t1.a=t2.a;
> 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 3 Using where; Using join buffer
> +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
> EXPLAIN SELECT t1.a FROM t1 INNER JOIN t2 ON t1.a=t2.a;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t2 ALL NULL NULL NULL NULL 3
> -1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer
> +1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join)
> DROP TABLE t1,t2;
> select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0;
> x'10' + 0 X'10' + 0 b'10' + 0 B'10' + 0
>
> === modified file 'mysql-test/suite/pbxt/r/subselect.result'
> --- a/mysql-test/suite/pbxt/r/subselect.result 2010-10-02 16:46:27 +0000
> +++ b/mysql-test/suite/pbxt/r/subselect.result 2010-10-08 19:30:16 +0000
> @@ -906,7 +906,7 @@
> id select_type table type possible_keys key key_len ref rows filtered Extra
> 1 PRIMARY t1 index NULL PRIMARY 4 NULL 4 100.00 Using index
> 2 DEPENDENT SUBQUERY t2 ref_or_null a a 5 func 2 100.00 Using index
> -2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer
> +2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t1`.`a` AS `a`,<in_optimizer>(`test`.`t1`.`a`,<exists>(select 1 from `test`.`t2` join `test`.`t3` where ((`test`.`t3`.`a` = `test`.`t2`.`a`) and ((<cache>(`test`.`t1`.`a`) = `test`.`t2`.`a`) or isnull(`test`.`t2`.`a`))) having <is_not_null_test>(`test`.`t2`.`a`))) AS `t1.a in (select t2.a from t2,t3 where t3.a=t2.a)` from `test`.`t1`
> drop table t1,t2,t3;
> @@ -1296,7 +1296,7 @@
> 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 t2 index PRIMARY PRIMARY 4 NULL 4 100.00 Using index
> -1 PRIMARY t1 index PRIMARY PRIMARY 4 NULL 4 75.00 Using where; Using index; Using join buffer
> +1 PRIMARY t1 index PRIMARY PRIMARY 4 NULL 4 75.00 Using where; Using index; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t1` join `test`.`t2` where (`test`.`t1`.`a` = `test`.`t2`.`a`)
> select * from t2 where t2.a in (select a from t1 where t1.b <> 30);
> @@ -1306,7 +1306,7 @@
> 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 t2 index PRIMARY PRIMARY 4 NULL 4 100.00 Using index
> -1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer
> +1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer (flat, BNL join)
> Warnings:
> Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t1` join `test`.`t2` 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);
> @@ -1316,7 +1316,7 @@
> 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 t2 index PRIMARY PRIMARY 4 NULL 4 100.00 Using index
> -1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer
> +1 PRIMARY t1 ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer (flat, BNL join)
> 1 PRIMARY t3 eq_ref PRIMARY PRIMARY 4 test.t1.b 1 100.00 Using index
> Warnings:
> Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t1` join `test`.`t3` join `test`.`t2` where ((`test`.`t1`.`a` = `test`.`t2`.`a`) and (`test`.`t3`.`a` = `test`.`t1`.`b`))
> @@ -3554,7 +3554,7 @@
> ORDER BY t1.t DESC LIMIT 1);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t2 ALL NULL NULL NULL NULL 1
> -1 PRIMARY t1 index NULL PRIMARY 16 NULL 11 Using where; Using index; Using join buffer
> +1 PRIMARY t1 index NULL PRIMARY 16 NULL 11 Using where; Using index; Using join buffer (flat, BNL join)
> 2 DEPENDENT SUBQUERY t1 ref PRIMARY PRIMARY 8 test.t2.i1,const 1 Using where; Using index; Using filesort
> SELECT * FROM t1,t2
> WHERE t1.t = (SELECT t1.t FROM t1
>
> === modified file 'mysql-test/suite/pbxt/r/union.result'
> --- a/mysql-test/suite/pbxt/r/union.result 2009-12-16 09:28:51 +0000
> +++ b/mysql-test/suite/pbxt/r/union.result 2010-10-08 19:30:16 +0000
> @@ -500,7 +500,7 @@
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
> 2 UNION t1 index PRIMARY PRIMARY 4 NULL 4 Using index
> -2 UNION t2 index PRIMARY PRIMARY 4 NULL 4 Using where; Using index; Using join buffer
> +2 UNION t2 index PRIMARY PRIMARY 4 NULL 4 Using where; Using index; Using join buffer (flat, BNL join)
> NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL
> explain (select * from t1 where a=1) union (select * from t1 where b=1);
> id select_type table type possible_keys key key_len ref rows Extra
>
> === modified file 'mysql-test/suite/vcol/r/vcol_misc.result'
> --- a/mysql-test/suite/vcol/r/vcol_misc.result 2010-10-02 16:46:27 +0000
> +++ b/mysql-test/suite/vcol/r/vcol_misc.result 2010-10-08 19:30:16 +0000
> @@ -10,7 +10,7 @@
> select * from t1,t2 where t1.b=t2.c and d <= 100;
> id select_type table type possible_keys key key_len ref rows Extra
> 1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
> -1 SIMPLE t2 ref idx idx 5 test.t1.b 2 Using where; Using join buffer
> +1 SIMPLE t2 ref idx idx 5 test.t1.b 2 Using where; Using join buffer (flat, BKA join)
> select * from t1,t2 where t1.b=t2.c and d <= 100;
> a b c d v
> 4 20 20 100 101
>
> === modified file 'mysql-test/suite/vcol/r/vcol_select_innodb.result'
> --- a/mysql-test/suite/vcol/r/vcol_select_innodb.result 2010-06-26 19:33:16 +0000
> +++ b/mysql-test/suite/vcol/r/vcol_select_innodb.result 2010-10-08 19:30:16 +0000
> @@ -64,7 +64,7 @@
> explain select * from t1 where b in (select c from t3);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t3 index c c 5 NULL 3 Using index
> -1 PRIMARY t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join)
> # select_type=PRIMARY, type=range,ref
> select * from t1 where c in (select c from t3 where c between -2 and -1);
> a b c
>
> === modified file 'mysql-test/suite/vcol/r/vcol_select_myisam.result'
> --- a/mysql-test/suite/vcol/r/vcol_select_myisam.result 2010-06-26 19:33:16 +0000
> +++ b/mysql-test/suite/vcol/r/vcol_select_myisam.result 2010-10-08 19:30:16 +0000
> @@ -64,7 +64,7 @@
> explain select * from t1 where b in (select c from t3);
> id select_type table type possible_keys key key_len ref rows Extra
> 1 PRIMARY t3 index c c 5 NULL 3 Using index
> -1 PRIMARY t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer
> +1 PRIMARY t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join)
> # select_type=PRIMARY, type=range,ref
> select * from t1 where c in (select c from t3 where c between -2 and -1);
> a b c
>
> === modified file 'sql/sql_join_cache.cc'
> --- a/sql/sql_join_cache.cc 2010-10-06 20:27:12 +0000
> +++ b/sql/sql_join_cache.cc 2010-10-08 19:30:16 +0000
> @@ -2372,6 +2372,54 @@
> return rc;
> }
>
> +
> +/*
> + Add a comment on the join algorithm employed by the join cache
> +
> + SYNOPSIS
> + print_explain_comment()
> + str string to add the comment on the employed join algorithm to
> +
> + DESCRIPTION
> + This function adds info on the type of the used join buffer (flat or
> + incremental) and on the type of the the employed join algorithm (BNL,
> + BNLH, BKA or BKAH) to the the end of the sring str.
> +
> + RETURN VALUE
> + none
> +*/
> +
> +void JOIN_CACHE::print_explain_comment(String *str)
> +{
> + str->append(STRING_WITH_LEN(" ("));
> + const char *buffer_type= prev_cache ? "incremental" : "flat";
> + str->append(buffer_type);
> + str->append(STRING_WITH_LEN(", "));
> +
> + const char *join_alg;
> + switch (get_join_alg()) {
> + case BNL_JOIN_ALG:
> + join_alg= "BNL";
> + break;
> + case BNLH_JOIN_ALG:
> + join_alg= "BNLH";
> + break;
> + case BKA_JOIN_ALG:
> + join_alg= "BKA";
> + break;
> + case BKAH_JOIN_ALG:
> + join_alg= "BKAH";
> + break;
> + default:
> + DBUG_ASSERT(0);
> + }
> +
> + str->append(join_alg);
> + str->append(STRING_WITH_LEN(" join"));
> + str->append(STRING_WITH_LEN(")"));
> + }
> +
> +
> /*
> Initialize a hashed join cache
>
>
> === modified file 'sql/sql_select.cc'
> --- a/sql/sql_select.cc 2010-10-06 20:27:12 +0000
> +++ b/sql/sql_select.cc 2010-10-08 19:30:16 +0000
> @@ -7644,9 +7644,8 @@
> case JT_ALL:
> if (cache_level == 1)
> prev_cache= 0;
> - if ((options & SELECT_DESCRIBE) ||
> - (((tab->cache= new JOIN_CACHE_BNL(join, tab, prev_cache))) &&
> - !tab->cache->init()))
> + if ((tab->cache= new JOIN_CACHE_BNL(join, tab, prev_cache)) &&
> + ((options & SELECT_DESCRIBE) || !tab->cache->init()))
> {
> *icp_other_tables_ok= FALSE;
> return (2-test(!prev_cache));
> @@ -7670,9 +7669,8 @@
> {
> if (cache_level == 3)
> prev_cache= 0;
> - if ((options & SELECT_DESCRIBE) ||
> - ((tab->cache= new JOIN_CACHE_BNLH(join, tab, prev_cache)) &&
> - !tab->cache->init()))
> + if ((tab->cache= new JOIN_CACHE_BNLH(join, tab, prev_cache)) &&
> + ((options & SELECT_DESCRIBE) || !tab->cache->init()))
> {
> *icp_other_tables_ok= FALSE;
> return (4-test(!prev_cache));
> @@ -7692,9 +7690,8 @@
> {
> if (cache_level == 5)
> prev_cache= 0;
> - if ((options & SELECT_DESCRIBE) ||
> - ((tab->cache= new JOIN_CACHE_BKA(join, tab, flags, prev_cache)) &&
> - !tab->cache->init()))
> + if ((tab->cache= new JOIN_CACHE_BKA(join, tab, flags, prev_cache)) &&
> + ((options & SELECT_DESCRIBE) || !tab->cache->init()))
> return (6-test(!prev_cache));
> goto no_join_cache;
> }
> @@ -7702,9 +7699,8 @@
> {
> if (cache_level == 7)
> prev_cache= 0;
> - if ((options & SELECT_DESCRIBE) ||
> - ((tab->cache= new JOIN_CACHE_BKAH(join, tab, flags, prev_cache)) &&
> - !tab->cache->init()))
> + if ((tab->cache= new JOIN_CACHE_BKAH(join, tab, flags, prev_cache)) &&
> + ((options & SELECT_DESCRIBE) || !tab->cache->init()))
> {
> *idx_cond_fact_out= FALSE;
> return (8-test(!prev_cache));
> @@ -18923,8 +18919,11 @@
> }
> }
>
> - if (i > 0 && tab[-1].next_select == sub_select_cache)
> + if (tab->cache)
> + {
> extra.append(STRING_WITH_LEN("; Using join buffer"));
> + tab->cache->print_explain_comment(&extra);
> + }
>
> /* Skip initial "; "*/
> const char *str= extra.ptr();
>
> === modified file 'sql/sql_select.h'
> --- a/sql/sql_select.h 2010-10-06 20:27:12 +0000
> +++ b/sql/sql_select.h 2010-10-08 19:30:16 +0000
> @@ -885,7 +885,50 @@
> /* Check matching to a partial join record from the join buffer */
> bool check_match(uchar *rec_ptr);
>
> + /*
> + This constructor creates an unlinked join cache. The cache is to be
> + used to join table 'tab' to the result of joining the previous tables
> + specified by the 'j' parameter.
> + */
> + JOIN_CACHE(JOIN *j, JOIN_TAB *tab)
> + {
> + join= j;
> + join_tab= tab;
> + prev_cache= next_cache= 0;
> + buff= 0;
> + }
> +
> + /*
> + This constructor creates a linked join cache. The cache is to be
> + used to join table 'tab' to the result of joining the previous tables
> + specified by the 'j' parameter. The parameter 'prev' specifies the previous
> + cache object to which this cache is linked.
> + */
> + JOIN_CACHE(JOIN *j, JOIN_TAB *tab, JOIN_CACHE *prev)
> + {
> + join= j;
> + join_tab= tab;
> + next_cache= 0;
> + prev_cache= prev;
> + buff= 0;
> + if (prev)
> + prev->next_cache= this;
> + }
> +
> public:
> +
> + /*
> + The enumeration type Join_algorithm includes a mnemonic constant for
> + each join algorithm that employs join buffers
> + */
> +
> + enum Join_algorithm
> + {
> + BNL_JOIN_ALG, /* Block Nested Loop Join algorithm */
> + BNLH_JOIN_ALG, /* Block Nested Loop Hash Join algorithm */
> + BKA_JOIN_ALG, /* Batched Key Access Join algorithm */
> + BKAH_JOIN_ALG, /* Batched Key Access with Hash Table Join Algorithm */
> + };
>
> /*
> The enumeration type Match_flag describes possible states of the match flag
> @@ -926,6 +969,9 @@
> /* Shrink the size if the cache join buffer in a given ratio */
> bool shrink_join_buffer_in_ratio(ulonglong n, ulonglong d);
>
> + /* Shall return the type of the employed join algorithm */
> + virtual enum Join_algorithm get_join_alg()= 0;
> +
> /*
> The function shall return TRUE only when there is a key access
> to the join table
> @@ -971,6 +1017,9 @@
> /* Join records from the join buffer with records from the next join table */
> enum_nested_loop_state join_records(bool skip_last);
>
> + /* Add a comment on the join algorithm employed by the join cache */
> + void print_explain_comment(String *str);
> +
> virtual ~JOIN_CACHE() {}
> void reset_join(JOIN *j) { join= j; }
> void free()
> @@ -1241,6 +1290,22 @@
> /* Reallocate the join buffer of a hashed join cache */
> int realloc_buffer();
>
> + /*
> + This constructor creates an unlinked hashed join cache. The cache is to be
> + used to join table 'tab' to the result of joining the previous tables
> + specified by the 'j' parameter.
> + */
> + JOIN_CACHE_HASHED(JOIN *j, JOIN_TAB *tab) :JOIN_CACHE(j, tab) {}
> +
> + /*
> + This constructor creates a linked hashed join cache. The cache is to be
> + used to join table 'tab' to the result of joining the previous tables
> + specified by the 'j' parameter. The parameter 'prev' specifies the previous
> + cache object to which this cache is linked.
> + */
> + JOIN_CACHE_HASHED(JOIN *j, JOIN_TAB *tab, JOIN_CACHE *prev)
> + :JOIN_CACHE(j, tab, prev) {}
> +
> public:
>
> /* Initialize a hashed join cache */
> @@ -1368,12 +1433,7 @@
> used to join table 'tab' to the result of joining the previous tables
> specified by the 'j' parameter.
> */
> - JOIN_CACHE_BNL(JOIN *j, JOIN_TAB *tab)
> - {
> - join= j;
> - join_tab= tab;
> - prev_cache= next_cache= 0;
> - }
> + JOIN_CACHE_BNL(JOIN *j, JOIN_TAB *tab) :JOIN_CACHE(j, tab) {}
>
> /*
> This constructor creates a linked BNL join cache. The cache is to be
> @@ -1381,19 +1441,14 @@
> specified by the 'j' parameter. The parameter 'prev' specifies the previous
> cache object to which this cache is linked.
> */
> - JOIN_CACHE_BNL(JOIN *j, JOIN_TAB *tab, JOIN_CACHE *prev)
> - {
> - join= j;
> - join_tab= tab;
> - prev_cache= prev;
> - next_cache= 0;
> - if (prev)
> - prev->next_cache= this;
> - }
> + JOIN_CACHE_BNL(JOIN *j, JOIN_TAB *tab, JOIN_CACHE *prev)
> + :JOIN_CACHE(j, tab, prev) {}
>
> /* Initialize the BNL cache */
> int init();
>
> + enum Join_algorithm get_join_alg() { return BNL_JOIN_ALG; }
> +
> bool is_key_access() { return FALSE; }
>
> };
> @@ -1445,12 +1500,7 @@
> used to join table 'tab' to the result of joining the previous tables
> specified by the 'j' parameter.
> */
> - JOIN_CACHE_BNLH(JOIN *j, JOIN_TAB *tab)
> - {
> - join= j;
> - join_tab= tab;
> - prev_cache= next_cache= 0;
> - }
> + JOIN_CACHE_BNLH(JOIN *j, JOIN_TAB *tab) : JOIN_CACHE_HASHED(j, tab) {}
>
> /*
> This constructor creates a linked BNLH join cache. The cache is to be
> @@ -1458,19 +1508,14 @@
> specified by the 'j' parameter. The parameter 'prev' specifies the previous
> cache object to which this cache is linked.
> */
> - JOIN_CACHE_BNLH(JOIN *j, JOIN_TAB *tab, JOIN_CACHE *prev)
> - {
> - join= j;
> - join_tab= tab;
> - prev_cache= prev;
> - next_cache= 0;
> - if (prev)
> - prev->next_cache= this;
> - }
> + JOIN_CACHE_BNLH(JOIN *j, JOIN_TAB *tab, JOIN_CACHE *prev)
> + : JOIN_CACHE_HASHED(j, tab, prev) {}
>
> /* Initialize the BNLH cache */
> int init();
>
> + enum Join_algorithm get_join_alg() { return BNLH_JOIN_ALG; }
> +
> bool is_key_access() { return TRUE; }
>
> };
> @@ -1583,13 +1628,7 @@
> The MRR mode initially is set to 'flags'.
> */
> JOIN_CACHE_BKA(JOIN *j, JOIN_TAB *tab, uint flags)
> - {
> - join= j;
> - join_tab= tab;
> - prev_cache= next_cache= 0;
> - mrr_mode= flags;
> - }
> -
> + :JOIN_CACHE(j, tab), mrr_mode(flags) {}
> /*
> This constructor creates a linked BKA join cache. The cache is to be
> used to join table 'tab' to the result of joining the previous tables
> @@ -1598,21 +1637,15 @@
> The MRR mode initially is set to 'flags'.
> */
> JOIN_CACHE_BKA(JOIN *j, JOIN_TAB *tab, uint flags, JOIN_CACHE *prev)
> - {
> - join= j;
> - join_tab= tab;
> - prev_cache= prev;
> - next_cache= 0;
> - if (prev)
> - prev->next_cache= this;
> - mrr_mode= flags;
> - }
> + :JOIN_CACHE(j, tab, prev), mrr_mode(flags) {}
>
> uchar **get_curr_association_ptr() { return &curr_association; }
>
> /* Initialize the BKA cache */
> int init();
>
> + enum Join_algorithm get_join_alg() { return BKA_JOIN_ALG; }
> +
> bool is_key_access() { return TRUE; }
>
> /* Get the key built over the next record from the join buffer */
> @@ -1688,10 +1721,8 @@
> specified by the 'j' parameter.
> The MRR mode initially is set to 'flags'.
> */
> - JOIN_CACHE_BKAH(JOIN *j, JOIN_TAB *tab, uint flags) :JOIN_CACHE_BNLH(j, tab)
> - {
> - mrr_mode= flags;
> - }
> + JOIN_CACHE_BKAH(JOIN *j, JOIN_TAB *tab, uint flags)
> + :JOIN_CACHE_BNLH(j, tab), mrr_mode(flags) {}
>
> /*
> This constructor creates a linked BKAH join cache. The cache is to be
> @@ -1701,16 +1732,15 @@
> The MRR mode initially is set to 'flags'.
> */
> JOIN_CACHE_BKAH(JOIN *j, JOIN_TAB *tab, uint flags, JOIN_CACHE *prev)
> - :JOIN_CACHE_BNLH(j, tab, prev)
> - {
> - mrr_mode= flags;
> - }
> + :JOIN_CACHE_BNLH(j, tab, prev), mrr_mode(flags) {}
>
> uchar **get_curr_association_ptr() { return &curr_matching_chain; }
>
> /* Initialize the BKAH cache */
> int init();
>
> + enum Join_algorithm get_join_alg() { return BKAH_JOIN_ALG; }
> +
> /* Check index condition of the joined table for a record from BKAH cache */
> bool skip_index_tuple(char *range_info);
> };
>
> _______________________________________________
> commits mailing list
> commits@xxxxxxxxxxx
> https://lists.askmonty.org/cgi-bin/mailman/listinfo/commits
--
BR
Sergey
--
Sergey Petrunia, Software Developer
Monty Program AB, http://askmonty.org
Blog: http://s.petrunia.net/blog