diff options
Diffstat (limited to 'mysql-test/main/consistent_snapshot.test')
-rw-r--r-- | mysql-test/main/consistent_snapshot.test | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/mysql-test/main/consistent_snapshot.test b/mysql-test/main/consistent_snapshot.test new file mode 100644 index 00000000..a481e757 --- /dev/null +++ b/mysql-test/main/consistent_snapshot.test @@ -0,0 +1,69 @@ +--source include/have_innodb.inc + +# Save the initial number of concurrent sessions +--source include/count_sessions.inc + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + +connect (con1,localhost,root,,); +connect (con2,localhost,root,,); + +--echo ### Test 1: +--echo ### - While a consistent snapshot transaction is executed, +--echo ### no external inserts should be visible to the transaction. + +connection con1; +CREATE TABLE t1 (a INT) ENGINE=innodb; +START TRANSACTION WITH CONSISTENT SNAPSHOT; + +connection con2; +INSERT INTO t1 VALUES(1); + +connection con1; +SELECT * FROM t1; # if consistent snapshot was set as expected, we +# should see nothing. +COMMIT; + +--echo ### Test 2: +--echo ### - For any non-consistent snapshot transaction, external +--echo ### committed inserts should be visible to the transaction. + +DELETE FROM t1; +START TRANSACTION; # Now we omit WITH CONSISTENT SNAPSHOT + +connection con2; +INSERT INTO t1 VALUES(1); + +connection con1; +SELECT * FROM t1; # if consistent snapshot was not set, as expected, we +# should see 1. +COMMIT; + +--echo ### Test 3: +--echo ### - Bug#44664: valgrind warning for COMMIT_AND_CHAIN and ROLLBACK_AND_CHAIN +--echo ### Chaining a transaction does not retain consistency level. + +START TRANSACTION WITH CONSISTENT SNAPSHOT; +DELETE FROM t1; +COMMIT WORK AND CHAIN; + +connection con2; +INSERT INTO t1 VALUES(1); + +connection con1; +SELECT * FROM t1; # if consistent snapshot was not set, as expected, we +# should see 1. +COMMIT; + +connection default; +disconnect con1; +disconnect con2; +DROP TABLE t1; + +# End of 4.1 tests + +# Wait till all disconnects are completed +--source include/wait_until_count_sessions.inc + |