1
############## mysql-test\t\concurrent_insert_basic.test #######################
3
# Variable Name: concurrent_insert #
5
# Access Type: Dynamic #
6
# Data Type: Boolean & Numeric #
8
# Valid Values: 0,1 & 2 #
11
# Creation Date: 2008-02-07 #
12
# Author: Salman Rawala #
14
# Description: Test Cases of Dynamic System Variable "concurrent_insert" #
15
# that checks behavior of this variable in the following ways #
17
# * Valid & Invalid values #
18
# * Scope & Access method #
19
# * Data Integrity . #
21
# Reference: http://dev.mysql.com/doc/refman/5.1/en/ #
22
# server-system-variables.html#option_mysqld_concurrent_insert #
24
################################################################################
26
--source include/load_sysvars.inc
28
#################################################################
29
# START OF concurrent_insert TESTS #
30
#################################################################
33
#########################################################################
34
# Saving initial value of concurrent_insert in a temporary variable #
35
#########################################################################
37
SET @start_value = @@global.concurrent_insert;
40
--echo '#--------------------FN_DYNVARS_018_01------------------------#'
41
#########################################################################
42
# Display the DEFAULT value of concurrent_insert #
43
#########################################################################
45
SET @@global.concurrent_insert = 0;
46
SET @@global.concurrent_insert = DEFAULT;
47
SELECT @@global.concurrent_insert;
49
--echo '#---------------------FN_DYNVARS_018_02-------------------------#'
50
###############################################
51
# Verify default value of variable #
52
###############################################
54
SET @@global.concurrent_insert = DEFAULT;
55
SELECT @@global.concurrent_insert = 1;
58
--echo '#--------------------FN_DYNVARS_018_03------------------------#'
59
#########################################################################
60
# Change the value of concurrent_insert to a valid value #
61
#########################################################################
63
SET @@global.concurrent_insert = 0;
64
SELECT @@global.concurrent_insert;
65
SET @@global.concurrent_insert = 1;
66
SELECT @@global.concurrent_insert;
67
SET @@global.concurrent_insert = 2;
68
SELECT @@global.concurrent_insert;
70
--echo '#--------------------FN_DYNVARS_018_04-------------------------#'
71
###########################################################################
72
# Change the value of concurrent_insert to invalid value #
73
###########################################################################
75
SET @@global.concurrent_insert = -1;
76
Select @@global.concurrent_insert;
77
SET @@global.concurrent_insert = 100;
78
Select @@global.concurrent_insert;
79
echo 'Bug # 34837: Errors are not coming on assigning invalid values to variable';
80
--Error ER_WRONG_TYPE_FOR_VAR
81
SET @@global.concurrent_insert = TRUEF;
82
--Error ER_WRONG_TYPE_FOR_VAR
83
SET @@global.concurrent_insert = TRUE_F;
84
--Error ER_WRONG_TYPE_FOR_VAR
85
SET @@global.concurrent_insert = FALSE0;
86
--Error ER_WRONG_TYPE_FOR_VAR
87
SET @@global.concurrent_insert = OON;
88
--Error ER_WRONG_TYPE_FOR_VAR
89
SET @@global.concurrent_insert = ONN;
90
--Error ER_WRONG_TYPE_FOR_VAR
91
SET @@global.concurrent_insert = OOFF;
92
--Error ER_WRONG_TYPE_FOR_VAR
93
SET @@global.concurrent_insert = 0FF;
94
--Error ER_WRONG_TYPE_FOR_VAR
95
SET @@global.concurrent_insert = ' ';
96
--Error ER_WRONG_TYPE_FOR_VAR
97
SET @@global.concurrent_insert = " ";
98
--Error ER_WRONG_TYPE_FOR_VAR
99
SET @@global.concurrent_insert = '';
102
--echo '#-------------------FN_DYNVARS_018_05----------------------------#'
103
#####################################################################
104
# Test if accessing session concurrent_insert gives error #
105
#####################################################################
107
--Error ER_GLOBAL_VARIABLE
108
SET @@session.concurrent_insert = 1;
109
--Error ER_INCORRECT_GLOBAL_LOCAL_VAR
110
SELECT @@session.concurrent_insert = 1;
113
--echo '#----------------------FN_DYNVARS_018_06------------------------#'
114
####################################################################
115
# Check if the value in GLOBAL Tables matches values in variable #
116
####################################################################
118
SELECT @@global.concurrent_insert = VARIABLE_VALUE
119
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
120
WHERE VARIABLE_NAME='concurrent_insert';
123
--echo '#---------------------FN_DYNVARS_018_07----------------------#'
124
###################################################################
125
# Check if ON and OFF values can be used on variable #
126
###################################################################
128
--Error ER_WRONG_TYPE_FOR_VAR
129
SET @@global.concurrent_insert = OFF;
130
--Error ER_WRONG_TYPE_FOR_VAR
131
SET @@global.concurrent_insert = ON;
134
--echo '#---------------------FN_DYNVARS_018_08----------------------#'
135
###################################################################
136
# Check if TRUE and FALSE values can be used on variable #
137
###################################################################
139
SET @@global.concurrent_insert = TRUE;
140
SELECT @@global.concurrent_insert;
141
SET @@global.concurrent_insert = FALSE;
142
SELECT @@global.concurrent_insert;
144
--echo '#---------------------FN_DYNVARS_018_09----------------------#'
145
###############################################################################
146
# Check if accessing variable without SCOPE points to same global variable #
147
###############################################################################
149
SET @@global.concurrent_insert = 1;
150
SELECT @@concurrent_insert = @@global.concurrent_insert;
153
--echo '#---------------------FN_DYNVARS_018_10----------------------#'
154
###############################################################################
155
# Check if concurrent_insert can be accessed with and without @@ sign #
156
###############################################################################
158
--Error ER_GLOBAL_VARIABLE
159
SET concurrent_insert = 1;
160
SELECT @@concurrent_insert;
161
--Error ER_PARSE_ERROR
162
SET global.concurrent_insert = 1;
163
--Error ER_UNKNOWN_TABLE
164
SELECT global.concurrent_insert;
165
--Error ER_BAD_FIELD_ERROR
166
SELECT concurrent_insert = @@session.concurrent_insert;
168
##############################
169
# Restore initial value #
170
##############################
172
SET @@global.concurrent_insert = @start_value;
173
SELECT @@global.concurrent_insert;
175
#######################################################
176
# END OF concurrent_insert TESTS #
177
#######################################################