66 lines
1.5 KiB
Plaintext
66 lines
1.5 KiB
Plaintext
# 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 utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */
|
|
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
|