From 74214525b4a22bf141f589e5534707ece604de1e Mon Sep 17 00:00:00 2001 From: qiutong1996 <15848398+qiutong1996@user.noreply.gitee.com> Date: Thu, 22 May 2025 20:22:32 +0800 Subject: [PATCH] Include rocksdb_parts.test and rocksdb_range-master.opt for rocksdb test cases --- mysql-test/suite/rocksdb/t/rocksdb_parts.test | 116 ++++++++++++++++++ .../suite/rocksdb/t/rocksdb_range-master.opt | 1 + 2 files changed, 117 insertions(+) create mode 100644 mysql-test/suite/rocksdb/t/rocksdb_parts.test create mode 100644 mysql-test/suite/rocksdb/t/rocksdb_range-master.opt diff --git a/mysql-test/suite/rocksdb/t/rocksdb_parts.test b/mysql-test/suite/rocksdb/t/rocksdb_parts.test new file mode 100644 index 000000000..e25e8a46b --- /dev/null +++ b/mysql-test/suite/rocksdb/t/rocksdb_parts.test @@ -0,0 +1,116 @@ +--source include/have_rocksdb.inc + +--echo # Tests for MyRocks + partitioning + +--echo # +--echo # MyRocks Issue #70: Server crashes in Rdb_key_def::get_primary_key_tuple +--echo # +CREATE TABLE t1 (pk INT PRIMARY KEY, f1 INT, f2 INT, KEY(f2)) ENGINE=ROCKSDB +PARTITION BY HASH(pk) PARTITIONS 2; +INSERT INTO t1 VALUES (1, 6, NULL), (2, NULL, 1); + +CREATE TABLE t2 (pk INT PRIMARY KEY, f1 INT) ENGINE=ROCKSDB; +INSERT INTO t2 VALUES (1, 1), (2, 1); + +SELECT f1 FROM t1 WHERE f2 = ( SELECT f1 FROM t2 WHERE pk = 2 ); + +drop table t1,t2; + +--echo # +--echo # Issue#105: key_info[secondary_key].actual_key_parts does not include primary key on partitioned tables +--echo # +CREATE TABLE t1 ( + id INT PRIMARY KEY, + a set ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z') CHARACTER SET utf8mb4, + b set ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z') CHARACTER SET utf8mb4 default null, + c set ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z') CHARACTER SET utf8mb4 not null, + INDEX (a), + INDEX (b), + INDEX (c) +) ENGINE=ROCKSDB PARTITION BY key (id) partitions 2; + +INSERT INTO t1 (id, b, c) VALUES (28, 3, 3); +UPDATE t1 SET id=8 WHERE c < 8 LIMIT 1; +check table t1; +drop table t1; + +--echo # +--echo # Issue #105, another testcase +--echo # +create table t1 ( + pk int primary key, + col1 int, + col2 int, + key (col1) comment 'cfname=rev:cf_issue105' +) engine=rocksdb partition by hash(pk) partitions 2; + +insert into t1 values (1,10,10); +insert into t1 values (2,10,10); + +insert into t1 values (11,20,20); +insert into t1 values (12,20,20); +--replace_column 10 # +explain select * from t1 force index(col1) where col1=10; +select * from t1 force index(col1) where col1=10; +select * from t1 use index () where col1=10; +drop table t1; + +--echo # +--echo # Issue #108: Index-only scans do not work for partitioned tables and extended keys +--echo # +create table t1 ( + pk int primary key, + col1 int, + col2 int, + key (col1) +) engine=rocksdb partition by hash(pk) partitions 2; + +insert into t1 values (1,10,10); +insert into t1 values (2,10,10); + +insert into t1 values (11,20,20); +insert into t1 values (12,20,20); +--echo # The following must use "Using index" +--replace_column 10 # +explain select pk from t1 force index(col1) where col1=10; + +drop table t1; + +--echo # +--echo # Issue #214: subqueries cause crash +--echo # +create TABLE t1(a int,b int,c int,primary key(a,b)) engine=rocksdb + partition by list (b*a) (partition x1 values in (1), + partition x2 values in (3,11,5,7), + partition x3 values in (16,8,5+19,70-43)); +create table t2(b binary(2)) engine=rocksdb; +set session optimizer_switch=5; +insert into t1(a,b) values(1,7); +select a from t1 where a in (select a from t1 where a in (select b from t2)); + +drop table t1, t2; + +--echo # +--echo # Issue #260: altering name to invalid value leaves table unaccessible +--echo # +CREATE TABLE t1 (c1 INT NOT NULL, c2 CHAR(5)) ENGINE=ROCKSDB PARTITION BY HASH(c1) PARTITIONS 4; +INSERT INTO t1 VALUES(1,'a'); +--error ER_BAD_DB_ERROR +RENAME TABLE t1 TO db3.t3; +SELECT * FROM t1; +SHOW TABLES; +# try it again to the same database +RENAME TABLE t1 TO test.t3; +SELECT * FROM t3; +SHOW TABLES; +# now try it again but with another existing database +CREATE DATABASE db3; +USE test; +RENAME TABLE t3 to db3.t2; +USE db3; +SELECT * FROM t2; +SHOW TABLES; +# cleanup +DROP TABLE t2; +use test; +DROP DATABASE db3; diff --git a/mysql-test/suite/rocksdb/t/rocksdb_range-master.opt b/mysql-test/suite/rocksdb/t/rocksdb_range-master.opt new file mode 100644 index 000000000..ecb4b1913 --- /dev/null +++ b/mysql-test/suite/rocksdb/t/rocksdb_range-master.opt @@ -0,0 +1 @@ +--loose-rocksdb_debug_optimizer_n_rows=1000 --loose-rocksdb_records_in_range=50 -- Gitee