1
############## mysql-test\t\auto_increment_offset_func.test ####################
3
# Variable Name: auto_increment_offset #
4
# Scope: GLOBAL & SESSION #
5
# Access Type: Dynamic #
11
# Creation Date: 2008-03-07 #
12
# Author: Salman Rawala #
14
# Description: Test Cases of Dynamic System Variable "auto_increment_offset" #
15
# that checks functionality of this variable #
17
# Reference: http://dev.mysql.com/doc/refman/5.1/en/ #
18
# server-system-variables.html#option_mysqld_auto-increment-offset #
20
################################################################################
23
SET @global_auto_increment_increment = @@global.auto_increment_increment;
24
SET @session_auto_increment_increment = @@session.auto_increment_increment;
25
SET @global_auto_increment_offset = @@global.auto_increment_offset;
26
SET @session_auto_increment_offset = @@session.auto_increment_offset;
29
drop table if exists t1;
32
#########################
33
# Creating new table #
34
#########################
36
--echo ## Creating New Table ##
39
id INT NOT NULL auto_increment,
44
--echo '#--------------------FN_DYNVARS_002_01-------------------------#'
45
#######################################################
46
# Setting initial value of auto_increment_offset #
47
#######################################################
49
--echo ## Setting initial value of variable to 5 ##
50
SET @@auto_increment_increment = 10;
51
SET @@auto_increment_offset = 5;
54
--echo '#--------------------FN_DYNVARS_002_02-------------------------#'
55
###########################################################################
56
# Inserting first value in table to check auto_increment_offset initial
58
###########################################################################
60
--echo ## Inserting records in table and verifying variable's behavior ##
61
INSERT into t1(name) values('Record_1');
63
INSERT into t1(name) values('Record_2');
66
--echo ## Test behavior of variable after updating value of variable ##
67
SET @@auto_increment_offset = 24;
68
SELECT @@auto_increment_offset;
69
INSERT into t1(name) values('Record_3');
71
INSERT into t1(name) values('Record_4');
75
--echo '#--------------------FN_DYNVARS_002_03-------------------------#'
76
##########################################################
77
# Test behavior of variable on new connection # 01 #
78
##########################################################
80
--echo ## Changing value of global scope before opening new connection ##
82
SET @@global.auto_increment_increment = 15;
83
SET @@global.auto_increment_offset = 36;
85
--echo ## New connection test_con1 ##
86
CONNECT (test_con1,localhost,root,,);
89
--echo ## Value of session & global vairable here should be 10 ##
90
SELECT @@global.auto_increment_offset = 36;
91
SELECT @@session.auto_increment_offset = 36;
93
--echo ## Verify global value effect of variable by inserting new rows in table ##
94
INSERT into t1(name) values('Record_5');
95
INSERT into t1(name) values('Record_6');
98
--echo ## Setting session value of variable and inserting data in table ##
99
SET @@session.auto_increment_offset = 54;
100
INSERT into t1(name) values('Record_7');
101
INSERT into t1(name) values('Record_8');
105
--echo '#--------------------FN_DYNVARS_002_04-------------------------#'
106
######################################################################
107
# Test behavior of variable on assigning value to variable that is
108
# less than last index id
109
######################################################################
111
--echo ## Setting value of variable less than last insert id ##
112
SET @@session.auto_increment_offset = 5;
113
INSERT into t1(name) values('Record_9');
114
--echo 'Bug#35367: Random value of id is increasing on assigning value to';
115
--echo 'variable that is less than current offset';
116
INSERT into t1(name) values('Record_10');
117
INSERT into t1(name) values('Record_11');
118
INSERT into t1(name) values('Record_12');
123
--echo '#--------------------FN_DYNVARS_002_05-------------------------#'
124
#####################################################################
125
# Verify variable's behavior on assigning value greater than
126
# auto_increment_increment value
127
#####################################################################
129
--echo ## Assigning value to variable greater than auto_increment_incrent value ##
130
SET @@auto_increment_offset = 140;
131
SET @@auto_increment_increment = 10;
133
INSERT into t1(name) values('Record_13');
134
INSERT into t1(name) values('Record_14');
136
--echo 'Bug#35369: Some invalid value of id is increasing on assigning value to';
137
--echo 'variable that is greater than auto_increment_increment';
140
--echo '#--------------------FN_DYNVARS_002_06-------------------------#'
141
###############################################################################
142
# Altering table field to different datatypes and checking their behavior #
143
###############################################################################
145
--echo ## Changing datatype of column id with primary key to SmallInt ##
146
ALTER table t1 modify id SMALLINT NOT NULL auto_increment;
147
INSERT into t1(name) values('Record_15');
148
INSERT into t1(name) values('Record_16');
151
--echo ## Changing datatype of column id with primary key to BigInt ##
152
ALTER table t1 modify id BIGINT NOT NULL auto_increment;
153
INSERT into t1(name) values('Record_17');
154
INSERT into t1(name) values('Record_18');
157
--echo '#--------------------FN_DYNVARS_002_07-------------------------#'
158
###############################################################################
159
# Check behavior of variable after assigning invalid values to variable #
160
###############################################################################
162
--echo ## Assigning -ve value to variable ##
163
SET @@auto_increment_offset = -10;
164
SELECT @@auto_increment_offset = -10;
165
INSERT into t1(name) values('Record_17');
166
INSERT into t1(name) values('Record_18');
168
--echo 'Bug#35370: Some invalid value of id is increasing on assigning negative';
169
--echo ' value in variable';
171
--echo ## Assigning value that is out of range of variable ##
172
SET @@auto_increment_offset = 65536;
173
SELECT @@auto_increment_offset;
174
INSERT into t1(name) values('Record_17');
175
INSERT into t1(name) values('Record_18');
176
INSERT into t1(name) values('Record_19');
177
INSERT into t1(name) values('Record_20');
180
--echo ## No effect of auto_increment_offset since value of this variable is greater ##
181
--echo ## than auto_increment_increment ##
183
############################################################
184
# Disconnecting all connection & dropping table #
185
############################################################
187
--echo ## Dropping table ##
188
DROP table if exists t1;
190
--echo ## Disconnecting connection ##
191
DISCONNECT test_con1;
193
--echo ## switching to default connection ##
197
SET @@global.auto_increment_increment = @global_auto_increment_increment;
198
SET @@session.auto_increment_increment = @session_auto_increment_increment;
199
SET @@global.auto_increment_offset = @global_auto_increment_offset;
200
SET @@session.auto_increment_offset = @session_auto_increment_offset;