1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

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
This commit is contained in:
unknown
2006-05-28 14:51:01 +02:00
parent cccd302c91
commit e2e582d1fb
35 changed files with 459 additions and 850 deletions

View File

@ -23,12 +23,18 @@ extern struct st_mysql_plugin *mysqld_builtins[];
char *opt_plugin_dir_ptr;
char opt_plugin_dir[FN_REFLEN];
LEX_STRING plugin_type_names[]=
LEX_STRING plugin_type_names[MYSQL_MAX_PLUGIN_TYPE_NUM]=
{
{ (char *)STRING_WITH_LEN("UDF") },
{ (char *)STRING_WITH_LEN("STORAGE ENGINE") },
{ (char *)STRING_WITH_LEN("FTPARSER") }
};
plugin_type_init plugin_type_initialize[MYSQL_MAX_PLUGIN_TYPE_NUM]=
{
0,ha_initialize_handlerton,0
};
static const char *plugin_interface_version_sym=
"_mysql_plugin_interface_version_";
static const char *sizeof_st_plugin_sym=
@ -522,27 +528,15 @@ static int plugin_initialize(struct st_plugin_int *plugin)
{
sql_print_error("Plugin '%s' init function returned error.",
plugin->name.str);
DBUG_PRINT("warning", ("Plugin '%s' init function returned error.",
plugin->name.str));
goto err;
}
}
switch (plugin->plugin->type)
if (plugin_type_initialize[plugin->plugin->type] &&
(*plugin_type_initialize[plugin->plugin->type])(plugin))
{
case MYSQL_STORAGE_ENGINE_PLUGIN:
if (ha_initialize_handlerton(plugin))
{
sql_print_error("Plugin '%s' handlerton init returned error.",
plugin->name.str);
DBUG_PRINT("warning", ("Plugin '%s' handlerton init returned error.",
plugin->name.str));
goto err;
}
break;
default:
break;
sql_print_error("Plugin '%s' registration as a %s failed.",
plugin->name.str, plugin_type_names[plugin->plugin->type]);
goto err;
}
DBUG_RETURN(0);
@ -554,14 +548,14 @@ static int plugin_finalize(THD *thd, struct st_plugin_int *plugin)
{
int rc;
DBUG_ENTER("plugin_finalize");
if (plugin->ref_count)
{
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, 0,
"Plugin is busy and will be uninstalled on shutdown");
goto err;
}
switch (plugin->plugin->type)
{
case MYSQL_STORAGE_ENGINE_PLUGIN:
@ -591,7 +585,7 @@ static int plugin_finalize(THD *thd, struct st_plugin_int *plugin)
goto err;
}
}
DBUG_RETURN(0);
err:
DBUG_RETURN(1);
@ -676,7 +670,7 @@ int plugin_init(void)
get_hash_key, NULL, 0))
goto err;
}
/* Register all the built-in plugins */
for (builtins= mysqld_builtins; *builtins; builtins++)
{
@ -684,6 +678,12 @@ int plugin_init(void)
{
if (plugin_register_builtin(plugin))
goto err;
struct st_plugin_int *tmp=dynamic_element(&plugin_array,
plugin_array.elements-1,
struct st_plugin_int *);
if (plugin_initialize(tmp))
goto err;
tmp->state= PLUGIN_IS_READY;
}
}