summaryrefslogtreecommitdiff
path: root/sql/handler.cc
diff options
context:
space:
mode:
authorunknown <acurtis@pcgem.rdg.cyberkinetica.com>2004-03-02 10:08:50 +0000
committerunknown <acurtis@pcgem.rdg.cyberkinetica.com>2004-03-02 10:08:50 +0000
commit8286684e26d1639b56c942e0cce6c238a11f2a92 (patch)
treeee23acf7cad95fc887d54d11249945d1247621ad /sql/handler.cc
parent722e0ec37827de7fc8bc17030cac43a9f27c35d7 (diff)
downloadmariadb-git-8286684e26d1639b56c942e0cce6c238a11f2a92.tar.gz
Cleanup ha_checktype() and redundant variables.
libmysqld/lib_sql.cc: Removing *_skip variables sql/ha_berkeley.cc: Removing *_skip variables sql/ha_berkeley.h: Removing *_skip variables sql/ha_innodb.cc: Removing *_skip variables sql/ha_innodb.h: Removing *_skip variables sql/ha_isam.cc: Removing *_skip variables sql/ha_isam.h: Removing *_skip variables sql/handler.cc: Removing *_skip variables Cleanup ha_checktype() sql/mysqld.cc: Removing *_skip variables sql/sql_show.cc: Removing *_skip variables
Diffstat (limited to 'sql/handler.cc')
-rw-r--r--sql/handler.cc76
1 files changed, 34 insertions, 42 deletions
diff --git a/sql/handler.cc b/sql/handler.cc
index 5aa3967edb6..a81c43fc16c 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -120,34 +120,21 @@ const char *ha_get_storage_engine(enum db_type db_type)
enum db_type ha_checktype(enum db_type database_type)
{
+ show_table_type_st *types;
+ for (types= sys_table_types; types->type; types++)
+ {
+ if ((database_type == types->db_type) &&
+ (SHOW_OPTION_YES == *types->value))
+ return database_type;
+ }
+
switch (database_type) {
-#ifdef HAVE_BERKELEY_DB
- case DB_TYPE_BERKELEY_DB:
- if (berkeley_skip) break;
- return (database_type);
-#endif
-#ifdef HAVE_INNOBASE_DB
- case DB_TYPE_INNODB:
- if (innodb_skip) break;
- return (database_type);
-#endif
#ifndef NO_HASH
case DB_TYPE_HASH:
-#endif
-#ifdef HAVE_ISAM
- case DB_TYPE_ISAM:
- if (isam_skip) break;
return (database_type);
- case DB_TYPE_MRG_ISAM:
- return (isam_skip ? DB_TYPE_MRG_MYISAM : database_type);
-#else
+#endif
case DB_TYPE_MRG_ISAM:
return (DB_TYPE_MRG_MYISAM);
-#endif
- case DB_TYPE_HEAP:
- case DB_TYPE_MYISAM:
- case DB_TYPE_MRG_MYISAM:
- return (database_type); /* Database exists on system */
default:
break;
}
@@ -165,7 +152,8 @@ handler *get_new_handler(TABLE *table, enum db_type db_type)
{
switch (db_type) {
#ifndef NO_HASH
- return new ha_hash(table);
+ case DB_TYPE_HASH:
+ return new ha_hash(table);
#endif
#ifdef HAVE_ISAM
case DB_TYPE_MRG_ISAM:
@@ -203,30 +191,32 @@ handler *get_new_handler(TABLE *table, enum db_type db_type)
int ha_init()
{
+ int error= 0;
#ifdef HAVE_BERKELEY_DB
- if (!berkeley_skip)
+ if (have_berkeley_db == SHOW_OPTION_YES)
{
- int error;
- if ((error=berkeley_init()))
- return error;
- if (!berkeley_skip) // If we couldn't use handler
- opt_using_transactions=1;
+ if (berkeley_init())
+ {
+ have_berkeley_db= SHOW_OPTION_DISABLED; // If we couldn't use handler
+ error= 1;
+ }
else
- have_berkeley_db=SHOW_OPTION_DISABLED;
+ opt_using_transactions=1;
}
#endif
#ifdef HAVE_INNOBASE_DB
- if (!innodb_skip)
+ if (have_innodb == SHOW_OPTION_YES)
{
if (innobase_init())
- return -1;
- if (!innodb_skip) // If we couldn't use handler
- opt_using_transactions=1;
+ {
+ have_innodb= SHOW_OPTION_DISABLED; // If we couldn't use handler
+ error= 1;
+ }
else
- have_innodb=SHOW_OPTION_DISABLED;
+ opt_using_transactions=1;
}
#endif
- return 0;
+ return error;
}
/* close, flush or restart databases */
@@ -246,11 +236,11 @@ int ha_panic(enum ha_panic_function flag)
error|=mi_panic(flag);
error|=myrg_panic(flag);
#ifdef HAVE_BERKELEY_DB
- if (!berkeley_skip)
+ if (have_berkeley_db == SHOW_OPTION_YES)
error|=berkeley_end();
#endif
#ifdef HAVE_INNOBASE_DB
- if (!innodb_skip)
+ if (have_innodb == SHOW_OPTION_YES)
error|=innobase_end();
#endif
return error;
@@ -259,7 +249,7 @@ int ha_panic(enum ha_panic_function flag)
void ha_drop_database(char* path)
{
#ifdef HAVE_INNOBASE_DB
- if (!innodb_skip)
+ if (have_innodb == SHOW_OPTION_YES)
innobase_drop_database(path);
#endif
}
@@ -267,7 +257,7 @@ void ha_drop_database(char* path)
void ha_close_connection(THD* thd)
{
#ifdef HAVE_INNOBASE_DB
- if (!innodb_skip)
+ if (have_innodb == SHOW_OPTION_YES)
innobase_close_connection(thd);
#endif
}
@@ -632,11 +622,13 @@ bool ha_flush_logs()
{
bool result=0;
#ifdef HAVE_BERKELEY_DB
- if (!berkeley_skip && berkeley_flush_logs())
+ if ((have_berkeley_db == SHOW_OPTION_YES) &&
+ berkeley_flush_logs())
result=1;
#endif
#ifdef HAVE_INNOBASE_DB
- if (!innodb_skip && innobase_flush_logs())
+ if ((have_innodb == SHOW_OPTION_YES) &&
+ innobase_flush_logs())
result=1;
#endif
return result;