~jlukas79/+junk/mysql-server

« back to all changes in this revision

Viewing changes to mysql-test/t/sql_big_selects_func.test

manual merge 6.0-main --> 6.0-bka-review

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
############# mysql-test\t\sql_big_selects_func.test ######################
 
2
#                                                                         #
 
3
# Variable Name: sql_big_selects                                          #
 
4
# Scope: SESSION                                                          #
 
5
# Access Type: Dynamic                                                    #
 
6
# Data Type: BOOLEAN                                                      #
 
7
# Default Value: 1 TRUE                                                   #
 
8
# Values:       1 TRUE, 0 FALSE                                           #
 
9
#                                                                         #
 
10
#                                                                         #
 
11
# Creation Date: 2008-02-25                                               #
 
12
# Author:  Sharique Abdullah                                              #
 
13
#                                                                         #
 
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                  #
 
17
#                                                                         #
 
18
# Reference: http://dev.mysql.com/doc/refman/5.1/en/set-option.html       #
 
19
#                                                                         #
 
20
###########################################################################
 
21
 
 
22
--echo ** Setup **
 
23
--echo
 
24
#
 
25
# Setup
 
26
#
 
27
 
 
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;
 
32
 
 
33
#
 
34
# Create tables
 
35
#
 
36
 
 
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));
 
39
 
 
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');
 
45
 
 
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');
 
51
 
 
52
--echo '#--------------------FN_DYNVARS_154_01-------------------------#'
 
53
#
 
54
# Testing fail condition
 
55
#
 
56
 
 
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.
 
61
 
 
62
--echo '#--------------------FN_DYNVARS_154_02-------------------------#'
 
63
#
 
64
# Testing pass conditions
 
65
#
 
66
 
 
67
SET SESSION SQL_BIG_SELECTS = 1;
 
68
 
 
69
SELECT * FROM t1 INNER JOIN t2 ON t1.a = t2.a;
 
70
--echo This should work
 
71
 
 
72
SET SESSION SQL_BIG_SELECTS = 0;
 
73
 
 
74
DELETE FROM t2 WHERE a = 'aa4';
 
75
SELECT * FROM t1 INNER JOIN t2 ON t1.a = t2.a;
 
76
--echo This should work
 
77
 
 
78
--echo '#--------------------FN_DYNVARS_154_03-------------------------#'
 
79
#
 
80
# Session data integrity check
 
81
#
 
82
 
 
83
--echo ** Connecting con_int1 using root **
 
84
connect (con_int1,localhost,root,,);
 
85
 
 
86
--echo ** Connection con_int1 **
 
87
connection con_int1;
 
88
 
 
89
SELECT @@SESSION.sql_big_selects;
 
90
--echo 1 Expected
 
91
SET SESSION sql_big_selects = 0;
 
92
 
 
93
--echo ** Connecting con_int2 using root **
 
94
connect (con_int2,localhost,root,,);
 
95
 
 
96
--echo ** Connection con_int2 **
 
97
connection con_int2;
 
98
 
 
99
SELECT @@SESSION.sql_big_selects;
 
100
--echo 1 Expected
 
101
 
 
102
SET SESSION sql_big_selects = 1;
 
103
 
 
104
--echo ** Connection con_int1 **
 
105
connection con_int1;
 
106
 
 
107
SELECT @@SESSION.sql_big_selects;
 
108
--echo 0 Expected
 
109
 
 
110
--echo ** Connection con_int2 **
 
111
connection con_int2;
 
112
 
 
113
SELECT @@SESSION.sql_big_selects;
 
114
--echo 1 Expected
 
115
 
 
116
--echo ** Connection default **
 
117
connection default;
 
118
 
 
119
--echo Disconnecting Connections con_int1, con_int2
 
120
disconnect con_int1;
 
121
disconnect con_int2;
 
122
 
 
123
#
 
124
# Cleanup
 
125
#
 
126
 
 
127
 
 
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;
 
131
 
 
132
DROP TABLE t1;
 
133
DROP TABLE t2;