~jlukas79/+junk/mysql-server

« back to all changes in this revision

Viewing changes to mysql-test/t/auto_increment_offset_func.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\auto_increment_offset_func.test ####################
 
2
#                                                                              #
 
3
# Variable Name: auto_increment_offset                                         #
 
4
# Scope: GLOBAL & SESSION                                                      #
 
5
# Access Type: Dynamic                                                         #
 
6
# Data Type: Numeric                                                           #
 
7
# Default Value: 1                                                             #
 
8
# Range: 1 - 65536                                                             #
 
9
#                                                                              #
 
10
#                                                                              #
 
11
# Creation Date: 2008-03-07                                                    #
 
12
# Author:  Salman Rawala                                                       #
 
13
#                                                                              #
 
14
# Description: Test Cases of Dynamic System Variable "auto_increment_offset"   #
 
15
#              that checks functionality of this variable                      #
 
16
#                                                                              #
 
17
# Reference: http://dev.mysql.com/doc/refman/5.1/en/                           #
 
18
#  server-system-variables.html#option_mysqld_auto-increment-offset            #
 
19
#                                                                              #
 
20
################################################################################
 
21
 
 
22
# save vars
 
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;
 
27
 
 
28
--disable_warnings
 
29
drop table if exists t1;
 
30
--enable_warnings
 
31
 
 
32
#########################
 
33
#   Creating new table  #
 
34
#########################
 
35
 
 
36
--echo ## Creating New Table ##
 
37
CREATE TABLE t1
 
38
(
 
39
id INT NOT NULL auto_increment,
 
40
PRIMARY KEY (id),
 
41
name VARCHAR(30)
 
42
);
 
43
 
 
44
--echo '#--------------------FN_DYNVARS_002_01-------------------------#'
 
45
#######################################################
 
46
#    Setting initial value of auto_increment_offset   # 
 
47
#######################################################
 
48
 
 
49
--echo ## Setting initial value of variable to 5 ##
 
50
SET @@auto_increment_increment = 10;
 
51
SET @@auto_increment_offset = 5;
 
52
 
 
53
 
 
54
--echo '#--------------------FN_DYNVARS_002_02-------------------------#'
 
55
###########################################################################
 
56
# Inserting first value in table to check auto_increment_offset initial
 
57
# behavior 
 
58
###########################################################################
 
59
 
 
60
--echo ## Inserting records in table and verifying variable's behavior ##
 
61
INSERT into t1(name) values('Record_1');        
 
62
SELECT * from t1;
 
63
INSERT into t1(name) values('Record_2');        
 
64
SELECT * from t1;
 
65
 
 
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');        
 
70
SELECT * from t1;
 
71
INSERT into t1(name) values('Record_4');        
 
72
SELECT * from t1;
 
73
 
 
74
 
 
75
--echo '#--------------------FN_DYNVARS_002_03-------------------------#'
 
76
##########################################################
 
77
#    Test behavior of variable on new connection # 01    #
 
78
##########################################################
 
79
 
 
80
--echo ## Changing value of global scope before opening new connection ##
 
81
 
 
82
SET @@global.auto_increment_increment = 15;
 
83
SET @@global.auto_increment_offset = 36;
 
84
 
 
85
--echo ## New connection test_con1 ##
 
86
CONNECT (test_con1,localhost,root,,);
 
87
CONNECTION test_con1;
 
88
 
 
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;
 
92
 
 
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');
 
96
SELECT * from t1;
 
97
 
 
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');
 
102
SELECT * from t1;
 
103
 
 
104
 
 
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
######################################################################
 
110
 
 
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');
 
119
SELECT * from t1;
 
120
 
 
121
 
 
122
 
 
123
--echo '#--------------------FN_DYNVARS_002_05-------------------------#'
 
124
#####################################################################
 
125
#    Verify variable's behavior on assigning value greater than 
 
126
#    auto_increment_increment value
 
127
#####################################################################
 
128
 
 
129
--echo ## Assigning value to variable greater than auto_increment_incrent value ##
 
130
SET @@auto_increment_offset = 140;
 
131
SET @@auto_increment_increment = 10;
 
132
 
 
133
INSERT into t1(name) values('Record_13');
 
134
INSERT into t1(name) values('Record_14');
 
135
SELECT * from t1;
 
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';
 
138
 
 
139
 
 
140
--echo '#--------------------FN_DYNVARS_002_06-------------------------#'
 
141
###############################################################################
 
142
#    Altering table field to different datatypes and checking their behavior  #
 
143
###############################################################################
 
144
 
 
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');
 
149
SELECT * from t1;
 
150
 
 
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');
 
155
SELECT * from t1;
 
156
 
 
157
--echo '#--------------------FN_DYNVARS_002_07-------------------------#'
 
158
###############################################################################
 
159
#    Check behavior of variable after assigning invalid values to variable    #
 
160
###############################################################################
 
161
 
 
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');       
 
167
SELECT * from t1;
 
168
--echo 'Bug#35370: Some invalid value of id is increasing on assigning negative';
 
169
--echo ' value in variable';
 
170
 
 
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');       
 
178
SELECT * from t1;
 
179
 
 
180
--echo ## No effect of auto_increment_offset since value of this variable is greater ## 
 
181
--echo ## than auto_increment_increment ##
 
182
 
 
183
############################################################
 
184
#    Disconnecting all connection & dropping table         #
 
185
############################################################
 
186
 
 
187
--echo ## Dropping table ##
 
188
DROP table if exists t1;
 
189
 
 
190
--echo ## Disconnecting connection ##
 
191
DISCONNECT test_con1;
 
192
 
 
193
--echo ## switching to default connection ##
 
194
connection default;
 
195
 
 
196
# restore vars
 
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;