diff options
author | unknown <brian@zim.(none)> | 2006-11-19 18:01:54 -0800 |
---|---|---|
committer | unknown <brian@zim.(none)> | 2006-11-19 18:01:54 -0800 |
commit | 7d6b4a1ab06b22505a68334aeae0204cf0e4bb7a (patch) | |
tree | 5a1d28bf16e44e62244be8effd391e8ebe3c51bc /storage/federated | |
parent | 3e0eee1d7b530df3d4685acea74d1a8bb139e558 (diff) | |
download | mariadb-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.cc | 17 |
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 */ |