1
################# mysql-test\t\innodb_table_locks_basic.test ##################
3
# Variable Name: innodb_table_locks #
4
# Scope: GLOBAL | SESSION #
5
# Access Type: Dynamic #
11
# Creation Date: 2008-02-20 #
14
# Description: Test Cases of Dynamic System Variable innodb_table_locks #
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/have_innodb.inc
27
--source include/load_sysvars.inc
29
########################################################################
30
# START OF innodb_table_locks TESTS #
31
########################################################################
34
################################################################################
35
# Saving initial value of innodb_table_locks in a temporary variable #
36
################################################################################
39
SET @session_start_value = @@session.innodb_table_locks;
40
SELECT @session_start_value;
43
SET @global_start_value = @@global.innodb_table_locks;
44
SELECT @global_start_value;
48
--echo '#--------------------FN_DYNVARS_046_01------------------------#'
49
########################################################################
50
# Display the DEFAULT value of innodb_table_locks #
51
########################################################################
53
SET @@session.innodb_table_locks = 0;
54
SET @@session.innodb_table_locks = DEFAULT;
55
SELECT @@session.innodb_table_locks;
57
SET @@global.innodb_table_locks = 0;
58
SET @@global.innodb_table_locks = DEFAULT;
59
SELECT @@global.innodb_table_locks;
61
--echo '#---------------------FN_DYNVARS_046_02-------------------------#'
62
###############################################################################
63
# Check if innodb_table_locks can be accessed with and without @@ sign #
64
###############################################################################
66
SET innodb_table_locks = 1;
67
SELECT @@innodb_table_locks;
69
--Error ER_UNKNOWN_TABLE
70
SELECT session.innodb_table_locks;
72
--Error ER_UNKNOWN_TABLE
73
SELECT local.innodb_table_locks;
75
--Error ER_UNKNOWN_TABLE
76
SELECT global.innodb_table_locks;
77
#using another syntax for accessing system variables
78
SET session innodb_table_locks = 0;
79
SELECT @@session.innodb_table_locks;
81
SET global innodb_table_locks = 0;
82
SELECT @@global.innodb_table_locks;
85
--echo '#--------------------FN_DYNVARS_046_03------------------------#'
86
##########################################################################
87
# change the value of innodb_table_locks to a valid value #
88
##########################################################################
90
SET @@session.innodb_table_locks = 0;
91
SELECT @@session.innodb_table_locks;
92
SET @@session.innodb_table_locks = 1;
93
SELECT @@session.innodb_table_locks;
96
SET @@global.innodb_table_locks = 0;
97
SELECT @@global.innodb_table_locks;
98
SET @@global.innodb_table_locks = 1;
99
SELECT @@global.innodb_table_locks;
102
--echo '#--------------------FN_DYNVARS_046_04-------------------------#'
103
###########################################################################
104
# Change the value of innodb_table_locks to invalid value #
105
###########################################################################
109
SET @@session.innodb_table_locks = -6;
110
--Error ER_WRONG_VALUE_FOR_VAR
111
SET @@session.innodb_table_locks = 1.6;
112
--Error ER_WRONG_VALUE_FOR_VAR
113
SET @@session.innodb_table_locks = "T";
114
--Error ER_WRONG_VALUE_FOR_VAR
115
SET @@session.innodb_table_locks = "Y";
116
--Error ER_WRONG_VALUE_FOR_VAR
117
SET @@session.innodb_table_locks = TR�E;
118
--Error ER_WRONG_VALUE_FOR_VAR
119
SET @@session.innodb_table_locks = �N;
121
SET @@session.innodb_table_locks = OF;
122
SELECT @@session.innodb_table_locks;
124
--echo 'Bug# 34828: OF is taken as OFF and a value of 0 is set.'
126
--Error ER_WRONG_VALUE_FOR_VAR
127
SET @@session.innodb_table_locks = �FF;
132
SET @@global.innodb_table_locks = -1;
133
--Error ER_WRONG_VALUE_FOR_VAR
134
SET @@global.innodb_table_locks = 2;
135
--Error ER_WRONG_VALUE_FOR_VAR
136
SET @@global.innodb_table_locks = "T";
137
--Error ER_WRONG_VALUE_FOR_VAR
138
SET @@global.innodb_table_locks = "Y";
139
--Error ER_WRONG_VALUE_FOR_VAR
140
SET @@global.innodb_table_locks = TR�E;
141
--Error ER_WRONG_VALUE_FOR_VAR
142
SET @@global.innodb_table_locks = QN;
144
SET @@global.innodb_table_locks = OF;
145
SELECT @@global.innodb_table_locks;
147
--echo 'Bug# 34828: OF is taken as OFF and a value of 0 is set.'
149
--Error ER_WRONG_TYPE_FOR_VAR
150
#SET @@global.innodb_table_locks = �FF;
153
--echo '#-------------------FN_DYNVARS_046_05----------------------------#'
154
###########################################################################
155
# Test if changing global variable effects session and vice versa #
156
###########################################################################
158
SET @@global.innodb_table_locks = 0;
159
SET @@session.innodb_table_locks = 1;
160
SELECT @@global.innodb_table_locks AS res_is_0;
162
SET @@global.innodb_table_locks = 0;
163
SELECT @@session.innodb_table_locks AS res_is_1;
165
--echo '#----------------------FN_DYNVARS_046_06------------------------#'
166
#########################################################################
167
# Check if the value in GLOBAL Table matches value in variable #
168
#########################################################################
170
SELECT @@global.innodb_table_locks =
171
VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
172
WHERE VARIABLE_NAME='innodb_table_locks';
173
SELECT @@global.innodb_table_locks;
174
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
175
WHERE VARIABLE_NAME='innodb_table_locks';
177
--echo '#----------------------FN_DYNVARS_046_07------------------------#'
178
#########################################################################
179
# Check if the value in SESSION Table matches value in variable #
180
#########################################################################
182
SELECT @@session.innodb_table_locks =
183
VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES
184
WHERE VARIABLE_NAME='innodb_table_locks';
185
SELECT @@session.innodb_table_locks;
186
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES
187
WHERE VARIABLE_NAME='innodb_table_locks';
190
--echo '#---------------------FN_DYNVARS_046_08-------------------------#'
191
###################################################################
192
# Check if ON and OFF values can be used on variable #
193
###################################################################
195
SET @@session.innodb_table_locks = OFF;
196
SELECT @@session.innodb_table_locks;
197
SET @@session.innodb_table_locks = ON;
198
SELECT @@session.innodb_table_locks;
200
SET @@global.innodb_table_locks = OFF;
201
SELECT @@global.innodb_table_locks;
202
SET @@global.innodb_table_locks = ON;
203
SELECT @@global.innodb_table_locks;
205
--echo '#---------------------FN_DYNVARS_046_09----------------------#'
206
###################################################################
207
# Check if TRUE and FALSE values can be used on variable #
208
###################################################################
210
SET @@session.innodb_table_locks = TRUE;
211
SELECT @@session.innodb_table_locks;
212
SET @@session.innodb_table_locks = FALSE;
213
SELECT @@session.innodb_table_locks;
215
SET @@global.innodb_table_locks = TRUE;
216
SELECT @@global.innodb_table_locks;
217
SET @@global.innodb_table_locks = FALSE;
218
SELECT @@global.innodb_table_locks;
220
##############################
221
# Restore initial value #
222
##############################
224
SET @@session.innodb_table_locks = @session_start_value;
225
SELECT @@session.innodb_table_locks;
227
SET @@global.innodb_table_locks = @global_start_value;
228
SELECT @@global.innodb_table_locks;
230
###############################################################
231
# END OF innodb_table_locks TESTS #
232
###############################################################