summaryrefslogtreecommitdiff
path: root/sql/handler.cc
diff options
context:
space:
mode:
authorunknown <monty@donna.mysql.com>2000-12-08 17:04:57 +0200
committerunknown <monty@donna.mysql.com>2000-12-08 17:04:57 +0200
commit19d406d937d9b133c07acf370a5ba3c53bbc2ed7 (patch)
treeb351c53cc8d10719148a114a60853aa9347782e0 /sql/handler.cc
parent1324803d765267696b4d75b5d0a2546dc2686881 (diff)
downloadmariadb-git-19d406d937d9b133c07acf370a5ba3c53bbc2ed7.tar.gz
Lots of fixes for BDB tables
Change DROP TABLE to first drop the data, then the .frm file Docs/manual.texi: Updated TODO and Changelog include/Makefile.am: Portability fix mysql-test/misc/select.res: ***MISSING WEAVE*** mysys/mf_iocache2.c: cleanup scripts/mysqlhotcopy.sh: Fixed --noindices sql-bench/Results/ATIS-pg-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Updated benchmarks sql-bench/Results/RUN-pg-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Updated benchmarks sql-bench/Results/alter-table-pg-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Updated benchmarks sql-bench/Results/big-tables-pg-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Updated benchmarks sql-bench/Results/connect-pg-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Updated benchmarks sql-bench/Results/create-pg-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Updated benchmarks sql-bench/Results/insert-pg-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Updated benchmarks sql-bench/Results/select-pg-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Updated benchmarks sql-bench/Results/wisconsin-pg-Linux_2.2.14_my_SMP_i686-cmp-mysql,pg: Updated benchmarks sql-bench/limits/pg.cfg: Updated to new crash-me sql-bench/server-cfg.sh: Fixes for pg 7.0.2 sql/ha_berkeley.cc: Lots of BDB table fixes sql/ha_berkeley.h: Lots of BDB table fixes sql/handler.cc: Change DROP TABLE to first drop the data, then the .frm file sql/hostname.cc: Fixes for empty hostnames sql/log.cc: Fixed transaction logging sql/share/swedish/errmsg.OLD: cleanup sql/sql_delete.cc: Fixes for logging sql/sql_insert.cc: Fixes for logging sql/sql_select.cc: Fixes for BDB tables sql/sql_table.cc: Change DROP TABLE to first drop the data, then the .frm file sql/sql_update.cc: Fixes for logging BitKeeper/etc/ignore: Added scripts/mysqld_multi to the ignore list BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
Diffstat (limited to 'sql/handler.cc')
-rw-r--r--sql/handler.cc14
1 files changed, 11 insertions, 3 deletions
diff --git a/sql/handler.cc b/sql/handler.cc
index 7c6a3e32ff2..24bf16b3604 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -297,12 +297,16 @@ bool ha_flush_logs()
return result;
}
+/*
+ This should return ENOENT if the file doesn't exists.
+ The .frm file will be deleted only if we return 0 or ENOENT
+*/
int ha_delete_table(enum db_type table_type, const char *path)
{
handler *file=get_new_handler((TABLE*) 0, table_type);
if (!file)
- return -1;
+ return ENOENT;
int error=file->delete_table(path);
delete file;
return error;
@@ -620,12 +624,16 @@ uint handler::get_dup_key(int error)
int handler::delete_table(const char *name)
{
+ int error=0;
for (const char **ext=bas_ext(); *ext ; ext++)
{
if (delete_file(name,*ext,2))
- return my_errno;
+ {
+ if ((error=errno) != ENOENT)
+ break;
+ }
}
- return 0;
+ return error;
}