1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-03 05:41:09 +03:00

Made join_cache_level == 2 by default.

This commit is contained in:
Igor Babaev
2011-12-15 14:26:59 -08:00
parent f5dac20f38
commit a910e8ef5b
54 changed files with 205 additions and 13 deletions

View File

@@ -4,9 +4,11 @@ drop view if exists v1,v2,v3,v4;
--enable_warnings
set @exit_optimizer_switch=@@optimizer_switch;
set @exit_join_cache_level=@@join_cache_level;
set optimizer_switch='derived_merge=on,derived_with_keys=on';
# The 'default' value within the scope of this test:
set @save_optimizer_switch=@@optimizer_switch;
set join_cache_level=1;
create table t1(f1 int, f11 int);
create table t2(f2 int, f22 int);
@@ -1276,3 +1278,4 @@ drop table t1,t2,t3;
# The following command must be the last one the file
set optimizer_switch=@exit_optimizer_switch;
set join_cache_level=@exit_join_cache_level;

View File

@@ -158,6 +158,10 @@ create table t3 (
insert into t1 values (1,'yes'), (2,'no');
insert into t2 values (1,1);
insert into t3 values (1,1);
set @save_join_cache_level=@@join_cache_level;
set join_cache_level=1;
EXPLAIN
SELECT DISTINCT
t1.id
@@ -195,6 +199,8 @@ WHERE
AND ((t1.id=j_lj_t3.id AND t3_lj.id IS NULL) OR (t1.id=t3.id AND t3.idx=2));
drop table t1,t2,t3;
set join_cache_level=@save_join_cache_level;
#
# Test using DISTINCT on a function that contains a group function
# This also test the case when one doesn't use all fields in GROUP BY.

View File

@@ -10,6 +10,9 @@
drop table if exists t1,t2,t3,t4,t5,t6,t7;
--enable_warnings
set @save_join_cache_level=@@join_cache_level;
set join_cache_level=1;
create table t1 (
c11 integer,c12 integer,c13 integer,c14 integer,c15 integer,c16 integer,
primary key (c11)
@@ -384,3 +387,5 @@ SET optimizer_search_depth = DEFAULT;
DROP TABLE t1,t2,t2_1,t3,t3_1,t4,t4_1,t5,t5_1;
--echo End of 5.0 tests
set join_cache_level=@save_join_cache_level;

View File

@@ -33,6 +33,8 @@ SELECT COUNT(*) FROM CountryLanguage;
show variables like 'join_buffer_size';
set join_cache_level=1;
show variables like 'join_cache_level';
EXPLAIN
@@ -196,7 +198,7 @@ SELECT Country.Name, Country.Population, City.Name, City.Population
DROP INDEX City_Population ON City;
DROP INDEX City_Name ON City;
set join_cache_level=default;
set join_cache_level=1;
set join_buffer_size=256;
show variables like 'join_buffer_size';
@@ -2191,6 +2193,8 @@ insert into t2 values (1,1),(2,2);
create table t3 (a int, b int);
insert into t3 values (1,1),(2,2);
set join_cache_level=1;
explain select t1.* from t1,t2,t3;
select t1.* from t1,t2,t3;

View File

@@ -5,6 +5,15 @@ DROP TABLE IF EXISTS t0,t1,t2,t3,t4,t5,t6,t7,t8,t9;
SET @save_optimizer_switch=@@optimizer_switch;
SET optimizer_switch=ifnull(@optimizer_switch_for_join_nested_test,'outer_join_with_cache=off');
if (`select @join_cache_level_for_join_nested_test is null`)
{
set join_cache_level=1;
}
if (`select @join_cache_level_for_join_nested_test is not null`)
{
set join_cache_level=@join_cache_level_for_join_nested_test;
}
CREATE TABLE t0 (a int, b int, c int);
CREATE TABLE t1 (a int, b int, c int);

View File

@@ -12,6 +12,7 @@ set join_cache_level=6;
show variables like 'join_cache_level';
set @optimizer_switch_for_join_nested_test=@@optimizer_switch;
set @join_cache_level_for_join_nested_test=@@join_cache_level;
--source t/join_nested.test
@@ -107,3 +108,4 @@ show variables like 'join_cache_level';
set @@optimizer_switch=@save_optimizer_switch_jcl6;
set @optimizer_switch_for_join_nested_test=NULL;
set @join_cache_level_for_join_nested_test=NULL;

View File

@@ -10,7 +10,14 @@ drop table if exists t0,t1,t2,t3,t4,t5;
SET @save_optimizer_switch=@@optimizer_switch;
SET optimizer_switch=ifnull(@optimizer_switch_for_join_outer_test,'outer_join_with_cache=off');
if (`select @join_cache_level_for_join_outer_test is null`)
{
set join_cache_level=1;
}
if (`select @join_cache_level_for_join_outer_test is not null`)
{
set join_cache_level=@join_cache_level_for_join_outer_test;
}
CREATE TABLE t1 (
grp int(11) default NULL,

View File

@@ -12,6 +12,7 @@ set join_cache_level=6;
show variables like 'join_cache_level';
set @optimizer_switch_for_join_outer_test=@@optimizer_switch;
set @join_cache_level_for_join_outer_test=@@join_cache_level;
--source t/join_outer.test
@@ -20,3 +21,4 @@ show variables like 'join_cache_level';
set @@optimizer_switch=@save_optimizer_switch_jcl6;
set @optimizer_switch_for_join_outer_test=NULL;
set @join_cache_level_for_join_outer_test=NULL;

View File

@@ -78,6 +78,9 @@ INSERT INTO t3 VALUES
(88, 442, 'y'), (99, 445, 'w'), (87, 442, 'z'), (98, 445, 'v'), (86, 442, 'x'),
(97, 445, 't'), (85, 442, 'b'), (96, 445, 'l'), (84, 442, 'a'), (95, 445, 'k');
set @save_join_cache_level=@@join_cache_level;
set join_cache_level=1;
SELECT COUNT(t1.v) FROM t1, t2 IGNORE INDEX (idx), t3 IGNORE INDEX (idx)
WHERE t3.v = t2.v AND t3.i < t2.i AND t3.pk > 0 AND t2.pk > 0;
EXPLAIN
@@ -90,6 +93,8 @@ EXPLAIN
SELECT COUNT(t1.v) FROM t1, t2, t3
WHERE t3.v = t2.v AND t3.i < t2.i AND t3.pk > 0 AND t2.pk > 0;
set join_cache_level=@save_join_cache_level;
DROP TABLE t1,t2,t3;
--echo #

View File

@@ -15,6 +15,14 @@ drop view if exists v1;
SET @save_optimizer_switch=@@optimizer_switch;
SET optimizer_switch=ifnull(@optimizer_switch_for_select_test,'outer_join_with_cache=off');
if (`select @join_cache_level_for_select_test is null`)
{
set join_cache_level=1;
}
if (`select @join_cache_level_for_select_test is not null`)
{
set join_cache_level=@join_cache_level_for_select_test;
}
CREATE TABLE t1 (
Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,

View File

@@ -12,6 +12,7 @@ set join_cache_level=6;
show variables like 'join_cache_level';
set @optimizer_switch_for_select_test=@@optimizer_switch;
set @join_cache_level_for_select_test=@@join_cache_level;
--source t/select.test
@@ -20,3 +21,4 @@ show variables like 'join_cache_level';
set @@optimizer_switch=@save_optimizer_switch_jcl6;
set @optimizer_switch_for_select_test=NULL;
set @join_cache_level_for_select_test=NULL;

View File

@@ -15,7 +15,16 @@ drop view if exists v2;
set @subselect_tmp=@@optimizer_switch;
set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test,
"semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on,partial_match_rowid_merge=off,partial_match_table_scan=off");
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
if (`select @join_cache_level_for_subselect_test is null`)
{
set join_cache_level=1;
}
if (`select @join_cache_level_for_subselect_test is not null`)
{
set join_cache_level=@join_cache_level_for_subselect_test;
}
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
select (select 2);
explain extended select (select 2);

View File

@@ -4,6 +4,14 @@ drop table if exists t0, t1, t2, t3, t4, t5, t11, t12, t21, t22;
set @subselect3_tmp= @@optimizer_switch;
set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on';
if (`select @join_cache_level_for_subselect3_test is null`)
{
set join_cache_level=1;
}
if (`select @join_cache_level_for_subselect3_test is not null`)
{
set join_cache_level=@join_cache_level_for_subselect3_test;
}
#
# 1. Subquery with GROUP/HAVING

View File

@@ -11,9 +11,12 @@ set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
set join_cache_level=6;
show variables like 'join_cache_level';
set @join_cache_level_for_subselect3_test=@@join_cache_level;
--source t/subselect3.test
set join_cache_level=default;
show variables like 'join_cache_level';
set @@optimizer_switch=@save_optimizer_switch;
set @join_cache_level_for_subselect3_test=NULL;

View File

@@ -5,8 +5,13 @@ select @@optimizer_switch like '%materialization=on%';
set optimizer_switch='materialization=off';
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
set join_cache_level=1;
set @join_cache_level_for_subselect_test=@@join_cache_level;
--source t/subselect.test
set optimizer_switch=default;
select @@optimizer_switch like '%materialization=on%';
set @join_cache_level_for_subselect_test=NULL;

View File

@@ -4,6 +4,10 @@
set @optimizer_switch_for_subselect_test='materialization=off,semijoin=off,subquery_cache=off,mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
set join_cache_level=1;
set @join_cache_level_for_subselect_test=@@join_cache_level;
--source t/subselect.test
set @optimizer_switch_for_subselect_test=null;

View File

@@ -4,8 +4,12 @@
select @@optimizer_switch like '%subquery_cache=on%';
set optimizer_switch='subquery_cache=off';
set join_cache_level=1;
set @join_cache_level_for_subselect_test=@@join_cache_level;
--source t/subselect.test
set optimizer_switch=default;
select @@optimizer_switch like '%subquery_cache=on%';
set @join_cache_level_for_subselect_test=NULL;

View File

@@ -3,6 +3,10 @@
#
set @optimizer_switch_for_subselect_test='semijoin=off,mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
set join_cache_level=1;
set @join_cache_level_for_subselect_test=@@join_cache_level;
--source t/subselect.test
set @optimizer_switch_for_subselect_test=null;
set @join_cache_level_for_subselect_test=NULL;

View File

@@ -12,6 +12,14 @@ set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on';
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
SET optimizer_switch=ifnull(@optimizer_switch_for_subselect_sj_test,'outer_join_with_cache=off');
SET optimizer_switch=ifnull(@optimizer_switch_for_subselect_sj_test,'semijoin_with_cache=off');
if (`select @join_cache_level_for_subselect_sj_test is null`)
{
set join_cache_level=1;
}
if (`select @join_cache_level_for_subselect_sj_test is not null`)
{
set join_cache_level=@join_cache_level_for_subselect_sj_test;
}
# The 'default' value within the scope of this test:
set @save_optimizer_switch=@@optimizer_switch;

View File

@@ -8,6 +8,14 @@ set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on';
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
SET optimizer_switch=ifnull(@optimizer_switch_for_subselect_sj2_test,'outer_join_with_cache=off');
SET optimizer_switch=ifnull(@optimizer_switch_for_subselect_sj2_test,'semijoin_with_cache=off');
if (`select @join_cache_level_for_subselect_sj2_test is null`)
{
set join_cache_level=1;
}
if (`select @join_cache_level_for_subselect_sj2_test is not null`)
{
set join_cache_level=@join_cache_level_for_subselect_sj2_test;
}
--disable_warnings
drop table if exists t0, t1, t2, t3, t4, t5;

View File

@@ -12,6 +12,7 @@ set join_cache_level=6;
show variables like 'join_cache_level';
set @optimizer_switch_for_subselect_sj2_test=@@optimizer_switch;
set @join_cache_level_for_subselect_sj2_test=@@join_cache_level;
--source t/subselect_sj2.test
@@ -104,4 +105,5 @@ show variables like 'join_cache_level';
set @@optimizer_switch=@save_optimizer_switch_jcl6;
set @optimizer_switch_for_subselect_sj2_test=NULL;
set @join_cache_level_subselect_sj2_test=NULL;

View File

@@ -14,6 +14,7 @@ set join_cache_level=6;
show variables like 'join_cache_level';
set @optimizer_switch_for_subselect_sj_test=@@optimizer_switch;
set @join_cache_level_for_subselect_sj_test=@@join_cache_level;
--source t/subselect_sj.test
@@ -94,3 +95,4 @@ show variables like 'join_cache_level';
set @@optimizer_switch=@save_optimizer_switch_jcl6;
set @optimizer_switch_for_subselect_sj_test=NULL;
set @join_cache_level_subselect_sj_test=NULL;

View File

@@ -7,6 +7,8 @@ set @subselect_sj_mat_tmp= @@optimizer_switch;
set optimizer_switch=ifnull(@subselect_mat_test_optimizer_switch_value, 'semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on');
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
set @optimizer_switch_local_default= @@optimizer_switch;
set @save_join_cache_level=@@join_cache_level;
set join_cache_level=1;
--disable_warnings
drop table if exists t1, t2, t3, t4, t5, t1i, t2i, t3i;
@@ -1497,4 +1499,5 @@ DROP TABLE t1;
--echo # This must be at the end:
set optimizer_switch=@subselect_sj_mat_tmp;
set join_cache_level=@save_join_cache_level;