diff options
author | Ashish Agarwal <ashish.y.agarwal@oracle.com> | 2012-10-31 12:45:57 +0530 |
---|---|---|
committer | Ashish Agarwal <ashish.y.agarwal@oracle.com> | 2012-10-31 12:45:57 +0530 |
commit | 2919ca4e0b8ae2ef289bfd5b431819cdf205b513 (patch) | |
tree | c8c8b75763cf3060a86227f692f245b610b95463 | |
parent | 5598603a087fecc4b012939c841ece93a7151295 (diff) | |
parent | 154860eab5499cf44160f253694a87b8147a2965 (diff) | |
download | mariadb-git-2919ca4e0b8ae2ef289bfd5b431819cdf205b513.tar.gz |
BUG#14485479: Merge into mysql-5.5 branch
-rw-r--r-- | mysql-test/include/have_null_audit_plugin.inc | 22 | ||||
-rw-r--r-- | mysql-test/include/plugin.defs | 1 | ||||
-rw-r--r-- | sql/sql_plugin.cc | 5 |
3 files changed, 26 insertions, 2 deletions
diff --git a/mysql-test/include/have_null_audit_plugin.inc b/mysql-test/include/have_null_audit_plugin.inc new file mode 100644 index 00000000000..aa558cf18dd --- /dev/null +++ b/mysql-test/include/have_null_audit_plugin.inc @@ -0,0 +1,22 @@ +disable_query_log; +# +# Check if server has support for loading plugins +# +if (`SELECT @@have_dynamic_loading != 'YES'`) { + --skip Null audit plugin requires dynamic loading +} + +# +# Check if the variable AUDIT_NULL is set +# +if (!$AUDIT_NULL) { + --skip Audit_null plugin requires the environment variable \$AUDIT_NULL to be set (normally done by mtr) +} + +# +# Check if --plugin-dir was setup for null_audit db +# +if (`SELECT CONCAT('--plugin-dir=', REPLACE(@@plugin_dir, '\\\\', '/')) != '$AUDIT_NULL_OPT/'`) { + --skip null audit plugin requires that --plugin-dir is set to the null audit plugin dir (either the .opt file does not contain \$AUDIT_NULL_OPT or another plugin is in use) +} +enable_query_log; diff --git a/mysql-test/include/plugin.defs b/mysql-test/include/plugin.defs index 6fbe4f68328..45fdfdb9a41 100644 --- a/mysql-test/include/plugin.defs +++ b/mysql-test/include/plugin.defs @@ -40,3 +40,4 @@ ha_blackhole storage/blackhole BLACKHOLE_PLUGIN ha_federated storage/federated FEDERATED_PLUGIN mypluglib plugin/fulltext SIMPLE_PARSER libdaemon_example plugin/daemon_example DAEMONEXAMPLE +adt_null plugin/audit_null AUDIT_NULL diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc index 4c42f3798dd..13623078265 100644 --- a/sql/sql_plugin.cc +++ b/sql/sql_plugin.cc @@ -1820,6 +1820,7 @@ bool mysql_install_plugin(THD *thd, const LEX_STRING *name, const LEX_STRING *dl { if (plugin_initialize(tmp)) { + mysql_mutex_unlock(&LOCK_plugin); my_error(ER_CANT_INITIALIZE_UDF, MYF(0), name->str, "Plugin initialization function failed."); goto deinit; @@ -1831,6 +1832,7 @@ bool mysql_install_plugin(THD *thd, const LEX_STRING *name, const LEX_STRING *dl of the insert into the plugin table, so that it is not replicated in row based mode. */ + mysql_mutex_unlock(&LOCK_plugin); tmp_disable_binlog(thd); table->use_all_columns(); restore_record(table, s->default_values); @@ -1843,10 +1845,9 @@ bool mysql_install_plugin(THD *thd, const LEX_STRING *name, const LEX_STRING *dl table->file->print_error(error, MYF(0)); goto deinit; } - - mysql_mutex_unlock(&LOCK_plugin); DBUG_RETURN(FALSE); deinit: + mysql_mutex_lock(&LOCK_plugin); tmp->state= PLUGIN_IS_DELETED; reap_needed= true; reap_plugins(); |