diff --git a/mysql-test/suite/rocksdb/t/issue111.test b/mysql-test/suite/rocksdb/t/issue111.test new file mode 100644 index 0000000000000000000000000000000000000000..8d48a08ac266571ca35514fec3b02aaa63919514 --- /dev/null +++ b/mysql-test/suite/rocksdb/t/issue111.test @@ -0,0 +1,51 @@ +--source include/have_rocksdb.inc + +connect (con2,localhost,root,,); +connection default; + +create table t1 ( + pk int not null primary key, + col1 int not null, + col2 int not null, + key(col1) +) engine=rocksdb; + +create table ten(a int primary key) engine=rocksdb; +insert into ten values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +create table one_k(a int primary key) engine=rocksdb; + +# MyRocks does not support gap locks in REPEATABLE-READ mode, this part of the +# the test does not require RR ISO to complete, so lets temporarily alter the +# ISO to RC +set @orig_tx_iso=@@session.transaction_isolation; +set session transaction_isolation='READ-COMMITTED'; + +insert into one_k select A.a + B.a* 10 + C.a * 100 from ten A, ten B, ten C; + +insert into t1 select a,a,a from one_k; + +set session transaction_isolation=@orig_tx_iso; + +--echo # Start the transaction, get the snapshot +begin; +select * from t1 where col1<10; + +--echo # Connect with another connection and make a conflicting change +connection con2; + +begin; +update t1 set col2=123456 where pk=0; +commit; + +connection default; + +# MyRocks does not support gap locks in REPEATABLE-READ mode +# Upstream would have granted a ghost lock on the gaps and then encountered +# a real row deadlock. Percona Server prevents the gap lock entirely +# --error ER_LOCK_DEADLOCK +--error ER_UNKNOWN_ERROR +update t1 set col2=col2+1 where col1 < 10 limit 5; + +disconnect con2; +drop table t1, ten, one_k; diff --git a/mysql-test/suite/rocksdb/t/issue255.test b/mysql-test/suite/rocksdb/t/issue255.test new file mode 100644 index 0000000000000000000000000000000000000000..66fb7da43f5d62702fa9896f643b2acceb34b139 --- /dev/null +++ b/mysql-test/suite/rocksdb/t/issue255.test @@ -0,0 +1,60 @@ +--source include/have_rocksdb.inc + +CREATE TABLE t1 (pk BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT) ENGINE=ROCKSDB; + +INSERT INTO t1 VALUES (5); +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # 14 # +SHOW TABLE STATUS LIKE 't1'; + +INSERT INTO t1 VALUES (); +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # +SELECT * FROM t1; +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # 14 # +SHOW TABLE STATUS LIKE 't1'; + +INSERT INTO t1 VALUES (); +SELECT * FROM t1; +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # 14 # +SHOW TABLE STATUS LIKE 't1'; + +INSERT INTO t1 VALUES (10); +SELECT * FROM t1; +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # 14 # +SHOW TABLE STATUS LIKE 't1'; + +INSERT INTO t1 VALUES (); +SELECT * FROM t1; +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # 14 # +SHOW TABLE STATUS LIKE 't1'; + +DROP TABLE t1; + +CREATE TABLE t1 (pk TINYINT NOT NULL PRIMARY KEY AUTO_INCREMENT) ENGINE=ROCKSDB; + +INSERT INTO t1 VALUES (5); +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # 14 # +SHOW TABLE STATUS LIKE 't1'; + +INSERT INTO t1 VALUES (127); +SELECT * FROM t1; +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # 14 # +SHOW TABLE STATUS LIKE 't1'; + +--error ER_DUP_ENTRY +INSERT INTO t1 VALUES (); +SELECT * FROM t1; +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # 14 # +SHOW TABLE STATUS LIKE 't1'; + +INSERT INTO t1 VALUES(6); +SELECT * FROM t1 ORDER BY pk; +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # 14 # +SHOW TABLE STATUS LIKE 't1'; + +--error ER_DUP_ENTRY +INSERT INTO t1 VALUES (); +SELECT * FROM t1; +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # 14 # +SHOW TABLE STATUS LIKE 't1'; + +DROP TABLE t1;