summaryrefslogtreecommitdiff
path: root/sql/ha_myisam.cc
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2004-06-25 18:49:36 +0300
committerunknown <monty@mysql.com>2004-06-25 18:49:36 +0300
commit4e664e3e43b1b0e2a37eadb8a6e28142db444352 (patch)
tree3a9126456bcc45a3caaf4b6c53da125de2769da8 /sql/ha_myisam.cc
parent9e630fa088c9f2d7102d6cb36245b09ea655e33d (diff)
downloadmariadb-git-4e664e3e43b1b0e2a37eadb8a6e28142db444352.tar.gz
Added missing root user to mysql.user on windows. (Bug #4242)
Set default max_allowed_packet to be able to read help tables even if an my.cnf file with this option is present. (Bug #3938) Don't use default arguments for ha_rnd_init() Simple code cleanups since last pull scripts/fill_func_tables.sh: Change mode to -rw-rw-r-- scripts/make_win_src_distribution.sh: Safer remove of SCCS directories scripts/mysql_create_system_tables.sh: Added missing root user to mysql.user on windows. (Bug #4242) scripts/mysql_install_db.sh: Set default max_allowed_packet to be able to read help tables even if an my.cnf file with this option is present. (Bug #3938) sql/filesort.cc: Don't use default arguments for ha_rnd_init() sql/ha_berkeley.cc: Better to use #ifdef than // to disable code Removed not needed setting of active_index (It's set in index_end) sql/ha_berkeley.h: Don't use default arguments for ha_rnd_init() sql/ha_heap.h: Don't use default arguments for ha_rnd_init() sql/ha_innodb.h: Don't use default arguments for ha_rnd_init() sql/ha_isam.h: Don't use default arguments for ha_rnd_init() sql/ha_isammrg.h: Don't use default arguments for ha_rnd_init() sql/ha_myisam.cc: Fixed wrong previous patch (New code used 'and' between two conditions when it should be 'or' as in original code) sql/ha_myisam.h: Don't use default arguments for ha_rnd_init() sql/ha_myisammrg.h: Don't use default arguments for ha_rnd_init() sql/ha_ndbcluster.h: Don't use default arguments for ha_rnd_init() sql/handler.cc: Code cleanup sql/handler.h: Keep bool variables together (better alignment) sql/records.cc: Don't use default arguments for ha_rnd_init() sql/sql_select.cc: Don't use default arguments for ha_rnd_init()
Diffstat (limited to 'sql/ha_myisam.cc')
-rw-r--r--sql/ha_myisam.cc47
1 files changed, 24 insertions, 23 deletions
diff --git a/sql/ha_myisam.cc b/sql/ha_myisam.cc
index fc203d14d19..77615d68fe4 100644
--- a/sql/ha_myisam.cc
+++ b/sql/ha_myisam.cc
@@ -1004,8 +1004,10 @@ bool ha_myisam::check_and_repair(THD *thd)
{
int error=0;
int marked_crashed;
+ char *old_query;
+ uint old_query_length;
HA_CHECK_OPT check_opt;
- DBUG_ENTER("ha_myisam::auto_check_and_repair");
+ DBUG_ENTER("ha_myisam::check_and_repair");
check_opt.init();
check_opt.flags= T_MEDIUM | T_AUTO_REPAIR;
@@ -1013,30 +1015,29 @@ bool ha_myisam::check_and_repair(THD *thd)
if (!file->state->del && (myisam_recover_options & HA_RECOVER_QUICK))
check_opt.flags|=T_QUICK;
sql_print_error("Warning: Checking table: '%s'",table->path);
- if ((marked_crashed=mi_is_crashed(file)))
+
+ old_query= thd->query;
+ old_query_length= thd->query_length;
+ pthread_mutex_lock(&LOCK_thread_count);
+ thd->query= table->real_name;
+ thd->query_length= strlen(table->real_name);
+ pthread_mutex_unlock(&LOCK_thread_count);
+
+ if ((marked_crashed= mi_is_crashed(file)) || check(thd, &check_opt))
{
- char *old_query= thd->query;
- uint old_query_length= thd->query_length;
- pthread_mutex_lock(&LOCK_thread_count);
- thd->query= table->real_name;
- thd->query_length= strlen(table->real_name);
- pthread_mutex_unlock(&LOCK_thread_count);
- if (check(thd, &check_opt))
- {
- sql_print_error("Warning: Recovering table: '%s'",table->path);
- check_opt.flags=
- ((myisam_recover_options & HA_RECOVER_BACKUP ? T_BACKUP_DATA : 0) |
- (marked_crashed ? 0 : T_QUICK) |
- (myisam_recover_options & HA_RECOVER_FORCE ? 0 : T_SAFE_REPAIR) |
- T_AUTO_REPAIR);
- if (repair(thd, &check_opt))
- error=1;
- }
- pthread_mutex_lock(&LOCK_thread_count);
- thd->query= old_query;
- thd->query_length= old_query_length;
- pthread_mutex_unlock(&LOCK_thread_count);
+ sql_print_error("Warning: Recovering table: '%s'",table->path);
+ check_opt.flags=
+ ((myisam_recover_options & HA_RECOVER_BACKUP ? T_BACKUP_DATA : 0) |
+ (marked_crashed ? 0 : T_QUICK) |
+ (myisam_recover_options & HA_RECOVER_FORCE ? 0 : T_SAFE_REPAIR) |
+ T_AUTO_REPAIR);
+ if (repair(thd, &check_opt))
+ error=1;
}
+ pthread_mutex_lock(&LOCK_thread_count);
+ thd->query= old_query;
+ thd->query_length= old_query_length;
+ pthread_mutex_unlock(&LOCK_thread_count);
DBUG_RETURN(error);
}