Skip to content
Permalink
Browse files
MDEV-12528 Run the engine-agnostic test suite on MyRocks
  • Loading branch information
elenst committed Jun 22, 2017
1 parent bb857f0 commit a8131e7
Show file tree
Hide file tree
Showing 45 changed files with 1,810 additions and 0 deletions.
@@ -0,0 +1,71 @@
--- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/cache_index.result 2017-06-22 00:33:46.419995639 +0300
+++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/cache_index.reject 2017-06-22 01:11:22.479981459 +0300
@@ -12,31 +12,31 @@
SET GLOBAL <CACHE_NAME>.key_buffer_size=128*1024;
CACHE INDEX t1 INDEX (a), t2 IN <CACHE_NAME>;
Table Op Msg_type Msg_text
-test.t1 assign_to_keycache status OK
-test.t2 assign_to_keycache status OK
+test.t1 assign_to_keycache note The storage engine for the table doesn't support assign_to_keycache
+test.t2 assign_to_keycache note The storage engine for the table doesn't support assign_to_keycache
LOAD INDEX INTO CACHE t1, t2;
Table Op Msg_type Msg_text
-test.t1 preload_keys status OK
-test.t2 preload_keys status OK
+test.t1 preload_keys note The storage engine for the table doesn't support preload_keys
+test.t2 preload_keys note The storage engine for the table doesn't support preload_keys
INSERT INTO t1 (a,b) VALUES (3,'c'),(4,'d');
SET GLOBAL <CACHE_NAME>.key_buffer_size=8*1024;
LOAD INDEX INTO CACHE t1, t2 IGNORE LEAVES;
Table Op Msg_type Msg_text
-test.t1 preload_keys status OK
-test.t2 preload_keys status OK
+test.t1 preload_keys note The storage engine for the table doesn't support preload_keys
+test.t2 preload_keys note The storage engine for the table doesn't support preload_keys
SET GLOBAL <CACHE_NAME>.key_cache_age_threshold = 100, <CACHE_NAME>.key_cache_block_size = 512, <CACHE_NAME>.key_cache_division_limit = 1, <CACHE_NAME>.key_cache_segments=2;
INSERT INTO t1 (a,b) VALUES (5,'e'),(6,'f');
LOAD INDEX INTO CACHE t1;
Table Op Msg_type Msg_text
-test.t1 preload_keys status OK
+test.t1 preload_keys note The storage engine for the table doesn't support preload_keys
SET GLOBAL new_<CACHE_NAME>.key_buffer_size=128*1024;
CACHE INDEX t1 IN new_<CACHE_NAME>;
Table Op Msg_type Msg_text
-test.t1 assign_to_keycache status OK
+test.t1 assign_to_keycache note The storage engine for the table doesn't support assign_to_keycache
INSERT INTO t1 (a,b) VALUES (7,'g'),(8,'h');
LOAD INDEX INTO CACHE t1 IGNORE LEAVES;
Table Op Msg_type Msg_text
-test.t1 preload_keys status OK
+test.t1 preload_keys note The storage engine for the table doesn't support preload_keys
INSERT INTO t1 (a,b) VALUES (9,'i');
DROP TABLE t2;
DROP TABLE t1;
@@ -47,11 +47,11 @@
) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
CACHE INDEX t1 IN <CACHE_NAME>;
Table Op Msg_type Msg_text
-test.t1 assign_to_keycache status OK
+test.t1 assign_to_keycache note The storage engine for the table doesn't support assign_to_keycache
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b');
LOAD INDEX INTO CACHE t1;
Table Op Msg_type Msg_text
-test.t1 preload_keys status OK
+test.t1 preload_keys note The storage engine for the table doesn't support preload_keys
DROP TABLE t1;
CREATE TABLE t1 (a <INT_COLUMN>,
b <CHAR_COLUMN>,
@@ -59,11 +59,11 @@
) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
CACHE INDEX t1 IN <CACHE_NAME>;
Table Op Msg_type Msg_text
-test.t1 assign_to_keycache status OK
+test.t1 assign_to_keycache note The storage engine for the table doesn't support assign_to_keycache
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b');
LOAD INDEX INTO CACHE t1;
Table Op Msg_type Msg_text
-test.t1 preload_keys status OK
+test.t1 preload_keys note The storage engine for the table doesn't support preload_keys
DROP TABLE t1;
SET GLOBAL <CACHE_NAME>.key_buffer_size=0;
SET GLOBAL new_<CACHE_NAME>.key_buffer_size=0;
@@ -0,0 +1,13 @@
--- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/checksum_table_live.result 2017-06-22 00:33:46.419995639 +0300
+++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/checksum_table_live.reject 2017-06-22 01:12:38.695980980 +0300
@@ -11,8 +11,8 @@
test.t1 4272806499
CHECKSUM TABLE t1, t2 QUICK;
Table Checksum
-test.t1 4272806499
-test.t2 0
+test.t1 NULL
+test.t2 NULL
CHECKSUM TABLE t1, t2 EXTENDED;
Table Checksum
test.t1 4272806499
@@ -0,0 +1,25 @@
###########################################
#
# This is a stub of the include file cleanup_engine.inc which
# should be placed in storage/<engine>/mysql-test/storage_engine folder.
#
################################
#
# Here you can add whatever is needed to cleanup
# in case your define_engine.inc created any artefacts,
# e.g. an additional schema and/or tables.

