mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge.
This commit is contained in:
@ -5577,8 +5577,8 @@ EXPLAIN
|
||||
SELECT * FROM t1, t2 LEFT JOIN t3 ON t2.b=t3.b WHERE 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 2
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join)
|
||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (incremental, BNL join)
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 12 Using where
|
||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 3 Using where
|
||||
SELECT * FROM t1, t2 LEFT JOIN t3 ON t2.b=t3.b WHERE t1.a=t2.a;
|
||||
a a b b c
|
||||
3 3 30 30 300
|
||||
@ -5703,4 +5703,27 @@ select @counter;
|
||||
2
|
||||
drop table t1,t2,t3;
|
||||
set expensive_subquery_limit=default;
|
||||
#
|
||||
# mdev-6071: EXPLAIN chooses to use join buffer while execution turns it down
|
||||
#
|
||||
create table t1 (a int);
|
||||
insert into t1 values
|
||||
(7), (9), (1), (4), (2), (3), (5), (8), (11), (6), (10);
|
||||
explain select count(*) from t1, t1 t2 where 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 11
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 11 Using where; Using join buffer (flat, BNL join)
|
||||
set join_buffer_space_limit=1024*8;
|
||||
select @@join_buffer_space_limit;
|
||||
@@join_buffer_space_limit
|
||||
8192
|
||||
select @@join_buffer_size;
|
||||
@@join_buffer_size
|
||||
131072
|
||||
explain select count(*) from t1, t1 t2 where 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 11
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 11 Using where
|
||||
set join_buffer_space_limit=default;
|
||||
drop table t1;
|
||||
set @@optimizer_switch=@save_optimizer_switch;
|
||||
|
@ -94,6 +94,7 @@ id select_type tABle type possiBle_keys key key_len ref rows filtered ExtrA
|
||||
2 MATERIALIZED t10 index PRIMARY PRIMARY 4 NULL 10 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`.`t1`.`A`,`test`.`t1`.`A` in ( <mAteriAlize> (select `test`.`t10`.`pk` from `test`.`t10` ), <primAry_index_lookup>(`test`.`t1`.`A` in <temporAry tABle> on distinct_key where ((`test`.`t1`.`A` = `<suBquery2>`.`pk`))))))) where 1
|
||||
set join_buffer_size=8*1024;
|
||||
we shouldn't flatten if we're going to get a join of > MAX_TABLES.
|
||||
explain select * from
|
||||
t1 s00, t1 s01, t1 s02, t1 s03, t1 s04,t1 s05,t1 s06,t1 s07,t1 s08,t1 s09,
|
||||
@ -185,6 +186,7 @@ a b a b
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
2 2 2 2
|
||||
set join_buffer_size=default;
|
||||
prepare s1 from
|
||||
' select * from
|
||||
t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10))
|
||||
|
@ -107,6 +107,7 @@ id select_type tABle type possiBle_keys key key_len ref rows filtered ExtrA
|
||||
2 MATERIALIZED t10 index PRIMARY PRIMARY 4 NULL 10 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`.`t1`.`A`,`test`.`t1`.`A` in ( <mAteriAlize> (select `test`.`t10`.`pk` from `test`.`t10` ), <primAry_index_lookup>(`test`.`t1`.`A` in <temporAry tABle> on distinct_key where ((`test`.`t1`.`A` = `<suBquery2>`.`pk`))))))) where 1
|
||||
set join_buffer_size=8*1024;
|
||||
we shouldn't flatten if we're going to get a join of > MAX_TABLES.
|
||||
explain select * from
|
||||
t1 s00, t1 s01, t1 s02, t1 s03, t1 s04,t1 s05,t1 s06,t1 s07,t1 s08,t1 s09,
|
||||
@ -198,6 +199,7 @@ a b a b
|
||||
0 0 0 0
|
||||
1 1 1 1
|
||||
2 2 2 2
|
||||
set join_buffer_size=default;
|
||||
prepare s1 from
|
||||
' select * from
|
||||
t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10))
|
||||
|
@ -3700,5 +3700,26 @@ select @counter;
|
||||
drop table t1,t2,t3;
|
||||
set expensive_subquery_limit=default;
|
||||
|
||||
--echo #
|
||||
--echo # mdev-6071: EXPLAIN chooses to use join buffer while execution turns it down
|
||||
--echo #
|
||||
|
||||
create table t1 (a int);
|
||||
insert into t1 values
|
||||
(7), (9), (1), (4), (2), (3), (5), (8), (11), (6), (10);
|
||||
|
||||
explain select count(*) from t1, t1 t2 where t1.a=t2.a;
|
||||
|
||||
set join_buffer_space_limit=1024*8;
|
||||
select @@join_buffer_space_limit;
|
||||
select @@join_buffer_size;
|
||||
|
||||
explain select count(*) from t1, t1 t2 where t1.a=t2.a;
|
||||
|
||||
set join_buffer_space_limit=default;
|
||||
|
||||
drop table t1;
|
||||
|
||||
# The following command must be the last one the file
|
||||
# this must be the last command in the file
|
||||
set @@optimizer_switch=@save_optimizer_switch;
|
||||
|
@ -79,6 +79,8 @@ select * from t1 left join (t2 A, t2 B) on ( A.a= t1.a and B.a in (select pk fro
|
||||
explain extended
|
||||
select * from t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10));
|
||||
|
||||
set join_buffer_size=8*1024;
|
||||
|
||||
--echo we shouldn't flatten if we're going to get a join of > MAX_TABLES.
|
||||
explain select * from
|
||||
t1 s00, t1 s01, t1 s02, t1 s03, t1 s04,t1 s05,t1 s06,t1 s07,t1 s08,t1 s09,
|
||||
@ -97,6 +99,8 @@ select * from
|
||||
t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10))
|
||||
where t1.a < 5;
|
||||
|
||||
set join_buffer_size=default;
|
||||
|
||||
#
|
||||
# Prepared statements
|
||||
#
|
||||
|
Reference in New Issue
Block a user