From 81dc0d0aaa48bd84a7ba2fb33e2a882b42bc49d5 Mon Sep 17 00:00:00 2001 From: "brian@zim.tangent.org" <> Date: Tue, 24 Jan 2006 21:43:41 -0800 Subject: [PATCH] Complaint from a user who was getting sick of repairing their tables do to their lousy setup (their words). All crashed archive tables will now be repaired on open. --- sql/ha_archive.cc | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/sql/ha_archive.cc b/sql/ha_archive.cc index 68219151186..cfdaba0672c 100644 --- a/sql/ha_archive.cc +++ b/sql/ha_archive.cc @@ -477,7 +477,7 @@ const char **ha_archive::bas_ext() const Init out lock. We open the file we will read from. */ -int ha_archive::open(const char *name, int mode, uint test_if_locked) +int ha_archive::open(const char *name, int mode, uint open_options) { DBUG_ENTER("ha_archive::open"); @@ -492,7 +492,10 @@ int ha_archive::open(const char *name, int mode, uint test_if_locked) DBUG_RETURN(HA_ERR_CRASHED_ON_USAGE); } - DBUG_RETURN(0); + if (open_options & HA_OPEN_FOR_REPAIR) + DBUG_RETURN(0); + + DBUG_RETURN(share->crashed ? HA_ERR_CRASHED_ON_USAGE : 0); } @@ -1067,7 +1070,8 @@ int ha_archive::delete_all_rows() */ bool ha_archive::is_crashed() const { - return share->crashed; + DBUG_ENTER("ha_archive::is_crashed"); + DBUG_RETURN(share->crashed); } /* @@ -1129,13 +1133,6 @@ bool ha_archive::check_and_repair(THD *thd) check_opt.init(); - if (check(thd, &check_opt) == HA_ADMIN_CORRUPT) - { - DBUG_RETURN(repair(thd, &check_opt)); - } - else - { - DBUG_RETURN(HA_ADMIN_OK); - } + DBUG_RETURN(repair(thd, &check_opt)); } #endif /* HAVE_ARCHIVE_DB */