1
############## mysql-test\t\myisam_stats_method_basic.test ####################
3
# Variable Name: myisam_stats_method #
4
# Scope: GLOBAL | SESSION #
5
# Access Type: Dynamic #
6
# Data Type: enumeration #
7
# Default Value: nulls_equal #
8
# Valid Values: nulls_equal, nulls_unequal #
11
# Creation Date: 2008-02-07 #
14
# Description: Test Cases of Dynamic System Variable myisam_stats_method #
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 #
24
###############################################################################
26
--source include/load_sysvars.inc
28
########################################################################
29
# START OF myisam_stats_method TESTS #
30
########################################################################
33
###########################################################################
34
# Saving initial value of myisam_stats_method in a temporary variable #
35
###########################################################################
37
SET @global_start_value = @@global.myisam_stats_method;
38
SELECT @global_start_value;
40
SET @session_start_value = @@session.myisam_stats_method;
41
SELECT @session_start_value;
43
--echo '#--------------------FN_DYNVARS_097_01------------------------#'
44
########################################################################
45
# Display the DEFAULT value of myisam_stats_method #
46
########################################################################
48
SET @@global.myisam_stats_method = nulls_equal;
49
SET @@global.myisam_stats_method = DEFAULT;
50
SELECT @@global.myisam_stats_method;
52
SET @@session.myisam_stats_method = nulls_equal;
53
SET @@session.myisam_stats_method = DEFAULT;
54
SELECT @@session.myisam_stats_method;
57
--echo '#---------------------FN_DYNVARS_097_02-------------------------#'
58
#########################################################
59
# Check if NULL or empty value is accepeted #
60
#########################################################
62
--Error ER_WRONG_VALUE_FOR_VAR
63
SET @@global.myisam_stats_method = NULL;
65
--Error ER_WRONG_VALUE_FOR_VAR
66
SET @@global.myisam_stats_method = '';
68
--Error ER_WRONG_VALUE_FOR_VAR
69
SET @@session.myisam_stats_method = NULL;
71
--Error ER_WRONG_VALUE_FOR_VAR
72
SET @@session.myisam_stats_method = '';
74
--echo '#--------------------FN_DYNVARS_097_03------------------------#'
75
########################################################################
76
# Change the value of myisam_stats_method to a valid value #
77
########################################################################
79
SET @@global.myisam_stats_method = 'nulls_equal';
80
SELECT @@global.myisam_stats_method;
82
SET @@global.myisam_stats_method = 'nulls_unequal';
83
SELECT @@global.myisam_stats_method;
85
SET @@global.myisam_stats_method = 'nulls_ignored';
86
SELECT @@global.myisam_stats_method;
88
--echo 'Bug: Value of nulls_ignored is not documented. Its ordinal value is 2'
90
SET @@session.myisam_stats_method = 'nulls_equal';
91
SELECT @@session.myisam_stats_method;
93
SET @@session.myisam_stats_method = 'nulls_unequal';
94
SELECT @@session.myisam_stats_method;
96
SET @@session.myisam_stats_method = 'nulls_ignored';
97
SELECT @@session.myisam_stats_method;
100
--echo '#--------------------FN_DYNVARS_097_04-------------------------#'
101
###########################################################################
102
# Change the value of myisam_stats_method to invalid value #
103
###########################################################################
106
--Error ER_WRONG_VALUE_FOR_VAR
107
SET @@global.myisam_stats_method = -1;
108
--Error ER_WRONG_VALUE_FOR_VAR
109
SET @@global.myisam_stats_method = unequal;
110
--Error ER_WRONG_VALUE_FOR_VAR
111
SET @@global.myisam_stats_method = ENABLED;
112
--Error ER_WRONG_VALUE_FOR_VAR
113
SET @@global.myisam_stats_method = 'equal';
114
--Error ER_WRONG_VALUE_FOR_VAR
115
SET @@global.myisam_stats_method = 'null_equal';
117
--Error ER_WRONG_VALUE_FOR_VAR
118
SET @@global.myisam_stats_method = ' ';
121
--echo '#-------------------FN_DYNVARS_097_05----------------------------#'
122
#########################################################################
123
# Check if the value in session Table matches value in variable #
124
#########################################################################
126
SELECT @@session.myisam_stats_method = VARIABLE_VALUE
127
FROM INFORMATION_SCHEMA.SESSION_VARIABLES
128
WHERE VARIABLE_NAME='myisam_stats_method';
130
--echo '#----------------------FN_DYNVARS_097_06------------------------#'
131
#########################################################################
132
# Check if the value in GLOBAL Table matches value in variable #
133
#########################################################################
135
SELECT @@global.myisam_stats_method = VARIABLE_VALUE
136
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
137
WHERE VARIABLE_NAME='myisam_stats_method';
140
--echo '#---------------------FN_DYNVARS_097_07-------------------------#'
141
###################################################################
142
# Check if numbers can be used on variable #
143
###################################################################
145
# test if variable accepts 0,1,2
146
SET @@global.myisam_stats_method = 0;
147
SELECT @@global.myisam_stats_method;
149
SET @@global.myisam_stats_method = 1;
150
SELECT @@global.myisam_stats_method;
152
SET @@global.myisam_stats_method = 2;
153
SELECT @@global.myisam_stats_method;
155
# use of decimal values
157
SET @@global.myisam_stats_method = 0.4;
158
SELECT @@global.myisam_stats_method;
160
SET @@global.myisam_stats_method = 1.0;
161
SELECT @@global.myisam_stats_method;
163
SET @@global.myisam_stats_method = 1.1;
164
SELECT @@global.myisam_stats_method;
166
SET @@global.myisam_stats_method = 1.5;
167
SELECT @@global.myisam_stats_method;
169
SET @@global.myisam_stats_method = 2.49;
170
SELECT @@global.myisam_stats_method;
172
SET @@session.myisam_stats_method = 0.5;
173
SELECT @@session.myisam_stats_method;
175
SET @@session.myisam_stats_method = 1.6;
176
SELECT @@session.myisam_stats_method;
179
--echo 'Bug# 34877: Decimal values can be used within the range [0.0-2.5). Values';
180
--echo 'are rounded to 0,1,2 as evident from outcome.';
182
--Error ER_WRONG_VALUE_FOR_VAR
183
SET @@global.myisam_stats_method = 3;
186
--echo '#---------------------FN_DYNVARS_097_08----------------------#'
187
###################################################################
188
# Check if TRUE and FALSE values can be used on variable #
189
###################################################################
191
SET @@global.myisam_stats_method = TRUE;
192
SELECT @@global.myisam_stats_method;
193
SET @@global.myisam_stats_method = FALSE;
194
SELECT @@global.myisam_stats_method;
196
--echo '#---------------------FN_DYNVARS_097_09----------------------#'
197
#########################################################################
198
# Check if myisam_stats_method can be accessed with and without @@ sign #
199
#########################################################################
201
SET myisam_stats_method = 'nulls_equal';
203
--Error ER_PARSE_ERROR
204
SET session.myisam_stats_method = 'nulls_equal';
205
--Error ER_PARSE_ERROR
206
SET global.myisam_stats_method = 'nulls_equal';
208
SET session myisam_stats_method = 'nulls_equal';
209
SELECT @@myisam_stats_method;
211
SET global myisam_stats_method = 'nulls_equal';
212
SELECT @@global.myisam_stats_method;
214
##############################
215
# Restore initial value #
216
##############################
218
SET @@global.myisam_stats_method = @global_start_value;
219
SELECT @@global.myisam_stats_method;
221
SET @@session.myisam_stats_method = @session_start_value;
222
SELECT @@session.myisam_stats_method;
224
########################################################################
225
# END OF myisam_stats_method TESTS #
226
########################################################################