summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <msvensson@neptunus.(none)>2005-04-27 12:17:07 +0200
committerunknown <msvensson@neptunus.(none)>2005-04-27 12:17:07 +0200
commitfc26e1c15b32cfb789afb962644eae0d96bbb46d (patch)
tree4e7323461bae1133f3b2eccd16301b85466c157c /sql
parente9cf23d1fc55521a92d61446035c6ab5d16b202a (diff)
parent5444ad94009330a1db7f978290e998fafd23d501 (diff)
downloadmariadb-git-fc26e1c15b32cfb789afb962644eae0d96bbb46d.tar.gz
Merge neptunus.(none):/home/msvensson/mysql/bug9911
into neptunus.(none):/home/msvensson/mysql/mysql-4.1
Diffstat (limited to 'sql')
-rw-r--r--sql/examples/ha_archive.cc24
-rw-r--r--sql/examples/ha_archive.h1
2 files changed, 25 insertions, 0 deletions
diff --git a/sql/examples/ha_archive.cc b/sql/examples/ha_archive.cc
index bc4af0c7dc7..0e1df45a70b 100644
--- a/sql/examples/ha_archive.cc
+++ b/sql/examples/ha_archive.cc
@@ -427,6 +427,30 @@ 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 855d756368d..1d3365aca67 100644
--- a/sql/examples/ha_archive.h
+++ b/sql/examples/ha_archive.h
@@ -124,6 +124,7 @@ 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);