mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 20:12:31 +01:00
167 lines
5.8 KiB
Text
167 lines
5.8 KiB
Text
############## mysql-test\t\auto_commit_func.test #############################
|
|
# #
|
|
# Variable Name: autocommit #
|
|
# Scope: SESSION #
|
|
# Access Type: Dynamic #
|
|
# Data Type: Boolean #
|
|
# Default Value: NA #
|
|
# Range: NA #
|
|
# #
|
|
# #
|
|
# Creation Date: 2008-03-07 #
|
|
# Author: Salman Rawala #
|
|
# #
|
|
# Description: Test Cases of Dynamic System Variable "autocommit" #
|
|
# that checks functionality of this variable #
|
|
# #
|
|
# Reference: (Not Mentioned on website) #
|
|
# #
|
|
################################################################################
|
|
|
|
--source include/have_innodb.inc
|
|
|
|
--disable_warnings
|
|
drop table if exists t1;
|
|
--enable_warnings
|
|
|
|
#########################
|
|
# Creating new table #
|
|
#########################
|
|
|
|
--echo ## Creating new table ##
|
|
CREATE TABLE t1
|
|
(
|
|
id INT NOT NULL auto_increment,
|
|
PRIMARY KEY (id),
|
|
name varchar(30)
|
|
) ENGINE = INNODB;
|
|
|
|
--echo '#--------------------FN_DYNVARS_003_01-------------------------#'
|
|
#####################################################
|
|
# Setting initial value of auto_commit to zero #
|
|
#####################################################
|
|
|
|
--echo ## Setting variable's value to 0 i.e false ##
|
|
SET @@autocommit = 0;
|
|
|
|
|
|
--echo '#--------------------FN_DYNVARS_003_02-------------------------#'
|
|
######################################################################
|
|
# Creating 2 different connections & testing behavior of autocommit
|
|
# after updating record in 1st connection
|
|
######################################################################
|
|
|
|
--echo ## Creating new connection ##
|
|
CONNECT (test_con1,localhost,root,,);
|
|
CONNECTION test_con1;
|
|
|
|
--echo ## Checking value of variable after opening new connection ##
|
|
|
|
SELECT @@autocommit;
|
|
|
|
--echo ## Setting value of variable to zero and inserting some rows ##
|
|
SET @@autocommit = 0;
|
|
|
|
INSERT into t1(name) values('Record_1');
|
|
INSERT into t1(name) values('Record_2');
|
|
SELECT * from t1;
|
|
|
|
--echo ## Creating another connection and verifying records in table ##
|
|
|
|
--echo ## New Connection test_con2 ##
|
|
CONNECT (test_con2,localhost,root,,);
|
|
CONNECTION test_con2;
|
|
SELECT * from t1;
|
|
|
|
|
|
--echo '#--------------------FN_DYNVARS_003_03-------------------------#'
|
|
######################################################################
|
|
# Creating 2 different connections & testing behavior of autocommit
|
|
# after updating record in 1st connection and using COMMIT in first
|
|
# connection
|
|
######################################################################
|
|
|
|
--echo ## Verifying behavior of variable by commiting rows in test_con1 ##
|
|
--echo ## Connecting with connection # 01 ##
|
|
CONNECTION test_con1;
|
|
SELECT * from t1;
|
|
COMMIT;
|
|
|
|
|
|
--echo ## New Connection test_con2 ##
|
|
--echo ## Now verifying records in table from connection # 02 ##
|
|
CONNECTION test_con2;
|
|
SELECT * from t1;
|
|
|
|
--echo '#--------------------FN_DYNVARS_003_04-------------------------#'
|
|
######################################################################
|
|
# Creating 2 different connections & testing behavior of autocommit
|
|
# after updating record in 1st connection and using ROLLBACK in
|
|
# first connection
|
|
######################################################################
|
|
|
|
--echo ## Connecting to connection # 01 ##
|
|
CONNECTION test_con1;
|
|
SELECT * from t1;
|
|
|
|
--echo ## Updating value of first row ##
|
|
UPDATE t1 set name = 'Record_12' where name = 'Record_1';
|
|
SELECT * from t1;
|
|
|
|
--echo ## Connecting to connecting # 02 and verifying effect of update query ##
|
|
CONNECTION test_con2;
|
|
SELECT * from t1;
|
|
|
|
--echo ## Now connecting with connection # 01 and using ROLLBACK after it ##
|
|
CONNECTION test_con1;
|
|
ROLLBACK;
|
|
SELECT * from t1;
|
|
|
|
|
|
|
|
--echo '#--------------------FN_DYNVARS_003_05-------------------------#'
|
|
######################################################################
|
|
# Creating 2 different connections & testing behavior of autocommit
|
|
# after updating records in 1st connection and setting AUTOCOMMIT
|
|
# to 1 in second connection
|
|
######################################################################
|
|
|
|
|
|
--echo ## Connecting with connection # 01 ##
|
|
CONNECTION test_con1;
|
|
INSERT into t1(name) values('Record_3');
|
|
|
|
|
|
--echo ## Connection test_con2 ##
|
|
--echo ## Now verifying records in table from connection # 02 and changing value ##
|
|
--echo ## of autocommit to true ##
|
|
CONNECTION test_con2;
|
|
SELECT * from t1;
|
|
SET @@autocommit = 1;
|
|
INSERT into t1(name) values('Record_4');
|
|
INSERT into t1(name) values('Record_5');
|
|
SELECT * from t1;
|
|
|
|
--echo ## Connecting with connection # 01 and inserting few records ##
|
|
CONNECTION test_con1;
|
|
SELECT * from t1;
|
|
INSERT into t1(name) values('Record_6');
|
|
SELECT * from t1;
|
|
|
|
--echo ## Now verifying the effect of these new records in second connection ##
|
|
CONNECTION test_con2;
|
|
SELECT * from t1;
|
|
|
|
--echo ## Commit changes
|
|
CONNECTION test_con1;
|
|
COMMIT;
|
|
|
|
--echo ## Dropping table t1 ##
|
|
DROP table t1;
|
|
|
|
--echo ## Disconnecting both connections ##
|
|
DISCONNECT test_con1;
|
|
DISCONNECT test_con2;
|
|
|
|
|
|
|