developers
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
October 2010
- 15 participants
- 41 discussions
Re: [Maria-developers] [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/
by Sergey Petrunya 18 Oct '10
by Sergey Petrunya 18 Oct '10
18 Oct '10
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(a)askmonty.org-20101008193016-r9cuu8bvkpa1bmxg
> parent: igor(a)askmonty.org-20101006202712-ehecsi9kc0tj52jc
> committer: Igor Babaev <igor(a)askmonty.org>
> 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(a)mariadb.org
> 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
1
0
[Maria-developers] Discussion on more unified development of MySQL(MariaDB) code base (Re: Live Schema Changes)
by Henrik Ingo 15 Oct '10
by Henrik Ingo 15 Oct '10
15 Oct '10
> On Fri, Sep 24, 2010 at 12:51 AM, Kristian Nielsen
> <knielsen(a)knielsen-hq.org> wrote:
>> MARK CALLAGHAN <mdcallag(a)gmail.com> writes:
>>
>>> Define "properly"? I suspect you mean that you want us to spend the
>>> time to get our changes into MariaDB.
>>
>> No, that is not what I meant. I meant write code, tests, etc. like what you
>> and I want to see in the MySQL source. You have often voiced opinions on
>> quality of code, tests, etc., and I believe we think very much alike in this
>> respect.
>>
>> The concrete example was extending the alter table API to better support
>> online schema changes. When we did this at MySQL for online add column in NDB
>> Cluster, we designed it as a general extension to the storage engine API, not
>> as some special case. I think this is what everyone would expect from MySQL
>> sources.
>>
>> But doing such features in a general way, thinking about all use cases and
>> corner cases, can be _much_ more work than making something work well for a
>> given problem at hand. I fully understand the temptation, or even need, to
>> solve the smaller problem instead.
>>
>> My motivation is that I want to see the MySQL source base (under whatever
>> name), see revolutionary improvements long-term. I want to see full parallel
>> replication working with any engine that implements the necessary storage
>> engine API. I want to see a good backup solution that works with different
>> engines. I want to see replication that recovers reliably from crashes and has
>> robust and easy master promotion capabilities. Etc.
>>
>> And I believe to get this we will need not just to add isolated features
>> (whether as individual patches or collected in bzr branches); we will also
>> eventually have to evolve the storage engine API, add new plugin interfaces,
>> etc. That is a lot of work, which is hard to justify for an individual
>> MySQL-using organisation. So I want to encourage everyone to participate in
>> this who might be able to.
On Fri, Sep 24, 2010 at 6:11 PM, MARK CALLAGHAN <mdcallag(a)gmail.com> wrote:
> I agree with you about that being the proper way to advance the MySQL
> family and that the MariaDB project has been open and inclusive
> towards external developers like myself. Hopefully, more can come from
> this and this is a topic to discuss in Istanbul.
On Mon, Oct 4, 2010 at 1:34 PM, Henrik Ingo <henrik.ingo(a)avoinelama.fi> wrote:
> This is something I'm always interested in. It seems most of us
> understand where we need to go, but we don't know yet how to get
> there... How do we convince Mark/Mark's boss that this is the best way
> to develop MySQL codebase also from Facebook's point of view? (long
> term we can make much bigger advances?) Where should this unified
> development happen? (MariaDB? Is Maria open enough, responsive enough?
> fast enough?)
>
> Kristian, do you want to schedule a "hacking in groups" / unconference
> time slot for this?
We agreed with Kristian that I will host this and I probably have more
bandwidth anyway...
...so the invitation is now set for the Saturday evening unconference
slot to anyone who wants to spend 30 minutes discussing how we could
work in a more unified and collaborative way (like Linux or many other
FOSS projects do), rather than each entity having its own branch.
http://askmonty.org/wiki/Istanbul2010_Program
Let me know if the time is bad for you. Note that I'm not a developer
so I'm just hosting it, you guys need to figure out how this should
work.
If you won't be in Istanbul but are interested in this topic, you can
be in touch with me via email (or irc, skype, phone) beforehand.
henrik
--
henrik.ingo(a)avoinelama.fi
+358-40-5697354
www.openlife.cc
1
1
[Maria-developers] WL#161 New (by Sergei): Global PS cache
by worklog-noreply@askmonty.org 14 Oct '10
by worklog-noreply@askmonty.org 14 Oct '10
14 Oct '10
-----------------------------------------------------------------------
WORKLOG TASK
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
TASK...........: Global PS cache
CREATION DATE..: Thu, 14 Oct 2010, 10:02
SUPERVISOR.....:
IMPLEMENTOR....:
COPIES TO......:
CATEGORY.......: Client-RawIdeaBin
TASK ID........: 161 (http://askmonty.org/worklog/?tid=161)
VERSION........: WorkLog-4.0
STATUS.........: Un-Assigned
PRIORITY.......: 60
WORKED HOURS...: 0
ESTIMATE.......: 0 (hours remain)
ORIG. ESTIMATE.: 0
PROGRESS NOTES:
DESCRIPTION:
This task was requested by connector developers - presumably, prepared
statements will be faster, if there will be no need to re-prepare them for every
new connection. In other words, we may want to implement a global cache for
prepared statements.
ESTIMATED WORK TIME
ESTIMATED COMPLETION DATE
-----------------------------------------------------------------------
WorkLog (v4.0.0)
1
0
[Maria-developers] WL#160 New (by Sergei): Array binding/bulk operations
by worklog-noreply@askmonty.org 14 Oct '10
by worklog-noreply@askmonty.org 14 Oct '10
14 Oct '10
-----------------------------------------------------------------------
WORKLOG TASK
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
TASK...........: Array binding/bulk operations
CREATION DATE..: Thu, 14 Oct 2010, 09:58
SUPERVISOR.....:
IMPLEMENTOR....:
COPIES TO......:
CATEGORY.......: Client-RawIdeaBin
TASK ID........: 160 (http://askmonty.org/worklog/?tid=160)
VERSION........: WorkLog-4.0
STATUS.........: Un-Assigned
PRIORITY.......: 60
WORKED HOURS...: 0
ESTIMATE.......: 0 (hours remain)
ORIG. ESTIMATE.: 0
PROGRESS NOTES:
DESCRIPTION:
This is a task from MySQL Worklog
(http://forge.mysql.com/worklog/task.php?id=881) that was requested many times
by connector developers.
If MySQL won't get it, we may consider implementing it in MariaDB.
ESTIMATED WORK TIME
ESTIMATED COMPLETION DATE
-----------------------------------------------------------------------
WorkLog (v4.0.0)
1
0
[Maria-developers] WL#159 New (by Sergei): New api functions: mysql_stmt_get_data, mysql_stmt_get_column_length
by worklog-noreply@askmonty.org 14 Oct '10
by worklog-noreply@askmonty.org 14 Oct '10
14 Oct '10
-----------------------------------------------------------------------
WORKLOG TASK
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
TASK...........: New api functions: mysql_stmt_get_data, mysql_stmt_get_column_length
CREATION DATE..: Thu, 14 Oct 2010, 09:58
SUPERVISOR.....:
IMPLEMENTOR....:
COPIES TO......:
CATEGORY.......: Client-RawIdeaBin
TASK ID........: 159 (http://askmonty.org/worklog/?tid=159)
VERSION........: WorkLog-4.0
STATUS.........: Un-Assigned
PRIORITY.......: 60
WORKED HOURS...: 0
ESTIMATE.......: 0 (hours remain)
ORIG. ESTIMATE.: 0
PROGRESS NOTES:
DESCRIPTION:
This is a task from MySQL Worklog
(http://forge.mysql.com/worklog/task.php?id=3191) that was requested many times
by connector developers.
If MySQL won't get it, we may consider implementing it in MariaDB.
ESTIMATED WORK TIME
ESTIMATED COMPLETION DATE
-----------------------------------------------------------------------
WorkLog (v4.0.0)
1
0
[Maria-developers] WL#158 New (by Sergei): Prepare any SQL
by worklog-noreply@askmonty.org 14 Oct '10
by worklog-noreply@askmonty.org 14 Oct '10
14 Oct '10
-----------------------------------------------------------------------
WORKLOG TASK
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
TASK...........: Prepare any SQL
CREATION DATE..: Thu, 14 Oct 2010, 09:56
SUPERVISOR.....:
IMPLEMENTOR....:
COPIES TO......:
CATEGORY.......: Server-RawIdeaBin
TASK ID........: 158 (http://askmonty.org/worklog/?tid=158)
VERSION........: WorkLog-4.0
STATUS.........: Un-Assigned
PRIORITY.......: 60
WORKED HOURS...: 0
ESTIMATE.......: 0 (hours remain)
ORIG. ESTIMATE.: 0
PROGRESS NOTES:
DESCRIPTION:
This is a task from MySQL Worklog
(http://forge.mysql.com/worklog/task.php?id=2871) that was requested many times
by connector developers.
If MySQL won't get it, we may consider implementing it in MariaDB
ESTIMATED WORK TIME
ESTIMATED COMPLETION DATE
-----------------------------------------------------------------------
WorkLog (v4.0.0)
1
0
[Maria-developers] Performance problem: need index-based access when have only non-sargable conditions
by Sergey Petrunya 13 Oct '10
by Sergey Petrunya 13 Oct '10
13 Oct '10
Hi!
I was asked about this performance problem: consider a query
select * from tbl where tbl.key like '%foo%'
Table records are big, much larger than the length of the key. LIKE condition
is very selective, however its pattern starts with '%', so we can't construct
range access (and they are really searching for matches in word
suffixes/infixes, so fulltext index isn't an option).
The desired execution strategy is:
- Scan the index on tbl.key and collect index tuples that match the LIKE
condition.
- For those index tuples, retrieve full records.
One can simulate it by rewriting the query as a self join:
select * from tbl A, tbl B
where
B.primary_key = A.primary_key AND B.key LIKE '%foo%';
However, in this particular case they have a problem doing such rewrites
because the queries are generated by some ORM tool.
Proposed solution from our side
-------------------------------
It is not difficult to add an execution strategy like this
get_next_record()
{
read index tuple;
if (condition satisified)
{
read full record
}
}
(with optional rowid-ordered retrieval for full records).
The difficult part is to find a way to decided whether this strategy should be
used. We have no meaningful selectivity estimates for 'column LIKE '%foo%'.
The only way we could achieve this is by having the user manually specify
condition selectivities. I can see one way to achieve this without getting into
painful syntax modifications:
select * from tbl where selectivity(tbl.key like '%foo%', 0.05)
here 'selectivity(X,y)' will evaluate to value of X, but will also inform the
optimizer that P(X is true)=y.
Any thoughts about this?
BR
Sergey
--
Sergey Petrunia, Software Developer
Monty Program AB, http://askmonty.org
Blog: http://s.petrunia.net/blog
2
1
[Maria-developers] WL#157 New (by Frank): Option to show all (currently) marked as crashed tables
by worklog-noreply@askmonty.org 11 Oct '10
by worklog-noreply@askmonty.org 11 Oct '10
11 Oct '10
-----------------------------------------------------------------------
WORKLOG TASK
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
TASK...........: Option to show all (currently) marked as crashed tables
CREATION DATE..: Mon, 11 Oct 2010, 09:10
SUPERVISOR.....:
IMPLEMENTOR....:
COPIES TO......:
CATEGORY.......: Server-RawIdeaBin
TASK ID........: 157 (http://askmonty.org/worklog/?tid=157)
VERSION........: Server-9.x
STATUS.........: Un-Assigned
PRIORITY.......: 60
WORKED HOURS...: 0
ESTIMATE.......: 0 (hours remain)
ORIG. ESTIMATE.: 0
PROGRESS NOTES:
DESCRIPTION:
We'd like to have a way to retrieve the currently "marked as crashed" tables.
At the moment we're parsing the error log, but there should be an easier way of
doing this.
Parsing the log is not 100%, since the log may still contain tables already
repaired. A command ("show crashed tables") could just show the currently
crashed tables.
ESTIMATED WORK TIME
ESTIMATED COMPLETION DATE
-----------------------------------------------------------------------
WorkLog (v4.0.0)
1
0
[Maria-developers] WL#156 New (by Dreas): Add mysqlcheck option to directly repair
by worklog-noreply@askmonty.org 10 Oct '10
by worklog-noreply@askmonty.org 10 Oct '10
10 Oct '10
-----------------------------------------------------------------------
WORKLOG TASK
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
TASK...........: Add mysqlcheck option to directly repair
CREATION DATE..: Sun, 10 Oct 2010, 12:58
SUPERVISOR.....:
IMPLEMENTOR....:
COPIES TO......:
CATEGORY.......: Client-BackLog
TASK ID........: 156 (http://askmonty.org/worklog/?tid=156)
VERSION........: Benchmarks-3.0
STATUS.........: Un-Assigned
PRIORITY.......: 60
WORKED HOURS...: 0
ESTIMATE.......: 0 (hours remain)
ORIG. ESTIMATE.: 0
PROGRESS NOTES:
DESCRIPTION:
Currently when there are corrupt MyISAM tables, you need to run mysqlcheck with --
auto-repair to get the broken tables fixed. The repair action however occurs at
the end, after ALL tables have first been checked. This is inconvenient cause you
want to repair any broken tables ideally as soon as the corruption is detected so
the table becomes fixed and accessible. So I'd like to get an option which will
directly run the repair when corruption is detected, instead of waiting until all
tables are checked.
ESTIMATED WORK TIME
ESTIMATED COMPLETION DATE
-----------------------------------------------------------------------
WorkLog (v4.0.0)
1
0
[Maria-developers] I am more than happy to test aria with large databases
by Mark Nielsen 09 Oct '10
by Mark Nielsen 09 Oct '10
09 Oct '10
I am not a coder, but I can probably help anyways for development.
I have CentOS systems at work which I can happily run tests against with
large real-world data. They are development systems I can trash.
i can't change CentOS that easily (maybe I can use virtual machines), but I
can put whatever version of MariaDB on my systems and runs tests against
it.
If someone wants me to run tests, let me know.
When the Aria tables can be used with MERGE, I will be very very happy to
test it using a terabyte of data. The Aria engine has some some advantages
over MyISAM and InnoDB for some report servers I wish to setup. MERGE is one
of the last things for me to recommend it.
Anyways, any testing is fine with me. I only have CentOS systems though.
Mark
2
2