diff options
Diffstat (limited to 'storage/perfschema/pfs_defaults.cc')
-rw-r--r-- | storage/perfschema/pfs_defaults.cc | 89 |
1 files changed, 62 insertions, 27 deletions
diff --git a/storage/perfschema/pfs_defaults.cc b/storage/perfschema/pfs_defaults.cc index f6183349884..0b615773089 100644 --- a/storage/perfschema/pfs_defaults.cc +++ b/storage/perfschema/pfs_defaults.cc @@ -1,4 +1,4 @@ -/* Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2.0, @@ -28,12 +28,15 @@ #include <my_global.h> #include "pfs.h" #include "pfs_defaults.h" +#include "pfs_instr_class.h" #include "pfs_instr.h" #include "pfs_setup_actor.h" #include "pfs_setup_object.h" -static PSI_thread_key key; -static PSI_thread_info info= { &key, "setup", PSI_FLAG_GLOBAL }; +static PSI_thread_key thread_key; +static PSI_thread_info thread_info= { &thread_key, "setup", PSI_FLAG_GLOBAL }; + +const char* pfs_category= "performance_schema"; void install_default_setup(PSI_bootstrap *boot) { @@ -41,30 +44,62 @@ void install_default_setup(PSI_bootstrap *boot) if (psi == NULL) return; - psi->register_thread("performance_schema", &info, 1); - PSI_thread *psi_thread= psi->new_thread(key, NULL, 0); - if (psi_thread == NULL) - return; - - /* LF_HASH needs a thread, for PINS */ - psi->set_thread(psi_thread); - - String percent("%", 1, &my_charset_utf8mb3_bin); - /* Enable all users on all hosts by default */ - insert_setup_actor(&percent, &percent, &percent); - - /* Disable system tables by default */ - String mysql_db("mysql", 5, &my_charset_utf8mb3_bin); - insert_setup_object(OBJECT_TYPE_TABLE, &mysql_db, &percent, false, false); - - /* Disable performance/information schema tables. */ - String PS_db("performance_schema", 18, &my_charset_utf8mb3_bin); - String IS_db("information_schema", 18, &my_charset_utf8mb3_bin); - insert_setup_object(OBJECT_TYPE_TABLE, &PS_db, &percent, false, false); - insert_setup_object(OBJECT_TYPE_TABLE, &IS_db, &percent, false, false); - - /* Enable every other tables */ - insert_setup_object(OBJECT_TYPE_TABLE, &percent, &percent, true, true); + psi->register_thread(pfs_category, &thread_info, 1); + PSI_thread *psi_thread= psi->new_thread(thread_key, NULL, 0); + + if (psi_thread != NULL) + { + /* LF_HASH needs a thread, for PINS */ + psi->set_thread(psi_thread); + + String percent("%", 1, &my_charset_utf8mb3_bin); + /* Enable all users on all hosts by default */ + insert_setup_actor(&percent, &percent, &percent, true, true); + + String mysql_db("mysql", 5, &my_charset_utf8mb3_bin); + String PS_db("performance_schema", 18, &my_charset_utf8mb3_bin); + String IS_db("information_schema", 18, &my_charset_utf8mb3_bin); + + /* Disable sp by default in mysql. */ + insert_setup_object(OBJECT_TYPE_EVENT, &mysql_db, &percent, false, false); + /* Disable sp in performance/information schema. */ + insert_setup_object(OBJECT_TYPE_EVENT, &PS_db, &percent, false, false); + insert_setup_object(OBJECT_TYPE_EVENT, &IS_db, &percent, false, false); + /* Enable every other sp. */ + insert_setup_object(OBJECT_TYPE_EVENT, &percent, &percent, true, true); + + /* Disable sp by default in mysql. */ + insert_setup_object(OBJECT_TYPE_FUNCTION, &mysql_db, &percent, false, false); + /* Disable sp in performance/information schema. */ + insert_setup_object(OBJECT_TYPE_FUNCTION, &PS_db, &percent, false, false); + insert_setup_object(OBJECT_TYPE_FUNCTION, &IS_db, &percent, false, false); + /* Enable every other sp. */ + insert_setup_object(OBJECT_TYPE_FUNCTION, &percent, &percent, true, true); + + /* Disable sp by default in mysql. */ + insert_setup_object(OBJECT_TYPE_PROCEDURE, &mysql_db, &percent, false, false); + /* Disable sp in performance/information schema. */ + insert_setup_object(OBJECT_TYPE_PROCEDURE, &PS_db, &percent, false, false); + insert_setup_object(OBJECT_TYPE_PROCEDURE, &IS_db, &percent, false, false); + /* Enable every other sp. */ + insert_setup_object(OBJECT_TYPE_PROCEDURE, &percent, &percent, true, true); + + /* Disable system tables by default */ + insert_setup_object(OBJECT_TYPE_TABLE, &mysql_db, &percent, false, false); + /* Disable performance/information schema tables. */ + insert_setup_object(OBJECT_TYPE_TABLE, &PS_db, &percent, false, false); + insert_setup_object(OBJECT_TYPE_TABLE, &IS_db, &percent, false, false); + /* Enable every other tables */ + insert_setup_object(OBJECT_TYPE_TABLE, &percent, &percent, true, true); + + /* Disable sp by default in mysql. */ + insert_setup_object(OBJECT_TYPE_TRIGGER, &mysql_db, &percent, false, false); + /* Disable sp in performance/information schema. */ + insert_setup_object(OBJECT_TYPE_TRIGGER, &PS_db, &percent, false, false); + insert_setup_object(OBJECT_TYPE_TRIGGER, &IS_db, &percent, false, false); + /* Enable every other sp. */ + insert_setup_object(OBJECT_TYPE_TRIGGER, &percent, &percent, true, true); + } psi->delete_current_thread(); } |