summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Petrunia <psergey@askmonty.org>2017-07-29 13:24:55 +0000
committerSergei Petrunia <psergey@askmonty.org>2017-07-29 13:24:55 +0000
commitbe6c4f5d1589f9c7b8ed9e5042a1a4ad12bd3444 (patch)
treec68908a1aac22d0b0de6579030f30bdd77492411
parenta89d01fb60dd9feec94262eb62f345080122a51a (diff)
downloadmariadb-git-be6c4f5d1589f9c7b8ed9e5042a1a4ad12bd3444.tar.gz
More post-merge updates to get the tests pass
-rw-r--r--storage/rocksdb/mysql-test/rocksdb/include/deadlock_stats.inc46
-rw-r--r--storage/rocksdb/mysql-test/rocksdb/include/simple_deadlock.inc29
-rw-r--r--storage/rocksdb/mysql-test/rocksdb/r/varbinary_format.result8
3 files changed, 79 insertions, 4 deletions
diff --git a/storage/rocksdb/mysql-test/rocksdb/include/deadlock_stats.inc b/storage/rocksdb/mysql-test/rocksdb/include/deadlock_stats.inc
new file mode 100644
index 00000000000..40df82e1314
--- /dev/null
+++ b/storage/rocksdb/mysql-test/rocksdb/include/deadlock_stats.inc
@@ -0,0 +1,46 @@
+let $prior_set_lwt = `select concat('set @prior_lock_wait_timeout = @@',
+ '$engine', '_lock_wait_timeout;')`;
+let $prior_set_dld = `select concat('set @prior_deadlock_detect = @@',
+ '$engine', '_deadlock_detect;')`;
+let $global_dld = `select concat('set global ', '$engine',
+ '_deadlock_detect = on;')`;
+let $global_lwt = `select concat('set global ', '$engine',
+ '_lock_wait_timeout = 100000;')`;
+eval $prior_set_lwt $prior_set_dld $global_dld $global_lwt;
+
+--source include/count_sessions.inc
+connect (con1,localhost,root,,);
+let $con1= `SELECT CONNECTION_ID()`;
+
+connect (con2,localhost,root,,);
+let $con2= `SELECT CONNECTION_ID()`;
+
+connection default;
+eval create table t (i int primary key) engine=$engine;
+insert into t values (1), (2), (3);
+
+--source include/simple_deadlock.inc
+connection default;
+select row_lock_deadlocks from information_schema.table_statistics where
+table_name = "t";
+
+select row_lock_deadlocks from information_schema.table_statistics where
+table_name = "t";
+--source include/simple_deadlock.inc
+connection default;
+select row_lock_deadlocks from information_schema.table_statistics where
+table_name = "t";
+
+select row_lock_deadlocks from information_schema.table_statistics where
+table_name = "t";
+
+disconnect con1;
+disconnect con2;
+
+let $restore_lwt = `select concat('set global ', '$engine',
+ '_lock_wait_timeout = @prior_lock_wait_timeout;')`;
+let $restore_dld = `select concat('set global ', '$engine',
+ '_deadlock_detect = @prior_deadlock_detect;')`;
+eval $restore_lwt $restore_dld;
+drop table t;
+--source include/wait_until_count_sessions.inc
diff --git a/storage/rocksdb/mysql-test/rocksdb/include/simple_deadlock.inc b/storage/rocksdb/mysql-test/rocksdb/include/simple_deadlock.inc
new file mode 100644
index 00000000000..0afdfea76db
--- /dev/null
+++ b/storage/rocksdb/mysql-test/rocksdb/include/simple_deadlock.inc
@@ -0,0 +1,29 @@
+connection con1;
+begin;
+select * from t where i=1 for update;
+
+connection con2;
+begin;
+select * from t where i=2 for update;
+
+connection con1;
+--send select * from t where i=2 for update
+
+connection con2;
+if ($engine == "rocksdb"){
+ let $wait_condition = select count(*) = 1 from information_schema.rocksdb_trx
+ where thread_id = $con1 and waiting_key != "";
+}
+if ($engine == "innodb"){
+ let $wait_condition = select count(*) = 1 from information_schema.innodb_trx
+ where trx_mysql_thread_id = $con1 and trx_state="LOCK WAIT";
+}
+--source include/wait_condition.inc
+
+--error ER_LOCK_DEADLOCK
+select * from t where i=1 for update;
+rollback;
+
+connection con1;
+--reap
+rollback;
diff --git a/storage/rocksdb/mysql-test/rocksdb/r/varbinary_format.result b/storage/rocksdb/mysql-test/rocksdb/r/varbinary_format.result
index 9362d42515c..8b4634bb6e2 100644
--- a/storage/rocksdb/mysql-test/rocksdb/r/varbinary_format.result
+++ b/storage/rocksdb/mysql-test/rocksdb/r/varbinary_format.result
@@ -62,11 +62,11 @@ SUBSTRING(a.key,9)
000000000000000009000000000000000009000000000000000009000000000000000009000000000000000001
ROLLBACK;
DROP TABLE t1;
-set session debug= '+d,MYROCKS_LEGACY_VARBINARY_FORMAT';
+set session debug_dbug= '+d,MYROCKS_LEGACY_VARBINARY_FORMAT';
CREATE TABLE t1(
vb VARBINARY(64) primary key
) ENGINE=rocksdb;
-set session debug= '-d,MYROCKS_LEGACY_VARBINARY_FORMAT';
+set session debug_dbug= '-d,MYROCKS_LEGACY_VARBINARY_FORMAT';
INSERT INTO t1 values(0x00);
INSERT INTO t1 values(0x0000);
INSERT INTO t1 values(0x0000000000000000);
@@ -192,11 +192,11 @@ SUBSTRING(a.key,9)
616161616161616109616161616161616109616161616161616109616161616161616109610000000000000001
ROLLBACK;
DROP TABLE t1;
-set session debug= '+d,MYROCKS_LEGACY_VARBINARY_FORMAT';
+set session debug_dbug= '+d,MYROCKS_LEGACY_VARBINARY_FORMAT';
CREATE TABLE t1(
vc VARCHAR(64) collate 'binary' primary key
) ENGINE=rocksdb;
-set session debug= '-d,MYROCKS_LEGACY_VARBINARY_FORMAT';
+set session debug_dbug= '-d,MYROCKS_LEGACY_VARBINARY_FORMAT';
INSERT INTO t1 values('a');
INSERT INTO t1 values('aa');
INSERT INTO t1 values('aaaaaaaa');