summaryrefslogtreecommitdiff
path: root/storage/tokudb/mysql-test/tokudb/t/mvcc-5.test
diff options
context:
space:
mode:
Diffstat (limited to 'storage/tokudb/mysql-test/tokudb/t/mvcc-5.test')
-rw-r--r--storage/tokudb/mysql-test/tokudb/t/mvcc-5.test62
1 files changed, 62 insertions, 0 deletions
diff --git a/storage/tokudb/mysql-test/tokudb/t/mvcc-5.test b/storage/tokudb/mysql-test/tokudb/t/mvcc-5.test
new file mode 100644
index 00000000000..8ddb453b2ee
--- /dev/null
+++ b/storage/tokudb/mysql-test/tokudb/t/mvcc-5.test
@@ -0,0 +1,62 @@
+# verify that repeatable read uses one snapshot, whereas read committed keeps taking new ones
+
+#--source include/have_tokudb.inc
+SET DEFAULT_STORAGE_ENGINE = 'tokudb';
+set session transaction isolation level repeatable read;
+
+--echo # Establish connection conn1 (user = root)
+connect (conn1,localhost,root,,);
+connect (conn2,localhost,root,,);
+
+--disable_warnings
+DROP TABLE IF EXISTS foo;
+--enable_warnings
+
+create table foo (a int, b int, primary key (a))engine=TokuDB;
+show create table foo;
+insert into foo values (1,1);
+
+connection conn1;
+set session transaction isolation level repeatable read;
+begin;
+--echo # Should read just (1,1)
+select * from foo;
+
+connection conn2;
+set session transaction isolation level read committed;
+begin;
+--echo # Should read just (1,1)
+select * from foo;
+
+connection default;
+replace into foo values (1,10),(2,20);
+
+connection conn1;
+--echo # Should read just (1,1)
+select * from foo;
+
+connection conn2;
+--echo # Should read just (1,10), (2,20)
+select * from foo;
+
+connection default;
+replace into foo values (1,100),(2,200),(3,300);
+
+connection conn1;
+--echo # Should read just (1,1)
+select * from foo;
+commit;
+
+connection conn2;
+--echo # Should read just (1,100), (2,200),(3,300)
+select * from foo;
+commit;
+
+connection default;
+disconnect conn1;
+disconnect conn2;
+
+connection default;
+# Final cleanup.
+set session transaction isolation level serializable;
+DROP TABLE foo;