mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
System variable tests delivered by Folio3 (see WL4288).
This commit is contained in:
202
mysql-test/t/auto_increment_increment_func.test
Normal file
202
mysql-test/t/auto_increment_increment_func.test
Normal file
@@ -0,0 +1,202 @@
|
||||
############## 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;
|
||||
Reference in New Issue
Block a user