diff options
Diffstat (limited to 'mysql-test/suite/parts/t/partition_recover_myisam.test')
-rw-r--r-- | mysql-test/suite/parts/t/partition_recover_myisam.test | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/mysql-test/suite/parts/t/partition_recover_myisam.test b/mysql-test/suite/parts/t/partition_recover_myisam.test new file mode 100644 index 00000000..91a14a51 --- /dev/null +++ b/mysql-test/suite/parts/t/partition_recover_myisam.test @@ -0,0 +1,50 @@ +# test the auto-recover (--myisam-recover) of partitioned myisam tables + +--disable_query_log +call mtr.add_suppression("..test.t1_will_crash"); +call mtr.add_suppression("Got an error from unknown thread"); +call mtr.add_suppression("Table 't1_will_crash' is marked as crashed and should be repaired"); +--enable_query_log + +--source include/have_partition.inc +--disable_warnings +--disable_query_log +drop table if exists t1_will_crash; +--enable_query_log +--enable_warnings + + +CREATE TABLE t1_will_crash (a INT, KEY (a)) ENGINE=MyISAM; +INSERT INTO t1_will_crash VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11); +FLUSH TABLES; + +--echo # replacing t1.MYI with a corrupt + unclosed one created by doing: +--echo # 'create table t1 (a int key(a))' head -c1024 t1.MYI > corrupt_t1.MYI +let $MYSQLD_DATADIR= `select @@datadir`; +--remove_file $MYSQLD_DATADIR/test/t1_will_crash.MYI +--copy_file std_data/corrupt_t1.MYI $MYSQLD_DATADIR/test/t1_will_crash.MYI +--enable_prepare_warnings +# Embedded server doesn't chdir to data directory +--replace_regex /Table '.*t1_will_crash/Table 't1_will_crash/ +--enable_prepare_warnings +SELECT * FROM t1_will_crash; +--disable_prepare_warnings +DROP TABLE t1_will_crash; +CREATE TABLE t1_will_crash (a INT, KEY (a)) +ENGINE=MyISAM +PARTITION BY HASH(a) +PARTITIONS 3; +INSERT INTO t1_will_crash VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11); +FLUSH TABLES; +--echo # replacing t1#P#p1.MYI with a corrupt + unclosed one created by doing: +--echo # 'create table t1 (a int key(a)) partition by hash (a) partitions 3' +--echo # head -c1024 t1#P#p1.MYI > corrupt_t1#P#p1.MYI +--remove_file $MYSQLD_DATADIR/test/t1_will_crash#P#p1.MYI +--copy_file std_data/corrupt_t1#P#p1.MYI $MYSQLD_DATADIR/test/t1_will_crash#P#p1.MYI +--enable_prepare_warnings +# Embedded server doesn't chdir to data directory +--replace_regex /Table '.*t1_will_crash/Table 't1_will_crash/ +--enable_prepare_warnings +SELECT * FROM t1_will_crash; +--disable_prepare_warnings +DROP TABLE t1_will_crash; |