############## 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 ###################################################################### 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 ## 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 ## CONNECTION test_con1; SELECT * from t1; COMMIT; --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 ###################################################################### 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 ###################################################################### CONNECTION test_con1; INSERT into t1(name) values('Record_3'); --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; DISCONNECT test_con1; DISCONNECT test_con2;