summaryrefslogtreecommitdiffstats
path: root/mysql-test/main/flush_block_commit.result
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/main/flush_block_commit.result')
-rw-r--r--mysql-test/main/flush_block_commit.result68
1 files changed, 68 insertions, 0 deletions
diff --git a/mysql-test/main/flush_block_commit.result b/mysql-test/main/flush_block_commit.result
new file mode 100644
index 00000000..187ca145
--- /dev/null
+++ b/mysql-test/main/flush_block_commit.result
@@ -0,0 +1,68 @@
+# 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