diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2017-01-25 16:05:32 +0200 |
---|---|---|
committer | Jan Lindström <jan.lindstrom@mariadb.com> | 2017-01-25 18:04:04 +0200 |
commit | 1cbea1976373254a7facb5d2ce5b7a8614b969a5 (patch) | |
tree | 966ef39a504228dc02023895e4fcfef68c973972 | |
parent | 09cc177de071d7e254ab610f1267f260cc549bcb (diff) | |
download | mariadb-git-1cbea1976373254a7facb5d2ce5b7a8614b969a5.tar.gz |
Import and adjust a test from MySQL 5.7.
-rw-r--r-- | mysql-test/suite/innodb/r/log_alter_table.result | 16 | ||||
-rw-r--r-- | mysql-test/suite/innodb/t/log_alter_table.test | 51 |
2 files changed, 67 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/r/log_alter_table.result b/mysql-test/suite/innodb/r/log_alter_table.result new file mode 100644 index 00000000000..f1ee61e7572 --- /dev/null +++ b/mysql-test/suite/innodb/r/log_alter_table.result @@ -0,0 +1,16 @@ +# +# Bug#21801423 INNODB REDO LOG DOES NOT INDICATE WHEN +# FILES ARE CREATED +# +# Bug#21796691 INNODB REDO LOG DOES NOT INDICATE WHEN +# REDO LOGGING IS SKIPPED +# +CREATE TABLE t1 (a INT NOT NULL, b INT UNIQUE) ENGINE=InnoDB; +INSERT INTO t1 VALUES (1,2); +ALTER TABLE t1 ADD PRIMARY KEY(a), ALGORITHM=INPLACE; +ALTER TABLE t1 DROP INDEX b, ADD INDEX (b); +# Kill the server +CHECK TABLE t1; +Table Op Msg_type Msg_text +test.t1 check status OK +DROP TABLE t1; diff --git a/mysql-test/suite/innodb/t/log_alter_table.test b/mysql-test/suite/innodb/t/log_alter_table.test new file mode 100644 index 00000000000..f479c6695aa --- /dev/null +++ b/mysql-test/suite/innodb/t/log_alter_table.test @@ -0,0 +1,51 @@ +--source include/have_innodb.inc +--source include/have_debug.inc + +# Embedded server does not support crashing +--source include/not_embedded.inc + +--echo # +--echo # Bug#21801423 INNODB REDO LOG DOES NOT INDICATE WHEN +--echo # FILES ARE CREATED +--echo # +--echo # Bug#21796691 INNODB REDO LOG DOES NOT INDICATE WHEN +--echo # REDO LOGGING IS SKIPPED +--echo # +--source include/no_checkpoint_start.inc +CREATE TABLE t1 (a INT NOT NULL, b INT UNIQUE) ENGINE=InnoDB; +# MLOG_INDEX_LOAD will not be emitted for empty tables. Insert a row. +INSERT INTO t1 VALUES (1,2); +# We should get two MLOG_INDEX_LOAD for this. +ALTER TABLE t1 ADD PRIMARY KEY(a), ALGORITHM=INPLACE; +# And one MLOG_INDEX_LOAD for this. +ALTER TABLE t1 DROP INDEX b, ADD INDEX (b); + +--let CLEANUP_IF_CHECKPOINT=DROP TABLE t1; +--source include/no_checkpoint_end.inc + +--let $restart_parameters= --debug=d,ib_log +--source include/start_mysqld.inc + +let SEARCH_RANGE = -50000; +let SEARCH_FILE = $MYSQLTEST_VARDIR/log/mysqld.1.err; +let SEARCH_ABORT=NOT FOUND; +# Look for at least one MLOG_FILE_CREATE2 in the error log. +# Theoretically, it may have been written by this test or an earlier test. +# FIXME: redirect the error log of the restart to a new file, +# and ensure that we have exactly 2 records there. +let SEARCH_PATTERN=scan .*: multi-log rec MLOG_FILE_CREATE2.*page .*:0; +--source include/search_pattern_in_file.inc +# Look for at least one MLOG_INDEX_LOAD in the error log. +# Theoretically, it may have been written by this test or an earlier test. +# FIXME: redirect the error log of the restart to a new file, +# and ensure that we have exactly 3 records there. +let SEARCH_PATTERN=scan .*: log rec MLOG_INDEX_LOAD; +--source include/search_pattern_in_file.inc + +CHECK TABLE t1; + +# Remove the --debug=d,ib_log setting. +--let $restart_parameters= +--source include/restart_mysqld.inc + +DROP TABLE t1; |