mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 04:26:45 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			203 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			203 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ############## 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    #
 | |
| ##########################################################
 | |
| 
 | |
| --echo ## Creating new connection test_con1 ##
 | |
| 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    #
 | |
| ##########################################################
 | |
| 
 | |
| --echo ## Creating another new connection test_con2 ##
 | |
| 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;
 | |
| --echo 'Bug#35362: Here Record_10 id should be 120 instead of 115 because we'
 | |
| --echo 'have set the value of variable to 5'
 | |
| 
 | |
| 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 
 | |
| #####################################################################
 | |
| 
 | |
| --echo ## Switching to test_con1 ##
 | |
| 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;
 | |
| 
 | |
| --echo 'Bug#35364: Variable is incrementing some random values on assigning -ve value'
 | |
| 
 | |
| 
 | |
| ############################################################
 | |
| #    Disconnecting all connection & dropping table         #
 | |
| ############################################################
 | |
| 
 | |
| --echo ## Disconnecting test_con2 ##
 | |
| DISCONNECT test_con2;
 | |
| 
 | |
| --echo ## Dropping table t1 ##
 | |
| DROP table if exists t1;
 | |
| 
 | |
| --echo ## Disconnecting test_con1 ##
 | |
| DISCONNECT test_con1;
 | |
| 
 | |
| --echo ## switching to default connection ##
 | |
| 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;
 |