1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
# Test for max_seeks_for_key #
--source include/default_optimizer_switch.inc
set @@global.optimizer_switch=@@local.optimizer_switch;
set @@global.join_cache_level=@@local.join_cache_level;
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
#########################
# Creating new table #
#########################
CREATE TABLE t1
(a INT AUTO_INCREMENT PRIMARY KEY,
b CHAR(20)
);
SET @start_value= @@global.max_seeks_for_key;
--echo '#--------------------FN_DYNVARS_084_01-------------------------#'
##########################################################
# Test behavior of variable on new connection # 01 #
##########################################################
CONNECT (test_con1,localhost,root,,);
CONNECTION test_con1;
# Setting global value of variable and inserting data in table
SET @@global.max_seeks_for_key = 20;
SELECT @@global.max_seeks_for_key;
INSERT INTO t1(b) VALUES("AREc");
EXPLAIN SELECT STRAIGHT_JOIN * FROM t1,t1 AS t2 WHERE t1.b = t2.b;
# Setting session value of variable and inserting data in table
SET @@session.max_seeks_for_key = 2;
SELECT @@session.max_seeks_for_key;
INSERT INTO t1(b) VALUES("BREc");
INSERT INTO t1(b) VALUES("CRec");
EXPLAIN SELECT STRAIGHT_JOIN * FROM t1,t1 AS t2 WHERE t1.b = t2.b;
--echo '#--------------------FN_DYNVARS_084_02-------------------------#'
##########################################################
# Test behavior of variable on new connection # 02 #
##########################################################
CONNECT (test_con2,localhost,root,,);
connection test_con2;
# Value of session & global vairable here should be 10
SELECT @@global.max_seeks_for_key = 10;
SELECT @@session.max_seeks_for_key = 10;
# Setting global value of variable and inserting data in table
SET @@global.max_seeks_for_key = 20;
SELECT @@global.max_seeks_for_key;
INSERT INTO t1(b) VALUES("AREc");
EXPLAIN SELECT STRAIGHT_JOIN * FROM t1,t1 AS t2 WHERE t1.b = t2.b;
# Setting session value of variable and inserting data in table
SET @@session.max_seeks_for_key = 2;
SELECT @@session.max_seeks_for_key;
INSERT INTO t1(b) VALUES("BREc");
INSERT INTO t1(b) VALUES("CRec");
EXPLAIN SELECT STRAIGHT_JOIN * FROM t1,t1 AS t2 WHERE t1.b = t2.b;
######################################################
# Inserting values in table t and analyzing table #
######################################################
INSERT INTO t1 VALUES(null,"test");
INSERT INTO t1 VALUES (null,"a"),(null,"a"),(null,"a"),
(null,"a"),(null,"a"),(null,"a"),(null,"a"),
(null,"a"),(null,"a"),(null,"a");
EXPLAIN SELECT STRAIGHT_JOIN * FROM t1,t1 AS t2 WHERE t1.b = t2.b;
ANALYZE TABLE t1;
###################################################################
# Setting new value for max_seeks_for_key and anaylyzing table #
###################################################################
SET MAX_SEEKS_FOR_KEY=1;
EXPLAIN SELECT STRAIGHT_JOIN * FROM t1,t1 AS t2 WHERE t1.b = t2.b;
SET MAX_SEEKS_FOR_KEY=DEFAULT;
connection default;
disconnect test_con1;
disconnect test_con2;
DROP TABLE t1;
SET @@global.max_seeks_for_key= @start_value;
SET @@global.optimizer_switch= @save_optimizer_switch;
SET @@global.join_cache_level= @save_join_cache_level;
|