--let $datadir= `SELECT @@datadir`

--error 0,1
--file_exists $datadir/.rocksdb/*
if (!$mysql_errno)
{
--enable_reconnect
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--shutdown_server
--source include/wait_until_disconnected.inc
--rmdir $datadir/.rocksdb
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
--source include/wait_until_connected_again.inc
}
@@ -0,0 +1,45 @@
###########################################
#
# This is a template of the include file define_engine.inc which
# should be placed in storage/<engine>/mysql-test/storage_engine folder.
#
################################
#
# The name of the engine under test must be defined in $ENGINE variable.
# You can set it either here (uncomment and edit) or in your environment.
#
let $ENGINE = RocksDB;
#
################################
#
# The following three variables define specific options for columns and tables.
# Normally there should be none needed, but for some engines it can be different.
# If the engine requires specific column option for all or indexed columns,
# set them inside the comment, e.g. /*!NOT NULL*/.
# Do the same for table options if needed, e.g. /*!INSERT_METHOD=LAST*/

let $default_col_opts = /*!*/;
let $default_col_indexed_opts = /*!*/;
let $default_tbl_opts = /*!*/;

# INDEX, UNIQUE INDEX, PRIMARY KEY, special index type - choose the fist that the engine allows,
# or set it to /*!*/ if none is supported

let $default_index = /*!INDEX*/;

# If the engine does not support the following types, replace them with the closest possible

let $default_int_type = INT(11);
let $default_char_type = CHAR(8);

################################

--disable_query_log
--disable_result_log

# Here you can place your custom MTR code which needs to be executed before each test,
# e.g. creation of an additional schema or table, etc.
# The cleanup part should be defined in cleanup_engine.inc

