From 06eaf7232e9a920468c0f8d74dcf2fe8b555501c Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 13 Apr 2024 14:24:36 +0200 Subject: Adding upstream version 1:10.11.6. Signed-off-by: Daniel Baumann --- mysql-test/main/consistent_snapshot.test | 69 ++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 mysql-test/main/consistent_snapshot.test (limited to 'mysql-test/main/consistent_snapshot.test') 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 + -- cgit v1.2.3