summaryrefslogtreecommitdiff
path: root/storage/federated
diff options
context:
space:
mode:
authorunknown <brian@zim.(none)>2006-11-19 18:01:54 -0800
committerunknown <brian@zim.(none)>2006-11-19 18:01:54 -0800
commit7d6b4a1ab06b22505a68334aeae0204cf0e4bb7a (patch)
tree5a1d28bf16e44e62244be8effd391e8ebe3c51bc /storage/federated
parent3e0eee1d7b530df3d4685acea74d1a8bb139e558 (diff)
downloadmariadb-git-7d6b4a1ab06b22505a68334aeae0204cf0e4bb7a.tar.gz
Refactored a number of engines to have correct init/deinit. Added pass support for "data" from plugin to plugin generic init to use memory location.
plugin/daemon_example/plug.in: Switched the plug.in type (corrected) sql/handler.h: Added data pointer to use for engines. sql/sql_plugin.cc: Passing plugin to generic handlers to allow them to add data to "data" storage/archive/ha_archive.cc: Refactored. Now uses less logic for startup/shutdown. storage/csv/ha_tina.cc: Refactored init/deinit to use less code. storage/example/ha_example.cc: Refactored example to show correct behavior for init/deinit. storage/example/ha_example.h: Removed unneeded references to methods that do not need to be implemened. storage/federated/ha_federated.cc: Refactored to use less code and startup/shutdown correctly.
Diffstat (limited to 'storage/federated')
-rw-r--r--storage/federated/ha_federated.cc17
1 files changed, 5 insertions, 12 deletions
diff --git a/storage/federated/ha_federated.cc b/storage/federated/ha_federated.cc
index 51c9f4c192e..5f0d51f62df 100644
--- a/storage/federated/ha_federated.cc
+++ b/storage/federated/ha_federated.cc
@@ -350,7 +350,6 @@
/* Variables for federated share methods */
static HASH federated_open_tables; // To track open tables
pthread_mutex_t federated_mutex; // To init the hash
-static int federated_init= FALSE; // Checking the state of hash
/* Variables used when chopping off trailing characters */
static const uint sizeof_trailing_comma= sizeof(", ") - 1;
@@ -365,7 +364,6 @@ static handler *federated_create_handler(handlerton *hton,
static int federated_commit(handlerton *hton, THD *thd, bool all);
static int federated_rollback(handlerton *hton, THD *thd, bool all);
static int federated_db_init(void);
-static int federated_db_end(handlerton *hton, ha_panic_function type);
/* Federated storage engine handlerton */
@@ -408,7 +406,6 @@ int federated_db_init(void *p)
federated_hton->commit= federated_commit;
federated_hton->rollback= federated_rollback;
federated_hton->create= federated_create_handler;
- federated_hton->panic= federated_db_end;
federated_hton->flags= HTON_ALTER_NOT_SUPPORTED;
if (pthread_mutex_init(&federated_mutex, MY_MUTEX_INIT_FAST))
@@ -416,7 +413,6 @@ int federated_db_init(void *p)
if (!hash_init(&federated_open_tables, &my_charset_bin, 32, 0, 0,
(hash_get_key) federated_get_key, 0, 0))
{
- federated_init= TRUE;
DBUG_RETURN(FALSE);
}
@@ -437,14 +433,11 @@ error:
FALSE OK
*/
-int federated_db_end(handlerton *hton, ha_panic_function type)
+int federated_done(void *p)
{
- if (federated_init)
- {
- hash_free(&federated_open_tables);
- VOID(pthread_mutex_destroy(&federated_mutex));
- }
- federated_init= 0;
+ hash_free(&federated_open_tables);
+ VOID(pthread_mutex_destroy(&federated_mutex));
+
return 0;
}
@@ -2897,7 +2890,7 @@ mysql_declare_plugin(federated)
"Federated MySQL storage engine",
PLUGIN_LICENSE_GPL,
federated_db_init, /* Plugin Init */
- NULL, /* Plugin Deinit */
+ federated_done, /* Plugin Deinit */
0x0100 /* 1.0 */,
NULL, /* status variables */
NULL, /* system variables */