summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/examples/ha_archive.cc24
-rw-r--r--sql/examples/ha_archive.h1
-rw-r--r--sql/handler.cc14
3 files changed, 9 insertions, 30 deletions
diff --git a/sql/examples/ha_archive.cc b/sql/examples/ha_archive.cc
index 0e1df45a70b..bc4af0c7dc7 100644
--- a/sql/examples/ha_archive.cc
+++ b/sql/examples/ha_archive.cc
@@ -427,30 +427,6 @@ const char **ha_archive::bas_ext() const
{ static const char *ext[]= { ARZ, ARN, ARM, NullS }; return ext; }
-/*
- Rename all files that this handler defines in bas_ext list
-
- NOTE Don't care if the .arn file is missing
-*/
-int ha_archive::rename_table(const char * from, const char * to)
-{
- DBUG_ENTER("ha_archive::rename_table");
- for (const char **ext=bas_ext(); *ext ; ext++)
- {
- if (rename_file_ext(from,to,*ext))
- {
- if (my_errno == ENOENT &&
- !my_strcasecmp(system_charset_info, *ext, ARN))
- continue;
-
- DBUG_RETURN(my_errno);
- }
-
- }
- DBUG_RETURN(0);
-}
-
-
/*
When opening a file we:
Create/get our shared structure.
diff --git a/sql/examples/ha_archive.h b/sql/examples/ha_archive.h
index 1d3365aca67..855d756368d 100644
--- a/sql/examples/ha_archive.h
+++ b/sql/examples/ha_archive.h
@@ -124,7 +124,6 @@ public:
int optimize(THD* thd, HA_CHECK_OPT* check_opt);
THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to,
enum thr_lock_type lock_type);
- int rename_table(const char * from, const char * to);
};
bool archive_db_init(void);
diff --git a/sql/handler.cc b/sql/handler.cc
index 7c369a72392..f174f51514e 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -1255,13 +1255,17 @@ int handler::delete_table(const char *name)
int handler::rename_table(const char * from, const char * to)
{
- DBUG_ENTER("handler::rename_table");
- for (const char **ext=bas_ext(); *ext ; ext++)
+ int error= 0;
+ for (const char **ext= bas_ext(); *ext ; ext++)
{
- if (rename_file_ext(from,to,*ext))
- DBUG_RETURN(my_errno);
+ if (rename_file_ext(from, to, *ext))
+ {
+ if ((error=my_errno) != ENOENT)
+ break;
+ error= 0;
+ }
}
- DBUG_RETURN(0);
+ return error;
}
/*