Commit 9b8542a4 authored by Michael Widenius's avatar Michael Widenius

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.
parent bbf1a796
......@@ -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;
......@@ -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;
......@@ -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;
}
/*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment