diff --git a/mysql-test/suite/rocksdb/r/lock.result b/mysql-test/suite/rocksdb/r/lock.result index 8c89fa1b934a..60fe5ebe3a8b 100644 --- a/mysql-test/suite/rocksdb/r/lock.result +++ b/mysql-test/suite/rocksdb/r/lock.result @@ -106,3 +106,18 @@ SELECT a,b FROM t1; a b UNLOCK TABLES; DROP TABLE t1, t2; +CREATE TABLE t1 (i INT) ENGINE=MyISAM; +HANDLER t1 OPEN h; +CREATE TABLE t2 (i INT) ENGINE=RocksDB; +LOCK TABLES t2 WRITE; +connect con1,localhost,root,,test; +connection con1; +FLUSH TABLES WITH READ LOCK; +connection default; +INSERT INTO t2 VALUES (1); +UNLOCK TABLES; +HANDLER h CLOSE; +connection con1; +disconnect con1; +connection default; +DROP TABLE t1, t2; diff --git a/mysql-test/suite/rocksdb/t/lock.test b/mysql-test/suite/rocksdb/t/lock.test index 015a08bef573..9ce5e5665053 100644 --- a/mysql-test/suite/rocksdb/t/lock.test +++ b/mysql-test/suite/rocksdb/t/lock.test @@ -196,6 +196,28 @@ SELECT a,b FROM t1; UNLOCK TABLES; DROP TABLE t1, t2; +CREATE TABLE t1 (i INT) ENGINE=MyISAM; +HANDLER t1 OPEN h; +CREATE TABLE t2 (i INT) ENGINE=RocksDB; +LOCK TABLES t2 WRITE; + +--connect (con1,localhost,root,,test) +--connection con1 +--send +FLUSH TABLES WITH READ LOCK; + +--connection default +INSERT INTO t2 VALUES (1); +UNLOCK TABLES; +HANDLER h CLOSE; + +--connection con1 +--reap +--disconnect con1 + +--connection default +DROP TABLE t1, t2; + # Check that all connections opened by test cases in this file are really # gone so execution of other tests won't be affected by their presence. --source include/wait_until_count_sessions.inc diff --git a/storage/rocksdb/ha_rocksdb.cc b/storage/rocksdb/ha_rocksdb.cc index e12b39e18b47..6ddc24686916 100644 --- a/storage/rocksdb/ha_rocksdb.cc +++ b/storage/rocksdb/ha_rocksdb.cc @@ -10402,7 +10402,7 @@ THR_LOCK_DATA **ha_rocksdb::store_lock(THD *const thd, THR_LOCK_DATA **to, m_lock_rows = RDB_LOCK_WRITE; } else if (lock_type == TL_READ_WITH_SHARED_LOCKS) { m_lock_rows = RDB_LOCK_READ; - } else { + } else if (lock_type != TL_IGNORE) { m_lock_rows = RDB_LOCK_NONE; if (THDVAR(thd, lock_scanned_rows)) { /*