diff options
author | Michael Widenius <monty@askmonty.org> | 2011-05-16 14:05:45 +0300 |
---|---|---|
committer | Michael Widenius <monty@askmonty.org> | 2011-05-16 14:05:45 +0300 |
commit | f458e198c0bea67c6a3787738108bbfb139639bd (patch) | |
tree | e01d8c096a63bacfb5895de6e55d011d666e9d38 /sql/sql_rename.cc | |
parent | 8c5e18c9cfde61197a9f653efa08450ae9a6ce0a (diff) | |
parent | 19f0d6b2d9930f83688943b8f98a8b7397584df9 (diff) | |
download | mariadb-git-f458e198c0bea67c6a3787738108bbfb139639bd.tar.gz |
Merge with 5.2
Diffstat (limited to 'sql/sql_rename.cc')
-rw-r--r-- | sql/sql_rename.cc | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/sql/sql_rename.cc b/sql/sql_rename.cc index 3da0fafb830..69dc635be16 100644 --- a/sql/sql_rename.cc +++ b/sql/sql_rename.cc @@ -245,7 +245,7 @@ do_rename(THD *thd, TABLE_LIST *ren_table, char *new_db, char *new_table_name, char *new_table_alias, bool skip_error) { int rc= 1; - char name[FN_REFLEN + 1]; + char new_name[FN_REFLEN + 1], old_name[FN_REFLEN + 1]; const char *new_alias, *old_alias; frm_type_enum frm_type; enum legacy_db_type table_type; @@ -264,17 +264,17 @@ do_rename(THD *thd, TABLE_LIST *ren_table, char *new_db, char *new_table_name, } DBUG_ASSERT(new_alias); - build_table_filename(name, sizeof(name) - 1, + build_table_filename(new_name, sizeof(new_name) - 1, new_db, new_alias, reg_ext, 0); - if (!access(name,F_OK)) + build_table_filename(old_name, sizeof(old_name) - 1, + ren_table->db, old_alias, reg_ext, 0); + if (check_table_file_presence(old_name, + new_name, new_db, new_alias, new_alias, TRUE)) { - my_error(ER_TABLE_EXISTS_ERROR, MYF(0), new_alias); DBUG_RETURN(1); // This can't be skipped } - build_table_filename(name, sizeof(name) - 1, - ren_table->db, old_alias, reg_ext, 0); - frm_type= mysql_frm_type(thd, name, &table_type); + frm_type= mysql_frm_type(thd, old_name, &table_type); switch (frm_type) { case FRMTYPE_TABLE: @@ -319,7 +319,7 @@ do_rename(THD *thd, TABLE_LIST *ren_table, char *new_db, char *new_table_name, default: DBUG_ASSERT(0); // should never happen case FRMTYPE_ERROR: - my_error(ER_FILE_NOT_FOUND, MYF(0), name, my_errno); + my_error(ER_FILE_NOT_FOUND, MYF(0), old_name, my_errno); break; } if (rc && !skip_error) |