1
############# mysql-test\t\sql_big_selects_func.test ######################
3
# Variable Name: sql_big_selects #
5
# Access Type: Dynamic #
7
# Default Value: 1 TRUE #
8
# Values: 1 TRUE, 0 FALSE #
11
# Creation Date: 2008-02-25 #
12
# Author: Sharique Abdullah #
14
# Description: Test Cases of Dynamic System Variable "sql_big_selects" #
15
# that checks behavior of this variable in the following ways#
16
# * Functionality based on different values #
18
# Reference: http://dev.mysql.com/doc/refman/5.1/en/set-option.html #
20
###########################################################################
28
SET @session_sql_big_selects = @@SESSION.sql_big_selects;
29
SET @session_max_join_size = @@SESSION.max_join_size;
30
SET @global_max_join_size = @@GLOBAL.max_join_size;
31
SET SQL_MAX_JOIN_SIZE=9;
37
CREATE TEMPORARY TABLE t1(a varchar(20) not null, b varchar(20));
38
CREATE TEMPORARY TABLE t2(a varchar(20) null, b varchar(20));
40
INSERT INTO t1 VALUES('aa','bb');
41
INSERT INTO t1 VALUES('aa1','bb');
42
INSERT INTO t1 VALUES('aa2','bb');
43
INSERT INTO t1 VALUES('aa3','bb');
44
INSERT INTO t1 VALUES('aa4','bb');
46
INSERT INTO t2 VALUES('aa','bb');
47
INSERT INTO t2 VALUES('aa1','bb');
48
INSERT INTO t2 VALUES('aa2','bb');
49
INSERT INTO t2 VALUES('aa3','bb');
50
INSERT INTO t2 VALUES('aa4','bb');
52
--echo '#--------------------FN_DYNVARS_154_01-------------------------#'
54
# Testing fail condition
57
--echo Expected error "Too big select"
58
--error ER_TOO_BIG_SELECT
59
SELECT * FROM t1 INNER JOIN t2 ON t1.a = t2.a;
60
--echo Expected error The SELECT would examine more than MAX_JOIN_SIZE rows.
62
--echo '#--------------------FN_DYNVARS_154_02-------------------------#'
64
# Testing pass conditions
67
SET SESSION SQL_BIG_SELECTS = 1;
69
SELECT * FROM t1 INNER JOIN t2 ON t1.a = t2.a;
70
--echo This should work
72
SET SESSION SQL_BIG_SELECTS = 0;
74
DELETE FROM t2 WHERE a = 'aa4';
75
SELECT * FROM t1 INNER JOIN t2 ON t1.a = t2.a;
76
--echo This should work
78
--echo '#--------------------FN_DYNVARS_154_03-------------------------#'
80
# Session data integrity check
83
--echo ** Connecting con_int1 using root **
84
connect (con_int1,localhost,root,,);
86
--echo ** Connection con_int1 **
89
SELECT @@SESSION.sql_big_selects;
91
SET SESSION sql_big_selects = 0;
93
--echo ** Connecting con_int2 using root **
94
connect (con_int2,localhost,root,,);
96
--echo ** Connection con_int2 **
99
SELECT @@SESSION.sql_big_selects;
102
SET SESSION sql_big_selects = 1;
104
--echo ** Connection con_int1 **
107
SELECT @@SESSION.sql_big_selects;
110
--echo ** Connection con_int2 **
113
SELECT @@SESSION.sql_big_selects;
116
--echo ** Connection default **
119
--echo Disconnecting Connections con_int1, con_int2
128
SET @@SESSION.sql_big_selects = @session_sql_big_selects;
129
SET @@SESSION.max_join_size = @session_max_join_size;
130
SET @@GLOBAL.max_join_size = @global_max_join_size;