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; ...@@ -10,6 +10,8 @@ create table t3 (a int) engine=maria;
INSERT INTO t3 VALUES (1),(2); INSERT INTO t3 VALUES (1),(2);
create table t4 (a int) engine=maria; create table t4 (a int) engine=maria;
INSERT INTO t4 VALUES (1),(2); INSERT INTO t4 VALUES (1),(2);
create table t5 (a int) engine=maria;
INSERT INTO t5 VALUES (1),(2);
flush tables; flush tables;
create_rename_lsn has non-magic value create_rename_lsn has non-magic value
* shut down mysqld, removed logs, restarted it * shut down mysqld, removed logs, restarted it
...@@ -35,6 +37,9 @@ mysqltest.t2 check error Corrupt ...@@ -35,6 +37,9 @@ mysqltest.t2 check error Corrupt
repair table t2; repair table t2;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
mysqltest.t2 repair status OK mysqltest.t2 repair status OK
check table t2;
Table Op Msg_type Msg_text
mysqltest.t2 check status OK
optimize table t3; optimize table t3;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
mysqltest.t3 optimize Note Zerofilling moved table ./mysqltest/t3 mysqltest.t3 optimize Note Zerofilling moved table ./mysqltest/t3
...@@ -43,4 +48,16 @@ analyze table t4; ...@@ -43,4 +48,16 @@ analyze table t4;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
mysqltest.t4 analyze Note Zerofilling moved table ./mysqltest/t4 mysqltest.t4 analyze Note Zerofilling moved table ./mysqltest/t4
mysqltest.t4 analyze status OK 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; drop database mysqltest;
...@@ -31,6 +31,8 @@ create table t3 (a int) engine=maria; ...@@ -31,6 +31,8 @@ create table t3 (a int) engine=maria;
INSERT INTO t3 VALUES (1),(2); INSERT INTO t3 VALUES (1),(2);
create table t4 (a int) engine=maria; create table t4 (a int) engine=maria;
INSERT INTO t4 VALUES (1),(2); INSERT INTO t4 VALUES (1),(2);
create table t5 (a int) engine=maria;
INSERT INTO t5 VALUES (1),(2);
flush tables; flush tables;
# Check that table is not zerofilled, not movable # Check that table is not zerofilled, not movable
...@@ -96,9 +98,14 @@ EOF ...@@ -96,9 +98,14 @@ EOF
check table t2; check table t2;
check table t2; check table t2;
repair table t2; repair table t2;
check table t2;
replace_result \\ /; replace_result \\ /;
optimize table t3; optimize table t3;
replace_result \\ /; replace_result \\ /;
analyze table t4; analyze table t4;
repair table t5;
check table t5;
repair table t5;
check table t5;
drop database mysqltest; drop database mysqltest;
...@@ -1562,7 +1562,7 @@ int ha_maria::repair(THD *thd, HA_CHECK *param, bool do_optimize) ...@@ -1562,7 +1562,7 @@ int ha_maria::repair(THD *thd, HA_CHECK *param, bool do_optimize)
{ {
DBUG_PRINT("info", ("Reseting crashed state")); DBUG_PRINT("info", ("Reseting crashed state"));
share->state.changed&= ~(STATE_CHANGED | STATE_CRASHED_FLAGS | 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; 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