80 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			80 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | --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 | ||
|  | 
 | ||
|  | --echo # Establish connection con1 (user=root) | ||
|  | connect (con1,localhost,root,,); | ||
|  | --echo # Establish connection con2 (user=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. | ||
|  | 
 | ||
|  | --echo # Switch to connection con1 | ||
|  | connection con1; | ||
|  | CREATE TABLE t1 (a INT) ENGINE=innodb; | ||
|  | START TRANSACTION WITH CONSISTENT SNAPSHOT; | ||
|  | 
 | ||
|  | --echo # Switch to connection con2 | ||
|  | connection con2; | ||
|  | INSERT INTO t1 VALUES(1); | ||
|  | 
 | ||
|  | --echo # Switch to connection con1 | ||
|  | 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 | ||
|  | 
 | ||
|  | --echo # Switch to connection con2 | ||
|  | connection con2; | ||
|  | INSERT INTO t1 VALUES(1); | ||
|  | 
 | ||
|  | --echo # Switch to connection con1 | ||
|  | 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; | ||
|  | 
 | ||
|  | --echo # Switch to connection con2 | ||
|  | connection con2; | ||
|  | INSERT INTO t1 VALUES(1); | ||
|  | 
 | ||
|  | --echo # Switch to connection con1 | ||
|  | connection con1; | ||
|  | SELECT * FROM t1; # if consistent snapshot was not set, as expected, we | ||
|  | # should see 1. | ||
|  | COMMIT; | ||
|  | 
 | ||
|  | --echo # Switch to connection default + close connections con1 and con2 | ||
|  | 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 | ||
|  | 
 |