diff options
author | Michael Widenius <monty@askmonty.org> | 2012-03-30 13:42:52 +0300 |
---|---|---|
committer | Michael Widenius <monty@askmonty.org> | 2012-03-30 13:42:52 +0300 |
commit | 9b8542a4f6abde851ff428d0b6cffb789c5ccede (patch) | |
tree | 0cfbd3e776cf369bc23b3923787f07d32c1e3aa7 | |
parent | bbf1a7961a37daa08e9818d381df1bca9e562bed (diff) | |
download | mariadb-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.result | 17 | ||||
-rw-r--r-- | mysql-test/suite/maria/t/maria-autozerofill.test | 7 | ||||
-rw-r--r-- | storage/maria/ha_maria.cc | 2 |
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; } /* |