1
############## mysql-test\t\optimizer_prune_level_basic.test ##################
3
# Variable Name: optimizer_prune_level #
4
# Scope: GLOBAL | SESSION #
5
# Access Type: Dynamic #
11
# Creation Date: 2008-02-14 #
14
# Description: Test Cases of Dynamic System Variable optimizer_prune_level #
15
# that checks the behavior of this variable in the following ways#
17
# * Valid & Invalid values #
18
# * Scope & Access method #
21
# Reference: http://dev.mysql.com/doc/refman/5.1/en/ #
22
# server-system-variables.html#option_mysqld_optimizer_prune_level #
24
###############################################################################
26
--source include/load_sysvars.inc
28
###################################################
29
# START OF optimizer_prune_level TESTS #
30
###################################################
33
#############################################################
34
# Save initial value #
35
#############################################################
37
SET @start_global_value = @@global.optimizer_prune_level;
38
SELECT @start_global_value;
39
SET @start_session_value = @@session.optimizer_prune_level;
40
SELECT @start_session_value;
43
--echo '#--------------------FN_DYNVARS_115_01-------------------------#'
44
###########################################################
45
# Display the DEFAULT value of optimizer_prune_level #
46
###########################################################
48
SET @@global.optimizer_prune_level = 0;
49
SET @@global.optimizer_prune_level = DEFAULT;
50
SELECT @@global.optimizer_prune_level;
52
SET @@session.optimizer_prune_level = 0;
53
SET @@session.optimizer_prune_level = DEFAULT;
54
SELECT @@session.optimizer_prune_level;
57
--echo '#--------------------FN_DYNVARS_115_02-------------------------#'
58
###########################################################
59
# Check the DEFAULT value of optimizer_prune_level #
60
###########################################################
62
SET @@global.optimizer_prune_level = DEFAULT;
63
SELECT @@global.optimizer_prune_level = 1;
65
SET @@session.optimizer_prune_level = DEFAULT;
66
SELECT @@session.optimizer_prune_level = 1;
69
--echo '#--------------------FN_DYNVARS_115_03-------------------------#'
70
###############################################################################
71
# Change the value of optimizer_prune_level to a valid value for GLOBAL Scope #
72
###############################################################################
75
SELECT @@global.optimizer_prune_level;
76
SET @@global.optimizer_prune_level = 0;
77
SELECT @@global.optimizer_prune_level;
78
SET @@global.optimizer_prune_level = 1;
79
SELECT @@global.optimizer_prune_level;
80
SET @@global.optimizer_prune_level = TRUE;
81
SELECT @@global.optimizer_prune_level;
82
SET @@global.optimizer_prune_level = FALSE;
83
SELECT @@global.optimizer_prune_level;
87
--echo '#--------------------FN_DYNVARS_115_04-------------------------#'
88
###############################################################################
89
# Change the value of optimizer_prune_level to a valid value for SESSION Scope#
90
###############################################################################
92
SELECT @@session.optimizer_prune_level;
93
SET @@session.optimizer_prune_level = 0;
94
SELECT @@session.optimizer_prune_level;
95
SET @@session.optimizer_prune_level = 1;
96
SELECT @@session.optimizer_prune_level;
97
SET @@session.optimizer_prune_level = TRUE;
98
SELECT @@session.optimizer_prune_level;
99
SET @@session.optimizer_prune_level = FALSE;
100
SELECT @@session.optimizer_prune_level;
103
--echo '#------------------FN_DYNVARS_115_05-----------------------#'
104
#################################################################
105
# Change the value of optimizer_prune_level to an invalid value #
106
#################################################################
108
--Error ER_WRONG_TYPE_FOR_VAR
109
SET @@global.optimizer_prune_level = ON;
110
--echo 'Bug# 34840: Since it is a boolean variable, it should not give errors on 'ON' & 'OFF' values';
111
--Error ER_WRONG_TYPE_FOR_VAR
112
SET @@global.optimizer_prune_level = OFF;
113
--Error ER_WRONG_TYPE_FOR_VAR
114
SET @@global.optimizer_prune_level = 'ONN';
115
--Error ER_WRONG_TYPE_FOR_VAR
116
SET @@global.optimizer_prune_level = "OFFF";
117
--Error ER_WRONG_TYPE_FOR_VAR
118
SET @@global.optimizer_prune_level = TTRUE;
119
--Error ER_WRONG_TYPE_FOR_VAR
120
SET @@global.optimizer_prune_level = FELSE;
122
SET @@global.optimizer_prune_level = -1024;
123
SELECT @@global.optimizer_prune_level;
125
--echo 'Bug# 34840: Since it is a boolean variable, it should give errors on numeric values';
127
SET @@global.optimizer_prune_level = 65536;
128
--Error ER_WRONG_TYPE_FOR_VAR
129
SET @@global.optimizer_prune_level = 65530.34;
130
--Error ER_WRONG_TYPE_FOR_VAR
131
SET @@global.optimizer_prune_level = test;
132
--Error ER_WRONG_TYPE_FOR_VAR
133
SET @@session.optimizer_prune_level = ON;
134
--Error ER_WRONG_TYPE_FOR_VAR
135
SET @@session.optimizer_prune_level = OFF;
136
--Error ER_WRONG_TYPE_FOR_VAR
137
SET @@session.optimizer_prune_level = ONN;
138
--Error ER_WRONG_TYPE_FOR_VAR
139
SET @@session.optimizer_prune_level = ONF;
140
--Error ER_WRONG_TYPE_FOR_VAR
141
SET @@session.optimizer_prune_level = ON;
142
--Error ER_WRONG_TYPE_FOR_VAR
143
SET @@session.optimizer_prune_level = OF;
145
--Error ER_WRONG_TYPE_FOR_VAR
146
SET @@session.optimizer_prune_level = 'OFN';
147
SET @@session.optimizer_prune_level = -2;
148
SELECT @@session.optimizer_prune_level;
149
--Error ER_PARSE_ERROR
150
SET @@session.optimizer_prune_level = 65530.34.;
152
SET @@session.optimizer_prune_level = 65550;
153
SELECT @@session.optimizer_prune_level;
154
--echo 'Bug # 34837: Errors are not coming on assigning invalid values to variable';
156
--Error ER_WRONG_TYPE_FOR_VAR
157
SET @@session.optimizer_prune_level = test;
159
--echo '#------------------FN_DYNVARS_115_06-----------------------#'
160
####################################################################
161
# Check if the value in GLOBAL Table matches value in variable #
162
####################################################################
165
SELECT @@global.optimizer_prune_level = VARIABLE_VALUE
166
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
167
WHERE VARIABLE_NAME='optimizer_prune_level';
169
--echo '#------------------FN_DYNVARS_115_07-----------------------#'
170
####################################################################
171
# Check if the value in SESSION Table matches value in variable #
172
####################################################################
174
SELECT @@session.optimizer_prune_level = VARIABLE_VALUE
175
FROM INFORMATION_SCHEMA.SESSION_VARIABLES
176
WHERE VARIABLE_NAME='optimizer_prune_level';
180
--echo '#---------------------FN_DYNVARS_115_08----------------------#'
181
###############################################################################
182
# Check if global and session variable are independent of each other #
183
###############################################################################
185
SET @@optimizer_prune_level = 0;
186
SET @@global.optimizer_prune_level = 1;
187
SELECT @@optimizer_prune_level = @@global.optimizer_prune_level;
190
--echo '#---------------------FN_DYNVARS_115_09----------------------#'
191
###############################################################################
192
# Check if accessing variable with SESSION,LOCAL and without SCOPE points #
193
# to same session variable #
194
###############################################################################
196
SET @@optimizer_prune_level = 1;
197
SELECT @@optimizer_prune_level = @@local.optimizer_prune_level;
198
SELECT @@local.optimizer_prune_level = @@session.optimizer_prune_level;
201
--echo '#---------------------FN_DYNVARS_115_10----------------------#'
202
###############################################################################
203
# Check if optimizer_prune_level can be accessed with and without @@ sign #
204
###############################################################################
206
SET optimizer_prune_level = 1;
207
SELECT @@optimizer_prune_level;
208
--Error ER_UNKNOWN_TABLE
209
SELECT local.optimizer_prune_level;
210
--Error ER_UNKNOWN_TABLE
211
SELECT session.optimizer_prune_level;
212
--Error ER_BAD_FIELD_ERROR
213
SELECT optimizer_prune_level = @@session.optimizer_prune_level;
216
####################################
217
# Restore initial value #
218
####################################
220
SET @@global.optimizer_prune_level = @start_global_value;
221
SELECT @@global.optimizer_prune_level;
222
SET @@session.optimizer_prune_level = @start_session_value;
223
SELECT @@session.optimizer_prune_level;
225
##########################################################
226
# END OF optimizer_prune_level TESTS #
227
##########################################################