~jlukas79/+junk/mysql-server

« back to all changes in this revision

Viewing changes to mysql-test/t/optimizer_prune_level_basic.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\optimizer_prune_level_basic.test ##################
 
2
#                                                                             #
 
3
# Variable Name: optimizer_prune_level                                        #
 
4
# Scope: GLOBAL | SESSION                                                     #
 
5
# Access Type: Dynamic                                                        #
 
6
# Data Type: boolean                                                          #
 
7
# Default Value: 1                                                            #
 
8
# Range:                                                                      #
 
9
#                                                                             #
 
10
#                                                                             #
 
11
# Creation Date: 2008-02-14                                                   #
 
12
# Author:  Salman                                                             #
 
13
#                                                                             #
 
14
# Description: Test Cases of Dynamic System Variable optimizer_prune_level    #
 
15
#              that checks the behavior of this variable in the following ways#
 
16
#              * Default Value                                                #
 
17
#              * Valid & Invalid values                                       #
 
18
#              * Scope & Access method                                        #
 
19
#              * Data Integrity                                               #
 
20
#                                                                             #
 
21
# Reference: http://dev.mysql.com/doc/refman/5.1/en/                          #
 
22
#  server-system-variables.html#option_mysqld_optimizer_prune_level           #
 
23
#                                                                             #
 
24
###############################################################################
 
25
 
 
26
--source include/load_sysvars.inc
 
27
 
 
28
###################################################
 
29
#      START OF optimizer_prune_level TESTS       # 
 
30
###################################################
 
31
 
 
32
 
 
33
#############################################################
 
34
#                 Save initial value                        #
 
35
#############################################################
 
36
 
 
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;
 
41
 
 
42
 
 
43
--echo '#--------------------FN_DYNVARS_115_01-------------------------#'
 
44
###########################################################
 
45
#     Display the DEFAULT value of optimizer_prune_level  #
 
46
###########################################################
 
47
 
 
48
SET @@global.optimizer_prune_level = 0;
 
49
SET @@global.optimizer_prune_level = DEFAULT;
 
50
SELECT @@global.optimizer_prune_level;
 
51
 
 
52
SET @@session.optimizer_prune_level = 0;
 
53
SET @@session.optimizer_prune_level = DEFAULT;
 
54
SELECT @@session.optimizer_prune_level;
 
55
 
 
56
 
 
57
--echo '#--------------------FN_DYNVARS_115_02-------------------------#'
 
58
###########################################################
 
59
#     Check the DEFAULT value of optimizer_prune_level    #
 
60
###########################################################
 
61
 
 
62
SET @@global.optimizer_prune_level = DEFAULT;
 
63
SELECT @@global.optimizer_prune_level = 1;
 
64
 
 
65
SET @@session.optimizer_prune_level = DEFAULT;
 
66
SELECT @@session.optimizer_prune_level = 1;
 
67
 
 
68
 
 
69
--echo '#--------------------FN_DYNVARS_115_03-------------------------#'
 
70
###############################################################################
 
71
# Change the value of optimizer_prune_level to a valid value for GLOBAL Scope #
 
72
###############################################################################
 
73
 
 
74
 
 
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;
 
84
 
 
85
 
 
86
 
 
87
--echo '#--------------------FN_DYNVARS_115_04-------------------------#'
 
88
###############################################################################
 
89
# Change the value of optimizer_prune_level to a valid value for SESSION Scope#
 
90
###############################################################################
 
91
 
 
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;
 
101
 
 
102
 
 
103
--echo '#------------------FN_DYNVARS_115_05-----------------------#'
 
104
#################################################################
 
105
# Change the value of optimizer_prune_level to an invalid value #
 
106
#################################################################
 
107
 
 
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;
 
121
 
 
122
SET @@global.optimizer_prune_level = -1024;
 
123
SELECT @@global.optimizer_prune_level;
 
124
 
 
125
--echo 'Bug# 34840: Since it is a boolean variable, it should give errors on numeric values';
 
126
 
 
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;
 
144
 
 
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.;
 
151
 
 
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';
 
155
 
 
156
--Error ER_WRONG_TYPE_FOR_VAR
 
157
SET @@session.optimizer_prune_level = test;
 
158
 
 
159
--echo '#------------------FN_DYNVARS_115_06-----------------------#'
 
160
####################################################################
 
161
#   Check if the value in GLOBAL Table matches value in variable   #
 
162
####################################################################
 
163
 
 
164
 
 
165
SELECT @@global.optimizer_prune_level = VARIABLE_VALUE 
 
166
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES 
 
167
WHERE VARIABLE_NAME='optimizer_prune_level';
 
168
 
 
169
--echo '#------------------FN_DYNVARS_115_07-----------------------#'
 
170
####################################################################
 
171
#  Check if the value in SESSION Table matches value in variable   #
 
172
####################################################################
 
173
 
 
174
SELECT @@session.optimizer_prune_level = VARIABLE_VALUE
 
175
FROM INFORMATION_SCHEMA.SESSION_VARIABLES 
 
176
WHERE VARIABLE_NAME='optimizer_prune_level';
 
177
 
 
178
 
 
179
 
 
180
--echo '#---------------------FN_DYNVARS_115_08----------------------#'
 
181
###############################################################################
 
182
#  Check if global and session variable are independent of each other         #
 
183
###############################################################################
 
184
 
 
185
SET @@optimizer_prune_level = 0;
 
186
SET @@global.optimizer_prune_level = 1;
 
187
SELECT @@optimizer_prune_level = @@global.optimizer_prune_level;
 
188
 
 
189
 
 
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
###############################################################################
 
195
 
 
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;
 
199
 
 
200
 
 
201
--echo '#---------------------FN_DYNVARS_115_10----------------------#'
 
202
###############################################################################
 
203
#   Check if optimizer_prune_level can be accessed with and without @@ sign   #
 
204
###############################################################################
 
205
 
 
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;
 
214
 
 
215
 
 
216
####################################
 
217
#     Restore initial value        #
 
218
####################################
 
219
 
 
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;
 
224
 
 
225
##########################################################
 
226
#                 END OF optimizer_prune_level TESTS     #
 
227
##########################################################
 
228