mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-7652 - More explanatory ERROR and WARNING messages when loading plugins
with plugin-load-add that are already registered at mysql.plugin - issue just one error message, without this extra warning - don't abuse ER_UDF_EXISTS, instead add a proper error message for plugins - report started initialization for each plugin source
This commit is contained in:
@ -5,7 +5,7 @@ Warning 1266 Using storage engine MyISAM for table 't1'
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
INSTALL PLUGIN blackhole SONAME 'ha_blackhole.so';
|
INSTALL PLUGIN blackhole SONAME 'ha_blackhole.so';
|
||||||
INSTALL PLUGIN BLACKHOLE SONAME 'ha_blackhole.so';
|
INSTALL PLUGIN BLACKHOLE SONAME 'ha_blackhole.so';
|
||||||
ERROR HY000: Function 'BLACKHOLE' already exists
|
ERROR HY000: Plugin 'BLACKHOLE' already installed
|
||||||
UNINSTALL PLUGIN blackhole;
|
UNINSTALL PLUGIN blackhole;
|
||||||
INSTALL PLUGIN blackhole SONAME 'ha_blackhole.so';
|
INSTALL PLUGIN blackhole SONAME 'ha_blackhole.so';
|
||||||
CREATE TABLE t1(a int) ENGINE=BLACKHOLE;
|
CREATE TABLE t1(a int) ENGINE=BLACKHOLE;
|
||||||
|
@ -5,7 +5,7 @@ Warning 1266 Using storage engine MyISAM for table 't1'
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
INSTALL PLUGIN example SONAME 'ha_example';
|
INSTALL PLUGIN example SONAME 'ha_example';
|
||||||
INSTALL PLUGIN EXAMPLE SONAME 'ha_example';
|
INSTALL PLUGIN EXAMPLE SONAME 'ha_example';
|
||||||
ERROR HY000: Function 'EXAMPLE' already exists
|
ERROR HY000: Plugin 'EXAMPLE' already installed
|
||||||
UNINSTALL PLUGIN example;
|
UNINSTALL PLUGIN example;
|
||||||
INSTALL SONAME 'ha_example';
|
INSTALL SONAME 'ha_example';
|
||||||
select * from information_schema.plugins where plugin_library like 'ha_example%';
|
select * from information_schema.plugins where plugin_library like 'ha_example%';
|
||||||
|
@ -5,7 +5,7 @@ Warning 1266 Using storage engine MyISAM for table 't1'
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
INSTALL PLUGIN archive SONAME 'ha_archive.so';
|
INSTALL PLUGIN archive SONAME 'ha_archive.so';
|
||||||
INSTALL PLUGIN ARCHIVE SONAME 'ha_archive.so';
|
INSTALL PLUGIN ARCHIVE SONAME 'ha_archive.so';
|
||||||
ERROR HY000: Function 'ARCHIVE' already exists
|
ERROR HY000: Plugin 'ARCHIVE' already installed
|
||||||
UNINSTALL PLUGIN archive;
|
UNINSTALL PLUGIN archive;
|
||||||
INSTALL PLUGIN archive SONAME 'ha_archive.so';
|
INSTALL PLUGIN archive SONAME 'ha_archive.so';
|
||||||
CREATE TABLE t1(a int) ENGINE=ARCHIVE;
|
CREATE TABLE t1(a int) ENGINE=ARCHIVE;
|
||||||
|
@ -7,7 +7,7 @@ DROP TABLE t1;
|
|||||||
--replace_regex /\.dll/.so/
|
--replace_regex /\.dll/.so/
|
||||||
eval INSTALL PLUGIN archive SONAME '$HA_ARCHIVE_SO';
|
eval INSTALL PLUGIN archive SONAME '$HA_ARCHIVE_SO';
|
||||||
--replace_regex /\.dll/.so/
|
--replace_regex /\.dll/.so/
|
||||||
--error 1125
|
--error ER_PLUGIN_INSTALLED
|
||||||
eval INSTALL PLUGIN ARCHIVE SONAME '$HA_ARCHIVE_SO';
|
eval INSTALL PLUGIN ARCHIVE SONAME '$HA_ARCHIVE_SO';
|
||||||
|
|
||||||
UNINSTALL PLUGIN archive;
|
UNINSTALL PLUGIN archive;
|
||||||
|
@ -7,7 +7,7 @@ DROP TABLE t1;
|
|||||||
--replace_regex /\.dll/.so/
|
--replace_regex /\.dll/.so/
|
||||||
eval INSTALL PLUGIN blackhole SONAME '$HA_BLACKHOLE_SO';
|
eval INSTALL PLUGIN blackhole SONAME '$HA_BLACKHOLE_SO';
|
||||||
--replace_regex /\.dll/.so/
|
--replace_regex /\.dll/.so/
|
||||||
--error 1125
|
--error ER_PLUGIN_INSTALLED
|
||||||
eval INSTALL PLUGIN BLACKHOLE SONAME '$HA_BLACKHOLE_SO';
|
eval INSTALL PLUGIN BLACKHOLE SONAME '$HA_BLACKHOLE_SO';
|
||||||
|
|
||||||
UNINSTALL PLUGIN blackhole;
|
UNINSTALL PLUGIN blackhole;
|
||||||
|
@ -6,7 +6,7 @@ DROP TABLE t1;
|
|||||||
|
|
||||||
INSTALL PLUGIN example SONAME 'ha_example';
|
INSTALL PLUGIN example SONAME 'ha_example';
|
||||||
--replace_regex /\.dll/.so/
|
--replace_regex /\.dll/.so/
|
||||||
--error 1125
|
--error ER_PLUGIN_INSTALLED
|
||||||
INSTALL PLUGIN EXAMPLE SONAME 'ha_example';
|
INSTALL PLUGIN EXAMPLE SONAME 'ha_example';
|
||||||
|
|
||||||
UNINSTALL PLUGIN example;
|
UNINSTALL PLUGIN example;
|
||||||
|
@ -7111,3 +7111,6 @@ ER_SLAVE_SKIP_NOT_IN_GTID
|
|||||||
eng "When using GTID, @@sql_slave_skip_counter can not be used. Instead, setting @@gtid_slave_pos explicitly can be used to skip to after a given GTID position."
|
eng "When using GTID, @@sql_slave_skip_counter can not be used. Instead, setting @@gtid_slave_pos explicitly can be used to skip to after a given GTID position."
|
||||||
ER_TABLE_DEFINITION_TOO_BIG
|
ER_TABLE_DEFINITION_TOO_BIG
|
||||||
eng "The definition for table %`s is too big"
|
eng "The definition for table %`s is too big"
|
||||||
|
ER_PLUGIN_INSTALLED
|
||||||
|
eng "Plugin '%-.192s' already installed"
|
||||||
|
rus "Плагин '%-.192s' уже установлен"
|
||||||
|
@ -1049,7 +1049,7 @@ static bool plugin_add(MEM_ROOT *tmp_root,
|
|||||||
|
|
||||||
if (name->str && plugin_find_internal(name, MYSQL_ANY_PLUGIN))
|
if (name->str && plugin_find_internal(name, MYSQL_ANY_PLUGIN))
|
||||||
{
|
{
|
||||||
report_error(report, ER_UDF_EXISTS, name->str);
|
report_error(report, ER_PLUGIN_INSTALLED, name->str);
|
||||||
DBUG_RETURN(TRUE);
|
DBUG_RETURN(TRUE);
|
||||||
}
|
}
|
||||||
/* Clear the whole struct to catch future extensions. */
|
/* Clear the whole struct to catch future extensions. */
|
||||||
@ -1546,6 +1546,9 @@ int plugin_init(int *argc, char **argv, int flags)
|
|||||||
/*
|
/*
|
||||||
First we register builtin plugins
|
First we register builtin plugins
|
||||||
*/
|
*/
|
||||||
|
if (global_system_variables.log_warnings >= 9)
|
||||||
|
sql_print_information("Initializing built-in plugins");
|
||||||
|
|
||||||
for (builtins= mysql_mandatory_plugins; *builtins || mandatory; builtins++)
|
for (builtins= mysql_mandatory_plugins; *builtins || mandatory; builtins++)
|
||||||
{
|
{
|
||||||
if (!*builtins)
|
if (!*builtins)
|
||||||
@ -1627,11 +1630,17 @@ int plugin_init(int *argc, char **argv, int flags)
|
|||||||
{
|
{
|
||||||
I_List_iterator<i_string> iter(opt_plugin_load_list);
|
I_List_iterator<i_string> iter(opt_plugin_load_list);
|
||||||
i_string *item;
|
i_string *item;
|
||||||
|
if (global_system_variables.log_warnings >= 9)
|
||||||
|
sql_print_information("Initializing plugins specified on the command line");
|
||||||
while (NULL != (item= iter++))
|
while (NULL != (item= iter++))
|
||||||
plugin_load_list(&tmp_root, item->ptr);
|
plugin_load_list(&tmp_root, item->ptr);
|
||||||
|
|
||||||
if (!(flags & PLUGIN_INIT_SKIP_PLUGIN_TABLE))
|
if (!(flags & PLUGIN_INIT_SKIP_PLUGIN_TABLE))
|
||||||
|
{
|
||||||
|
if (global_system_variables.log_warnings >= 9)
|
||||||
|
sql_print_information("Initializing installed plugins");
|
||||||
plugin_load(&tmp_root);
|
plugin_load(&tmp_root);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1772,9 +1781,7 @@ static void plugin_load(MEM_ROOT *tmp_root)
|
|||||||
the mutex here to satisfy the assert
|
the mutex here to satisfy the assert
|
||||||
*/
|
*/
|
||||||
mysql_mutex_lock(&LOCK_plugin);
|
mysql_mutex_lock(&LOCK_plugin);
|
||||||
if (plugin_add(tmp_root, &name, &dl, REPORT_TO_LOG))
|
plugin_add(tmp_root, &name, &dl, REPORT_TO_LOG);
|
||||||
sql_print_warning("Couldn't load plugin named '%s' with soname '%s'.",
|
|
||||||
str_name.c_ptr(), str_dl.c_ptr());
|
|
||||||
free_root(tmp_root, MYF(MY_MARK_BLOCKS_FREE));
|
free_root(tmp_root, MYF(MY_MARK_BLOCKS_FREE));
|
||||||
mysql_mutex_unlock(&LOCK_plugin);
|
mysql_mutex_unlock(&LOCK_plugin);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user