summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/parts/t/partition_recover_myisam.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/parts/t/partition_recover_myisam.test')
-rw-r--r--mysql-test/suite/parts/t/partition_recover_myisam.test50
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;