From: Marc Alff Date: May 12 2010 2:05pm Subject: bzr push into mysql-next-mr branch (marc.alff:3143 to 3144) WL#4674 List-Archive: http://lists.mysql.com/commits/108148 Message-Id: <20100512140502.B23C95BC796@MarcBook.local> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Boundary_(ID_iqenl64MNoJwExGnq7poVQ)" --Boundary_(ID_iqenl64MNoJwExGnq7poVQ) MIME-version: 1.0 Content-type: text/plain; CHARSET=US-ASCII Content-transfer-encoding: 7BIT Content-disposition: inline 3144 Marc Alff 2010-05-12 WL#4674 PERFORMANCE SCHEMA SETUP_ACTORS Port, continued. removed: mysql-test/suite/perfschema/t/schema.test added: mysql-test/suite/perfschema/include/schema.inc mysql-test/suite/perfschema/r/ddl_setup_actors.result mysql-test/suite/perfschema/r/dml_setup_actors.result mysql-test/suite/perfschema/r/schema_lc0.result mysql-test/suite/perfschema/r/schema_lc1.result mysql-test/suite/perfschema/r/schema_lc2.result mysql-test/suite/perfschema/t/ddl_setup_actors.test mysql-test/suite/perfschema/t/dml_setup_actors.test mysql-test/suite/perfschema/t/schema_lc0.test mysql-test/suite/perfschema/t/schema_lc1.test mysql-test/suite/perfschema/t/schema_lc2.test storage/perfschema/table_setup_actors.cc storage/perfschema/table_setup_actors.h modified: mysql-test/r/mysqld--help-notwin.result mysql-test/r/mysqld--help-win.result mysql-test/suite/perfschema/include/start_server_common.inc mysql-test/suite/perfschema/r/information_schema.result mysql-test/suite/perfschema/r/start_server_no_cond_class.result mysql-test/suite/perfschema/r/start_server_no_cond_inst.result mysql-test/suite/perfschema/r/start_server_no_file_class.result mysql-test/suite/perfschema/r/start_server_no_file_inst.result mysql-test/suite/perfschema/r/start_server_no_mutex_class.result mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result mysql-test/suite/perfschema/r/start_server_no_thread_class.result mysql-test/suite/perfschema/r/start_server_no_thread_inst.result mysql-test/suite/perfschema/r/start_server_off.result mysql-test/suite/perfschema/r/start_server_on.result scripts/mysql_system_tables.sql storage/perfschema/CMakeLists.txt storage/perfschema/Makefile.am storage/perfschema/pfs_engine_table.cc 3143 Marc Alff 2010-05-11 WL#4674 PERFORMANCE_SCHEMA Setup For Actors Port, continued removed: mysql-test/suite/perfschema/r/ddl_processlist.result mysql-test/suite/perfschema/r/dml_processlist.result mysql-test/suite/perfschema/t/ddl_processlist.test mysql-test/suite/perfschema/t/dml_processlist.test storage/perfschema/table_processlist.cc storage/perfschema/table_processlist.h added: mysql-test/suite/perfschema/r/ddl_threads.result mysql-test/suite/perfschema/r/dml_threads.result mysql-test/suite/perfschema/t/ddl_threads.test mysql-test/suite/perfschema/t/dml_threads.test storage/perfschema/pfs_defaults.cc storage/perfschema/pfs_defaults.h storage/perfschema/table_threads.cc storage/perfschema/table_threads.h modified: mysql-test/suite/perfschema/include/setup_helper.inc mysql-test/suite/perfschema/include/start_server_common.inc mysql-test/suite/perfschema/r/func_file_io.result mysql-test/suite/perfschema/r/information_schema.result mysql-test/suite/perfschema/r/misc.result mysql-test/suite/perfschema/r/no_threads.result mysql-test/suite/perfschema/r/selects.result mysql-test/suite/perfschema/r/start_server_no_cond_class.result mysql-test/suite/perfschema/r/start_server_no_cond_inst.result mysql-test/suite/perfschema/r/start_server_no_file_class.result mysql-test/suite/perfschema/r/start_server_no_file_inst.result mysql-test/suite/perfschema/r/start_server_no_mutex_class.result mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result mysql-test/suite/perfschema/r/start_server_no_thread_class.result mysql-test/suite/perfschema/r/start_server_no_thread_inst.result mysql-test/suite/perfschema/r/start_server_off.result mysql-test/suite/perfschema/r/start_server_on.result mysql-test/suite/perfschema/t/func_file_io.test mysql-test/suite/perfschema/t/misc.test mysql-test/suite/perfschema/t/no_threads.test mysql-test/suite/perfschema/t/schema.test mysql-test/suite/perfschema/t/selects.test mysql-test/suite/perfschema/t/start_server_no_thread_class.test mysql-test/suite/perfschema/t/start_server_no_thread_inst.test scripts/mysql_system_tables.sql sql/sys_vars.cc storage/perfschema/CMakeLists.txt storage/perfschema/Makefile.am storage/perfschema/ha_perfschema.cc storage/perfschema/ha_perfschema.h storage/perfschema/pfs_engine_table.cc storage/perfschema/pfs_engine_table.h storage/perfschema/pfs_server.cc storage/perfschema/pfs_setup_actor.cc storage/perfschema/table_events_waits.cc storage/perfschema/table_events_waits_summary.cc storage/perfschema/table_file_instances.cc storage/perfschema/table_file_summary.cc storage/perfschema/table_performance_timers.cc storage/perfschema/table_setup_consumers.cc storage/perfschema/table_setup_instruments.cc storage/perfschema/table_setup_objects.cc storage/perfschema/table_setup_timers.cc storage/perfschema/table_sync_instances.cc === modified file 'mysql-test/r/mysqld--help-notwin.result' --- a/mysql-test/r/mysqld--help-notwin.result 2010-03-24 15:03:44 +0000 +++ b/mysql-test/r/mysqld--help-notwin.result 2010-05-12 14:04:32 +0000 @@ -438,6 +438,8 @@ The following options may be given as th Maximum number of thread instruments. --performance-schema-max-thread-instances=# Maximum number of instrumented threads. + --performance-schema-setup-actors-size=# + Maximum number of rows in SETUP_ACTORS. --pid-file=name Pid file used by safe_mysqld --plugin-dir=name Directory for plugins --plugin-load=name Optional semicolon-separated list of plugins to load, @@ -867,6 +869,7 @@ performance-schema-max-table-handles 100 performance-schema-max-table-instances 50000 performance-schema-max-thread-classes 50 performance-schema-max-thread-instances 1000 +performance-schema-setup-actors-size 100 plugin-load (No default value) port 3306 port-open-timeout 0 === modified file 'mysql-test/r/mysqld--help-win.result' --- a/mysql-test/r/mysqld--help-win.result 2010-03-24 20:29:38 +0000 +++ b/mysql-test/r/mysqld--help-win.result 2010-05-12 14:04:32 +0000 @@ -438,6 +438,8 @@ The following options may be given as th Maximum number of thread instruments. --performance-schema-max-thread-instances=# Maximum number of instrumented threads. + --performance-schema-setup-actors-size=# + Maximum number of rows in SETUP_ACTORS. --pid-file=name Pid file used by safe_mysqld --plugin-dir=name Directory for plugins --plugin-load=name Optional semicolon-separated list of plugins to load, @@ -871,6 +873,7 @@ performance-schema-max-table-handles 100 performance-schema-max-table-instances 50000 performance-schema-max-thread-classes 50 performance-schema-max-thread-instances 1000 +performance-schema-setup-actors-size 100 plugin-load (No default value) port 3306 port-open-timeout 0 === added file 'mysql-test/suite/perfschema/include/schema.inc' --- a/mysql-test/suite/perfschema/include/schema.inc 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/include/schema.inc 2010-05-12 14:04:32 +0000 @@ -0,0 +1,43 @@ +# Copyright (c) 2008, 2010, 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 as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +# Tests for PERFORMANCE_SCHEMA + +show databases; + +use performance_schema; + +show tables; + +show create table COND_INSTANCES; +show create table EVENTS_WAITS_CURRENT; +show create table EVENTS_WAITS_HISTORY; +show create table EVENTS_WAITS_HISTORY_LONG; +show create table EVENTS_WAITS_SUMMARY_BY_EVENT_NAME; +show create table EVENTS_WAITS_SUMMARY_BY_INSTANCE; +show create table EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; +show create table FILE_INSTANCES; +show create table FILE_SUMMARY_BY_EVENT_NAME; +show create table FILE_SUMMARY_BY_INSTANCE; +show create table MUTEX_INSTANCES; +show create table PERFORMANCE_TIMERS; +show create table RWLOCK_INSTANCES; +show create table SETUP_ACTORS; +show create table SETUP_CONSUMERS; +show create table SETUP_INSTRUMENTS; +show create table SETUP_OBJECTS; +show create table SETUP_TIMERS; +show create table THREADS; + === modified file 'mysql-test/suite/perfschema/include/start_server_common.inc' --- a/mysql-test/suite/perfschema/include/start_server_common.inc 2010-05-11 10:36:37 +0000 +++ b/mysql-test/suite/perfschema/include/start_server_common.inc 2010-05-12 14:04:32 +0000 @@ -38,6 +38,7 @@ select * from performance_schema.FILE_SU select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.RWLOCK_INSTANCES; +select * from performance_schema.SETUP_ACTORS; select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_OBJECTS; === added file 'mysql-test/suite/perfschema/r/ddl_setup_actors.result' --- a/mysql-test/suite/perfschema/r/ddl_setup_actors.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/ddl_setup_actors.result 2010-05-12 14:04:32 +0000 @@ -0,0 +1,16 @@ +alter table performance_schema.SETUP_ACTORS add column foo integer; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema' +drop table if exists test.SETUP_ACTORS; +create table test.SETUP_ACTORS as +select * from performance_schema.SETUP_ACTORS; +truncate table performance_schema.SETUP_ACTORS; +select count(*) from performance_schema.SETUP_ACTORS; +count(*) +0 +insert into performance_schema.SETUP_ACTORS +select * from test.SETUP_ACTORS; +drop table test.SETUP_ACTORS; +ALTER TABLE performance_schema.SETUP_ACTORS ADD INDEX test_index(HOST); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema' +CREATE UNIQUE INDEX test_index ON performance_schema.SETUP_ACTORS(HOST); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema' === added file 'mysql-test/suite/perfschema/r/dml_setup_actors.result' --- a/mysql-test/suite/perfschema/r/dml_setup_actors.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/dml_setup_actors.result 2010-05-12 14:04:32 +0000 @@ -0,0 +1,60 @@ +drop table if exists test.SETUP_ACTORS; +create table test.SETUP_ACTORS as +select * from performance_schema.SETUP_ACTORS; +truncate table performance_schema.SETUP_ACTORS; +select * from performance_schema.SETUP_ACTORS; +HOST USER ROLE +select * from performance_schema.SETUP_ACTORS +where user = '%'; +HOST USER ROLE +insert into performance_schema.SETUP_ACTORS +set user='Joe', host='localhost'; +insert into performance_schema.SETUP_ACTORS +set user='Joe', host='%'; +insert into performance_schema.SETUP_ACTORS +set user='%', host='server1'; +insert into performance_schema.SETUP_ACTORS +set user='%', host='%'; +select * from performance_schema.SETUP_ACTORS +order by USER, HOST; +HOST USER ROLE +% % % +server1 % % +% Joe % +localhost Joe % +update performance_schema.SETUP_ACTORS +set user='ILLEGAL'; +ERROR HY000: Invalid performance_schema usage. +update performance_schema.SETUP_ACTORS +set host='ILLEGAL'; +ERROR HY000: Invalid performance_schema usage. +update performance_schema.SETUP_ACTORS +set role='ILLEGAL'; +ERROR HY000: Invalid performance_schema usage. +select * from performance_schema.SETUP_ACTORS +order by USER, HOST; +HOST USER ROLE +% % % +server1 % % +% Joe % +localhost Joe % +delete from performance_schema.SETUP_ACTORS +where user = 'Joe' and host = 'localhost'; +select * from performance_schema.SETUP_ACTORS +order by USER, HOST; +HOST USER ROLE +% % % +server1 % % +% Joe % +delete from performance_schema.SETUP_ACTORS; +select * from performance_schema.SETUP_ACTORS +order by USER, HOST; +HOST USER ROLE +LOCK TABLES performance_schema.SETUP_ACTORS READ; +UNLOCK TABLES; +LOCK TABLES performance_schema.SETUP_ACTORS WRITE; +UNLOCK TABLES; +truncate table performance_schema.SETUP_ACTORS; +insert into performance_schema.SETUP_ACTORS +select * from test.SETUP_ACTORS; +drop table test.SETUP_ACTORS; === modified file 'mysql-test/suite/perfschema/r/information_schema.result' --- a/mysql-test/suite/perfschema/r/information_schema.result 2010-05-11 10:36:37 +0000 +++ b/mysql-test/suite/perfschema/r/information_schema.result 2010-05-12 14:04:32 +0000 @@ -15,6 +15,7 @@ performance_schema FILE_SUMMARY_BY_INSTA performance_schema MUTEX_INSTANCES def performance_schema PERFORMANCE_TIMERS def performance_schema RWLOCK_INSTANCES def +performance_schema SETUP_ACTORS def performance_schema SETUP_CONSUMERS def performance_schema SETUP_INSTRUMENTS def performance_schema SETUP_OBJECTS def @@ -37,6 +38,7 @@ FILE_SUMMARY_BY_INSTANCE BASE TABLE PERF MUTEX_INSTANCES BASE TABLE PERFORMANCE_SCHEMA PERFORMANCE_TIMERS BASE TABLE PERFORMANCE_SCHEMA RWLOCK_INSTANCES BASE TABLE PERFORMANCE_SCHEMA +SETUP_ACTORS BASE TABLE PERFORMANCE_SCHEMA SETUP_CONSUMERS BASE TABLE PERFORMANCE_SCHEMA SETUP_INSTRUMENTS BASE TABLE PERFORMANCE_SCHEMA SETUP_OBJECTS BASE TABLE PERFORMANCE_SCHEMA @@ -59,6 +61,7 @@ FILE_SUMMARY_BY_INSTANCE 10 Dynamic MUTEX_INSTANCES 10 Dynamic PERFORMANCE_TIMERS 10 Fixed RWLOCK_INSTANCES 10 Dynamic +SETUP_ACTORS 10 Fixed SETUP_CONSUMERS 10 Dynamic SETUP_INSTRUMENTS 10 Dynamic SETUP_OBJECTS 10 Dynamic @@ -81,6 +84,7 @@ FILE_SUMMARY_BY_INSTANCE 1000 0 MUTEX_INSTANCES 1000 0 PERFORMANCE_TIMERS 5 0 RWLOCK_INSTANCES 1000 0 +SETUP_ACTORS 1 0 SETUP_CONSUMERS 8 0 SETUP_INSTRUMENTS 1000 0 SETUP_OBJECTS 1000 0 @@ -103,6 +107,7 @@ FILE_SUMMARY_BY_INSTANCE 0 0 MUTEX_INSTANCES 0 0 PERFORMANCE_TIMERS 0 0 RWLOCK_INSTANCES 0 0 +SETUP_ACTORS 0 0 SETUP_CONSUMERS 0 0 SETUP_INSTRUMENTS 0 0 SETUP_OBJECTS 0 0 @@ -125,6 +130,7 @@ FILE_SUMMARY_BY_INSTANCE 0 0 NULL MUTEX_INSTANCES 0 0 NULL PERFORMANCE_TIMERS 0 0 NULL RWLOCK_INSTANCES 0 0 NULL +SETUP_ACTORS 0 0 NULL SETUP_CONSUMERS 0 0 NULL SETUP_INSTRUMENTS 0 0 NULL SETUP_OBJECTS 0 0 NULL @@ -147,6 +153,7 @@ FILE_SUMMARY_BY_INSTANCE NULL NULL NULL MUTEX_INSTANCES NULL NULL NULL PERFORMANCE_TIMERS NULL NULL NULL RWLOCK_INSTANCES NULL NULL NULL +SETUP_ACTORS NULL NULL NULL SETUP_CONSUMERS NULL NULL NULL SETUP_INSTRUMENTS NULL NULL NULL SETUP_OBJECTS NULL NULL NULL @@ -169,6 +176,7 @@ FILE_SUMMARY_BY_INSTANCE utf8_general_ci MUTEX_INSTANCES utf8_general_ci NULL PERFORMANCE_TIMERS utf8_general_ci NULL RWLOCK_INSTANCES utf8_general_ci NULL +SETUP_ACTORS utf8_general_ci NULL SETUP_CONSUMERS utf8_general_ci NULL SETUP_INSTRUMENTS utf8_general_ci NULL SETUP_OBJECTS utf8_general_ci NULL @@ -191,6 +199,7 @@ FILE_SUMMARY_BY_INSTANCE MUTEX_INSTANCES PERFORMANCE_TIMERS RWLOCK_INSTANCES +SETUP_ACTORS SETUP_CONSUMERS SETUP_INSTRUMENTS SETUP_OBJECTS === added file 'mysql-test/suite/perfschema/r/schema_lc0.result' --- a/mysql-test/suite/perfschema/r/schema_lc0.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/schema_lc0.result 2010-05-12 14:04:32 +0000 @@ -0,0 +1,230 @@ +show databases; +Database +information_schema +mtr +mysql +performance_schema +test +use performance_schema; +show tables; +Tables_in_performance_schema +COND_INSTANCES +EVENTS_WAITS_CURRENT +EVENTS_WAITS_HISTORY +EVENTS_WAITS_HISTORY_LONG +EVENTS_WAITS_SUMMARY_BY_EVENT_NAME +EVENTS_WAITS_SUMMARY_BY_INSTANCE +EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME +FILE_INSTANCES +FILE_SUMMARY_BY_EVENT_NAME +FILE_SUMMARY_BY_INSTANCE +MUTEX_INSTANCES +PERFORMANCE_TIMERS +RWLOCK_INSTANCES +SETUP_ACTORS +SETUP_CONSUMERS +SETUP_INSTRUMENTS +SETUP_OBJECTS +SETUP_TIMERS +THREADS +show create table COND_INSTANCES; +Table Create Table +COND_INSTANCES CREATE TABLE `COND_INSTANCES` ( + `NAME` varchar(128) NOT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table EVENTS_WAITS_CURRENT; +Table Create Table +EVENTS_WAITS_CURRENT CREATE TABLE `EVENTS_WAITS_CURRENT` ( + `THREAD_ID` int(11) NOT NULL, + `EVENT_ID` bigint(20) unsigned NOT NULL, + `EVENT_NAME` varchar(128) NOT NULL, + `SOURCE` varchar(64) DEFAULT NULL, + `TIMER_START` bigint(20) unsigned DEFAULT NULL, + `TIMER_END` bigint(20) unsigned DEFAULT NULL, + `TIMER_WAIT` bigint(20) unsigned DEFAULT NULL, + `SPINS` int(10) unsigned DEFAULT NULL, + `OBJECT_SCHEMA` varchar(64) DEFAULT NULL, + `OBJECT_NAME` varchar(512) DEFAULT NULL, + `OBJECT_TYPE` varchar(64) DEFAULT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL, + `NESTING_EVENT_ID` bigint(20) unsigned DEFAULT NULL, + `OPERATION` varchar(16) NOT NULL, + `NUMBER_OF_BYTES` bigint(20) unsigned DEFAULT NULL, + `FLAGS` int(10) unsigned DEFAULT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table EVENTS_WAITS_HISTORY; +Table Create Table +EVENTS_WAITS_HISTORY CREATE TABLE `EVENTS_WAITS_HISTORY` ( + `THREAD_ID` int(11) NOT NULL, + `EVENT_ID` bigint(20) unsigned NOT NULL, + `EVENT_NAME` varchar(128) NOT NULL, + `SOURCE` varchar(64) DEFAULT NULL, + `TIMER_START` bigint(20) unsigned DEFAULT NULL, + `TIMER_END` bigint(20) unsigned DEFAULT NULL, + `TIMER_WAIT` bigint(20) unsigned DEFAULT NULL, + `SPINS` int(10) unsigned DEFAULT NULL, + `OBJECT_SCHEMA` varchar(64) DEFAULT NULL, + `OBJECT_NAME` varchar(512) DEFAULT NULL, + `OBJECT_TYPE` varchar(64) DEFAULT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL, + `NESTING_EVENT_ID` bigint(20) unsigned DEFAULT NULL, + `OPERATION` varchar(16) NOT NULL, + `NUMBER_OF_BYTES` bigint(20) unsigned DEFAULT NULL, + `FLAGS` int(10) unsigned DEFAULT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table EVENTS_WAITS_HISTORY_LONG; +Table Create Table +EVENTS_WAITS_HISTORY_LONG CREATE TABLE `EVENTS_WAITS_HISTORY_LONG` ( + `THREAD_ID` int(11) NOT NULL, + `EVENT_ID` bigint(20) unsigned NOT NULL, + `EVENT_NAME` varchar(128) NOT NULL, + `SOURCE` varchar(64) DEFAULT NULL, + `TIMER_START` bigint(20) unsigned DEFAULT NULL, + `TIMER_END` bigint(20) unsigned DEFAULT NULL, + `TIMER_WAIT` bigint(20) unsigned DEFAULT NULL, + `SPINS` int(10) unsigned DEFAULT NULL, + `OBJECT_SCHEMA` varchar(64) DEFAULT NULL, + `OBJECT_NAME` varchar(512) DEFAULT NULL, + `OBJECT_TYPE` varchar(64) DEFAULT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL, + `NESTING_EVENT_ID` bigint(20) unsigned DEFAULT NULL, + `OPERATION` varchar(16) NOT NULL, + `NUMBER_OF_BYTES` bigint(20) unsigned DEFAULT NULL, + `FLAGS` int(10) unsigned DEFAULT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table EVENTS_WAITS_SUMMARY_BY_EVENT_NAME; +Table Create Table +EVENTS_WAITS_SUMMARY_BY_EVENT_NAME CREATE TABLE `EVENTS_WAITS_SUMMARY_BY_EVENT_NAME` ( + `EVENT_NAME` varchar(128) NOT NULL, + `COUNT_STAR` bigint(20) unsigned NOT NULL, + `SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table EVENTS_WAITS_SUMMARY_BY_INSTANCE; +Table Create Table +EVENTS_WAITS_SUMMARY_BY_INSTANCE CREATE TABLE `EVENTS_WAITS_SUMMARY_BY_INSTANCE` ( + `EVENT_NAME` varchar(128) NOT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL, + `COUNT_STAR` bigint(20) unsigned NOT NULL, + `SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; +Table Create Table +EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME CREATE TABLE `EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME` ( + `THREAD_ID` int(11) NOT NULL, + `EVENT_NAME` varchar(128) NOT NULL, + `COUNT_STAR` bigint(20) unsigned NOT NULL, + `SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table FILE_INSTANCES; +Table Create Table +FILE_INSTANCES CREATE TABLE `FILE_INSTANCES` ( + `FILE_NAME` varchar(512) NOT NULL, + `EVENT_NAME` varchar(128) NOT NULL, + `OPEN_COUNT` int(10) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table FILE_SUMMARY_BY_EVENT_NAME; +Table Create Table +FILE_SUMMARY_BY_EVENT_NAME CREATE TABLE `FILE_SUMMARY_BY_EVENT_NAME` ( + `EVENT_NAME` varchar(128) NOT NULL, + `COUNT_READ` bigint(20) unsigned NOT NULL, + `COUNT_WRITE` bigint(20) unsigned NOT NULL, + `SUM_NUMBER_OF_BYTES_READ` bigint(20) unsigned NOT NULL, + `SUM_NUMBER_OF_BYTES_WRITE` bigint(20) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table FILE_SUMMARY_BY_INSTANCE; +Table Create Table +FILE_SUMMARY_BY_INSTANCE CREATE TABLE `FILE_SUMMARY_BY_INSTANCE` ( + `FILE_NAME` varchar(512) NOT NULL, + `EVENT_NAME` varchar(128) NOT NULL, + `COUNT_READ` bigint(20) unsigned NOT NULL, + `COUNT_WRITE` bigint(20) unsigned NOT NULL, + `SUM_NUMBER_OF_BYTES_READ` bigint(20) unsigned NOT NULL, + `SUM_NUMBER_OF_BYTES_WRITE` bigint(20) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table MUTEX_INSTANCES; +Table Create Table +MUTEX_INSTANCES CREATE TABLE `MUTEX_INSTANCES` ( + `NAME` varchar(128) NOT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL, + `LOCKED_BY_THREAD_ID` int(11) DEFAULT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table PERFORMANCE_TIMERS; +Table Create Table +PERFORMANCE_TIMERS CREATE TABLE `PERFORMANCE_TIMERS` ( + `TIMER_NAME` enum('CYCLE','NANOSECOND','MICROSECOND','MILLISECOND','TICK') NOT NULL, + `TIMER_FREQUENCY` bigint(20) DEFAULT NULL, + `TIMER_RESOLUTION` bigint(20) DEFAULT NULL, + `TIMER_OVERHEAD` bigint(20) DEFAULT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table RWLOCK_INSTANCES; +Table Create Table +RWLOCK_INSTANCES CREATE TABLE `RWLOCK_INSTANCES` ( + `NAME` varchar(128) NOT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL, + `WRITE_LOCKED_BY_THREAD_ID` int(11) DEFAULT NULL, + `READ_LOCKED_BY_COUNT` int(10) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table SETUP_ACTORS; +Table Create Table +SETUP_ACTORS CREATE TABLE `SETUP_ACTORS` ( + `HOST` char(60) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '%', + `USER` char(16) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '%', + `ROLE` char(16) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '%' +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table SETUP_CONSUMERS; +Table Create Table +SETUP_CONSUMERS CREATE TABLE `SETUP_CONSUMERS` ( + `NAME` varchar(64) NOT NULL, + `ENABLED` enum('YES','NO') NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table SETUP_INSTRUMENTS; +Table Create Table +SETUP_INSTRUMENTS CREATE TABLE `SETUP_INSTRUMENTS` ( + `NAME` varchar(128) NOT NULL, + `ENABLED` enum('YES','NO') NOT NULL, + `TIMED` enum('YES','NO') NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table SETUP_OBJECTS; +Table Create Table +SETUP_OBJECTS CREATE TABLE `SETUP_OBJECTS` ( + `OBJECT_TYPE` varchar(64) DEFAULT NULL, + `OBJECT_SCHEMA` varchar(64) DEFAULT NULL, + `OBJECT_NAME` varchar(64) DEFAULT NULL, + `ENABLED` enum('YES','NO') NOT NULL, + `TIMED` enum('YES','NO') NOT NULL, + `AGGREGATED` enum('YES','NO') NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table SETUP_TIMERS; +Table Create Table +SETUP_TIMERS CREATE TABLE `SETUP_TIMERS` ( + `NAME` varchar(64) NOT NULL, + `TIMER_NAME` enum('CYCLE','NANOSECOND','MICROSECOND','MILLISECOND','TICK') NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table THREADS; +Table Create Table +THREADS CREATE TABLE `THREADS` ( + `THREAD_ID` int(11) NOT NULL, + `NAME` varchar(128) NOT NULL, + `TYPE` varchar(10) NOT NULL, + `PROCESSLIST_ID` int(11) DEFAULT NULL, + `PROCESSLIST_USER` varchar(16) DEFAULT NULL, + `PROCESSLIST_HOST` varchar(60) DEFAULT NULL, + `PROCESSLIST_DB` varchar(64) DEFAULT NULL, + `PROCESSLIST_COMMAND` varchar(16) DEFAULT NULL, + `PROCESSLIST_TIME` bigint(20) DEFAULT NULL, + `PROCESSLIST_STATE` varchar(64) DEFAULT NULL, + `PROCESSLIST_INFO` longtext, + `PARENT_THREAD_ID` int(11) DEFAULT NULL, + `ROLE` varchar(64) DEFAULT NULL, + `INSTRUMENTED` enum('YES','NO') NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 === added file 'mysql-test/suite/perfschema/r/schema_lc1.result' --- a/mysql-test/suite/perfschema/r/schema_lc1.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/schema_lc1.result 2010-05-12 14:04:32 +0000 @@ -0,0 +1,230 @@ +show databases; +Database +information_schema +mtr +mysql +performance_schema +test +use performance_schema; +show tables; +Tables_in_performance_schema +COND_INSTANCES +EVENTS_WAITS_CURRENT +EVENTS_WAITS_HISTORY +EVENTS_WAITS_HISTORY_LONG +EVENTS_WAITS_SUMMARY_BY_EVENT_NAME +EVENTS_WAITS_SUMMARY_BY_INSTANCE +EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME +FILE_INSTANCES +FILE_SUMMARY_BY_EVENT_NAME +FILE_SUMMARY_BY_INSTANCE +MUTEX_INSTANCES +PERFORMANCE_TIMERS +RWLOCK_INSTANCES +SETUP_ACTORS +SETUP_CONSUMERS +SETUP_INSTRUMENTS +SETUP_OBJECTS +SETUP_TIMERS +THREADS +show create table COND_INSTANCES; +Table Create Table +COND_INSTANCES CREATE TABLE `COND_INSTANCES` ( + `NAME` varchar(128) NOT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table EVENTS_WAITS_CURRENT; +Table Create Table +EVENTS_WAITS_CURRENT CREATE TABLE `EVENTS_WAITS_CURRENT` ( + `THREAD_ID` int(11) NOT NULL, + `EVENT_ID` bigint(20) unsigned NOT NULL, + `EVENT_NAME` varchar(128) NOT NULL, + `SOURCE` varchar(64) DEFAULT NULL, + `TIMER_START` bigint(20) unsigned DEFAULT NULL, + `TIMER_END` bigint(20) unsigned DEFAULT NULL, + `TIMER_WAIT` bigint(20) unsigned DEFAULT NULL, + `SPINS` int(10) unsigned DEFAULT NULL, + `OBJECT_SCHEMA` varchar(64) DEFAULT NULL, + `OBJECT_NAME` varchar(512) DEFAULT NULL, + `OBJECT_TYPE` varchar(64) DEFAULT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL, + `NESTING_EVENT_ID` bigint(20) unsigned DEFAULT NULL, + `OPERATION` varchar(16) NOT NULL, + `NUMBER_OF_BYTES` bigint(20) unsigned DEFAULT NULL, + `FLAGS` int(10) unsigned DEFAULT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table EVENTS_WAITS_HISTORY; +Table Create Table +EVENTS_WAITS_HISTORY CREATE TABLE `EVENTS_WAITS_HISTORY` ( + `THREAD_ID` int(11) NOT NULL, + `EVENT_ID` bigint(20) unsigned NOT NULL, + `EVENT_NAME` varchar(128) NOT NULL, + `SOURCE` varchar(64) DEFAULT NULL, + `TIMER_START` bigint(20) unsigned DEFAULT NULL, + `TIMER_END` bigint(20) unsigned DEFAULT NULL, + `TIMER_WAIT` bigint(20) unsigned DEFAULT NULL, + `SPINS` int(10) unsigned DEFAULT NULL, + `OBJECT_SCHEMA` varchar(64) DEFAULT NULL, + `OBJECT_NAME` varchar(512) DEFAULT NULL, + `OBJECT_TYPE` varchar(64) DEFAULT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL, + `NESTING_EVENT_ID` bigint(20) unsigned DEFAULT NULL, + `OPERATION` varchar(16) NOT NULL, + `NUMBER_OF_BYTES` bigint(20) unsigned DEFAULT NULL, + `FLAGS` int(10) unsigned DEFAULT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table EVENTS_WAITS_HISTORY_LONG; +Table Create Table +EVENTS_WAITS_HISTORY_LONG CREATE TABLE `EVENTS_WAITS_HISTORY_LONG` ( + `THREAD_ID` int(11) NOT NULL, + `EVENT_ID` bigint(20) unsigned NOT NULL, + `EVENT_NAME` varchar(128) NOT NULL, + `SOURCE` varchar(64) DEFAULT NULL, + `TIMER_START` bigint(20) unsigned DEFAULT NULL, + `TIMER_END` bigint(20) unsigned DEFAULT NULL, + `TIMER_WAIT` bigint(20) unsigned DEFAULT NULL, + `SPINS` int(10) unsigned DEFAULT NULL, + `OBJECT_SCHEMA` varchar(64) DEFAULT NULL, + `OBJECT_NAME` varchar(512) DEFAULT NULL, + `OBJECT_TYPE` varchar(64) DEFAULT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL, + `NESTING_EVENT_ID` bigint(20) unsigned DEFAULT NULL, + `OPERATION` varchar(16) NOT NULL, + `NUMBER_OF_BYTES` bigint(20) unsigned DEFAULT NULL, + `FLAGS` int(10) unsigned DEFAULT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table EVENTS_WAITS_SUMMARY_BY_EVENT_NAME; +Table Create Table +EVENTS_WAITS_SUMMARY_BY_EVENT_NAME CREATE TABLE `EVENTS_WAITS_SUMMARY_BY_EVENT_NAME` ( + `EVENT_NAME` varchar(128) NOT NULL, + `COUNT_STAR` bigint(20) unsigned NOT NULL, + `SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table EVENTS_WAITS_SUMMARY_BY_INSTANCE; +Table Create Table +EVENTS_WAITS_SUMMARY_BY_INSTANCE CREATE TABLE `EVENTS_WAITS_SUMMARY_BY_INSTANCE` ( + `EVENT_NAME` varchar(128) NOT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL, + `COUNT_STAR` bigint(20) unsigned NOT NULL, + `SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; +Table Create Table +EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME CREATE TABLE `EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME` ( + `THREAD_ID` int(11) NOT NULL, + `EVENT_NAME` varchar(128) NOT NULL, + `COUNT_STAR` bigint(20) unsigned NOT NULL, + `SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table FILE_INSTANCES; +Table Create Table +FILE_INSTANCES CREATE TABLE `FILE_INSTANCES` ( + `FILE_NAME` varchar(512) NOT NULL, + `EVENT_NAME` varchar(128) NOT NULL, + `OPEN_COUNT` int(10) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table FILE_SUMMARY_BY_EVENT_NAME; +Table Create Table +FILE_SUMMARY_BY_EVENT_NAME CREATE TABLE `FILE_SUMMARY_BY_EVENT_NAME` ( + `EVENT_NAME` varchar(128) NOT NULL, + `COUNT_READ` bigint(20) unsigned NOT NULL, + `COUNT_WRITE` bigint(20) unsigned NOT NULL, + `SUM_NUMBER_OF_BYTES_READ` bigint(20) unsigned NOT NULL, + `SUM_NUMBER_OF_BYTES_WRITE` bigint(20) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table FILE_SUMMARY_BY_INSTANCE; +Table Create Table +FILE_SUMMARY_BY_INSTANCE CREATE TABLE `FILE_SUMMARY_BY_INSTANCE` ( + `FILE_NAME` varchar(512) NOT NULL, + `EVENT_NAME` varchar(128) NOT NULL, + `COUNT_READ` bigint(20) unsigned NOT NULL, + `COUNT_WRITE` bigint(20) unsigned NOT NULL, + `SUM_NUMBER_OF_BYTES_READ` bigint(20) unsigned NOT NULL, + `SUM_NUMBER_OF_BYTES_WRITE` bigint(20) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table MUTEX_INSTANCES; +Table Create Table +MUTEX_INSTANCES CREATE TABLE `MUTEX_INSTANCES` ( + `NAME` varchar(128) NOT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL, + `LOCKED_BY_THREAD_ID` int(11) DEFAULT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table PERFORMANCE_TIMERS; +Table Create Table +PERFORMANCE_TIMERS CREATE TABLE `PERFORMANCE_TIMERS` ( + `TIMER_NAME` enum('CYCLE','NANOSECOND','MICROSECOND','MILLISECOND','TICK') NOT NULL, + `TIMER_FREQUENCY` bigint(20) DEFAULT NULL, + `TIMER_RESOLUTION` bigint(20) DEFAULT NULL, + `TIMER_OVERHEAD` bigint(20) DEFAULT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table RWLOCK_INSTANCES; +Table Create Table +RWLOCK_INSTANCES CREATE TABLE `RWLOCK_INSTANCES` ( + `NAME` varchar(128) NOT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL, + `WRITE_LOCKED_BY_THREAD_ID` int(11) DEFAULT NULL, + `READ_LOCKED_BY_COUNT` int(10) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table SETUP_ACTORS; +Table Create Table +SETUP_ACTORS CREATE TABLE `SETUP_ACTORS` ( + `HOST` char(60) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '%', + `USER` char(16) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '%', + `ROLE` char(16) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '%' +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table SETUP_CONSUMERS; +Table Create Table +SETUP_CONSUMERS CREATE TABLE `SETUP_CONSUMERS` ( + `NAME` varchar(64) NOT NULL, + `ENABLED` enum('YES','NO') NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table SETUP_INSTRUMENTS; +Table Create Table +SETUP_INSTRUMENTS CREATE TABLE `SETUP_INSTRUMENTS` ( + `NAME` varchar(128) NOT NULL, + `ENABLED` enum('YES','NO') NOT NULL, + `TIMED` enum('YES','NO') NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table SETUP_OBJECTS; +Table Create Table +SETUP_OBJECTS CREATE TABLE `SETUP_OBJECTS` ( + `OBJECT_TYPE` varchar(64) DEFAULT NULL, + `OBJECT_SCHEMA` varchar(64) DEFAULT NULL, + `OBJECT_NAME` varchar(64) DEFAULT NULL, + `ENABLED` enum('YES','NO') NOT NULL, + `TIMED` enum('YES','NO') NOT NULL, + `AGGREGATED` enum('YES','NO') NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table SETUP_TIMERS; +Table Create Table +SETUP_TIMERS CREATE TABLE `SETUP_TIMERS` ( + `NAME` varchar(64) NOT NULL, + `TIMER_NAME` enum('CYCLE','NANOSECOND','MICROSECOND','MILLISECOND','TICK') NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table THREADS; +Table Create Table +THREADS CREATE TABLE `THREADS` ( + `THREAD_ID` int(11) NOT NULL, + `NAME` varchar(128) NOT NULL, + `TYPE` varchar(10) NOT NULL, + `PROCESSLIST_ID` int(11) DEFAULT NULL, + `PROCESSLIST_USER` varchar(16) DEFAULT NULL, + `PROCESSLIST_HOST` varchar(60) DEFAULT NULL, + `PROCESSLIST_DB` varchar(64) DEFAULT NULL, + `PROCESSLIST_COMMAND` varchar(16) DEFAULT NULL, + `PROCESSLIST_TIME` bigint(20) DEFAULT NULL, + `PROCESSLIST_STATE` varchar(64) DEFAULT NULL, + `PROCESSLIST_INFO` longtext, + `PARENT_THREAD_ID` int(11) DEFAULT NULL, + `ROLE` varchar(64) DEFAULT NULL, + `INSTRUMENTED` enum('YES','NO') NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 === added file 'mysql-test/suite/perfschema/r/schema_lc2.result' --- a/mysql-test/suite/perfschema/r/schema_lc2.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/schema_lc2.result 2010-05-12 14:04:32 +0000 @@ -0,0 +1,230 @@ +show databases; +Database +information_schema +mtr +mysql +performance_schema +test +use performance_schema; +show tables; +Tables_in_performance_schema +COND_INSTANCES +EVENTS_WAITS_CURRENT +EVENTS_WAITS_HISTORY +EVENTS_WAITS_HISTORY_LONG +EVENTS_WAITS_SUMMARY_BY_EVENT_NAME +EVENTS_WAITS_SUMMARY_BY_INSTANCE +EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME +FILE_INSTANCES +FILE_SUMMARY_BY_EVENT_NAME +FILE_SUMMARY_BY_INSTANCE +MUTEX_INSTANCES +PERFORMANCE_TIMERS +RWLOCK_INSTANCES +SETUP_ACTORS +SETUP_CONSUMERS +SETUP_INSTRUMENTS +SETUP_OBJECTS +SETUP_TIMERS +THREADS +show create table COND_INSTANCES; +Table Create Table +COND_INSTANCES CREATE TABLE `COND_INSTANCES` ( + `NAME` varchar(128) NOT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table EVENTS_WAITS_CURRENT; +Table Create Table +EVENTS_WAITS_CURRENT CREATE TABLE `EVENTS_WAITS_CURRENT` ( + `THREAD_ID` int(11) NOT NULL, + `EVENT_ID` bigint(20) unsigned NOT NULL, + `EVENT_NAME` varchar(128) NOT NULL, + `SOURCE` varchar(64) DEFAULT NULL, + `TIMER_START` bigint(20) unsigned DEFAULT NULL, + `TIMER_END` bigint(20) unsigned DEFAULT NULL, + `TIMER_WAIT` bigint(20) unsigned DEFAULT NULL, + `SPINS` int(10) unsigned DEFAULT NULL, + `OBJECT_SCHEMA` varchar(64) DEFAULT NULL, + `OBJECT_NAME` varchar(512) DEFAULT NULL, + `OBJECT_TYPE` varchar(64) DEFAULT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL, + `NESTING_EVENT_ID` bigint(20) unsigned DEFAULT NULL, + `OPERATION` varchar(16) NOT NULL, + `NUMBER_OF_BYTES` bigint(20) unsigned DEFAULT NULL, + `FLAGS` int(10) unsigned DEFAULT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table EVENTS_WAITS_HISTORY; +Table Create Table +EVENTS_WAITS_HISTORY CREATE TABLE `EVENTS_WAITS_HISTORY` ( + `THREAD_ID` int(11) NOT NULL, + `EVENT_ID` bigint(20) unsigned NOT NULL, + `EVENT_NAME` varchar(128) NOT NULL, + `SOURCE` varchar(64) DEFAULT NULL, + `TIMER_START` bigint(20) unsigned DEFAULT NULL, + `TIMER_END` bigint(20) unsigned DEFAULT NULL, + `TIMER_WAIT` bigint(20) unsigned DEFAULT NULL, + `SPINS` int(10) unsigned DEFAULT NULL, + `OBJECT_SCHEMA` varchar(64) DEFAULT NULL, + `OBJECT_NAME` varchar(512) DEFAULT NULL, + `OBJECT_TYPE` varchar(64) DEFAULT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL, + `NESTING_EVENT_ID` bigint(20) unsigned DEFAULT NULL, + `OPERATION` varchar(16) NOT NULL, + `NUMBER_OF_BYTES` bigint(20) unsigned DEFAULT NULL, + `FLAGS` int(10) unsigned DEFAULT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table EVENTS_WAITS_HISTORY_LONG; +Table Create Table +EVENTS_WAITS_HISTORY_LONG CREATE TABLE `EVENTS_WAITS_HISTORY_LONG` ( + `THREAD_ID` int(11) NOT NULL, + `EVENT_ID` bigint(20) unsigned NOT NULL, + `EVENT_NAME` varchar(128) NOT NULL, + `SOURCE` varchar(64) DEFAULT NULL, + `TIMER_START` bigint(20) unsigned DEFAULT NULL, + `TIMER_END` bigint(20) unsigned DEFAULT NULL, + `TIMER_WAIT` bigint(20) unsigned DEFAULT NULL, + `SPINS` int(10) unsigned DEFAULT NULL, + `OBJECT_SCHEMA` varchar(64) DEFAULT NULL, + `OBJECT_NAME` varchar(512) DEFAULT NULL, + `OBJECT_TYPE` varchar(64) DEFAULT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL, + `NESTING_EVENT_ID` bigint(20) unsigned DEFAULT NULL, + `OPERATION` varchar(16) NOT NULL, + `NUMBER_OF_BYTES` bigint(20) unsigned DEFAULT NULL, + `FLAGS` int(10) unsigned DEFAULT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table EVENTS_WAITS_SUMMARY_BY_EVENT_NAME; +Table Create Table +EVENTS_WAITS_SUMMARY_BY_EVENT_NAME CREATE TABLE `EVENTS_WAITS_SUMMARY_BY_EVENT_NAME` ( + `EVENT_NAME` varchar(128) NOT NULL, + `COUNT_STAR` bigint(20) unsigned NOT NULL, + `SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table EVENTS_WAITS_SUMMARY_BY_INSTANCE; +Table Create Table +EVENTS_WAITS_SUMMARY_BY_INSTANCE CREATE TABLE `EVENTS_WAITS_SUMMARY_BY_INSTANCE` ( + `EVENT_NAME` varchar(128) NOT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL, + `COUNT_STAR` bigint(20) unsigned NOT NULL, + `SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; +Table Create Table +EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME CREATE TABLE `EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME` ( + `THREAD_ID` int(11) NOT NULL, + `EVENT_NAME` varchar(128) NOT NULL, + `COUNT_STAR` bigint(20) unsigned NOT NULL, + `SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `MIN_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `AVG_TIMER_WAIT` bigint(20) unsigned NOT NULL, + `MAX_TIMER_WAIT` bigint(20) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table FILE_INSTANCES; +Table Create Table +FILE_INSTANCES CREATE TABLE `FILE_INSTANCES` ( + `FILE_NAME` varchar(512) NOT NULL, + `EVENT_NAME` varchar(128) NOT NULL, + `OPEN_COUNT` int(10) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table FILE_SUMMARY_BY_EVENT_NAME; +Table Create Table +FILE_SUMMARY_BY_EVENT_NAME CREATE TABLE `FILE_SUMMARY_BY_EVENT_NAME` ( + `EVENT_NAME` varchar(128) NOT NULL, + `COUNT_READ` bigint(20) unsigned NOT NULL, + `COUNT_WRITE` bigint(20) unsigned NOT NULL, + `SUM_NUMBER_OF_BYTES_READ` bigint(20) unsigned NOT NULL, + `SUM_NUMBER_OF_BYTES_WRITE` bigint(20) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table FILE_SUMMARY_BY_INSTANCE; +Table Create Table +FILE_SUMMARY_BY_INSTANCE CREATE TABLE `FILE_SUMMARY_BY_INSTANCE` ( + `FILE_NAME` varchar(512) NOT NULL, + `EVENT_NAME` varchar(128) NOT NULL, + `COUNT_READ` bigint(20) unsigned NOT NULL, + `COUNT_WRITE` bigint(20) unsigned NOT NULL, + `SUM_NUMBER_OF_BYTES_READ` bigint(20) unsigned NOT NULL, + `SUM_NUMBER_OF_BYTES_WRITE` bigint(20) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table MUTEX_INSTANCES; +Table Create Table +MUTEX_INSTANCES CREATE TABLE `MUTEX_INSTANCES` ( + `NAME` varchar(128) NOT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL, + `LOCKED_BY_THREAD_ID` int(11) DEFAULT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table PERFORMANCE_TIMERS; +Table Create Table +PERFORMANCE_TIMERS CREATE TABLE `PERFORMANCE_TIMERS` ( + `TIMER_NAME` enum('CYCLE','NANOSECOND','MICROSECOND','MILLISECOND','TICK') NOT NULL, + `TIMER_FREQUENCY` bigint(20) DEFAULT NULL, + `TIMER_RESOLUTION` bigint(20) DEFAULT NULL, + `TIMER_OVERHEAD` bigint(20) DEFAULT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table RWLOCK_INSTANCES; +Table Create Table +RWLOCK_INSTANCES CREATE TABLE `RWLOCK_INSTANCES` ( + `NAME` varchar(128) NOT NULL, + `OBJECT_INSTANCE_BEGIN` bigint(20) NOT NULL, + `WRITE_LOCKED_BY_THREAD_ID` int(11) DEFAULT NULL, + `READ_LOCKED_BY_COUNT` int(10) unsigned NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table SETUP_ACTORS; +Table Create Table +SETUP_ACTORS CREATE TABLE `SETUP_ACTORS` ( + `HOST` char(60) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '%', + `USER` char(16) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '%', + `ROLE` char(16) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '%' +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table SETUP_CONSUMERS; +Table Create Table +SETUP_CONSUMERS CREATE TABLE `SETUP_CONSUMERS` ( + `NAME` varchar(64) NOT NULL, + `ENABLED` enum('YES','NO') NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table SETUP_INSTRUMENTS; +Table Create Table +SETUP_INSTRUMENTS CREATE TABLE `SETUP_INSTRUMENTS` ( + `NAME` varchar(128) NOT NULL, + `ENABLED` enum('YES','NO') NOT NULL, + `TIMED` enum('YES','NO') NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table SETUP_OBJECTS; +Table Create Table +SETUP_OBJECTS CREATE TABLE `SETUP_OBJECTS` ( + `OBJECT_TYPE` varchar(64) DEFAULT NULL, + `OBJECT_SCHEMA` varchar(64) DEFAULT NULL, + `OBJECT_NAME` varchar(64) DEFAULT NULL, + `ENABLED` enum('YES','NO') NOT NULL, + `TIMED` enum('YES','NO') NOT NULL, + `AGGREGATED` enum('YES','NO') NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table SETUP_TIMERS; +Table Create Table +SETUP_TIMERS CREATE TABLE `SETUP_TIMERS` ( + `NAME` varchar(64) NOT NULL, + `TIMER_NAME` enum('CYCLE','NANOSECOND','MICROSECOND','MILLISECOND','TICK') NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 +show create table THREADS; +Table Create Table +THREADS CREATE TABLE `THREADS` ( + `THREAD_ID` int(11) NOT NULL, + `NAME` varchar(128) NOT NULL, + `TYPE` varchar(10) NOT NULL, + `PROCESSLIST_ID` int(11) DEFAULT NULL, + `PROCESSLIST_USER` varchar(16) DEFAULT NULL, + `PROCESSLIST_HOST` varchar(60) DEFAULT NULL, + `PROCESSLIST_DB` varchar(64) DEFAULT NULL, + `PROCESSLIST_COMMAND` varchar(16) DEFAULT NULL, + `PROCESSLIST_TIME` bigint(20) DEFAULT NULL, + `PROCESSLIST_STATE` varchar(64) DEFAULT NULL, + `PROCESSLIST_INFO` longtext, + `PARENT_THREAD_ID` int(11) DEFAULT NULL, + `ROLE` varchar(64) DEFAULT NULL, + `INSTRUMENTED` enum('YES','NO') NOT NULL +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8 === modified file 'mysql-test/suite/perfschema/r/start_server_no_cond_class.result' --- a/mysql-test/suite/perfschema/r/start_server_no_cond_class.result 2010-05-11 10:36:37 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_cond_class.result 2010-05-12 14:04:32 +0000 @@ -30,6 +30,7 @@ select * from performance_schema.FILE_SU select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.RWLOCK_INSTANCES; +select * from performance_schema.SETUP_ACTORS; select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_OBJECTS; === modified file 'mysql-test/suite/perfschema/r/start_server_no_cond_inst.result' --- a/mysql-test/suite/perfschema/r/start_server_no_cond_inst.result 2010-05-11 10:36:37 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_cond_inst.result 2010-05-12 14:04:32 +0000 @@ -30,6 +30,7 @@ select * from performance_schema.FILE_SU select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.RWLOCK_INSTANCES; +select * from performance_schema.SETUP_ACTORS; select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_OBJECTS; === modified file 'mysql-test/suite/perfschema/r/start_server_no_file_class.result' --- a/mysql-test/suite/perfschema/r/start_server_no_file_class.result 2010-05-11 10:36:37 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_file_class.result 2010-05-12 14:04:32 +0000 @@ -30,6 +30,7 @@ select * from performance_schema.FILE_SU select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.RWLOCK_INSTANCES; +select * from performance_schema.SETUP_ACTORS; select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_OBJECTS; === modified file 'mysql-test/suite/perfschema/r/start_server_no_file_inst.result' --- a/mysql-test/suite/perfschema/r/start_server_no_file_inst.result 2010-05-11 10:36:37 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_file_inst.result 2010-05-12 14:04:32 +0000 @@ -30,6 +30,7 @@ select * from performance_schema.FILE_SU select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.RWLOCK_INSTANCES; +select * from performance_schema.SETUP_ACTORS; select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_OBJECTS; === modified file 'mysql-test/suite/perfschema/r/start_server_no_mutex_class.result' --- a/mysql-test/suite/perfschema/r/start_server_no_mutex_class.result 2010-05-11 10:36:37 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_mutex_class.result 2010-05-12 14:04:32 +0000 @@ -30,6 +30,7 @@ select * from performance_schema.FILE_SU select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.RWLOCK_INSTANCES; +select * from performance_schema.SETUP_ACTORS; select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_OBJECTS; === modified file 'mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result' --- a/mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result 2010-05-11 10:36:37 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result 2010-05-12 14:04:32 +0000 @@ -30,6 +30,7 @@ select * from performance_schema.FILE_SU select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.RWLOCK_INSTANCES; +select * from performance_schema.SETUP_ACTORS; select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_OBJECTS; === modified file 'mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result' --- a/mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result 2010-05-11 10:36:37 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result 2010-05-12 14:04:32 +0000 @@ -30,6 +30,7 @@ select * from performance_schema.FILE_SU select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.RWLOCK_INSTANCES; +select * from performance_schema.SETUP_ACTORS; select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_OBJECTS; === modified file 'mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result' --- a/mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result 2010-05-11 10:36:37 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result 2010-05-12 14:04:32 +0000 @@ -30,6 +30,7 @@ select * from performance_schema.FILE_SU select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.RWLOCK_INSTANCES; +select * from performance_schema.SETUP_ACTORS; select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_OBJECTS; === modified file 'mysql-test/suite/perfschema/r/start_server_no_thread_class.result' --- a/mysql-test/suite/perfschema/r/start_server_no_thread_class.result 2010-05-11 10:36:37 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_thread_class.result 2010-05-12 14:04:32 +0000 @@ -30,6 +30,7 @@ select * from performance_schema.FILE_SU select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.RWLOCK_INSTANCES; +select * from performance_schema.SETUP_ACTORS; select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_OBJECTS; === modified file 'mysql-test/suite/perfschema/r/start_server_no_thread_inst.result' --- a/mysql-test/suite/perfschema/r/start_server_no_thread_inst.result 2010-05-11 10:36:37 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_thread_inst.result 2010-05-12 14:04:32 +0000 @@ -30,6 +30,7 @@ select * from performance_schema.FILE_SU select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.RWLOCK_INSTANCES; +select * from performance_schema.SETUP_ACTORS; select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_OBJECTS; === modified file 'mysql-test/suite/perfschema/r/start_server_off.result' --- a/mysql-test/suite/perfschema/r/start_server_off.result 2010-05-11 10:36:37 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_off.result 2010-05-12 14:04:32 +0000 @@ -30,6 +30,7 @@ select * from performance_schema.FILE_SU select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.RWLOCK_INSTANCES; +select * from performance_schema.SETUP_ACTORS; select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_OBJECTS; === modified file 'mysql-test/suite/perfschema/r/start_server_on.result' --- a/mysql-test/suite/perfschema/r/start_server_on.result 2010-05-11 10:36:37 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_on.result 2010-05-12 14:04:32 +0000 @@ -30,6 +30,7 @@ select * from performance_schema.FILE_SU select * from performance_schema.MUTEX_INSTANCES; select * from performance_schema.PERFORMANCE_TIMERS; select * from performance_schema.RWLOCK_INSTANCES; +select * from performance_schema.SETUP_ACTORS; select * from performance_schema.SETUP_CONSUMERS; select * from performance_schema.SETUP_INSTRUMENTS; select * from performance_schema.SETUP_OBJECTS; === added file 'mysql-test/suite/perfschema/t/ddl_setup_actors.test' --- a/mysql-test/suite/perfschema/t/ddl_setup_actors.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/ddl_setup_actors.test 2010-05-12 14:04:32 +0000 @@ -0,0 +1,45 @@ +# Copyright (c) 2010, 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 as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc + +--replace_result '\'setup_actors' '\'SETUP_ACTORS' +-- error ER_DBACCESS_DENIED_ERROR +alter table performance_schema.SETUP_ACTORS add column foo integer; + +--disable_warnings +drop table if exists test.SETUP_ACTORS; +--enable_warnings + +create table test.SETUP_ACTORS as + select * from performance_schema.SETUP_ACTORS; + +truncate table performance_schema.SETUP_ACTORS; + +select count(*) from performance_schema.SETUP_ACTORS; + +insert into performance_schema.SETUP_ACTORS + select * from test.SETUP_ACTORS; +drop table test.SETUP_ACTORS; + +-- error ER_DBACCESS_DENIED_ERROR +ALTER TABLE performance_schema.SETUP_ACTORS ADD INDEX test_index(HOST); + +-- error ER_DBACCESS_DENIED_ERROR +CREATE UNIQUE INDEX test_index ON performance_schema.SETUP_ACTORS(HOST); + === added file 'mysql-test/suite/perfschema/t/dml_setup_actors.test' --- a/mysql-test/suite/perfschema/t/dml_setup_actors.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/dml_setup_actors.test 2010-05-12 14:04:32 +0000 @@ -0,0 +1,87 @@ +# Copyright (c) 2010, 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 as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc + +--disable_warnings +drop table if exists test.SETUP_ACTORS; +--enable_warnings + +# Save the setup +create table test.SETUP_ACTORS as + select * from performance_schema.SETUP_ACTORS; +truncate table performance_schema.SETUP_ACTORS; + +select * from performance_schema.SETUP_ACTORS; + +select * from performance_schema.SETUP_ACTORS + where user = '%'; + +insert into performance_schema.SETUP_ACTORS + set user='Joe', host='localhost'; + +insert into performance_schema.SETUP_ACTORS + set user='Joe', host='%'; + +insert into performance_schema.SETUP_ACTORS + set user='%', host='server1'; + +insert into performance_schema.SETUP_ACTORS + set user='%', host='%'; + +select * from performance_schema.SETUP_ACTORS + order by USER, HOST; + +--error ER_WRONG_PERFSCHEMA_USAGE +update performance_schema.SETUP_ACTORS + set user='ILLEGAL'; + +--error ER_WRONG_PERFSCHEMA_USAGE +update performance_schema.SETUP_ACTORS + set host='ILLEGAL'; + +--error ER_WRONG_PERFSCHEMA_USAGE +update performance_schema.SETUP_ACTORS + set role='ILLEGAL'; + +select * from performance_schema.SETUP_ACTORS + order by USER, HOST; + +delete from performance_schema.SETUP_ACTORS + where user = 'Joe' and host = 'localhost'; + +select * from performance_schema.SETUP_ACTORS + order by USER, HOST; + +delete from performance_schema.SETUP_ACTORS; + +select * from performance_schema.SETUP_ACTORS + order by USER, HOST; + +LOCK TABLES performance_schema.SETUP_ACTORS READ; +UNLOCK TABLES; + +LOCK TABLES performance_schema.SETUP_ACTORS WRITE; +UNLOCK TABLES; + +# Restore the setup +truncate table performance_schema.SETUP_ACTORS; +insert into performance_schema.SETUP_ACTORS + select * from test.SETUP_ACTORS; +drop table test.SETUP_ACTORS; + === removed file 'mysql-test/suite/perfschema/t/schema.test' --- a/mysql-test/suite/perfschema/t/schema.test 2010-05-11 10:36:37 +0000 +++ b/mysql-test/suite/perfschema/t/schema.test 1970-01-01 00:00:00 +0000 @@ -1,46 +0,0 @@ -# Copyright (c) 2008, 2010, 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 as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -# Tests for PERFORMANCE_SCHEMA - ---source include/not_embedded.inc ---source include/have_perfschema.inc ---source include/have_lowercase0.inc - -show databases; - -use performance_schema; - -show tables; - -show create table COND_INSTANCES; -show create table EVENTS_WAITS_CURRENT; -show create table EVENTS_WAITS_HISTORY; -show create table EVENTS_WAITS_HISTORY_LONG; -show create table EVENTS_WAITS_SUMMARY_BY_EVENT_NAME; -show create table EVENTS_WAITS_SUMMARY_BY_INSTANCE; -show create table EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; -show create table FILE_INSTANCES; -show create table FILE_SUMMARY_BY_EVENT_NAME; -show create table FILE_SUMMARY_BY_INSTANCE; -show create table MUTEX_INSTANCES; -show create table PERFORMANCE_TIMERS; -show create table RWLOCK_INSTANCES; -show create table SETUP_CONSUMERS; -show create table SETUP_INSTRUMENTS; -show create table SETUP_OBJECTS; -show create table SETUP_TIMERS; -show create table THREADS; - === added file 'mysql-test/suite/perfschema/t/schema_lc0.test' --- a/mysql-test/suite/perfschema/t/schema_lc0.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/schema_lc0.test 2010-05-12 14:04:32 +0000 @@ -0,0 +1,22 @@ +# Copyright (c) 2008, 2010, 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 as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc +--source include/have_lowercase0.inc +--source ../include/schema.inc + === added file 'mysql-test/suite/perfschema/t/schema_lc1.test' --- a/mysql-test/suite/perfschema/t/schema_lc1.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/schema_lc1.test 2010-05-12 14:04:32 +0000 @@ -0,0 +1,22 @@ +# Copyright (c) 2008, 2010, 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 as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc +--source include/have_lowercase1.inc +--source ../include/schema.inc + === added file 'mysql-test/suite/perfschema/t/schema_lc2.test' --- a/mysql-test/suite/perfschema/t/schema_lc2.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/schema_lc2.test 2010-05-12 14:04:32 +0000 @@ -0,0 +1,22 @@ +# Copyright (c) 2008, 2010, 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 as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc +--source include/have_lowercase2.inc +--source ../include/schema.inc + === modified file 'scripts/mysql_system_tables.sql' --- a/scripts/mysql_system_tables.sql 2010-05-11 10:36:37 +0000 +++ b/scripts/mysql_system_tables.sql 2010-05-12 14:04:32 +0000 @@ -413,6 +413,23 @@ EXECUTE stmt; DROP PREPARE stmt; -- +-- TABLE SETUP_ACTORS +-- + +SET @l1="CREATE TABLE performance_schema.SETUP_ACTORS("; +SET @l2="HOST CHAR(60) collate utf8_bin default '%' not null,"; +SET @l3="USER CHAR(16) collate utf8_bin default '%' not null,"; +SET @l4="ROLE CHAR(16) collate utf8_bin default '%' not null"; +SET @l5=")ENGINE=PERFORMANCE_SCHEMA;"; + +SET @cmd=concat(@l1,@l2,@l3,@l4,@l5); + +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- -- TABLE SETUP_CONSUMERS -- === modified file 'storage/perfschema/CMakeLists.txt' --- a/storage/perfschema/CMakeLists.txt 2010-05-11 10:36:37 +0000 +++ b/storage/perfschema/CMakeLists.txt 2010-05-12 14:04:32 +0000 @@ -44,6 +44,7 @@ SET(PERFSCHEMA_SOURCES ha_perfschema.h table_file_instances.h table_file_summary.h table_performance_timers.h + table_setup_actors.h table_setup_consumers.h table_setup_instruments.h table_setup_objects.h @@ -68,6 +69,7 @@ SET(PERFSCHEMA_SOURCES ha_perfschema.h table_file_instances.cc table_file_summary.cc table_performance_timers.cc + table_setup_actors.cc table_setup_consumers.cc table_setup_instruments.cc table_setup_objects.cc === modified file 'storage/perfschema/Makefile.am' --- a/storage/perfschema/Makefile.am 2010-05-11 10:36:37 +0000 +++ b/storage/perfschema/Makefile.am 2010-05-12 14:04:32 +0000 @@ -37,7 +37,7 @@ noinst_HEADERS = ha_perfschema.h pfs_eng pfs_global.h pfs_instr_class.h pfs_instr.h \ pfs_column_types.h pfs_column_values.h \ table_setup_instruments.h table_performance_timers.h \ - table_setup_timers.h \ + table_setup_actors.h table_setup_timers.h \ table_setup_consumers.h table_events_waits.h \ pfs_events_waits.h pfs_timer.h table_threads.h table_sync_instances.h \ @@ -51,7 +51,7 @@ PSE_SOURCES = ha_perfschema.cc pfs_engin pfs_global.cc pfs_instr_class.cc pfs_instr.cc \ pfs_column_values.cc \ table_setup_instruments.cc table_performance_timers.cc \ - table_setup_timers.cc \ + table_setup_actors.cc table_setup_timers.cc \ table_setup_consumers.cc table_events_waits.cc \ pfs_events_waits.cc pfs_timer.cc table_threads.cc \ table_sync_instances.cc \ === modified file 'storage/perfschema/pfs_engine_table.cc' --- a/storage/perfschema/pfs_engine_table.cc 2010-05-11 10:36:37 +0000 +++ b/storage/perfschema/pfs_engine_table.cc 2010-05-12 14:04:32 +0000 @@ -22,6 +22,7 @@ #include "pfs_engine_table.h" #include "table_events_waits.h" +#include "table_setup_actors.h" #include "table_setup_consumers.h" #include "table_setup_instruments.h" #include "table_setup_objects.h" @@ -36,6 +37,8 @@ /* For show status */ #include "pfs_column_values.h" #include "pfs_instr.h" +#include "pfs_setup_actor.h" +#include "pfs_global.h" #include "sql_base.h" // close_thread_tables #include "lock.h" // MYSQL_LOCK_IGNORE_TIMEOUT @@ -50,6 +53,7 @@ static PFS_engine_table_share *all_share &table_events_waits_current::m_share, &table_events_waits_history::m_share, &table_events_waits_history_long::m_share, + &table_setup_actors::m_share, &table_setup_consumers::m_share, &table_setup_instruments::m_share, &table_setup_objects::m_share, @@ -79,7 +83,7 @@ void PFS_engine_table_share::check_all_t DBUG_EXECUTE_IF("tampered_perfschema_table1", { /* Hack SETUP_INSTRUMENT, incompatible change. */ - all_shares[4]->m_field_def->count++; + all_shares[5]->m_field_def->count++; }); for (current= &all_shares[0]; (*current) != NULL; current++) @@ -804,6 +808,7 @@ bool pfs_show_status(handlerton *hton, T case 40: name= "(PFS_FILE_HANDLE).MEMORY"; size= file_handle_max * sizeof(PFS_file*); + total_memory+= size; break; case 41: name= "EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME.ROW_SIZE"; @@ -818,11 +823,50 @@ bool pfs_show_status(handlerton *hton, T size= thread_max * instr_class_per_thread * sizeof(PFS_single_stat_chain); total_memory+= size; break; + case 44: + name= "SETUP_ACTORS.ROW_SIZE"; + size= sizeof(PFS_setup_actor); + break; + case 45: + name= "SETUP_ACTORS.ROW_COUNT"; + size= setup_actor_max; + break; + case 46: + name= "SETUP_ACTORS.MEMORY"; + size= setup_actor_max * sizeof(PFS_setup_actor); + total_memory+= size; + break; + case 47: + name= "(PFS_TABLE_SHARE).ROW_SIZE"; + size= sizeof(PFS_table_share); + break; + case 48: + name= "(PFS_TABLE_SHARE).ROW_COUNT"; + size= table_share_max; + break; + case 49: + name= "(PFS_TABLE_SHARE).MEMORY"; + size= table_share_max * sizeof(PFS_table_share); + total_memory+= size; + break; + case 50: + name= "(PFS_TABLE).ROW_SIZE"; + size= sizeof(PFS_table); + break; + case 51: + name= "(PFS_TABLE).ROW_COUNT"; + size= table_max; + break; + case 52: + name= "(PFS_TABLE).MEMORY"; + size= table_max * sizeof(PFS_table); + total_memory+= size; + break; /* This case must be last, for aggregation in total_memory. */ - case 44: + case 53: name= "PERFORMANCE_SCHEMA.MEMORY"; size= total_memory; break; @@ -845,4 +889,3 @@ end: /** @} */ - === added file 'storage/perfschema/table_setup_actors.cc' --- a/storage/perfschema/table_setup_actors.cc 1970-01-01 00:00:00 +0000 +++ b/storage/perfschema/table_setup_actors.cc 2010-05-12 14:04:32 +0000 @@ -0,0 +1,292 @@ +/* Copyright (c) 2010, 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 as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +/** + @file storage/perfschema/table_setup_actors.cc + Table SETUP_ACTORS (implementation). +*/ + +#include "my_global.h" +#include "my_pthread.h" +#include "pfs_instr_class.h" +#include "pfs_column_types.h" +#include "pfs_column_values.h" +#include "pfs_setup_actor.h" +#include "table_setup_actors.h" +#include "pfs_global.h" + +THR_LOCK table_setup_actors::m_table_lock; + +static const TABLE_FIELD_TYPE field_types[]= +{ + { + { C_STRING_WITH_LEN("HOST") }, + { C_STRING_WITH_LEN("char(60)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("USER") }, + { C_STRING_WITH_LEN("char(16)") }, + { NULL, 0} + }, + { + { C_STRING_WITH_LEN("ROLE") }, + { C_STRING_WITH_LEN("char(16)") }, + { NULL, 0} + } +}; + +TABLE_FIELD_DEF +table_setup_actors::m_field_def= +{ 3, field_types }; + +PFS_engine_table_share +table_setup_actors::m_share= +{ + { C_STRING_WITH_LEN("SETUP_ACTORS") }, + &pfs_editable_acl, + table_setup_actors::create, + table_setup_actors::write_row, + table_setup_actors::delete_all_rows, + table_setup_actors::get_row_count, + 1000, /* records */ + sizeof(PFS_simple_index), + &m_table_lock, + &m_field_def, + false /* checked */ +}; + +PFS_engine_table* table_setup_actors::create() +{ + return new table_setup_actors(); +} + +int table_setup_actors::write_row(TABLE *table, unsigned char *buf, + Field **fields) +{ + Field *f; + String user_data("%", 1, &my_charset_utf8_bin); + String host_data("%", 1, &my_charset_utf8_bin); + String role_data("%", 1, &my_charset_utf8_bin); + String *user= &user_data; + String *host= &host_data; + String *role= &role_data; + + for (; (f= *fields) ; fields++) + { + if (bitmap_is_set(table->write_set, f->field_index)) + { + switch(f->field_index) + { + case 0: /* HOST */ + host= get_field_char_utf8(f, &host_data); + break; + case 1: /* USER */ + user= get_field_char_utf8(f, &user_data); + break; + case 2: /* ROLE */ + role= get_field_char_utf8(f, &role_data); + break; + default: + DBUG_ASSERT(false); + } + } + } + + return insert_setup_actor(user, host, role); +} + +int table_setup_actors::delete_all_rows(void) +{ + return reset_setup_actor(); +} + +ha_rows table_setup_actors::get_row_count(void) +{ + return setup_actor_count(); +} + +table_setup_actors::table_setup_actors() + : PFS_engine_table(&m_share, &m_pos), + m_row_exists(false), m_pos(0), m_next_pos(0) +{} + +void table_setup_actors::reset_position(void) +{ + m_pos.m_index= 0; + m_next_pos.m_index= 0; +} + +int table_setup_actors::rnd_next() +{ + PFS_setup_actor *pfs; + + for (m_pos.set_at(&m_next_pos); + m_pos.m_index < setup_actor_max; + m_pos.next()) + { + pfs= &setup_actor_array[m_pos.m_index]; + if (pfs->m_lock.is_populated()) + { + make_row(pfs); + m_next_pos.set_after(&m_pos); + return 0; + } + } + + return HA_ERR_END_OF_FILE; +} + +int table_setup_actors::rnd_pos(const void *pos) +{ + PFS_setup_actor *pfs; + + set_position(pos); + + DBUG_ASSERT(m_pos.m_index < setup_actor_max); + pfs= &setup_actor_array[m_pos.m_index]; + if (pfs->m_lock.is_populated()) + { + make_row(pfs); + return 0; + } + + return HA_ERR_RECORD_DELETED; +} + +void table_setup_actors::make_row(PFS_setup_actor *pfs) +{ + pfs_lock lock; + + m_row_exists= false; + + pfs->m_lock.begin_optimistic_lock(&lock); + + memcpy(m_row.m_hostname, pfs->m_hostname, pfs->m_hostname_length); + m_row.m_hostname_length= pfs->m_hostname_length; + memcpy(m_row.m_username, pfs->m_username, pfs->m_username_length); + m_row.m_username_length= pfs->m_username_length; + memcpy(m_row.m_rolename, pfs->m_rolename, pfs->m_rolename_length); + m_row.m_rolename_length= pfs->m_rolename_length; + + if (pfs->m_lock.end_optimistic_lock(&lock)) + m_row_exists= true; +} + +int table_setup_actors::read_row_values(TABLE *table, + unsigned char *buf, + Field **fields, + bool read_all) +{ + Field *f; + + if (unlikely(! m_row_exists)) + return HA_ERR_RECORD_DELETED; + + /* Set the null bits */ + DBUG_ASSERT(table->s->null_bytes == 1); + + for (; (f= *fields) ; fields++) + { + if (read_all || bitmap_is_set(table->read_set, f->field_index)) + { + switch(f->field_index) + { + case 0: /* HOST */ + set_field_char_utf8(f, m_row.m_hostname, m_row.m_hostname_length); + break; + case 1: /* USER */ + set_field_char_utf8(f, m_row.m_username, m_row.m_username_length); + break; + case 2: /* ROLE */ + set_field_char_utf8(f, m_row.m_rolename, m_row.m_rolename_length); + break; + default: + DBUG_ASSERT(false); + } + } + } + + return 0; +} + +int table_setup_actors::update_row_values(TABLE *table, + const unsigned char *old_buf, + unsigned char *new_buf, + Field **fields) +{ + Field *f; + + for (; (f= *fields) ; fields++) + { + if (bitmap_is_set(table->write_set, f->field_index)) + { + switch(f->field_index) + { + case 0: /* HOST */ + case 1: /* USER */ + case 2: /* ROLE */ + my_error(ER_WRONG_PERFSCHEMA_USAGE, MYF(0)); + return HA_ERR_WRONG_COMMAND; + break; + default: + DBUG_ASSERT(false); + } + } + } + + return 0; +} + +int table_setup_actors::delete_row_values(TABLE *table, + const unsigned char *buf, + Field **fields) +{ + Field *f; + String user_data("", 0, &my_charset_utf8_bin); + String host_data("", 0, &my_charset_utf8_bin); + String role_data("", 0, &my_charset_utf8_bin); + String *user= NULL; + String *host= NULL; + String *role= NULL; + + for (; (f= *fields) ; fields++) + { + if (bitmap_is_set(table->read_set, f->field_index)) + { + switch(f->field_index) + { + case 0: /* HOST */ + host= get_field_char_utf8(f, &host_data); + break; + case 1: /* USER */ + user= get_field_char_utf8(f, &user_data); + break; + case 2: /* ROLE */ + role= get_field_char_utf8(f, &role_data); + break; + default: + DBUG_ASSERT(false); + } + } + } + + DBUG_ASSERT(user != NULL); + DBUG_ASSERT(host != NULL); + DBUG_ASSERT(role != NULL); + + return delete_setup_actor(user, host, role); +} + === added file 'storage/perfschema/table_setup_actors.h' --- a/storage/perfschema/table_setup_actors.h 1970-01-01 00:00:00 +0000 +++ b/storage/perfschema/table_setup_actors.h 2010-05-12 14:04:32 +0000 @@ -0,0 +1,106 @@ +/* Copyright (c) 2008, 2010, 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 as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + +#ifndef TABLE_SETUP_ACTORS_H +#define TABLE_SETUP_ACTORS_H + +/** + @file storage/perfschema/table_setup_actors.h + Table SETUP_ACTORS (declarations). +*/ + +#include "pfs_engine_table.h" + +struct PFS_setup_actor; + +/** + @addtogroup Performance_schema_tables + @{ +*/ + +/** A row of PERFORMANCE_SCHEMA.SETUP_ACTORS. */ +struct row_setup_actors +{ + /** Column HOST. */ + char m_hostname[HOSTNAME_LENGTH]; + /** Length in bytes of @c m_hostname. */ + uint m_hostname_length; + /** Column USER. */ + char m_username[USERNAME_LENGTH]; + /** Length in bytes of @c m_username. */ + uint m_username_length; + /** Column ROLE. */ + char m_rolename[16]; + /** Length in bytes of @c m_rolename. */ + uint m_rolename_length; +}; + +/** Table PERFORMANCE_SCHEMA.SETUP_ACTORS. */ +class table_setup_actors : public PFS_engine_table +{ +public: + /** Table share. */ + static PFS_engine_table_share m_share; + /** Table builder. */ + static PFS_engine_table* create(); + static int write_row(TABLE *table, unsigned char *buf, Field **fields); + static int delete_all_rows(); + static ha_rows get_row_count(); + + virtual int rnd_next(); + virtual int rnd_pos(const void *pos); + virtual void reset_position(void); + +protected: + virtual int read_row_values(TABLE *table, + unsigned char *buf, + Field **fields, + bool read_all); + + virtual int update_row_values(TABLE *table, + const unsigned char *old_buf, + unsigned char *new_buf, + Field **fields); + + virtual int delete_row_values(TABLE *table, + const unsigned char *buf, + Field **fields); + + table_setup_actors(); + +public: + ~table_setup_actors() + {} + +private: + void make_row(PFS_setup_actor *actor); + + /** Table share lock. */ + static THR_LOCK m_table_lock; + /** Fields definition. */ + static TABLE_FIELD_DEF m_field_def; + + /** Current row. */ + row_setup_actors m_row; + /** True is the current row exists. */ + bool m_row_exists; + /** Current position. */ + PFS_simple_index m_pos; + /** Next position. */ + PFS_simple_index m_next_pos; +}; + +/** @} */ +#endif --Boundary_(ID_iqenl64MNoJwExGnq7poVQ) MIME-version: 1.0 Content-type: text/bzr-bundle; CHARSET=US-ASCII; name="bzr/marc.alff@stripped" Content-transfer-encoding: 7BIT Content-disposition: inline; filename="bzr/marc.alff@stripped" # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: marc.alff@stripped # target_branch: file:///Users/malff/BZR_TREE/mysql-next-mr-wl4674/ # testament_sha1: f4a61f7ba1c077116cfce9c0b35219001f662324 # timestamp: 2010-05-12 08:05:02 -0600 # source_branch: file:///Users/malff/BZR_TREE/mysql-next-mr/ # base_revision_id: marc.alff@stripped\ # wi6m5b5kvcy3dnrp # # Begin bundle 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 --Boundary_(ID_iqenl64MNoJwExGnq7poVQ)--