summaryrefslogtreecommitdiff
path: root/mysql-test/r/myisam.result
diff options
context:
space:
mode:
authorJon Olav Hauglid <jon.hauglid@sun.com>2010-04-15 09:16:29 +0200
committerJon Olav Hauglid <jon.hauglid@sun.com>2010-04-15 09:16:29 +0200
commit48ac4ff51f7391d4dd0826e0adebda2e24bc3feb (patch)
tree79d1f64b3f5faab0279daf4bf632c600bc4d1e7c /mysql-test/r/myisam.result
parentd3d459a72c8a1b2f972560a77e2296db14df4a84 (diff)
downloadmariadb-git-48ac4ff51f7391d4dd0826e0adebda2e24bc3feb.tar.gz
Bug #51327 MyISAM table is automatically repaired on ALTER
even if myisam-recover is OFF The problem was that a corrupted MyISAM table was auto repaired even if the myisam_recover_options server variable (or the myisam_recover option) was set to OFF. The reason was that the auto_repair() function, which is supposed to say if auto repair is to be used, did not use the server variable setting correctly. This bug was a regression introduced by WL#4738. This patch fixes the problem by making sure auto_repair() returns FALSE if myisam_recover_options is set to OFF. Test case added to myisam.test.
Diffstat (limited to 'mysql-test/r/myisam.result')
-rw-r--r--mysql-test/r/myisam.result33
1 files changed, 33 insertions, 0 deletions
diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result
index df53b1d1480..73cf5df0304 100644
--- a/mysql-test/r/myisam.result
+++ b/mysql-test/r/myisam.result
@@ -2342,3 +2342,36 @@ Table Op Msg_type Msg_text
test.t1 check status OK
DROP TABLE t1;
End of 5.1 tests
+#
+# Bug#51327 MyISAM table is automatically repaired on ALTER
+# even if myisam-recover is OFF
+#
+call mtr.add_suppression("Got an error from thread_id=.*ha_myisam.cc:");
+call mtr.add_suppression("MySQL thread id .*, query id .* localhost.*root Checking table");
+call mtr.add_suppression(" '\..test.t1'");
+# Test that we can exchange a crashed partition with a table
+SELECT @@global.myisam_recover_options;
+@@global.myisam_recover_options
+OFF
+CREATE TABLE t1 (a INT, KEY (a)) ENGINE=MyISAM;
+INSERT INTO t1 VALUES (1), (2);
+FLUSH TABLES;
+# replacing t.MYI with a corrupt + unclosed one created by doing:
+# 'create table t1 (a int key(a))' head -c1024 t1.MYI > corrupt_t1.MYI
+CHECK TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 check warning 1 client is using or hasn't closed the table properly
+test.t1 check error Size of indexfile is: 1024 Should be: 2048
+test.t1 check warning Size of datafile is: 14 Should be: 7
+test.t1 check error Corrupt
+# Alter table should report error and not auto-repair the table.
+ALTER TABLE t1 ENGINE = MyISAM;
+ERROR HY000: Table 't1' is marked as crashed and should be repaired
+CHECK TABLE t1;
+Table Op Msg_type Msg_text
+test.t1 check warning Table is marked as crashed
+test.t1 check warning 1 client is using or hasn't closed the table properly
+test.t1 check error Size of indexfile is: 1024 Should be: 2048
+test.t1 check warning Size of datafile is: 14 Should be: 7
+test.t1 check error Corrupt
+DROP TABLE t1;