summaryrefslogtreecommitdiff
path: root/storage/archive
diff options
context:
space:
mode:
authorunknown <serg@sergbook.mysql.com>2006-05-28 14:51:01 +0200
committerunknown <serg@sergbook.mysql.com>2006-05-28 14:51:01 +0200
commite2e582d1fba236d40e7233dcdb47d46618529390 (patch)
treef608495a4495b48130506f40d940b93ebdb1bfe1 /storage/archive
parentcccd302c91a0bfb82ed6b387016a12a23420fb6f (diff)
downloadmariadb-git-e2e582d1fba236d40e7233dcdb47d46618529390.tar.gz
handlerton cleanup:
duplicate fields removed, st_mysql_storage_engine added to support run-time handlerton initialization (no compiler warnings), handler API is now tied to MySQL version, handlerton->plugin mapping added (slot-based), dummy default_hton removed, plugin-type-specific initialization generalized, built-in plugins are now initialized too, --default-storage-engine no longer needs a list of storage engines in handle_options(). mysql-test-run.pl bugfixes include/mysql/plugin.h: added st_mysql_storage_engine made handlerton tied to MySQL version mysql-test/mysql-test-run.pl: bugfixes (umask, --no-defaults) mysql-test/r/ndb_dd_basic.result: update error message mysql-test/t/partition_mgm_err2.test: fix typo sql/ha_berkeley.cc: handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine, initialize handlerton run-time to avoid compiler warnings sql/ha_berkeley.h: handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine, initialize handlerton run-time to avoid compiler warnings sql/ha_federated.cc: handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine, initialize handlerton run-time to avoid compiler warnings sql/ha_heap.cc: handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine, initialize handlerton run-time to avoid compiler warnings sql/ha_innodb.cc: handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine, initialize handlerton run-time to avoid compiler warnings sql/ha_innodb.h: handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine, initialize handlerton run-time to avoid compiler warnings sql/ha_myisam.cc: handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine, initialize handlerton run-time to avoid compiler warnings sql/ha_myisammrg.cc: handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine, initialize handlerton run-time to avoid compiler warnings sql/ha_ndbcluster.cc: handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine, initialize handlerton run-time to avoid compiler warnings sql/ha_ndbcluster.h: handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine, initialize handlerton run-time to avoid compiler warnings sql/ha_ndbcluster_binlog.cc: no 'name' in the handlerton anymore sql/ha_partition.cc: handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine, initialize handlerton run-time to avoid compiler warnings sql/handler.cc: handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine, handlerton->plugin mapping sql/handler.h: handlerton cleanup: remove duplicate fields sql/log.cc: handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine, initialize handlerton run-time to avoid compiler warnings sql/mysql_priv.h: handler.h needs plugin.h sql/mysqld.cc: Convert --default-storage-engine to a handlerton* when all storage engines are initialized and not in getopt sql/set_var.cc: no name in the handlerton anymore sql/sql_parse.cc: no default_hton anymore sql/sql_partition.cc: no name in the handlerton anymore sql/sql_plugin.cc: generalize plugin type-specific initialization. initialize built-in plugins too sql/sql_plugin.h: generalize plugin type-specific initialization. sql/sql_show.cc: st_mysql_storage_engine structure no name in the handlerton anymore sql/sql_table.cc: no name in the handlerton anymore no default_hton anymore sql/sql_tablespace.cc: no name in the handlerton anymore no default_hton anymore sql/sql_yacc.yy: no default_hton anymore issue "unknown storage engine" warning where it is discovered storage/archive/ha_archive.cc: handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine, initialize handlerton run-time to avoid compiler warnings storage/archive/ha_archive.h: handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine, initialize handlerton run-time to avoid compiler warnings storage/blackhole/ha_blackhole.cc: handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine, initialize handlerton run-time to avoid compiler warnings storage/csv/ha_tina.cc: handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine, initialize handlerton run-time to avoid compiler warnings storage/example/ha_example.cc: handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine, initialize handlerton run-time to avoid compiler warnings
Diffstat (limited to 'storage/archive')
-rw-r--r--storage/archive/ha_archive.cc64
-rw-r--r--storage/archive/ha_archive.h2
2 files changed, 17 insertions, 49 deletions
diff --git a/storage/archive/ha_archive.cc b/storage/archive/ha_archive.cc
index e39ee976eb1..dad51c1a512 100644
--- a/storage/archive/ha_archive.cc
+++ b/storage/archive/ha_archive.cc
@@ -145,49 +145,7 @@ static handler *archive_create_handler(TABLE_SHARE *table);
*/
#define ARCHIVE_MIN_ROWS_TO_USE_BULK_INSERT 2
-
-static const char archive_hton_name[]= "ARCHIVE";
-static const char archive_hton_comment[]= "Archive storage engine";
-
-/* dummy handlerton - only to have something to return from archive_db_init */
-handlerton archive_hton = {
- MYSQL_HANDLERTON_INTERFACE_VERSION,
- archive_hton_name,
- SHOW_OPTION_YES,
- archive_hton_comment,
- DB_TYPE_ARCHIVE_DB,
- archive_db_init,
- 0, /* slot */
- 0, /* savepoint size. */
- NULL, /* close_connection */
- NULL, /* savepoint */
- NULL, /* rollback to savepoint */
- NULL, /* releas savepoint */
- NULL, /* commit */
- NULL, /* rollback */
- NULL, /* prepare */
- NULL, /* recover */
- NULL, /* commit_by_xid */
- NULL, /* rollback_by_xid */
- NULL, /* create_cursor_read_view */
- NULL, /* set_cursor_read_view */
- NULL, /* close_cursor_read_view */
- archive_create_handler, /* Create a new handler */
- NULL, /* Drop a database */
- archive_db_end, /* Panic call */
- NULL, /* Start Consistent Snapshot */
- NULL, /* Flush logs */
- NULL, /* Show status */
- NULL, /* Partition flags */
- NULL, /* Alter table flags */
- NULL, /* Alter interface */
- NULL, /* fill_files_table */
- HTON_NO_FLAGS,
- NULL, /* binlog_func */
- NULL, /* binlog_log_query */
- NULL /* release_temporary_latches */
-
-};
+handlerton archive_hton;
static handler *archive_create_handler(TABLE_SHARE *table)
{
@@ -217,11 +175,18 @@ static byte* archive_get_key(ARCHIVE_SHARE *share,uint *length,
TRUE Error
*/
-bool archive_db_init()
+int archive_db_init()
{
DBUG_ENTER("archive_db_init");
if (archive_inited)
DBUG_RETURN(FALSE);
+
+ archive_hton.state=SHOW_OPTION_YES;
+ archive_hton.db_type=DB_TYPE_ARCHIVE_DB;
+ archive_hton.create=archive_create_handler;
+ archive_hton.panic=archive_db_end;
+ archive_hton.flags=HTON_NO_FLAGS;
+
if (pthread_mutex_init(&archive_mutex, MY_MUTEX_INIT_FAST))
goto error;
if (hash_init(&archive_open_tables, system_charset_info, 32, 0, 0,
@@ -1575,16 +1540,19 @@ bool ha_archive::check_and_repair(THD *thd)
DBUG_RETURN(repair(thd, &check_opt));
}
+struct st_mysql_storage_engine archive_storage_engine=
+{ MYSQL_HANDLERTON_INTERFACE_VERSION, &archive_hton };
mysql_declare_plugin(archive)
{
MYSQL_STORAGE_ENGINE_PLUGIN,
- &archive_hton,
- archive_hton_name,
+ &archive_storage_engine,
+ "ARCHIVE",
"Brian Aker, MySQL AB",
- archive_hton_comment,
- NULL, /* Plugin Init */
+ "Archive storage engine",
+ archive_db_init, /* Plugin Init */
archive_db_done, /* Plugin Deinit */
0x0100 /* 1.0 */,
}
mysql_declare_plugin_end;
+
diff --git a/storage/archive/ha_archive.h b/storage/archive/ha_archive.h
index 4663531b674..4c53c5c4064 100644
--- a/storage/archive/ha_archive.h
+++ b/storage/archive/ha_archive.h
@@ -136,6 +136,6 @@ public:
bool check_and_repair(THD *thd);
};
-bool archive_db_init(void);
+int archive_db_init(void);
int archive_db_end(ha_panic_function type);