summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorserg@sergbook.mysql.com <>2002-05-16 12:56:00 +0200
committerserg@sergbook.mysql.com <>2002-05-16 12:56:00 +0200
commit3da1a8ba25ccb06051382adb1dd5c11979ced5f3 (patch)
tree887c68b8b672a13e2b1783fde41d20c9d7195aec /sql
parent8b0dfb2a7bbbcf1313f599bb6af1a8afdc800e30 (diff)
parent801f8643c165b9c6384a44875df9896c8bf17373 (diff)
downloadmariadb-git-3da1a8ba25ccb06051382adb1dd5c11979ced5f3.tar.gz
Merge work:/home/bk/mysql-4.0
into sergbook.mysql.com:/usr/home/serg/Abk/mysql-4.0
Diffstat (limited to 'sql')
-rw-r--r--sql/sql_table.cc11
1 files changed, 5 insertions, 6 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index dcbfd709f97..4316acfa47d 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -934,20 +934,19 @@ static int prepare_for_repair(THD* thd, TABLE_LIST* table,
else
{
- char from[FN_REFLEN],to[FN_REFLEN];
+ char from[FN_REFLEN],tmp[FN_REFLEN];
char* db = thd->db ? thd->db : table->db;
sprintf(from, "%s/%s/%s", mysql_real_data_home, db, table->name);
fn_format(from, from, "", MI_NAME_DEXT, 4);
- sprintf(to,"%s-%lx_%lx", from, current_pid, thd->thread_id);
+ sprintf(tmp,"%s-%lx_%lx", from, current_pid, thd->thread_id);
-
- my_rename(to, from, MYF(MY_WME));
+ close_cached_table(thd,table->table);
if (lock_and_wait_for_table_name(thd,table))
DBUG_RETURN(-1);
- if (my_rename(from, to, MYF(MY_WME)))
+ if (my_rename(from, tmp, MYF(MY_WME)))
{
unlock_table_name(thd, table);
DBUG_RETURN(send_check_errmsg(thd, table, "repair",
@@ -959,7 +958,7 @@ static int prepare_for_repair(THD* thd, TABLE_LIST* table,
DBUG_RETURN(send_check_errmsg(thd, table, "repair",
"Failed generating table from .frm file"));
}
- if (my_rename(to, from, MYF(MY_WME)))
+ if (my_rename(tmp, from, MYF(MY_WME)))
{
unlock_table_name(thd, table);
DBUG_RETURN(send_check_errmsg(thd, table, "repair",