B4BY.588
Home
Terminal
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
usr
/
share
/
mysql-test
/
r
/
Filename :
flush_block_commit.result
back
Copy
# Save the initial number of concurrent sessions # Establish connection con1 (user=root) # Establish connection con2 (user=root) # Establish connection con3 (user=root) # Switch to connection con1 DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a INT) ENGINE=innodb; BEGIN; INSERT INTO t1 VALUES(1); # Switch to connection con2 FLUSH TABLES WITH READ LOCK; # Switch to connection con1 # Sending: COMMIT; # Switch to connection con2 # Wait until COMMIT gets blocked. # Verify that 'con1' was blocked and data did not move. SELECT * FROM t1; a UNLOCK TABLES; # Switch to connection con1 # Reaping COMMIT # Switch to connection con1 BEGIN; SELECT * FROM t1 FOR UPDATE; a 1 # Switch to connection con2 BEGIN; SELECT * FROM t1 FOR UPDATE; # Switch to connection con3 FLUSH TABLES WITH READ LOCK; # Switch to connection con1 COMMIT; # Switch to connection con2 a 1 COMMIT; # Switch to connection con3 UNLOCK TABLES; # Switch to connection con2 COMMIT; # Switch to connection con1 BEGIN; INSERT INTO t1 VALUES(10); FLUSH TABLES WITH READ LOCK; # Switch to 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 */ COMMIT; # Cleanup # Switch to connection default and close connections con1, con2, 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