mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-27 08:58:13 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			68 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| # Save the initial number of concurrent sessions
 | |
| connect  con1,localhost,root,,;
 | |
| connect  con2,localhost,root,,;
 | |
| connect  con3,localhost,root,,;
 | |
| connection con1;
 | |
| DROP TABLE IF EXISTS t1;
 | |
| CREATE TABLE t1 (a INT) ENGINE=innodb;
 | |
| BEGIN;
 | |
| INSERT INTO t1 VALUES(1);
 | |
| connection con2;
 | |
| FLUSH TABLES WITH READ LOCK;
 | |
| connection con1;
 | |
| # Sending:
 | |
| COMMIT;
 | |
| connection con2;
 | |
| # Wait until COMMIT gets blocked.
 | |
| # Verify that 'con1' was blocked and data did not move.
 | |
| SELECT * FROM t1;
 | |
| a
 | |
| UNLOCK TABLES;
 | |
| connection con1;
 | |
| # Reaping COMMIT
 | |
| connection con1;
 | |
| BEGIN;
 | |
| SELECT * FROM t1 FOR UPDATE;
 | |
| a
 | |
| 1
 | |
| connection con2;
 | |
| BEGIN;
 | |
| SELECT * FROM t1 FOR UPDATE;
 | |
| connection con3;
 | |
| FLUSH TABLES WITH READ LOCK;
 | |
| connection con1;
 | |
| COMMIT;
 | |
| connection con2;
 | |
| a
 | |
| 1
 | |
| COMMIT;
 | |
| connection con3;
 | |
| UNLOCK TABLES;
 | |
| connection con2;
 | |
| COMMIT;
 | |
| connection con1;
 | |
| BEGIN;
 | |
| INSERT INTO t1 VALUES(10);
 | |
| FLUSH TABLES WITH READ LOCK;
 | |
| connection con2;
 | |
| FLUSH TABLES WITH READ LOCK;
 | |
| UNLOCK TABLES;
 | |
| BEGIN;
 | |
| SELECT * FROM t1;
 | |
| a
 | |
| 1
 | |
| 10
 | |
| SHOW CREATE DATABASE test;
 | |
| Database	Create Database
 | |
| test	CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */
 | |
| COMMIT;
 | |
| # Cleanup
 | |
| connection default;
 | |
| disconnect con1;
 | |
| disconnect con2;
 | |
| disconnect con3;
 | |
| # We commit open transactions when we disconnect: only then we can
 | |
| # drop the table.
 | |
| DROP TABLE t1;
 | |
| # End of 4.1 tests
 | |
| # Wait till all disconnects are completed
 | 
