summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Widenius <monty@askmonty.org>2012-03-30 13:42:52 +0300
committerMichael Widenius <monty@askmonty.org>2012-03-30 13:42:52 +0300
commit9b8542a4f6abde851ff428d0b6cffb789c5ccede (patch)
tree0cfbd3e776cf369bc23b3923787f07d32c1e3aa7
parentbbf1a7961a37daa08e9818d381df1bca9e562bed (diff)
downloadmariadb-git-9b8542a4f6abde851ff428d0b6cffb789c5ccede.tar.gz
Fixed bug lp:967914 "CHECK TABLE persistently reports table corruption after removing Aria logs"
Fixed that repair removes the 'table is moved' mark. mysql-test/suite/maria/r/maria-autozerofill.result: Test case for lp:967914 mysql-test/suite/maria/t/maria-autozerofill.test: Test case for lp:967914 storage/maria/ha_maria.cc: Fixed that repair removes the 'table is moved' mark.
-rw-r--r--mysql-test/suite/maria/r/maria-autozerofill.result17
-rw-r--r--mysql-test/suite/maria/t/maria-autozerofill.test7
-rw-r--r--storage/maria/ha_maria.cc2
3 files changed, 25 insertions, 1 deletions
diff --git a/mysql-test/suite/maria/r/maria-autozerofill.result b/mysql-test/suite/maria/r/maria-autozerofill.result
index 7fa47814ee5..b719dbaebcb 100644
--- a/mysql-test/suite/maria/r/maria-autozerofill.result
+++ b/mysql-test/suite/maria/r/maria-autozerofill.result
@@ -10,6 +10,8 @@ create table t3 (a int) engine=maria;
INSERT INTO t3 VALUES (1),(2);
create table t4 (a int) engine=maria;
INSERT INTO t4 VALUES (1),(2);
+create table t5 (a int) engine=maria;
+INSERT INTO t5 VALUES (1),(2);
flush tables;
create_rename_lsn has non-magic value
* shut down mysqld, removed logs, restarted it
@@ -35,6 +37,9 @@ mysqltest.t2 check error Corrupt
repair table t2;
Table Op Msg_type Msg_text
mysqltest.t2 repair status OK
+check table t2;
+Table Op Msg_type Msg_text
+mysqltest.t2 check status OK
optimize table t3;
Table Op Msg_type Msg_text
mysqltest.t3 optimize Note Zerofilling moved table ./mysqltest/t3
@@ -43,4 +48,16 @@ analyze table t4;
Table Op Msg_type Msg_text
mysqltest.t4 analyze Note Zerofilling moved table ./mysqltest/t4
mysqltest.t4 analyze status OK
+repair table t5;
+Table Op Msg_type Msg_text
+mysqltest.t5 repair status OK
+check table t5;
+Table Op Msg_type Msg_text
+mysqltest.t5 check status OK
+repair table t5;
+Table Op Msg_type Msg_text
+mysqltest.t5 repair status OK
+check table t5;
+Table Op Msg_type Msg_text
+mysqltest.t5 check status OK
drop database mysqltest;
diff --git a/mysql-test/suite/maria/t/maria-autozerofill.test b/mysql-test/suite/maria/t/maria-autozerofill.test
index 1a9445ed9f0..79e209d5d90 100644
--- a/mysql-test/suite/maria/t/maria-autozerofill.test
+++ b/mysql-test/suite/maria/t/maria-autozerofill.test
@@ -31,6 +31,8 @@ create table t3 (a int) engine=maria;
INSERT INTO t3 VALUES (1),(2);
create table t4 (a int) engine=maria;
INSERT INTO t4 VALUES (1),(2);
+create table t5 (a int) engine=maria;
+INSERT INTO t5 VALUES (1),(2);
flush tables;
# Check that table is not zerofilled, not movable
@@ -96,9 +98,14 @@ EOF
check table t2;
check table t2;
repair table t2;
+check table t2;
replace_result \\ /;
optimize table t3;
replace_result \\ /;
analyze table t4;
+repair table t5;
+check table t5;
+repair table t5;
+check table t5;
drop database mysqltest;
diff --git a/storage/maria/ha_maria.cc b/storage/maria/ha_maria.cc
index ed554c4c24c..b261451d8dc 100644
--- a/storage/maria/ha_maria.cc
+++ b/storage/maria/ha_maria.cc
@@ -1562,7 +1562,7 @@ int ha_maria::repair(THD *thd, HA_CHECK *param, bool do_optimize)
{
DBUG_PRINT("info", ("Reseting crashed state"));
share->state.changed&= ~(STATE_CHANGED | STATE_CRASHED_FLAGS |
- STATE_IN_REPAIR);
+ STATE_IN_REPAIR | STATE_MOVED);
file->update |= HA_STATE_CHANGED | HA_STATE_ROW_CHANGED;
}
/*