summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/parts/t/partition_recover_myisam.test
blob: 3106407bea95a7818fdf4814f833c49b5b37accf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# test the auto-recover (--myisam-recover) of partitioned myisam tables

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");

--source include/have_partition.inc

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;