--enable_query_log
--enable_result_log
@@ -0,0 +1,25 @@
alter_tablespace : Not supported
autoinc_secondary : Not supported
create_table : MDEV-12914 - Engine for temporary tables which are implicitly created as RocksDB is substituted silently
delete_low_prio : Not supported
foreign_keys : Not supported
fulltext_search : Not supported
handler : Not supported
index_enable_disable : Not supported
insert_delayed : Not supported
insert_high_prio : Not supported
insert_low_prio : Not supported
lock : MDEV-13148 - LOCK TABLE on RocksDB table fails with a bogus error message
lock_concurrent : MDEV-13148 - LOCK TABLE on RocksDB table fails with a bogus error message
optimize_table : MDEV-13148 - LOCK TABLE on RocksDB table fails with a bogus error message
repair_table : MDEV-13148 - LOCK TABLE on RocksDB table fails with a bogus error message
select_high_prio : Not supported
show_table_status : MDEV-13152 - Indeterministic row number in SHOW TABLE STATUS on RocksDB table
tbl_opt_data_dir : Not supported
tbl_opt_index_dir : Not supported
type_spatial : Not supported
type_spatial_indexes : Not supported
update_low_prio : Not supported
update_ignore : MDEV-13151 - Indeterministic results of multi-table update on RocksDB tables
update_multi : MDEV-13151 - Indeterministic results of multi-table update on RocksDB tables
vcol : Not supported
@@ -0,0 +1,98 @@
--- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/index.result 2017-06-22 00:33:46.419995639 +0300
+++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/index.reject 2017-06-22 13:55:28.615693291 +0300
@@ -4,7 +4,7 @@
) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
SHOW KEYS IN t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a # # NULL NULL # BTREE
+t1 1 a 1 a # # NULL NULL # LSMTREE
DROP TABLE t1;
CREATE TABLE t1 (a <INT_COLUMN>,
b <CHAR_COLUMN>,
@@ -12,8 +12,8 @@
) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
SHOW KEYS IN t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a_b 1 a # # NULL NULL # BTREE a_b index
-t1 1 a_b 2 b # # NULL NULL # BTREE a_b index
+t1 1 a_b 1 a # # NULL NULL # LSMTREE a_b index
+t1 1 a_b 2 b # # NULL NULL # LSMTREE a_b index
DROP TABLE t1;
CREATE TABLE t1 (a <INT_COLUMN>,
b <CHAR_COLUMN>,
@@ -22,46 +22,48 @@
) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
SHOW KEYS IN t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a # # NULL NULL # BTREE
-t1 1 b 1 b # # NULL NULL # BTREE
+t1 1 a 1 a # # NULL NULL # LSMTREE
+t1 1 b 1 b # # NULL NULL # LSMTREE
DROP TABLE t1;
CREATE TABLE t1 (a <INT_COLUMN>,
b <CHAR_COLUMN>,
UNIQUE INDEX (a)
) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
-SHOW KEYS IN t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a # # NULL NULL # BTREE
-INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b');
-INSERT INTO t1 (a,b) VALUES (1,'c');
-ERROR 23000: Duplicate entry '1' for key 'a'
-# Statement ended with one of expected results (ER_DUP_ENTRY,ER_DUP_KEY).
-# If you got a difference in error message, just add it to rdiff file
-DROP TABLE t1;
+ERROR HY000: Unique index support is disabled when the table has no primary key.
+# ERROR: Statement ended with errno 1105, errname ER_UNKNOWN_ERROR (expected to succeed)
+# ------------ UNEXPECTED RESULT ------------
+# [ CREATE TABLE t1 (a INT(11) /*!*/ /*Custom indexed column options*/,
+b CHAR(8) /*!*/ /*Custom column options*/,
+UNIQUE INDEX (a)
+) ENGINE=RocksDB /*!*/ /*Custom table options*/ ]
+# The statement|command finished with ER_UNKNOWN_ERROR.
+# Unique indexes or the mix could be unsupported|malfunctioning, or the problem was caused by previous errors.
+# You can change the engine code, or create an rdiff, or disable the test by adding it to disabled.def.
+# Further in this test, the message might sometimes be suppressed; a part of the test might be skipped.
+# Also, this problem may cause a chain effect (more errors of different kinds in the test).
+# -------------------------------------------
CREATE TABLE t1 (a <INT_COLUMN>, b <CHAR_COLUMN>) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
INSERT INTO t1 (a,b) VALUES (100,'z');
ALTER TABLE t1 ADD <CUSTOM_INDEX> (a) COMMENT 'simple index on a';
SHOW INDEX FROM t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 1 a 1 a # # NULL NULL # BTREE simple index on a
+t1 1 a 1 a # # NULL NULL # LSMTREE simple index on a
ALTER TABLE t1 DROP KEY a;
DROP TABLE t1;
CREATE TABLE t1 (a <INT_COLUMN>,
b <CHAR_COLUMN>,
UNIQUE INDEX (a)
) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
-SHOW KEYS IN t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 a 1 a # # NULL NULL # BTREE
-INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b');
-INSERT INTO t1 (a,b) VALUES (1,'c');
-ERROR 23000: Duplicate entry '1' for key 'a'
-# Statement ended with one of expected results (ER_DUP_ENTRY,ER_DUP_KEY).
-# If you got a difference in error message, just add it to rdiff file
-ALTER TABLE t1 DROP INDEX a;
-INSERT INTO t1 (a,b) VALUES (1,'c');
-ALTER TABLE t1 ADD UNIQUE INDEX a(a) ;
-ERROR 23000: Duplicate entry '1' for key 'a'
-# Statement ended with one of expected results (ER_DUP_ENTRY,ER_DUP_KEY).
-# If you got a difference in error message, just add it to rdiff file
-DROP TABLE t1;
+ERROR HY000: Unique index support is disabled when the table has no primary key.
+# ERROR: Statement ended with errno 1105, errname ER_UNKNOWN_ERROR (expected to succeed)
+# ------------ UNEXPECTED RESULT ------------
+# [ CREATE TABLE t1 (a INT(11) /*!*/ /*Custom indexed column options*/,
+b CHAR(8) /*!*/ /*Custom column options*/,
+UNIQUE INDEX (a)
+) ENGINE=RocksDB /*!*/ /*Custom table options*/ ]
+# The statement|command finished with ER_UNKNOWN_ERROR.
+# Unique indexes or the mix could be unsupported|malfunctioning, or the problem was caused by previous errors.
+# You can change the engine code, or create an rdiff, or disable the test by adding it to disabled.def.
+# Further in this test, the message might sometimes be suppressed; a part of the test might be skipped.
+# Also, this problem may cause a chain effect (more errors of different kinds in the test).
+# -------------------------------------------
@@ -0,0 +1,26 @@
--- /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/index_key_block_size.result 2017-06-22 00:33:46.419995639 +0300
+++ /data/src/bb-10.2-mdev12528/mysql-test/suite/storage_engine/index_key_block_size.reject 2017-06-22 13:56:59.503692719 +0300
@@ -19,10 +19,19 @@
b <CHAR_COLUMN>,
UNIQUE INDEX ind2(b(1) DESC) KEY_BLOCK_SIZE=32768 COMMENT 'big key_block_size value'
) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
-SHOW INDEX IN t1;
-Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
-t1 0 ind2 1 b # # 1 NULL # # big key_block_size value
-DROP TABLE t1;
+ERROR HY000: Unique index support is disabled when the table has no primary key.
+# ERROR: Statement ended with errno 1105, errname ER_UNKNOWN_ERROR (expected to succeed)
+# ------------ UNEXPECTED RESULT ------------
+# [ CREATE TABLE t1 (a INT(11) /*!*/ /*Custom column options*/,
+b CHAR(8) /*!*/ /*Custom indexed column options*/,
+UNIQUE INDEX ind2(b(1) DESC) KEY_BLOCK_SIZE=32768 COMMENT 'big key_block_size value'
+) ENGINE=RocksDB /*!*/ /*Custom table options*/ ]
+# The statement|command finished with ER_UNKNOWN_ERROR.
+# Unique keys on char columns or the mix could be unsupported|malfunctioning, or the problem was caused by previous errors.
+# You can change the engine code, or create an rdiff, or disable the test by adding it to disabled.def.
+# Further in this test, the message might sometimes be suppressed; a part of the test might be skipped.
+# Also, this problem may cause a chain effect (more errors of different kinds in the test).
+# -------------------------------------------
CREATE TABLE t1 (a <INT_COLUMN>,
b <CHAR_COLUMN>,
<CUSTOM_INDEX> a_b(a,b) KEY_BLOCK_SIZE=8192

0 comments on commit a8131e7

Please sign in to comment.