############## mysql-test\t\auto_increment_increment_func.test ################ # # # Variable Name: auto_increment_increment # # Scope: GLOBAL & SESSION # # Access Type: Dynamic # # Data Type: Numeric # # Default Value: 1 # # Range: 1 - 65536 # # # # # # Creation Date: 2008-03-07 # # Author: Salman Rawala # # # # Description: Test Cases of Dynamic System Variable "auto_increment_increment"# # that checks functionality of this variable # # # # Reference: http://dev.mysql.com/doc/refman/5.1/en/ # # server-system-variables.html#option_mysqld_auto-increment-increment # # # ################################################################################ # save vars SET @global_auto_increment_increment = @@global.auto_increment_increment; SET @session_auto_increment_increment = @@session.auto_increment_increment; SET @global_auto_increment_offset = @@global.auto_increment_offset; SET @session_auto_increment_offset = @@session.auto_increment_offset; --disable_warnings drop table if exists t1; --enable_warnings ######################### # Creating new table # ######################### CREATE TABLE t1 ( id INT NOT NULL auto_increment, PRIMARY KEY (id), name VARCHAR(30) ); --echo '#--------------------FN_DYNVARS_001_01-------------------------#' ########################################################## # Setting initial value of auto_increment_increment # ########################################################## --echo ## Setting initial value of auto_increment_increment to 5 ## SET @@auto_increment_increment = 5; --echo '#--------------------FN_DYNVARS_001_02-------------------------#' ########################################################################### # Inserting first value in table to check auto_increment_increment initial # behavior ########################################################################### --echo ## Inserting first record in table to check behavior of the variable ## INSERT into t1(name) values('Record_1'); SELECT * from t1; --echo ## Changing value of variable to 10 ## SET @@global.auto_increment_increment = 10; --echo ## Inserting record and verifying value of column id ## INSERT into t1(name) values('Record_2'); SELECT * from t1; --echo ## Test behavior of variable after assigning some larger value to it ## SELECT @@auto_increment_increment; SET @@auto_increment_increment = 100; INSERT into t1(name) values('Record_5'); SELECT * from t1; --echo '#--------------------FN_DYNVARS_001_03-------------------------#' ########################################################## # Test behavior of variable on new connection # 01 # ########################################################## CONNECT (test_con1,localhost,root,,); CONNECTION test_con1; --echo ## Value of session & global vairable here should be 10 ## SELECT @@global.auto_increment_increment = 10; SELECT @@session.auto_increment_increment = 10; --echo ## Setting global value of variable and inserting data in table ## SET @@global.auto_increment_increment = 20; SELECT @@global.auto_increment_increment; INSERT into t1(name) values('Record_6'); SELECT * from t1; --echo ## Setting session value of variable and inserting data in table ## SET @@session.auto_increment_increment = 2; SELECT @@session.auto_increment_increment; INSERT into t1(name) values('Record_8'); INSERT into t1(name) values('Record_9'); SELECT * from t1; --echo '#--------------------FN_DYNVARS_001_04-------------------------#' ########################################################## # Test behavior of variable on new connection # 02 # ########################################################## CONNECT (test_con2,localhost,root,,); connection test_con2; --echo ## Verifying initial values of variable in global & session scope ## --echo ## global & session initial value should be 20 ## SELECT @@global.auto_increment_increment = 20; SELECT @@session.auto_increment_increment = 20; --echo ## Setting value of session variable to 5 and verifying its behavior ## SET @@session.auto_increment_increment = 5; INSERT into t1(name) values('Record_10'); SELECT * from t1; SET @@session.auto_increment_increment = 1; SELECT @@auto_increment_increment; SELECT @@global.auto_increment_increment; --echo '#--------------------FN_DYNVARS_001_05-------------------------#' ##################################################################### # Verify variable's value of connection # 01 after processing on # connection # 02 ##################################################################### connection test_con1; --echo ## Verifying values of global & session value of variable ## --echo ## global value should be 20 ## SELECT @@global.auto_increment_increment = 20; --echo ## session value should be 2 ## SELECT @@session.auto_increment_increment = 2; INSERT into t1(name) values('Record_11'); INSERT into t1(name) values('Record_12'); SELECT * from t1; --echo '#--------------------FN_DYNVARS_001_06-------------------------#' ############################################################################### # Altering table field to different datatypes and checking their behavior # ############################################################################### --echo ## Changing column's datatype to SmallInt and verifying variable's behavior ## ALTER table t1 MODIFY id SMALLINT NOT NULL auto_increment; INSERT into t1(name) values('Record_13'); INSERT into t1(name) values('Record_14'); SELECT * from t1; --echo ## Changing column's datatype to BigInt and verifying variable's behavior ## ALTER table t1 MODIFY id BIGINT NOT NULL auto_increment; INSERT into t1(name) values('Record_15'); INSERT into t1(name) values('Record_16'); SELECT * from t1; --echo '#--------------------FN_DYNVARS_001_07-------------------------#' ############################################################################### # Check behavior of variable after assigning invalid value # ############################################################################### --echo ## Verifying behavior of variable with negative value ## SET @@auto_increment_increment = -10; INSERT into t1(name) values('Record_17'); INSERT into t1(name) values('Record_18'); SELECT * from t1; ############################################################ # Disconnecting all connection & dropping table # ############################################################ DISCONNECT test_con2; --echo ## Dropping table t1 ## DROP table if exists t1; DISCONNECT test_con1; connection default; # restore vars SET @@global.auto_increment_increment = @global_auto_increment_increment; SET @@session.auto_increment_increment = @session_auto_increment_increment; SET @@global.auto_increment_offset = @global_auto_increment_offset; SET @@session.auto_increment_offset = @session_auto_increment_offset;