Patch reviewed, code tested. Ok to push.
On 7/20/10 7:27 PM, Marc Alff wrote:
> #At file:///home/malff/BZR_TREE/mysql-trunk-bugfixing-55416/ based on
> revid:jonathan.perkin@stripped
>
> 3133 Marc Alff 2010-07-20
> Bug#55416 Renaming of performance_schema tables in mysql-trunk for 5.5
>
> Removed table SETUP_OBJECTS.
>
> Renamed table PROCESSLIST to THREADS.
>
> Renamed table EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
> to EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME.
>
> Adjusted Makefiles, code and tests accordingly.
>
> removed:
> mysql-test/suite/perfschema/r/ddl_ews_by_event_name.result
> mysql-test/suite/perfschema/r/ddl_processlist.result
> mysql-test/suite/perfschema/r/ddl_setup_objects.result
> mysql-test/suite/perfschema/r/dml_ews_by_event_name.result
> mysql-test/suite/perfschema/r/dml_processlist.result
> mysql-test/suite/perfschema/r/dml_setup_objects.result
> mysql-test/suite/perfschema/t/ddl_ews_by_event_name.test
> mysql-test/suite/perfschema/t/ddl_processlist.test
> mysql-test/suite/perfschema/t/ddl_setup_objects.test
> mysql-test/suite/perfschema/t/dml_ews_by_event_name.test
> mysql-test/suite/perfschema/t/dml_processlist.test
> mysql-test/suite/perfschema/t/dml_setup_objects.test
> storage/perfschema/table_processlist.cc
> storage/perfschema/table_processlist.h
> storage/perfschema/table_setup_objects.cc
> storage/perfschema/table_setup_objects.h
> added:
> mysql-test/suite/perfschema/r/ddl_ews_global_by_event_name.result
> mysql-test/suite/perfschema/r/ddl_threads.result
> mysql-test/suite/perfschema/r/dml_ews_global_by_event_name.result
> mysql-test/suite/perfschema/r/dml_threads.result
> mysql-test/suite/perfschema/t/ddl_ews_global_by_event_name.test
> mysql-test/suite/perfschema/t/ddl_threads.test
> mysql-test/suite/perfschema/t/dml_ews_global_by_event_name.test
> mysql-test/suite/perfschema/t/dml_threads.test
> storage/perfschema/table_ews_global_by_event_name.cc
> storage/perfschema/table_ews_global_by_event_name.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/aggregate.result
> 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/pfs_upgrade.result
> mysql-test/suite/perfschema/r/schema.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/aggregate.test
> 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
> mysql-test/suite/perfschema/t/thread_cache.test
> scripts/mysql_system_tables.sql
> storage/perfschema/CMakeLists.txt
> storage/perfschema/Makefile.am
> storage/perfschema/pfs_engine_table.cc
> storage/perfschema/table_events_waits_summary.cc
> storage/perfschema/table_events_waits_summary.h
> === modified file 'mysql-test/suite/perfschema/include/setup_helper.inc'
> --- a/mysql-test/suite/perfschema/include/setup_helper.inc 2010-01-12 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/include/setup_helper.inc 2010-07-21 00:27:05 +0000
> @@ -25,17 +25,17 @@ update performance_schema.SETUP_CONSUMER
>
> connect (con1, localhost, root, , );
>
> -let $con1_THREAD_ID=`select thread_id from performance_schema.PROCESSLIST
> +let $con1_THREAD_ID=`select thread_id from performance_schema.THREADS
> where ID in (select connection_id())`;
>
> connect (con2, localhost, root, , );
>
> -let $con2_THREAD_ID=`select thread_id from performance_schema.PROCESSLIST
> +let $con2_THREAD_ID=`select thread_id from performance_schema.THREADS
> where ID in (select connection_id())`;
>
> connect (con3, localhost, root, , );
>
> -let $con3_THREAD_ID=`select thread_id from performance_schema.PROCESSLIST
> +let $con3_THREAD_ID=`select thread_id from performance_schema.THREADS
> where ID in (select connection_id())`;
>
> connection default;
> @@ -49,6 +49,6 @@ prepare stmt_dump_events from
> where thread_id=? order by event_id;";
>
> prepare stmt_dump_thread from
> - "select name from performance_schema.PROCESSLIST where thread_id=? ;";
> + "select name from performance_schema.THREADS where thread_id=? ;";
> --enable_query_log
>
>
> === modified file 'mysql-test/suite/perfschema/include/start_server_common.inc'
> --- a/mysql-test/suite/perfschema/include/start_server_common.inc 2010-01-12 01:47:27
> +0000
> +++ b/mysql-test/suite/perfschema/include/start_server_common.inc 2010-07-21 00:27:05
> +0000
> @@ -29,20 +29,19 @@ select * from performance_schema.COND_IN
> select * from performance_schema.EVENTS_WAITS_CURRENT;
> select * from performance_schema.EVENTS_WAITS_HISTORY;
> select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
> -select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
> +select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> select * from performance_schema.FILE_INSTANCES;
> select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
> select * from performance_schema.MUTEX_INSTANCES;
> select * from performance_schema.PERFORMANCE_TIMERS;
> -select * from performance_schema.PROCESSLIST;
> select * from performance_schema.RWLOCK_INSTANCES;
> select * from performance_schema.SETUP_CONSUMERS;
> select * from performance_schema.SETUP_INSTRUMENTS;
> -select * from performance_schema.SETUP_OBJECTS;
> select * from performance_schema.SETUP_TIMERS;
> +select * from performance_schema.THREADS;
> --enable_result_log
>
> # This has a stable output, printing the result:
>
> === modified file 'mysql-test/suite/perfschema/r/aggregate.result'
> --- a/mysql-test/suite/perfschema/r/aggregate.result 2010-01-27 15:26:05 +0000
> +++ b/mysql-test/suite/perfschema/r/aggregate.result 2010-07-21 00:27:05 +0000
> @@ -4,7 +4,7 @@ update performance_schema.SETUP_INSTRUME
> update performance_schema.SETUP_CONSUMERS set enabled = 'NO';
> truncate table performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
> truncate table performance_schema.FILE_SUMMARY_BY_INSTANCE;
> -truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> +truncate table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
> truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
> update performance_schema.SETUP_CONSUMERS set enabled = 'YES';
> @@ -49,14 +49,14 @@ OR @dump_all;
> EVENT_NAME SUM_NUMBER_OF_BYTES_WRITE SUM(i.SUM_NUMBER_OF_BYTES_WRITE)
> "Verifying waits aggregate consistency (instance)"
> SELECT EVENT_NAME, e.SUM_TIMER_WAIT, SUM(i.SUM_TIMER_WAIT)
> -FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
> +FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
> JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE AS i USING (EVENT_NAME)
> GROUP BY EVENT_NAME
> HAVING (e.SUM_TIMER_WAIT< SUM(i.SUM_TIMER_WAIT))
> OR @dump_all;
> EVENT_NAME SUM_TIMER_WAIT SUM(i.SUM_TIMER_WAIT)
> SELECT EVENT_NAME, e.MIN_TIMER_WAIT, MIN(i.MIN_TIMER_WAIT)
> -FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
> +FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
> JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE AS i USING (EVENT_NAME)
> GROUP BY EVENT_NAME
> HAVING (e.MIN_TIMER_WAIT> MIN(i.MIN_TIMER_WAIT))
> @@ -64,7 +64,7 @@ AND (MIN(i.MIN_TIMER_WAIT) != 0)
> OR @dump_all;
> EVENT_NAME MIN_TIMER_WAIT MIN(i.MIN_TIMER_WAIT)
> SELECT EVENT_NAME, e.MAX_TIMER_WAIT, MAX(i.MAX_TIMER_WAIT)
> -FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
> +FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
> JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE AS i USING (EVENT_NAME)
> GROUP BY EVENT_NAME
> HAVING (e.MAX_TIMER_WAIT< MAX(i.MAX_TIMER_WAIT))
> @@ -72,7 +72,7 @@ OR @dump_all;
> EVENT_NAME MAX_TIMER_WAIT MAX(i.MAX_TIMER_WAIT)
> "Verifying waits aggregate consistency (thread)"
> SELECT EVENT_NAME, e.SUM_TIMER_WAIT, SUM(t.SUM_TIMER_WAIT)
> -FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
> +FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
> JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME AS t
> USING (EVENT_NAME)
> GROUP BY EVENT_NAME
> @@ -80,7 +80,7 @@ HAVING (e.SUM_TIMER_WAIT< SUM(t.SUM_TIM
> OR @dump_all;
> EVENT_NAME SUM_TIMER_WAIT SUM(t.SUM_TIMER_WAIT)
> SELECT EVENT_NAME, e.MIN_TIMER_WAIT, MIN(t.MIN_TIMER_WAIT)
> -FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
> +FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
> JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME AS t
> USING (EVENT_NAME)
> GROUP BY EVENT_NAME
> @@ -89,7 +89,7 @@ AND (MIN(t.MIN_TIMER_WAIT) != 0)
> OR @dump_all;
> EVENT_NAME MIN_TIMER_WAIT MIN(t.MIN_TIMER_WAIT)
> SELECT EVENT_NAME, e.MAX_TIMER_WAIT, MAX(t.MAX_TIMER_WAIT)
> -FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
> +FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
> JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME AS t
> USING (EVENT_NAME)
> GROUP BY EVENT_NAME
>
> === removed file 'mysql-test/suite/perfschema/r/ddl_ews_by_event_name.result'
> --- a/mysql-test/suite/perfschema/r/ddl_ews_by_event_name.result 2010-01-12 01:47:27
> +0000
> +++ b/mysql-test/suite/perfschema/r/ddl_ews_by_event_name.result 1970-01-01 00:00:00
> +0000
> @@ -1,7 +0,0 @@
> -alter table performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME add column foo
> integer;
> -ERROR 42000: Access denied for user 'root'@'localhost' to database
> 'performance_schema'
> -truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> -ALTER TABLE performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME ADD INDEX
> test_index(EVENT_NAME);
> -ERROR 42000: Access denied for user 'root'@'localhost' to database
> 'performance_schema'
> -CREATE UNIQUE INDEX test_index ON
> performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME(EVENT_NAME);
> -ERROR 42000: Access denied for user 'root'@'localhost' to database
> 'performance_schema'
>
> === added file 'mysql-test/suite/perfschema/r/ddl_ews_global_by_event_name.result'
> --- a/mysql-test/suite/perfschema/r/ddl_ews_global_by_event_name.result 1970-01-01
> 00:00:00 +0000
> +++ b/mysql-test/suite/perfschema/r/ddl_ews_global_by_event_name.result 2010-07-21
> 00:27:05 +0000
> @@ -0,0 +1,10 @@
> +alter table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> +add column foo integer;
> +ERROR 42000: Access denied for user 'root'@'localhost' to database
> 'performance_schema'
> +truncate table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> +ALTER TABLE performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> +ADD INDEX test_index(EVENT_NAME);
> +ERROR 42000: Access denied for user 'root'@'localhost' to database
> 'performance_schema'
> +CREATE UNIQUE INDEX test_index
> +ON performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME(EVENT_NAME);
> +ERROR 42000: Access denied for user 'root'@'localhost' to database
> 'performance_schema'
>
> === removed file 'mysql-test/suite/perfschema/r/ddl_processlist.result'
> --- a/mysql-test/suite/perfschema/r/ddl_processlist.result 2010-01-12 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/r/ddl_processlist.result 1970-01-01 00:00:00 +0000
> @@ -1,8 +0,0 @@
> -alter table performance_schema.PROCESSLIST add column foo integer;
> -ERROR 42000: Access denied for user 'root'@'localhost' to database
> 'performance_schema'
> -truncate table performance_schema.PROCESSLIST;
> -ERROR HY000: Invalid performance_schema usage.
> -ALTER TABLE performance_schema.PROCESSLIST ADD INDEX test_index(ID);
> -ERROR 42000: Access denied for user 'root'@'localhost' to database
> 'performance_schema'
> -CREATE UNIQUE INDEX test_index ON performance_schema.PROCESSLIST(ID);
> -ERROR 42000: Access denied for user 'root'@'localhost' to database
> 'performance_schema'
>
> === removed file 'mysql-test/suite/perfschema/r/ddl_setup_objects.result'
> --- a/mysql-test/suite/perfschema/r/ddl_setup_objects.result 2010-01-12 01:47:27
> +0000
> +++ b/mysql-test/suite/perfschema/r/ddl_setup_objects.result 1970-01-01 00:00:00
> +0000
> @@ -1,7 +0,0 @@
> -alter table performance_schema.SETUP_OBJECTS add column foo integer;
> -ERROR 42000: Access denied for user 'root'@'localhost' to database
> 'performance_schema'
> -truncate table performance_schema.SETUP_OBJECTS;
> -ALTER TABLE performance_schema.SETUP_OBJECTS ADD INDEX test_index(OBJECT_NAME);
> -ERROR 42000: Access denied for user 'root'@'localhost' to database
> 'performance_schema'
> -CREATE UNIQUE INDEX test_index ON performance_schema.SETUP_OBJECTS(OBJECT_NAME);
> -ERROR 42000: Access denied for user 'root'@'localhost' to database
> 'performance_schema'
>
> === added file 'mysql-test/suite/perfschema/r/ddl_threads.result'
> --- a/mysql-test/suite/perfschema/r/ddl_threads.result 1970-01-01 00:00:00 +0000
> +++ b/mysql-test/suite/perfschema/r/ddl_threads.result 2010-07-21 00:27:05 +0000
> @@ -0,0 +1,8 @@
> +alter table performance_schema.THREADS add column foo integer;
> +ERROR 42000: Access denied for user 'root'@'localhost' to database
> 'performance_schema'
> +truncate table performance_schema.THREADS;
> +ERROR HY000: Invalid performance_schema usage.
> +ALTER TABLE performance_schema.THREADS ADD INDEX test_index(ID);
> +ERROR 42000: Access denied for user 'root'@'localhost' to database
> 'performance_schema'
> +CREATE UNIQUE INDEX test_index ON performance_schema.THREADS(ID);
> +ERROR 42000: Access denied for user 'root'@'localhost' to database
> 'performance_schema'
>
> === removed file 'mysql-test/suite/perfschema/r/dml_ews_by_event_name.result'
> --- a/mysql-test/suite/perfschema/r/dml_ews_by_event_name.result 2010-01-12 01:47:27
> +0000
> +++ b/mysql-test/suite/perfschema/r/dml_ews_by_event_name.result 1970-01-01 00:00:00
> +0000
> @@ -1,28 +0,0 @@
> -select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
> -where event_name like 'Wait/Synch/%' limit 1;
> -EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT
> -# # # # # #
> -select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
> -where event_name='FOO';
> -EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT
> -insert into performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
> -set event_name='FOO', count_star=1, sum_timer_wait=2, min_timer_wait=3,
> -avg_timer_wait=4, max_timer_wait=5;
> -ERROR 42000: INSERT command denied to user 'root'@'localhost' for table
> 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
> -update performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
> -set count_star=12;
> -ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table
> 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
> -update performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
> -set count_star=12 where event_name like "FOO";
> -ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table
> 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
> -delete from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
> -where count_star=1;
> -ERROR 42000: DELETE command denied to user 'root'@'localhost' for table
> 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
> -delete from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> -ERROR 42000: DELETE command denied to user 'root'@'localhost' for table
> 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
> -LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME READ;
> -ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table
> 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
> -UNLOCK TABLES;
> -LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME WRITE;
> -ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table
> 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
> -UNLOCK TABLES;
>
> === added file 'mysql-test/suite/perfschema/r/dml_ews_global_by_event_name.result'
> --- a/mysql-test/suite/perfschema/r/dml_ews_global_by_event_name.result 1970-01-01
> 00:00:00 +0000
> +++ b/mysql-test/suite/perfschema/r/dml_ews_global_by_event_name.result 2010-07-21
> 00:27:05 +0000
> @@ -0,0 +1,28 @@
> +select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> +where event_name like 'Wait/Synch/%' limit 1;
> +EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT
> +# # # # # #
> +select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> +where event_name='FOO';
> +EVENT_NAME COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT
> +insert into performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> +set event_name='FOO', count_star=1, sum_timer_wait=2, min_timer_wait=3,
> +avg_timer_wait=4, max_timer_wait=5;
> +ERROR 42000: INSERT command denied to user 'root'@'localhost' for table
> 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> +update performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> +set count_star=12;
> +ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table
> 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> +update performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> +set count_star=12 where event_name like "FOO";
> +ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table
> 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> +delete from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> +where count_star=1;
> +ERROR 42000: DELETE command denied to user 'root'@'localhost' for table
> 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> +delete from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> +ERROR 42000: DELETE command denied to user 'root'@'localhost' for table
> 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> +LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME READ;
> +ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table
> 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> +UNLOCK TABLES;
> +LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME WRITE;
> +ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table
> 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> +UNLOCK TABLES;
>
> === removed file 'mysql-test/suite/perfschema/r/dml_processlist.result'
> --- a/mysql-test/suite/perfschema/r/dml_processlist.result 2010-01-12 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/r/dml_processlist.result 1970-01-01 00:00:00 +0000
> @@ -1,27 +0,0 @@
> -select * from performance_schema.PROCESSLIST
> -where name like 'Thread/%' limit 1;
> -THREAD_ID ID NAME
> -# # #
> -select * from performance_schema.PROCESSLIST
> -where name='FOO';
> -THREAD_ID ID NAME
> -insert into performance_schema.PROCESSLIST
> -set name='FOO', thread_id=1, id=2;
> -ERROR 42000: INSERT command denied to user 'root'@'localhost' for table
> 'PROCESSLIST'
> -update performance_schema.PROCESSLIST
> -set thread_id=12;
> -ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table
> 'PROCESSLIST'
> -update performance_schema.PROCESSLIST
> -set thread_id=12 where name like "FOO";
> -ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table
> 'PROCESSLIST'
> -delete from performance_schema.PROCESSLIST
> -where id=1;
> -ERROR 42000: DELETE command denied to user 'root'@'localhost' for table
> 'PROCESSLIST'
> -delete from performance_schema.PROCESSLIST;
> -ERROR 42000: DELETE command denied to user 'root'@'localhost' for table
> 'PROCESSLIST'
> -LOCK TABLES performance_schema.PROCESSLIST READ;
> -ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table
> 'PROCESSLIST'
> -UNLOCK TABLES;
> -LOCK TABLES performance_schema.PROCESSLIST WRITE;
> -ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table
> 'PROCESSLIST'
> -UNLOCK TABLES;
>
> === removed file 'mysql-test/suite/perfschema/r/dml_setup_objects.result'
> --- a/mysql-test/suite/perfschema/r/dml_setup_objects.result 2010-01-12 01:47:27
> +0000
> +++ b/mysql-test/suite/perfschema/r/dml_setup_objects.result 1970-01-01 00:00:00
> +0000
> @@ -1,35 +0,0 @@
> -select * from performance_schema.SETUP_OBJECTS;
> -OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED AGGREGATED
> -select * from performance_schema.SETUP_OBJECTS
> -where object_type = 'TABLE';
> -OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED AGGREGATED
> -select * from performance_schema.SETUP_OBJECTS
> -where enabled='YES';
> -OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED AGGREGATED
> -insert into performance_schema.SETUP_OBJECTS
> -set object_type='TABLE', object_schema='FOO', object_name='BAR',
> -enabled='YES', timed='YES', aggregated='YES';
> -ERROR HY000: Table storage engine for 'SETUP_OBJECTS' doesn't have this option
> -update performance_schema.SETUP_OBJECTS
> -set object_type='TABLE';
> -update performance_schema.SETUP_OBJECTS
> -set object_schema='ILLEGAL';
> -update performance_schema.SETUP_OBJECTS
> -set object_name='ILLEGAL';
> -update performance_schema.SETUP_OBJECTS
> -set enabled='NO';
> -update performance_schema.SETUP_OBJECTS
> -set timed='NO';
> -update performance_schema.SETUP_OBJECTS
> -set aggregated='NO';
> -select * from performance_schema.SETUP_OBJECTS;
> -OBJECT_TYPE OBJECT_SCHEMA OBJECT_NAME ENABLED TIMED AGGREGATED
> -update performance_schema.SETUP_OBJECTS
> -set enabled='YES', timed='YES', aggregated='YES';
> -delete from performance_schema.SETUP_OBJECTS
> -where object_type = 'TABLE';
> -delete from performance_schema.SETUP_OBJECTS;
> -LOCK TABLES performance_schema.SETUP_OBJECTS READ;
> -UNLOCK TABLES;
> -LOCK TABLES performance_schema.SETUP_OBJECTS WRITE;
> -UNLOCK TABLES;
>
> === added file 'mysql-test/suite/perfschema/r/dml_threads.result'
> --- a/mysql-test/suite/perfschema/r/dml_threads.result 1970-01-01 00:00:00 +0000
> +++ b/mysql-test/suite/perfschema/r/dml_threads.result 2010-07-21 00:27:05 +0000
> @@ -0,0 +1,27 @@
> +select * from performance_schema.THREADS
> +where name like 'Thread/%' limit 1;
> +THREAD_ID ID NAME
> +# # #
> +select * from performance_schema.THREADS
> +where name='FOO';
> +THREAD_ID ID NAME
> +insert into performance_schema.THREADS
> +set name='FOO', thread_id=1, id=2;
> +ERROR 42000: INSERT command denied to user 'root'@'localhost' for table 'THREADS'
> +update performance_schema.THREADS
> +set thread_id=12;
> +ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'THREADS'
> +update performance_schema.THREADS
> +set thread_id=12 where name like "FOO";
> +ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'THREADS'
> +delete from performance_schema.THREADS
> +where id=1;
> +ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'THREADS'
> +delete from performance_schema.THREADS;
> +ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'THREADS'
> +LOCK TABLES performance_schema.THREADS READ;
> +ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table
> 'THREADS'
> +UNLOCK TABLES;
> +LOCK TABLES performance_schema.THREADS WRITE;
> +ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table
> 'THREADS'
> +UNLOCK TABLES;
>
> === modified file 'mysql-test/suite/perfschema/r/func_file_io.result'
> --- a/mysql-test/suite/perfschema/r/func_file_io.result 2010-01-12 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/r/func_file_io.result 2010-07-21 00:27:05 +0000
> @@ -90,27 +90,27 @@ SUM(SUM_NUMBER_OF_BYTES_WRITE) AS sum_nu
> FROM performance_schema.FILE_SUMMARY_BY_INSTANCE
> WHERE FILE_NAME LIKE CONCAT('%', @@tmpdir, '%') ORDER BY NULL;
> SELECT EVENT_NAME, COUNT_STAR, AVG_TIMER_WAIT, SUM_TIMER_WAIT
> -FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
> +FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> WHERE COUNT_STAR> 0
> ORDER BY SUM_TIMER_WAIT DESC
> LIMIT 10;
> SELECT i.user, SUM(TIMER_WAIT) SUM_WAIT
> # ((TIME_TO_SEC(TIMEDIFF(NOW(), i.startup_time)) * 1000) / SUM(TIMER_WAIT)) * 100
> WAIT_PERCENTAGE
> FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
> -INNER JOIN performance_schema.PROCESSLIST p USING (THREAD_ID)
> +INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
> LEFT JOIN information_schema.PROCESSLIST i USING (ID)
> GROUP BY i.user
> ORDER BY SUM_WAIT DESC
> LIMIT 20;
> SELECT h.EVENT_NAME, SUM(h.TIMER_WAIT) TOTAL_WAIT
> FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
> -INNER JOIN performance_schema.PROCESSLIST p USING (THREAD_ID)
> +INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
> WHERE p.ID = 1
> GROUP BY h.EVENT_NAME
> HAVING TOTAL_WAIT> 0;
> SELECT i.user, h.operation, SUM(NUMBER_OF_BYTES) bytes
> FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
> -INNER JOIN performance_schema.PROCESSLIST p USING (THREAD_ID)
> +INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
> LEFT JOIN information_schema.PROCESSLIST i USING (ID)
> GROUP BY i.user, h.operation
> HAVING BYTES> 0
>
> === modified file 'mysql-test/suite/perfschema/r/information_schema.result'
> --- a/mysql-test/suite/perfschema/r/information_schema.result 2010-01-12 01:47:27
> +0000
> +++ b/mysql-test/suite/perfschema/r/information_schema.result 2010-07-21 00:27:05
> +0000
> @@ -6,20 +6,19 @@ performance_schema COND_INSTANCES def
> performance_schema EVENTS_WAITS_CURRENT def
> performance_schema EVENTS_WAITS_HISTORY def
> performance_schema EVENTS_WAITS_HISTORY_LONG def
> -performance_schema EVENTS_WAITS_SUMMARY_BY_EVENT_NAME def
> performance_schema EVENTS_WAITS_SUMMARY_BY_INSTANCE def
> performance_schema EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME def
> +performance_schema EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME def
> performance_schema FILE_INSTANCES def
> performance_schema FILE_SUMMARY_BY_EVENT_NAME def
> performance_schema FILE_SUMMARY_BY_INSTANCE def
> performance_schema MUTEX_INSTANCES def
> performance_schema PERFORMANCE_TIMERS def
> -performance_schema PROCESSLIST def
> performance_schema RWLOCK_INSTANCES def
> performance_schema SETUP_CONSUMERS def
> performance_schema SETUP_INSTRUMENTS def
> -performance_schema SETUP_OBJECTS def
> performance_schema SETUP_TIMERS def
> +performance_schema THREADS def
> select upper(TABLE_NAME), TABLE_TYPE, ENGINE
> from information_schema.tables
> where TABLE_SCHEMA='performance_schema';
> @@ -28,20 +27,19 @@ COND_INSTANCES BASE TABLE PERFORMANCE_SC
> EVENTS_WAITS_CURRENT BASE TABLE PERFORMANCE_SCHEMA
> EVENTS_WAITS_HISTORY BASE TABLE PERFORMANCE_SCHEMA
> EVENTS_WAITS_HISTORY_LONG BASE TABLE PERFORMANCE_SCHEMA
> -EVENTS_WAITS_SUMMARY_BY_EVENT_NAME BASE TABLE PERFORMANCE_SCHEMA
> EVENTS_WAITS_SUMMARY_BY_INSTANCE BASE TABLE PERFORMANCE_SCHEMA
> EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME BASE TABLE PERFORMANCE_SCHEMA
> +EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME BASE TABLE PERFORMANCE_SCHEMA
> FILE_INSTANCES BASE TABLE PERFORMANCE_SCHEMA
> FILE_SUMMARY_BY_EVENT_NAME BASE TABLE PERFORMANCE_SCHEMA
> FILE_SUMMARY_BY_INSTANCE BASE TABLE PERFORMANCE_SCHEMA
> MUTEX_INSTANCES BASE TABLE PERFORMANCE_SCHEMA
> PERFORMANCE_TIMERS BASE TABLE PERFORMANCE_SCHEMA
> -PROCESSLIST BASE TABLE PERFORMANCE_SCHEMA
> RWLOCK_INSTANCES BASE TABLE PERFORMANCE_SCHEMA
> SETUP_CONSUMERS BASE TABLE PERFORMANCE_SCHEMA
> SETUP_INSTRUMENTS BASE TABLE PERFORMANCE_SCHEMA
> -SETUP_OBJECTS BASE TABLE PERFORMANCE_SCHEMA
> SETUP_TIMERS BASE TABLE PERFORMANCE_SCHEMA
> +THREADS BASE TABLE PERFORMANCE_SCHEMA
> select upper(TABLE_NAME), VERSION, ROW_FORMAT
> from information_schema.tables
> where TABLE_SCHEMA='performance_schema';
> @@ -50,20 +48,19 @@ COND_INSTANCES 10 Dynamic
> EVENTS_WAITS_CURRENT 10 Dynamic
> EVENTS_WAITS_HISTORY 10 Dynamic
> EVENTS_WAITS_HISTORY_LONG 10 Dynamic
> -EVENTS_WAITS_SUMMARY_BY_EVENT_NAME 10 Dynamic
> EVENTS_WAITS_SUMMARY_BY_INSTANCE 10 Dynamic
> EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME 10 Dynamic
> +EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME 10 Dynamic
> FILE_INSTANCES 10 Dynamic
> FILE_SUMMARY_BY_EVENT_NAME 10 Dynamic
> FILE_SUMMARY_BY_INSTANCE 10 Dynamic
> MUTEX_INSTANCES 10 Dynamic
> PERFORMANCE_TIMERS 10 Fixed
> -PROCESSLIST 10 Dynamic
> RWLOCK_INSTANCES 10 Dynamic
> SETUP_CONSUMERS 10 Dynamic
> SETUP_INSTRUMENTS 10 Dynamic
> -SETUP_OBJECTS 10 Dynamic
> SETUP_TIMERS 10 Dynamic
> +THREADS 10 Dynamic
> select upper(TABLE_NAME), TABLE_ROWS, AVG_ROW_LENGTH
> from information_schema.tables
> where TABLE_SCHEMA='performance_schema';
> @@ -72,20 +69,19 @@ COND_INSTANCES 1000 0
> EVENTS_WAITS_CURRENT 1000 0
> EVENTS_WAITS_HISTORY 1000 0
> EVENTS_WAITS_HISTORY_LONG 10000 0
> -EVENTS_WAITS_SUMMARY_BY_EVENT_NAME 1000 0
> EVENTS_WAITS_SUMMARY_BY_INSTANCE 1000 0
> EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME 1000 0
> +EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME 1000 0
> FILE_INSTANCES 1000 0
> FILE_SUMMARY_BY_EVENT_NAME 1000 0
> FILE_SUMMARY_BY_INSTANCE 1000 0
> MUTEX_INSTANCES 1000 0
> PERFORMANCE_TIMERS 5 0
> -PROCESSLIST 1000 0
> RWLOCK_INSTANCES 1000 0
> SETUP_CONSUMERS 8 0
> SETUP_INSTRUMENTS 1000 0
> -SETUP_OBJECTS 1000 0
> SETUP_TIMERS 1 0
> +THREADS 1000 0
> select upper(TABLE_NAME), DATA_LENGTH, MAX_DATA_LENGTH
> from information_schema.tables
> where TABLE_SCHEMA='performance_schema';
> @@ -94,20 +90,19 @@ COND_INSTANCES 0 0
> EVENTS_WAITS_CURRENT 0 0
> EVENTS_WAITS_HISTORY 0 0
> EVENTS_WAITS_HISTORY_LONG 0 0
> -EVENTS_WAITS_SUMMARY_BY_EVENT_NAME 0 0
> EVENTS_WAITS_SUMMARY_BY_INSTANCE 0 0
> EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME 0 0
> +EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME 0 0
> FILE_INSTANCES 0 0
> FILE_SUMMARY_BY_EVENT_NAME 0 0
> FILE_SUMMARY_BY_INSTANCE 0 0
> MUTEX_INSTANCES 0 0
> PERFORMANCE_TIMERS 0 0
> -PROCESSLIST 0 0
> RWLOCK_INSTANCES 0 0
> SETUP_CONSUMERS 0 0
> SETUP_INSTRUMENTS 0 0
> -SETUP_OBJECTS 0 0
> SETUP_TIMERS 0 0
> +THREADS 0 0
> select upper(TABLE_NAME), INDEX_LENGTH, DATA_FREE, AUTO_INCREMENT
> from information_schema.tables
> where TABLE_SCHEMA='performance_schema';
> @@ -116,20 +111,19 @@ COND_INSTANCES 0 0 NULL
> EVENTS_WAITS_CURRENT 0 0 NULL
> EVENTS_WAITS_HISTORY 0 0 NULL
> EVENTS_WAITS_HISTORY_LONG 0 0 NULL
> -EVENTS_WAITS_SUMMARY_BY_EVENT_NAME 0 0 NULL
> EVENTS_WAITS_SUMMARY_BY_INSTANCE 0 0 NULL
> EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME 0 0 NULL
> +EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME 0 0 NULL
> FILE_INSTANCES 0 0 NULL
> FILE_SUMMARY_BY_EVENT_NAME 0 0 NULL
> FILE_SUMMARY_BY_INSTANCE 0 0 NULL
> MUTEX_INSTANCES 0 0 NULL
> PERFORMANCE_TIMERS 0 0 NULL
> -PROCESSLIST 0 0 NULL
> RWLOCK_INSTANCES 0 0 NULL
> SETUP_CONSUMERS 0 0 NULL
> SETUP_INSTRUMENTS 0 0 NULL
> -SETUP_OBJECTS 0 0 NULL
> SETUP_TIMERS 0 0 NULL
> +THREADS 0 0 NULL
> select upper(TABLE_NAME), CREATE_TIME, UPDATE_TIME, CHECK_TIME
> from information_schema.tables
> where TABLE_SCHEMA='performance_schema';
> @@ -138,20 +132,19 @@ COND_INSTANCES NULL NULL NULL
> EVENTS_WAITS_CURRENT NULL NULL NULL
> EVENTS_WAITS_HISTORY NULL NULL NULL
> EVENTS_WAITS_HISTORY_LONG NULL NULL NULL
> -EVENTS_WAITS_SUMMARY_BY_EVENT_NAME NULL NULL NULL
> EVENTS_WAITS_SUMMARY_BY_INSTANCE NULL NULL NULL
> EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME NULL NULL NULL
> +EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME NULL NULL NULL
> FILE_INSTANCES NULL NULL NULL
> FILE_SUMMARY_BY_EVENT_NAME NULL NULL NULL
> FILE_SUMMARY_BY_INSTANCE NULL NULL NULL
> MUTEX_INSTANCES NULL NULL NULL
> PERFORMANCE_TIMERS NULL NULL NULL
> -PROCESSLIST NULL NULL NULL
> RWLOCK_INSTANCES NULL NULL NULL
> SETUP_CONSUMERS NULL NULL NULL
> SETUP_INSTRUMENTS NULL NULL NULL
> -SETUP_OBJECTS NULL NULL NULL
> SETUP_TIMERS NULL NULL NULL
> +THREADS NULL NULL NULL
> select upper(TABLE_NAME), TABLE_COLLATION, CHECKSUM
> from information_schema.tables
> where TABLE_SCHEMA='performance_schema';
> @@ -160,20 +153,19 @@ COND_INSTANCES utf8_general_ci NULL
> EVENTS_WAITS_CURRENT utf8_general_ci NULL
> EVENTS_WAITS_HISTORY utf8_general_ci NULL
> EVENTS_WAITS_HISTORY_LONG utf8_general_ci NULL
> -EVENTS_WAITS_SUMMARY_BY_EVENT_NAME utf8_general_ci NULL
> EVENTS_WAITS_SUMMARY_BY_INSTANCE utf8_general_ci NULL
> EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME utf8_general_ci NULL
> +EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME utf8_general_ci NULL
> FILE_INSTANCES utf8_general_ci NULL
> FILE_SUMMARY_BY_EVENT_NAME utf8_general_ci NULL
> FILE_SUMMARY_BY_INSTANCE utf8_general_ci NULL
> MUTEX_INSTANCES utf8_general_ci NULL
> PERFORMANCE_TIMERS utf8_general_ci NULL
> -PROCESSLIST utf8_general_ci NULL
> RWLOCK_INSTANCES utf8_general_ci NULL
> SETUP_CONSUMERS utf8_general_ci NULL
> SETUP_INSTRUMENTS utf8_general_ci NULL
> -SETUP_OBJECTS utf8_general_ci NULL
> SETUP_TIMERS utf8_general_ci NULL
> +THREADS utf8_general_ci NULL
> select upper(TABLE_NAME), TABLE_COMMENT
> from information_schema.tables
> where TABLE_SCHEMA='performance_schema';
> @@ -182,17 +174,16 @@ 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
> +EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> FILE_INSTANCES
> FILE_SUMMARY_BY_EVENT_NAME
> FILE_SUMMARY_BY_INSTANCE
> MUTEX_INSTANCES
> PERFORMANCE_TIMERS
> -PROCESSLIST
> RWLOCK_INSTANCES
> SETUP_CONSUMERS
> SETUP_INSTRUMENTS
> -SETUP_OBJECTS
> SETUP_TIMERS
> +THREADS
>
> === modified file 'mysql-test/suite/perfschema/r/misc.result'
> --- a/mysql-test/suite/perfschema/r/misc.result 2010-07-16 00:50:39 +0000
> +++ b/mysql-test/suite/perfschema/r/misc.result 2010-07-21 00:27:05 +0000
> @@ -1,6 +1,6 @@
> SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT
> WHERE THREAD_ID IN
> -(SELECT THREAD_ID FROM performance_schema.PROCESSLIST)
> +(SELECT THREAD_ID FROM performance_schema.THREADS)
> AND EVENT_NAME IN
> (SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS
> WHERE NAME LIKE "wait/synch/%")
>
> === modified file 'mysql-test/suite/perfschema/r/no_threads.result'
> --- a/mysql-test/suite/perfschema/r/no_threads.result 2010-01-12 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/r/no_threads.result 2010-07-21 00:27:05 +0000
> @@ -17,11 +17,11 @@ show variables like "performance_schema_
> Variable_name Value
> performance_schema_max_thread_classes 50
> performance_schema_max_thread_instances 10
> -select count(*) from performance_schema.PROCESSLIST
> +select count(*) from performance_schema.THREADS
> where name like "thread/sql/main";
> count(*)
> 1
> -select count(*) from performance_schema.PROCESSLIST
> +select count(*) from performance_schema.THREADS
> where name like "thread/sql/OneConnection";
> count(*)
> 0
>
> === modified file 'mysql-test/suite/perfschema/r/pfs_upgrade.result'
> --- a/mysql-test/suite/perfschema/r/pfs_upgrade.result 2010-07-15 21:57:47 +0000
> +++ b/mysql-test/suite/perfschema/r/pfs_upgrade.result 2010-07-21 00:27:05 +0000
> @@ -12,21 +12,20 @@ ERROR 1050 (42S01) at line 183: Table 'C
> ERROR 1050 (42S01) at line 213: Table 'EVENTS_WAITS_CURRENT' already exists
> ERROR 1050 (42S01) at line 227: Table 'EVENTS_WAITS_HISTORY' already exists
> ERROR 1050 (42S01) at line 241: Table 'EVENTS_WAITS_HISTORY_LONG' already exists
> -ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already
> exists
> -ERROR 1050 (42S01) at line 282: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already
> exists
> -ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME'
> already exists
> +ERROR 1050 (42S01) at line 262: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already
> exists
> +ERROR 1050 (42S01) at line 283: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME'
> already exists
> +ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> already exists
> ERROR 1050 (42S01) at line 320: Table 'FILE_INSTANCES' already exists
> ERROR 1050 (42S01) at line 339: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists
> ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_INSTANCE' already exists
> ERROR 1050 (42S01) at line 376: Table 'MUTEX_INSTANCES' already exists
> ERROR 1050 (42S01) at line 394: Table 'PERFORMANCE_TIMERS' already exists
> -ERROR 1050 (42S01) at line 411: Table 'PROCESSLIST' already exists
> -ERROR 1050 (42S01) at line 429: Table 'RWLOCK_INSTANCES' already exists
> -ERROR 1050 (42S01) at line 445: Table 'SETUP_CONSUMERS' already exists
> -ERROR 1050 (42S01) at line 462: Table 'SETUP_INSTRUMENTS' already exists
> -ERROR 1050 (42S01) at line 482: Table 'SETUP_OBJECTS' already exists
> -ERROR 1050 (42S01) at line 498: Table 'SETUP_TIMERS' already exists
> -ERROR 1644 (HY000) at line 1138: Unexpected content found in the performance_schema
> database.
> +ERROR 1050 (42S01) at line 412: Table 'RWLOCK_INSTANCES' already exists
> +ERROR 1050 (42S01) at line 428: Table 'SETUP_CONSUMERS' already exists
> +ERROR 1050 (42S01) at line 445: Table 'SETUP_INSTRUMENTS' already exists
> +ERROR 1050 (42S01) at line 461: Table 'SETUP_TIMERS' already exists
> +ERROR 1050 (42S01) at line 478: Table 'THREADS' already exists
> +ERROR 1644 (HY000) at line 1118: Unexpected content found in the performance_schema
> database.
> FATAL ERROR: Upgrade failed
> show tables like "user_table";
> Tables_in_performance_schema (user_table)
> @@ -43,21 +42,20 @@ ERROR 1050 (42S01) at line 183: Table 'C
> ERROR 1050 (42S01) at line 213: Table 'EVENTS_WAITS_CURRENT' already exists
> ERROR 1050 (42S01) at line 227: Table 'EVENTS_WAITS_HISTORY' already exists
> ERROR 1050 (42S01) at line 241: Table 'EVENTS_WAITS_HISTORY_LONG' already exists
> -ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already
> exists
> -ERROR 1050 (42S01) at line 282: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already
> exists
> -ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME'
> already exists
> +ERROR 1050 (42S01) at line 262: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already
> exists
> +ERROR 1050 (42S01) at line 283: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME'
> already exists
> +ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> already exists
> ERROR 1050 (42S01) at line 320: Table 'FILE_INSTANCES' already exists
> ERROR 1050 (42S01) at line 339: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists
> ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_INSTANCE' already exists
> ERROR 1050 (42S01) at line 376: Table 'MUTEX_INSTANCES' already exists
> ERROR 1050 (42S01) at line 394: Table 'PERFORMANCE_TIMERS' already exists
> -ERROR 1050 (42S01) at line 411: Table 'PROCESSLIST' already exists
> -ERROR 1050 (42S01) at line 429: Table 'RWLOCK_INSTANCES' already exists
> -ERROR 1050 (42S01) at line 445: Table 'SETUP_CONSUMERS' already exists
> -ERROR 1050 (42S01) at line 462: Table 'SETUP_INSTRUMENTS' already exists
> -ERROR 1050 (42S01) at line 482: Table 'SETUP_OBJECTS' already exists
> -ERROR 1050 (42S01) at line 498: Table 'SETUP_TIMERS' already exists
> -ERROR 1644 (HY000) at line 1138: Unexpected content found in the performance_schema
> database.
> +ERROR 1050 (42S01) at line 412: Table 'RWLOCK_INSTANCES' already exists
> +ERROR 1050 (42S01) at line 428: Table 'SETUP_CONSUMERS' already exists
> +ERROR 1050 (42S01) at line 445: Table 'SETUP_INSTRUMENTS' already exists
> +ERROR 1050 (42S01) at line 461: Table 'SETUP_TIMERS' already exists
> +ERROR 1050 (42S01) at line 478: Table 'THREADS' already exists
> +ERROR 1644 (HY000) at line 1118: Unexpected content found in the performance_schema
> database.
> FATAL ERROR: Upgrade failed
> show tables like "user_view";
> Tables_in_performance_schema (user_view)
> @@ -72,21 +70,20 @@ ERROR 1050 (42S01) at line 183: Table 'C
> ERROR 1050 (42S01) at line 213: Table 'EVENTS_WAITS_CURRENT' already exists
> ERROR 1050 (42S01) at line 227: Table 'EVENTS_WAITS_HISTORY' already exists
> ERROR 1050 (42S01) at line 241: Table 'EVENTS_WAITS_HISTORY_LONG' already exists
> -ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already
> exists
> -ERROR 1050 (42S01) at line 282: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already
> exists
> -ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME'
> already exists
> +ERROR 1050 (42S01) at line 262: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already
> exists
> +ERROR 1050 (42S01) at line 283: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME'
> already exists
> +ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> already exists
> ERROR 1050 (42S01) at line 320: Table 'FILE_INSTANCES' already exists
> ERROR 1050 (42S01) at line 339: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists
> ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_INSTANCE' already exists
> ERROR 1050 (42S01) at line 376: Table 'MUTEX_INSTANCES' already exists
> ERROR 1050 (42S01) at line 394: Table 'PERFORMANCE_TIMERS' already exists
> -ERROR 1050 (42S01) at line 411: Table 'PROCESSLIST' already exists
> -ERROR 1050 (42S01) at line 429: Table 'RWLOCK_INSTANCES' already exists
> -ERROR 1050 (42S01) at line 445: Table 'SETUP_CONSUMERS' already exists
> -ERROR 1050 (42S01) at line 462: Table 'SETUP_INSTRUMENTS' already exists
> -ERROR 1050 (42S01) at line 482: Table 'SETUP_OBJECTS' already exists
> -ERROR 1050 (42S01) at line 498: Table 'SETUP_TIMERS' already exists
> -ERROR 1644 (HY000) at line 1138: Unexpected content found in the performance_schema
> database.
> +ERROR 1050 (42S01) at line 412: Table 'RWLOCK_INSTANCES' already exists
> +ERROR 1050 (42S01) at line 428: Table 'SETUP_CONSUMERS' already exists
> +ERROR 1050 (42S01) at line 445: Table 'SETUP_INSTRUMENTS' already exists
> +ERROR 1050 (42S01) at line 461: Table 'SETUP_TIMERS' already exists
> +ERROR 1050 (42S01) at line 478: Table 'THREADS' already exists
> +ERROR 1644 (HY000) at line 1118: Unexpected content found in the performance_schema
> database.
> FATAL ERROR: Upgrade failed
> select name from mysql.proc where db='performance_schema';
> name
> @@ -101,21 +98,20 @@ ERROR 1050 (42S01) at line 183: Table 'C
> ERROR 1050 (42S01) at line 213: Table 'EVENTS_WAITS_CURRENT' already exists
> ERROR 1050 (42S01) at line 227: Table 'EVENTS_WAITS_HISTORY' already exists
> ERROR 1050 (42S01) at line 241: Table 'EVENTS_WAITS_HISTORY_LONG' already exists
> -ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already
> exists
> -ERROR 1050 (42S01) at line 282: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already
> exists
> -ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME'
> already exists
> +ERROR 1050 (42S01) at line 262: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already
> exists
> +ERROR 1050 (42S01) at line 283: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME'
> already exists
> +ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> already exists
> ERROR 1050 (42S01) at line 320: Table 'FILE_INSTANCES' already exists
> ERROR 1050 (42S01) at line 339: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists
> ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_INSTANCE' already exists
> ERROR 1050 (42S01) at line 376: Table 'MUTEX_INSTANCES' already exists
> ERROR 1050 (42S01) at line 394: Table 'PERFORMANCE_TIMERS' already exists
> -ERROR 1050 (42S01) at line 411: Table 'PROCESSLIST' already exists
> -ERROR 1050 (42S01) at line 429: Table 'RWLOCK_INSTANCES' already exists
> -ERROR 1050 (42S01) at line 445: Table 'SETUP_CONSUMERS' already exists
> -ERROR 1050 (42S01) at line 462: Table 'SETUP_INSTRUMENTS' already exists
> -ERROR 1050 (42S01) at line 482: Table 'SETUP_OBJECTS' already exists
> -ERROR 1050 (42S01) at line 498: Table 'SETUP_TIMERS' already exists
> -ERROR 1644 (HY000) at line 1138: Unexpected content found in the performance_schema
> database.
> +ERROR 1050 (42S01) at line 412: Table 'RWLOCK_INSTANCES' already exists
> +ERROR 1050 (42S01) at line 428: Table 'SETUP_CONSUMERS' already exists
> +ERROR 1050 (42S01) at line 445: Table 'SETUP_INSTRUMENTS' already exists
> +ERROR 1050 (42S01) at line 461: Table 'SETUP_TIMERS' already exists
> +ERROR 1050 (42S01) at line 478: Table 'THREADS' already exists
> +ERROR 1644 (HY000) at line 1118: Unexpected content found in the performance_schema
> database.
> FATAL ERROR: Upgrade failed
> select name from mysql.proc where db='performance_schema';
> name
> @@ -130,21 +126,20 @@ ERROR 1050 (42S01) at line 183: Table 'C
> ERROR 1050 (42S01) at line 213: Table 'EVENTS_WAITS_CURRENT' already exists
> ERROR 1050 (42S01) at line 227: Table 'EVENTS_WAITS_HISTORY' already exists
> ERROR 1050 (42S01) at line 241: Table 'EVENTS_WAITS_HISTORY_LONG' already exists
> -ERROR 1050 (42S01) at line 261: Table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME' already
> exists
> -ERROR 1050 (42S01) at line 282: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already
> exists
> -ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME'
> already exists
> +ERROR 1050 (42S01) at line 262: Table 'EVENTS_WAITS_SUMMARY_BY_INSTANCE' already
> exists
> +ERROR 1050 (42S01) at line 283: Table 'EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME'
> already exists
> +ERROR 1050 (42S01) at line 303: Table 'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> already exists
> ERROR 1050 (42S01) at line 320: Table 'FILE_INSTANCES' already exists
> ERROR 1050 (42S01) at line 339: Table 'FILE_SUMMARY_BY_EVENT_NAME' already exists
> ERROR 1050 (42S01) at line 359: Table 'FILE_SUMMARY_BY_INSTANCE' already exists
> ERROR 1050 (42S01) at line 376: Table 'MUTEX_INSTANCES' already exists
> ERROR 1050 (42S01) at line 394: Table 'PERFORMANCE_TIMERS' already exists
> -ERROR 1050 (42S01) at line 411: Table 'PROCESSLIST' already exists
> -ERROR 1050 (42S01) at line 429: Table 'RWLOCK_INSTANCES' already exists
> -ERROR 1050 (42S01) at line 445: Table 'SETUP_CONSUMERS' already exists
> -ERROR 1050 (42S01) at line 462: Table 'SETUP_INSTRUMENTS' already exists
> -ERROR 1050 (42S01) at line 482: Table 'SETUP_OBJECTS' already exists
> -ERROR 1050 (42S01) at line 498: Table 'SETUP_TIMERS' already exists
> -ERROR 1644 (HY000) at line 1138: Unexpected content found in the performance_schema
> database.
> +ERROR 1050 (42S01) at line 412: Table 'RWLOCK_INSTANCES' already exists
> +ERROR 1050 (42S01) at line 428: Table 'SETUP_CONSUMERS' already exists
> +ERROR 1050 (42S01) at line 445: Table 'SETUP_INSTRUMENTS' already exists
> +ERROR 1050 (42S01) at line 461: Table 'SETUP_TIMERS' already exists
> +ERROR 1050 (42S01) at line 478: Table 'THREADS' already exists
> +ERROR 1644 (HY000) at line 1118: Unexpected content found in the performance_schema
> database.
> FATAL ERROR: Upgrade failed
> select name from mysql.event where db='performance_schema';
> name
>
> === modified file 'mysql-test/suite/perfschema/r/schema.result'
> --- a/mysql-test/suite/perfschema/r/schema.result 2010-01-12 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/r/schema.result 2010-07-21 00:27:05 +0000
> @@ -12,20 +12,19 @@ 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
> +EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> FILE_INSTANCES
> FILE_SUMMARY_BY_EVENT_NAME
> FILE_SUMMARY_BY_INSTANCE
> MUTEX_INSTANCES
> PERFORMANCE_TIMERS
> -PROCESSLIST
> RWLOCK_INSTANCES
> SETUP_CONSUMERS
> SETUP_INSTRUMENTS
> -SETUP_OBJECTS
> SETUP_TIMERS
> +THREADS
> show create table COND_INSTANCES;
> Table Create Table
> COND_INSTANCES CREATE TABLE `COND_INSTANCES` (
> @@ -92,31 +91,31 @@ EVENTS_WAITS_HISTORY_LONG CREATE TABLE `
> `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;
> +show create table EVENTS_WAITS_SUMMARY_BY_INSTANCE;
> Table Create Table
> -EVENTS_WAITS_SUMMARY_BY_EVENT_NAME CREATE TABLE `EVENTS_WAITS_SUMMARY_BY_EVENT_NAME`
> (
> +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_INSTANCE;
> +show create table EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
> Table Create Table
> -EVENTS_WAITS_SUMMARY_BY_INSTANCE CREATE TABLE `EVENTS_WAITS_SUMMARY_BY_INSTANCE` (
> +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,
> - `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;
> +show create table EVENTS_WAITS_SUMMARY_GLOBAL_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,
> +EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME CREATE TABLE
> `EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME` (
> `EVENT_NAME` varchar(128) NOT NULL,
> `COUNT_STAR` bigint(20) unsigned NOT NULL,
> `SUM_TIMER_WAIT` bigint(20) unsigned NOT NULL,
> @@ -165,13 +164,6 @@ PERFORMANCE_TIMERS CREATE TABLE `PERFORM
> `TIMER_RESOLUTION` bigint(20) DEFAULT NULL,
> `TIMER_OVERHEAD` bigint(20) DEFAULT NULL
> ) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8
> -show create table PROCESSLIST;
> -Table Create Table
> -PROCESSLIST CREATE TABLE `PROCESSLIST` (
> - `THREAD_ID` int(11) NOT NULL,
> - `ID` int(11) NOT NULL,
> - `NAME` varchar(64) NOT NULL
> -) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8
> show create table RWLOCK_INSTANCES;
> Table Create Table
> RWLOCK_INSTANCES CREATE TABLE `RWLOCK_INSTANCES` (
> @@ -193,19 +185,16 @@ SETUP_INSTRUMENTS CREATE TABLE `SETUP_IN
> `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,
> + `ID` int(11) NOT NULL,
> + `NAME` varchar(64) NOT NULL
> +) ENGINE=PERFORMANCE_SCHEMA DEFAULT CHARSET=utf8
>
> === modified file 'mysql-test/suite/perfschema/r/selects.result'
> --- a/mysql-test/suite/perfschema/r/selects.result 2010-01-12 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/r/selects.result 2010-07-21 00:27:05 +0000
> @@ -13,7 +13,7 @@ OPERATION TOTAL
> chsize [NUM_BYTES]
> SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT
> WHERE THREAD_ID IN
> -(SELECT THREAD_ID FROM performance_schema.PROCESSLIST)
> +(SELECT THREAD_ID FROM performance_schema.THREADS)
> AND EVENT_NAME IN
> (SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS
> WHERE NAME LIKE "wait/synch/%")
> @@ -78,14 +78,14 @@ id c
> DROP TRIGGER t_ps_trigger;
> CREATE PROCEDURE t_ps_proc(IN tid INT, OUT pid INT)
> BEGIN
> -SELECT id FROM performance_schema.PROCESSLIST
> +SELECT id FROM performance_schema.THREADS
> WHERE THREAD_ID = tid INTO pid;
> END;
> |
> CALL t_ps_proc(0, @p_id);
> CREATE FUNCTION t_ps_func(tid INT) RETURNS int
> BEGIN
> -return (SELECT id FROM performance_schema.PROCESSLIST
> +return (SELECT id FROM performance_schema.THREADS
> WHERE THREAD_ID = tid);
> END;
> |
>
> === 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-01-12
> 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/r/start_server_no_cond_class.result 2010-07-21
> 00:27:05 +0000
> @@ -21,20 +21,19 @@ select * from performance_schema.COND_IN
> select * from performance_schema.EVENTS_WAITS_CURRENT;
> select * from performance_schema.EVENTS_WAITS_HISTORY;
> select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
> -select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
> +select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> select * from performance_schema.FILE_INSTANCES;
> select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
> select * from performance_schema.MUTEX_INSTANCES;
> select * from performance_schema.PERFORMANCE_TIMERS;
> -select * from performance_schema.PROCESSLIST;
> select * from performance_schema.RWLOCK_INSTANCES;
> select * from performance_schema.SETUP_CONSUMERS;
> select * from performance_schema.SETUP_INSTRUMENTS;
> -select * from performance_schema.SETUP_OBJECTS;
> select * from performance_schema.SETUP_TIMERS;
> +select * from performance_schema.THREADS;
> show variables like "performance_schema%";
> Variable_name Value
> performance_schema ON
>
> === 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-01-12
> 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/r/start_server_no_cond_inst.result 2010-07-21
> 00:27:05 +0000
> @@ -21,20 +21,19 @@ select * from performance_schema.COND_IN
> select * from performance_schema.EVENTS_WAITS_CURRENT;
> select * from performance_schema.EVENTS_WAITS_HISTORY;
> select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
> -select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
> +select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> select * from performance_schema.FILE_INSTANCES;
> select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
> select * from performance_schema.MUTEX_INSTANCES;
> select * from performance_schema.PERFORMANCE_TIMERS;
> -select * from performance_schema.PROCESSLIST;
> select * from performance_schema.RWLOCK_INSTANCES;
> select * from performance_schema.SETUP_CONSUMERS;
> select * from performance_schema.SETUP_INSTRUMENTS;
> -select * from performance_schema.SETUP_OBJECTS;
> select * from performance_schema.SETUP_TIMERS;
> +select * from performance_schema.THREADS;
> show variables like "performance_schema%";
> Variable_name Value
> performance_schema ON
>
> === 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-01-12
> 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/r/start_server_no_file_class.result 2010-07-21
> 00:27:05 +0000
> @@ -21,20 +21,19 @@ select * from performance_schema.COND_IN
> select * from performance_schema.EVENTS_WAITS_CURRENT;
> select * from performance_schema.EVENTS_WAITS_HISTORY;
> select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
> -select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
> +select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> select * from performance_schema.FILE_INSTANCES;
> select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
> select * from performance_schema.MUTEX_INSTANCES;
> select * from performance_schema.PERFORMANCE_TIMERS;
> -select * from performance_schema.PROCESSLIST;
> select * from performance_schema.RWLOCK_INSTANCES;
> select * from performance_schema.SETUP_CONSUMERS;
> select * from performance_schema.SETUP_INSTRUMENTS;
> -select * from performance_schema.SETUP_OBJECTS;
> select * from performance_schema.SETUP_TIMERS;
> +select * from performance_schema.THREADS;
> show variables like "performance_schema%";
> Variable_name Value
> performance_schema ON
>
> === 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-01-12
> 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/r/start_server_no_file_inst.result 2010-07-21
> 00:27:05 +0000
> @@ -21,20 +21,19 @@ select * from performance_schema.COND_IN
> select * from performance_schema.EVENTS_WAITS_CURRENT;
> select * from performance_schema.EVENTS_WAITS_HISTORY;
> select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
> -select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
> +select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> select * from performance_schema.FILE_INSTANCES;
> select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
> select * from performance_schema.MUTEX_INSTANCES;
> select * from performance_schema.PERFORMANCE_TIMERS;
> -select * from performance_schema.PROCESSLIST;
> select * from performance_schema.RWLOCK_INSTANCES;
> select * from performance_schema.SETUP_CONSUMERS;
> select * from performance_schema.SETUP_INSTRUMENTS;
> -select * from performance_schema.SETUP_OBJECTS;
> select * from performance_schema.SETUP_TIMERS;
> +select * from performance_schema.THREADS;
> show variables like "performance_schema%";
> Variable_name Value
> performance_schema ON
>
> === 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-01-12
> 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/r/start_server_no_mutex_class.result 2010-07-21
> 00:27:05 +0000
> @@ -21,20 +21,19 @@ select * from performance_schema.COND_IN
> select * from performance_schema.EVENTS_WAITS_CURRENT;
> select * from performance_schema.EVENTS_WAITS_HISTORY;
> select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
> -select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
> +select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> select * from performance_schema.FILE_INSTANCES;
> select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
> select * from performance_schema.MUTEX_INSTANCES;
> select * from performance_schema.PERFORMANCE_TIMERS;
> -select * from performance_schema.PROCESSLIST;
> select * from performance_schema.RWLOCK_INSTANCES;
> select * from performance_schema.SETUP_CONSUMERS;
> select * from performance_schema.SETUP_INSTRUMENTS;
> -select * from performance_schema.SETUP_OBJECTS;
> select * from performance_schema.SETUP_TIMERS;
> +select * from performance_schema.THREADS;
> show variables like "performance_schema%";
> Variable_name Value
> performance_schema ON
>
> === 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-01-12
> 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result 2010-07-21
> 00:27:05 +0000
> @@ -21,20 +21,19 @@ select * from performance_schema.COND_IN
> select * from performance_schema.EVENTS_WAITS_CURRENT;
> select * from performance_schema.EVENTS_WAITS_HISTORY;
> select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
> -select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
> +select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> select * from performance_schema.FILE_INSTANCES;
> select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
> select * from performance_schema.MUTEX_INSTANCES;
> select * from performance_schema.PERFORMANCE_TIMERS;
> -select * from performance_schema.PROCESSLIST;
> select * from performance_schema.RWLOCK_INSTANCES;
> select * from performance_schema.SETUP_CONSUMERS;
> select * from performance_schema.SETUP_INSTRUMENTS;
> -select * from performance_schema.SETUP_OBJECTS;
> select * from performance_schema.SETUP_TIMERS;
> +select * from performance_schema.THREADS;
> show variables like "performance_schema%";
> Variable_name Value
> performance_schema ON
>
> === 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-01-12
> 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result 2010-07-21
> 00:27:05 +0000
> @@ -21,20 +21,19 @@ select * from performance_schema.COND_IN
> select * from performance_schema.EVENTS_WAITS_CURRENT;
> select * from performance_schema.EVENTS_WAITS_HISTORY;
> select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
> -select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
> +select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> select * from performance_schema.FILE_INSTANCES;
> select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
> select * from performance_schema.MUTEX_INSTANCES;
> select * from performance_schema.PERFORMANCE_TIMERS;
> -select * from performance_schema.PROCESSLIST;
> select * from performance_schema.RWLOCK_INSTANCES;
> select * from performance_schema.SETUP_CONSUMERS;
> select * from performance_schema.SETUP_INSTRUMENTS;
> -select * from performance_schema.SETUP_OBJECTS;
> select * from performance_schema.SETUP_TIMERS;
> +select * from performance_schema.THREADS;
> show variables like "performance_schema%";
> Variable_name Value
> performance_schema ON
>
> === 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-01-12
> 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result 2010-07-21
> 00:27:05 +0000
> @@ -21,20 +21,19 @@ select * from performance_schema.COND_IN
> select * from performance_schema.EVENTS_WAITS_CURRENT;
> select * from performance_schema.EVENTS_WAITS_HISTORY;
> select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
> -select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
> +select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> select * from performance_schema.FILE_INSTANCES;
> select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
> select * from performance_schema.MUTEX_INSTANCES;
> select * from performance_schema.PERFORMANCE_TIMERS;
> -select * from performance_schema.PROCESSLIST;
> select * from performance_schema.RWLOCK_INSTANCES;
> select * from performance_schema.SETUP_CONSUMERS;
> select * from performance_schema.SETUP_INSTRUMENTS;
> -select * from performance_schema.SETUP_OBJECTS;
> select * from performance_schema.SETUP_TIMERS;
> +select * from performance_schema.THREADS;
> show variables like "performance_schema%";
> Variable_name Value
> performance_schema ON
>
> === 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-01-12
> 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/r/start_server_no_thread_class.result 2010-07-21
> 00:27:05 +0000
> @@ -21,20 +21,19 @@ select * from performance_schema.COND_IN
> select * from performance_schema.EVENTS_WAITS_CURRENT;
> select * from performance_schema.EVENTS_WAITS_HISTORY;
> select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
> -select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
> +select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> select * from performance_schema.FILE_INSTANCES;
> select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
> select * from performance_schema.MUTEX_INSTANCES;
> select * from performance_schema.PERFORMANCE_TIMERS;
> -select * from performance_schema.PROCESSLIST;
> select * from performance_schema.RWLOCK_INSTANCES;
> select * from performance_schema.SETUP_CONSUMERS;
> select * from performance_schema.SETUP_INSTRUMENTS;
> -select * from performance_schema.SETUP_OBJECTS;
> select * from performance_schema.SETUP_TIMERS;
> +select * from performance_schema.THREADS;
> show variables like "performance_schema%";
> Variable_name Value
> performance_schema ON
> @@ -66,7 +65,7 @@ select variable_value> 0 from informati
> where variable_name like 'PERFORMANCE_SCHEMA_THREAD_CLASSES_LOST';
> variable_value> 0
> 1
> -select count(*) from performance_schema.PROCESSLIST;
> +select count(*) from performance_schema.THREADS;
> count(*)
> 0
> show status like "performance_schema_thread_instances_lost";
>
> === 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-01-12
> 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/r/start_server_no_thread_inst.result 2010-07-21
> 00:27:05 +0000
> @@ -21,20 +21,19 @@ select * from performance_schema.COND_IN
> select * from performance_schema.EVENTS_WAITS_CURRENT;
> select * from performance_schema.EVENTS_WAITS_HISTORY;
> select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
> -select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
> +select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> select * from performance_schema.FILE_INSTANCES;
> select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
> select * from performance_schema.MUTEX_INSTANCES;
> select * from performance_schema.PERFORMANCE_TIMERS;
> -select * from performance_schema.PROCESSLIST;
> select * from performance_schema.RWLOCK_INSTANCES;
> select * from performance_schema.SETUP_CONSUMERS;
> select * from performance_schema.SETUP_INSTRUMENTS;
> -select * from performance_schema.SETUP_OBJECTS;
> select * from performance_schema.SETUP_TIMERS;
> +select * from performance_schema.THREADS;
> show variables like "performance_schema%";
> Variable_name Value
> performance_schema ON
> @@ -64,7 +63,7 @@ Performance_schema_thread_classes_lost 0
> show variables like "performance_schema_max_thread_instances";
> Variable_name Value
> performance_schema_max_thread_instances 0
> -select count(*) from performance_schema.PROCESSLIST;
> +select count(*) from performance_schema.THREADS;
> count(*)
> 0
> select variable_value> 0 from information_schema.global_status
>
> === modified file 'mysql-test/suite/perfschema/r/start_server_off.result'
> --- a/mysql-test/suite/perfschema/r/start_server_off.result 2010-01-12 01:47:27
> +0000
> +++ b/mysql-test/suite/perfschema/r/start_server_off.result 2010-07-21 00:27:05
> +0000
> @@ -21,20 +21,19 @@ select * from performance_schema.COND_IN
> select * from performance_schema.EVENTS_WAITS_CURRENT;
> select * from performance_schema.EVENTS_WAITS_HISTORY;
> select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
> -select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
> +select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> select * from performance_schema.FILE_INSTANCES;
> select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
> select * from performance_schema.MUTEX_INSTANCES;
> select * from performance_schema.PERFORMANCE_TIMERS;
> -select * from performance_schema.PROCESSLIST;
> select * from performance_schema.RWLOCK_INSTANCES;
> select * from performance_schema.SETUP_CONSUMERS;
> select * from performance_schema.SETUP_INSTRUMENTS;
> -select * from performance_schema.SETUP_OBJECTS;
> select * from performance_schema.SETUP_TIMERS;
> +select * from performance_schema.THREADS;
> show variables like "performance_schema%";
> Variable_name Value
> performance_schema OFF
>
> === modified file 'mysql-test/suite/perfschema/r/start_server_on.result'
> --- a/mysql-test/suite/perfschema/r/start_server_on.result 2010-01-12 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/r/start_server_on.result 2010-07-21 00:27:05 +0000
> @@ -21,20 +21,19 @@ select * from performance_schema.COND_IN
> select * from performance_schema.EVENTS_WAITS_CURRENT;
> select * from performance_schema.EVENTS_WAITS_HISTORY;
> select * from performance_schema.EVENTS_WAITS_HISTORY_LONG;
> -select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
> select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
> +select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> select * from performance_schema.FILE_INSTANCES;
> select * from performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
> select * from performance_schema.FILE_SUMMARY_BY_INSTANCE;
> select * from performance_schema.MUTEX_INSTANCES;
> select * from performance_schema.PERFORMANCE_TIMERS;
> -select * from performance_schema.PROCESSLIST;
> select * from performance_schema.RWLOCK_INSTANCES;
> select * from performance_schema.SETUP_CONSUMERS;
> select * from performance_schema.SETUP_INSTRUMENTS;
> -select * from performance_schema.SETUP_OBJECTS;
> select * from performance_schema.SETUP_TIMERS;
> +select * from performance_schema.THREADS;
> show variables like "performance_schema%";
> Variable_name Value
> performance_schema ON
>
> === modified file 'mysql-test/suite/perfschema/t/aggregate.test'
> --- a/mysql-test/suite/perfschema/t/aggregate.test 2010-01-27 15:26:05 +0000
> +++ b/mysql-test/suite/perfschema/t/aggregate.test 2010-07-21 00:27:05 +0000
> @@ -31,7 +31,7 @@ update performance_schema.SETUP_CONSUMER
> # Cleanup statistics
> truncate table performance_schema.FILE_SUMMARY_BY_EVENT_NAME;
> truncate table performance_schema.FILE_SUMMARY_BY_INSTANCE;
> -truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> +truncate table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE;
> truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME;
>
> @@ -66,9 +66,9 @@ set @dump_all=FALSE;
> # because doing so removes a row in FILE_SUMMARY_BY_INSTANCE.
>
> # Likewise:
> -# - COUNT/SUM/MAX(EVENTS_WAITS_SUMMARY_BY_EVENT_NAME)>=
> +# - COUNT/SUM/MAX(EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME)>=
> # COUNT/SUM/MAX(EVENTS_WAITS_SUMMARY_BY_INSTANCE)
> -# - MIN(EVENTS_WAITS_SUMMARY_BY_EVENT_NAME)<=
> +# - MIN(EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME)<=
> # MIN(EVENTS_WAITS_SUMMARY_BY_INSTANCE)
> # There will be equality only when an instrument instance
> # is not removed, which is next to impossible to predictably guarantee
> @@ -80,9 +80,9 @@ set @dump_all=FALSE;
> # Both cause a row to be deleted from EVENTS_WAITS_SUMMARY_BY_INSTANCE.
>
> # Likewise:
> -# - COUNT/SUM/MAX(EVENTS_WAITS_SUMMARY_BY_EVENT_NAME)>=
> +# - COUNT/SUM/MAX(EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME)>=
> # COUNT/SUM/MAX(EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME)
> -# - MIN(EVENTS_WAITS_SUMMARY_BY_EVENT_NAME)<=
> +# - MIN(EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME)<=
> # MIN(EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME)
> # There will be equality only when no thread is removed,
> # that is if no thread disconnects, or no sub thread (for example insert
> @@ -131,14 +131,14 @@ OR @dump_all;
> --echo "Verifying waits aggregate consistency (instance)"
>
> SELECT EVENT_NAME, e.SUM_TIMER_WAIT, SUM(i.SUM_TIMER_WAIT)
> -FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
> +FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
> JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE AS i USING (EVENT_NAME)
> GROUP BY EVENT_NAME
> HAVING (e.SUM_TIMER_WAIT< SUM(i.SUM_TIMER_WAIT))
> OR @dump_all;
>
> SELECT EVENT_NAME, e.MIN_TIMER_WAIT, MIN(i.MIN_TIMER_WAIT)
> -FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
> +FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
> JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE AS i USING (EVENT_NAME)
> GROUP BY EVENT_NAME
> HAVING (e.MIN_TIMER_WAIT> MIN(i.MIN_TIMER_WAIT))
> @@ -146,7 +146,7 @@ AND (MIN(i.MIN_TIMER_WAIT) != 0)
> OR @dump_all;
>
> SELECT EVENT_NAME, e.MAX_TIMER_WAIT, MAX(i.MAX_TIMER_WAIT)
> -FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
> +FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
> JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE AS i USING (EVENT_NAME)
> GROUP BY EVENT_NAME
> HAVING (e.MAX_TIMER_WAIT< MAX(i.MAX_TIMER_WAIT))
> @@ -155,7 +155,7 @@ OR @dump_all;
> --echo "Verifying waits aggregate consistency (thread)"
>
> SELECT EVENT_NAME, e.SUM_TIMER_WAIT, SUM(t.SUM_TIMER_WAIT)
> -FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
> +FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
> JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME AS t
> USING (EVENT_NAME)
> GROUP BY EVENT_NAME
> @@ -163,7 +163,7 @@ HAVING (e.SUM_TIMER_WAIT< SUM(t.SUM_TIM
> OR @dump_all;
>
> SELECT EVENT_NAME, e.MIN_TIMER_WAIT, MIN(t.MIN_TIMER_WAIT)
> -FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
> +FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
> JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME AS t
> USING (EVENT_NAME)
> GROUP BY EVENT_NAME
> @@ -172,7 +172,7 @@ AND (MIN(t.MIN_TIMER_WAIT) != 0)
> OR @dump_all;
>
> SELECT EVENT_NAME, e.MAX_TIMER_WAIT, MAX(t.MAX_TIMER_WAIT)
> -FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME AS e
> +FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME AS e
> JOIN performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME AS t
> USING (EVENT_NAME)
> GROUP BY EVENT_NAME
>
> === removed file 'mysql-test/suite/perfschema/t/ddl_ews_by_event_name.test'
> --- a/mysql-test/suite/perfschema/t/ddl_ews_by_event_name.test 2010-01-12 01:47:27
> +0000
> +++ b/mysql-test/suite/perfschema/t/ddl_ews_by_event_name.test 1970-01-01 00:00:00
> +0000
> @@ -1,31 +0,0 @@
> -# Copyright (C) 2008-2009 Sun Microsystems, Inc
> -#
> -# 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
> -
> --- error ER_DBACCESS_DENIED_ERROR
> -alter table performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME add column foo
> integer;
> -
> -truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> -
> --- error ER_DBACCESS_DENIED_ERROR
> -ALTER TABLE performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME ADD INDEX
> test_index(EVENT_NAME);
> -
> --- error ER_DBACCESS_DENIED_ERROR
> -CREATE UNIQUE INDEX test_index ON
> performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME(EVENT_NAME);
> -
>
> === added file 'mysql-test/suite/perfschema/t/ddl_ews_global_by_event_name.test'
> --- a/mysql-test/suite/perfschema/t/ddl_ews_global_by_event_name.test 1970-01-01
> 00:00:00 +0000
> +++ b/mysql-test/suite/perfschema/t/ddl_ews_global_by_event_name.test 2010-07-21
> 00:27:05 +0000
> @@ -0,0 +1,34 @@
> +# Copyright (C) 2008-2009 Sun Microsystems, Inc
> +#
> +# 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
> +
> +-- error ER_DBACCESS_DENIED_ERROR
> +alter table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> + add column foo integer;
> +
> +truncate table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> +
> +-- error ER_DBACCESS_DENIED_ERROR
> +ALTER TABLE performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> + ADD INDEX test_index(EVENT_NAME);
> +
> +-- error ER_DBACCESS_DENIED_ERROR
> +CREATE UNIQUE INDEX test_index
> + ON performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME(EVENT_NAME);
> +
>
> === removed file 'mysql-test/suite/perfschema/t/ddl_processlist.test'
> --- a/mysql-test/suite/perfschema/t/ddl_processlist.test 2010-01-12 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/t/ddl_processlist.test 1970-01-01 00:00:00 +0000
> @@ -1,32 +0,0 @@
> -# Copyright (C) 2008-2009 Sun Microsystems, Inc
> -#
> -# 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
> -
> --- error ER_DBACCESS_DENIED_ERROR
> -alter table performance_schema.PROCESSLIST add column foo integer;
> -
> --- error ER_WRONG_PERFSCHEMA_USAGE
> -truncate table performance_schema.PROCESSLIST;
> -
> --- error ER_DBACCESS_DENIED_ERROR
> -ALTER TABLE performance_schema.PROCESSLIST ADD INDEX test_index(ID);
> -
> --- error ER_DBACCESS_DENIED_ERROR
> -CREATE UNIQUE INDEX test_index ON performance_schema.PROCESSLIST(ID);
> -
>
> === removed file 'mysql-test/suite/perfschema/t/ddl_setup_objects.test'
> --- a/mysql-test/suite/perfschema/t/ddl_setup_objects.test 2010-01-12 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/t/ddl_setup_objects.test 1970-01-01 00:00:00 +0000
> @@ -1,32 +0,0 @@
> -# Copyright (C) 2009 Sun Microsystems, Inc
> -#
> -# 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_objects' '\'SETUP_OBJECTS'
> --- error ER_DBACCESS_DENIED_ERROR
> -alter table performance_schema.SETUP_OBJECTS add column foo integer;
> -
> -truncate table performance_schema.SETUP_OBJECTS;
> -
> --- error ER_DBACCESS_DENIED_ERROR
> -ALTER TABLE performance_schema.SETUP_OBJECTS ADD INDEX test_index(OBJECT_NAME);
> -
> --- error ER_DBACCESS_DENIED_ERROR
> -CREATE UNIQUE INDEX test_index ON performance_schema.SETUP_OBJECTS(OBJECT_NAME);
> -
>
> === added file 'mysql-test/suite/perfschema/t/ddl_threads.test'
> --- a/mysql-test/suite/perfschema/t/ddl_threads.test 1970-01-01 00:00:00 +0000
> +++ b/mysql-test/suite/perfschema/t/ddl_threads.test 2010-07-21 00:27:05 +0000
> @@ -0,0 +1,32 @@
> +# Copyright (C) 2008-2009 Sun Microsystems, Inc
> +#
> +# 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
> +
> +-- error ER_DBACCESS_DENIED_ERROR
> +alter table performance_schema.THREADS add column foo integer;
> +
> +-- error ER_WRONG_PERFSCHEMA_USAGE
> +truncate table performance_schema.THREADS;
> +
> +-- error ER_DBACCESS_DENIED_ERROR
> +ALTER TABLE performance_schema.THREADS ADD INDEX test_index(ID);
> +
> +-- error ER_DBACCESS_DENIED_ERROR
> +CREATE UNIQUE INDEX test_index ON performance_schema.THREADS(ID);
> +
>
> === removed file 'mysql-test/suite/perfschema/t/dml_ews_by_event_name.test'
> --- a/mysql-test/suite/perfschema/t/dml_ews_by_event_name.test 2010-01-12 01:47:27
> +0000
> +++ b/mysql-test/suite/perfschema/t/dml_ews_by_event_name.test 1970-01-01 00:00:00
> +0000
> @@ -1,62 +0,0 @@
> -# Copyright (C) 2009 Sun Microsystems, Inc
> -#
> -# 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_column 1 # 2 # 3 # 4 # 5 # 6 #
> -select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
> - where event_name like 'Wait/Synch/%' limit 1;
> -
> -select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
> - where event_name='FOO';
> -
> ---replace_result '\'events_waits_summary_by_event_name'
> '\'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
> ---error ER_TABLEACCESS_DENIED_ERROR
> -insert into performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
> - set event_name='FOO', count_star=1, sum_timer_wait=2, min_timer_wait=3,
> - avg_timer_wait=4, max_timer_wait=5;
> -
> ---replace_result '\'events_waits_summary_by_event_name'
> '\'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
> ---error ER_TABLEACCESS_DENIED_ERROR
> -update performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
> - set count_star=12;
> -
> ---replace_result '\'events_waits_summary_by_event_name'
> '\'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
> ---error ER_TABLEACCESS_DENIED_ERROR
> -update performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
> - set count_star=12 where event_name like "FOO";
> -
> ---replace_result '\'events_waits_summary_by_event_name'
> '\'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
> ---error ER_TABLEACCESS_DENIED_ERROR
> -delete from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
> - where count_star=1;
> -
> ---replace_result '\'events_waits_summary_by_event_name'
> '\'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
> ---error ER_TABLEACCESS_DENIED_ERROR
> -delete from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
> -
> ---replace_result '\'events_waits_summary_by_event_name'
> '\'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
> --- error ER_TABLEACCESS_DENIED_ERROR
> -LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME READ;
> -UNLOCK TABLES;
> -
> ---replace_result '\'events_waits_summary_by_event_name'
> '\'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
> --- error ER_TABLEACCESS_DENIED_ERROR
> -LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME WRITE;
> -UNLOCK TABLES;
> -
>
> === added file 'mysql-test/suite/perfschema/t/dml_ews_global_by_event_name.test'
> --- a/mysql-test/suite/perfschema/t/dml_ews_global_by_event_name.test 1970-01-01
> 00:00:00 +0000
> +++ b/mysql-test/suite/perfschema/t/dml_ews_global_by_event_name.test 2010-07-21
> 00:27:05 +0000
> @@ -0,0 +1,62 @@
> +# Copyright (C) 2009 Sun Microsystems, Inc
> +#
> +# 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_column 1 # 2 # 3 # 4 # 5 # 6 #
> +select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> + where event_name like 'Wait/Synch/%' limit 1;
> +
> +select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> + where event_name='FOO';
> +
> +--replace_result '\'events_waits_summary_global_by_event_name'
> '\'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> +--error ER_TABLEACCESS_DENIED_ERROR
> +insert into performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> + set event_name='FOO', count_star=1, sum_timer_wait=2, min_timer_wait=3,
> + avg_timer_wait=4, max_timer_wait=5;
> +
> +--replace_result '\'events_waits_summary_global_by_event_name'
> '\'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> +--error ER_TABLEACCESS_DENIED_ERROR
> +update performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> + set count_star=12;
> +
> +--replace_result '\'events_waits_summary_global_by_event_name'
> '\'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> +--error ER_TABLEACCESS_DENIED_ERROR
> +update performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> + set count_star=12 where event_name like "FOO";
> +
> +--replace_result '\'events_waits_summary_global_by_event_name'
> '\'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> +--error ER_TABLEACCESS_DENIED_ERROR
> +delete from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> + where count_star=1;
> +
> +--replace_result '\'events_waits_summary_global_by_event_name'
> '\'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> +--error ER_TABLEACCESS_DENIED_ERROR
> +delete from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
> +
> +--replace_result '\'events_waits_summary_global_by_event_name'
> '\'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> +-- error ER_TABLEACCESS_DENIED_ERROR
> +LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME READ;
> +UNLOCK TABLES;
> +
> +--replace_result '\'events_waits_summary_global_by_event_name'
> '\'EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME'
> +-- error ER_TABLEACCESS_DENIED_ERROR
> +LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME WRITE;
> +UNLOCK TABLES;
> +
>
> === removed file 'mysql-test/suite/perfschema/t/dml_processlist.test'
> --- a/mysql-test/suite/perfschema/t/dml_processlist.test 2010-01-12 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/t/dml_processlist.test 1970-01-01 00:00:00 +0000
> @@ -1,61 +0,0 @@
> -# Copyright (C) 2009 Sun Microsystems, Inc
> -#
> -# 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_column 1 # 2 # 3 #
> -select * from performance_schema.PROCESSLIST
> - where name like 'Thread/%' limit 1;
> -
> -select * from performance_schema.PROCESSLIST
> - where name='FOO';
> -
> ---replace_result '\'processlist' '\'PROCESSLIST'
> ---error ER_TABLEACCESS_DENIED_ERROR
> -insert into performance_schema.PROCESSLIST
> - set name='FOO', thread_id=1, id=2;
> -
> ---replace_result '\'processlist' '\'PROCESSLIST'
> ---error ER_TABLEACCESS_DENIED_ERROR
> -update performance_schema.PROCESSLIST
> - set thread_id=12;
> -
> ---replace_result '\'processlist' '\'PROCESSLIST'
> ---error ER_TABLEACCESS_DENIED_ERROR
> -update performance_schema.PROCESSLIST
> - set thread_id=12 where name like "FOO";
> -
> ---replace_result '\'processlist' '\'PROCESSLIST'
> ---error ER_TABLEACCESS_DENIED_ERROR
> -delete from performance_schema.PROCESSLIST
> - where id=1;
> -
> ---replace_result '\'processlist' '\'PROCESSLIST'
> ---error ER_TABLEACCESS_DENIED_ERROR
> -delete from performance_schema.PROCESSLIST;
> -
> ---replace_result '\'processlist' '\'PROCESSLIST'
> --- error ER_TABLEACCESS_DENIED_ERROR
> -LOCK TABLES performance_schema.PROCESSLIST READ;
> -UNLOCK TABLES;
> -
> ---replace_result '\'processlist' '\'PROCESSLIST'
> --- error ER_TABLEACCESS_DENIED_ERROR
> -LOCK TABLES performance_schema.PROCESSLIST WRITE;
> -UNLOCK TABLES;
> -
>
> === removed file 'mysql-test/suite/perfschema/t/dml_setup_objects.test'
> --- a/mysql-test/suite/perfschema/t/dml_setup_objects.test 2010-01-12 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/t/dml_setup_objects.test 1970-01-01 00:00:00 +0000
> @@ -1,75 +0,0 @@
> -# Copyright (C) 2009 Sun Microsystems, Inc
> -#
> -# 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
> -
> -select * from performance_schema.SETUP_OBJECTS;
> -
> -select * from performance_schema.SETUP_OBJECTS
> - where object_type = 'TABLE';
> -
> -select * from performance_schema.SETUP_OBJECTS
> - where enabled='YES';
> -
> -# Not implemented yet
> ---replace_result '\'setup_objects' '\'SETUP_OBJECTS'
> ---error ER_ILLEGAL_HA
> -insert into performance_schema.SETUP_OBJECTS
> - set object_type='TABLE', object_schema='FOO', object_name='BAR',
> - enabled='YES', timed='YES', aggregated='YES';
> -
> -# Not implemented yet
> -# --error ER_ILLEGAL_HA
> -update performance_schema.SETUP_OBJECTS
> - set object_type='TABLE';
> -
> -# Not implemented yet
> -# --error ER_ILLEGAL_HA
> -update performance_schema.SETUP_OBJECTS
> - set object_schema='ILLEGAL';
> -
> -# Not implemented yet
> -# --error ER_ILLEGAL_HA
> -update performance_schema.SETUP_OBJECTS
> - set object_name='ILLEGAL';
> -
> -update performance_schema.SETUP_OBJECTS
> - set enabled='NO';
> -
> -update performance_schema.SETUP_OBJECTS
> - set timed='NO';
> -
> -update performance_schema.SETUP_OBJECTS
> - set aggregated='NO';
> -
> -select * from performance_schema.SETUP_OBJECTS;
> -
> -update performance_schema.SETUP_OBJECTS
> - set enabled='YES', timed='YES', aggregated='YES';
> -
> -delete from performance_schema.SETUP_OBJECTS
> - where object_type = 'TABLE';
> -
> -delete from performance_schema.SETUP_OBJECTS;
> -
> -LOCK TABLES performance_schema.SETUP_OBJECTS READ;
> -UNLOCK TABLES;
> -
> -LOCK TABLES performance_schema.SETUP_OBJECTS WRITE;
> -UNLOCK TABLES;
> -
>
> === added file 'mysql-test/suite/perfschema/t/dml_threads.test'
> --- a/mysql-test/suite/perfschema/t/dml_threads.test 1970-01-01 00:00:00 +0000
> +++ b/mysql-test/suite/perfschema/t/dml_threads.test 2010-07-21 00:27:05 +0000
> @@ -0,0 +1,61 @@
> +# Copyright (C) 2009 Sun Microsystems, Inc
> +#
> +# 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_column 1 # 2 # 3 #
> +select * from performance_schema.THREADS
> + where name like 'Thread/%' limit 1;
> +
> +select * from performance_schema.THREADS
> + where name='FOO';
> +
> +--replace_result '\'threads' '\'THREADS'
> +--error ER_TABLEACCESS_DENIED_ERROR
> +insert into performance_schema.THREADS
> + set name='FOO', thread_id=1, id=2;
> +
> +--replace_result '\'threads' '\'THREADS'
> +--error ER_TABLEACCESS_DENIED_ERROR
> +update performance_schema.THREADS
> + set thread_id=12;
> +
> +--replace_result '\'threads' '\'THREADS'
> +--error ER_TABLEACCESS_DENIED_ERROR
> +update performance_schema.THREADS
> + set thread_id=12 where name like "FOO";
> +
> +--replace_result '\'threads' '\'THREADS'
> +--error ER_TABLEACCESS_DENIED_ERROR
> +delete from performance_schema.THREADS
> + where id=1;
> +
> +--replace_result '\'threads' '\'THREADS'
> +--error ER_TABLEACCESS_DENIED_ERROR
> +delete from performance_schema.THREADS;
> +
> +--replace_result '\'threads' '\'THREADS'
> +-- error ER_TABLEACCESS_DENIED_ERROR
> +LOCK TABLES performance_schema.THREADS READ;
> +UNLOCK TABLES;
> +
> +--replace_result '\'threads' '\'THREADS'
> +-- error ER_TABLEACCESS_DENIED_ERROR
> +LOCK TABLES performance_schema.THREADS WRITE;
> +UNLOCK TABLES;
> +
>
> === modified file 'mysql-test/suite/perfschema/t/func_file_io.test'
> --- a/mysql-test/suite/perfschema/t/func_file_io.test 2010-01-12 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/t/func_file_io.test 2010-07-21 00:27:05 +0000
> @@ -144,7 +144,7 @@ WHERE FILE_NAME LIKE CONCAT('%', @@tmpdi
> #
> --disable_result_log
> SELECT EVENT_NAME, COUNT_STAR, AVG_TIMER_WAIT, SUM_TIMER_WAIT
> -FROM performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
> +FROM performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> WHERE COUNT_STAR> 0
> ORDER BY SUM_TIMER_WAIT DESC
> LIMIT 10;
> @@ -158,7 +158,7 @@ LIMIT 10;
> SELECT i.user, SUM(TIMER_WAIT) SUM_WAIT
> # ((TIME_TO_SEC(TIMEDIFF(NOW(), i.startup_time)) * 1000) / SUM(TIMER_WAIT)) * 100
> WAIT_PERCENTAGE
> FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
> -INNER JOIN performance_schema.PROCESSLIST p USING (THREAD_ID)
> +INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
> LEFT JOIN information_schema.PROCESSLIST i USING (ID)
> GROUP BY i.user
> ORDER BY SUM_WAIT DESC
> @@ -171,7 +171,7 @@ LIMIT 20;
> --disable_result_log
> SELECT h.EVENT_NAME, SUM(h.TIMER_WAIT) TOTAL_WAIT
> FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
> -INNER JOIN performance_schema.PROCESSLIST p USING (THREAD_ID)
> +INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
> WHERE p.ID = 1
> GROUP BY h.EVENT_NAME
> HAVING TOTAL_WAIT> 0;
> @@ -184,7 +184,7 @@ HAVING TOTAL_WAIT> 0;
> --disable_result_log
> SELECT i.user, h.operation, SUM(NUMBER_OF_BYTES) bytes
> FROM performance_schema.EVENTS_WAITS_HISTORY_LONG h
> -INNER JOIN performance_schema.PROCESSLIST p USING (THREAD_ID)
> +INNER JOIN performance_schema.THREADS p USING (THREAD_ID)
> LEFT JOIN information_schema.PROCESSLIST i USING (ID)
> GROUP BY i.user, h.operation
> HAVING BYTES> 0
>
> === modified file 'mysql-test/suite/perfschema/t/misc.test'
> --- a/mysql-test/suite/perfschema/t/misc.test 2010-07-16 00:50:39 +0000
> +++ b/mysql-test/suite/perfschema/t/misc.test 2010-07-21 00:27:05 +0000
> @@ -27,7 +27,7 @@
> --disable_result_log
> SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT
> WHERE THREAD_ID IN
> - (SELECT THREAD_ID FROM performance_schema.PROCESSLIST)
> + (SELECT THREAD_ID FROM performance_schema.THREADS)
> AND EVENT_NAME IN
> (SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS
> WHERE NAME LIKE "wait/synch/%")
>
> === modified file 'mysql-test/suite/perfschema/t/no_threads.test'
> --- a/mysql-test/suite/perfschema/t/no_threads.test 2010-01-12 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/t/no_threads.test 2010-07-21 00:27:05 +0000
> @@ -45,10 +45,10 @@ show variables like "performance_schema_
>
> # Verification : in this main thread
>
> -select count(*) from performance_schema.PROCESSLIST
> +select count(*) from performance_schema.THREADS
> where name like "thread/sql/main";
>
> -select count(*) from performance_schema.PROCESSLIST
> +select count(*) from performance_schema.THREADS
> where name like "thread/sql/OneConnection";
>
> select event_name, operation,
>
> === modified file 'mysql-test/suite/perfschema/t/schema.test'
> --- a/mysql-test/suite/perfschema/t/schema.test 2010-01-12 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/t/schema.test 2010-07-21 00:27:05 +0000
> @@ -29,18 +29,17 @@ 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 EVENTS_WAITS_SUMMARY_GLOBAL_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 PROCESSLIST;
> 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;
>
>
> === modified file 'mysql-test/suite/perfschema/t/selects.test'
> --- a/mysql-test/suite/perfschema/t/selects.test 2010-01-12 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/t/selects.test 2010-07-21 00:27:05 +0000
> @@ -45,7 +45,7 @@ LIMIT 1;
> --replace_column 1 [EVENT_ID]
> SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT
> WHERE THREAD_ID IN
> - (SELECT THREAD_ID FROM performance_schema.PROCESSLIST)
> + (SELECT THREAD_ID FROM performance_schema.THREADS)
> AND EVENT_NAME IN
> (SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS
> WHERE NAME LIKE "wait/synch/%")
> @@ -123,7 +123,7 @@ delimiter |;
>
> CREATE PROCEDURE t_ps_proc(IN tid INT, OUT pid INT)
> BEGIN
> - SELECT id FROM performance_schema.PROCESSLIST
> + SELECT id FROM performance_schema.THREADS
> WHERE THREAD_ID = tid INTO pid;
> END;
>
> @@ -139,7 +139,7 @@ delimiter |;
>
> CREATE FUNCTION t_ps_func(tid INT) RETURNS int
> BEGIN
> - return (SELECT id FROM performance_schema.PROCESSLIST
> + return (SELECT id FROM performance_schema.THREADS
> WHERE THREAD_ID = tid);
> END;
>
>
> === modified file 'mysql-test/suite/perfschema/t/start_server_no_thread_class.test'
> --- a/mysql-test/suite/perfschema/t/start_server_no_thread_class.test 2010-01-12
> 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/t/start_server_no_thread_class.test 2010-07-21
> 00:27:05 +0000
> @@ -31,7 +31,7 @@ select variable_value> 0 from informati
> where variable_name like 'PERFORMANCE_SCHEMA_THREAD_CLASSES_LOST';
>
> # Expect no instances
> -select count(*) from performance_schema.PROCESSLIST;
> +select count(*) from performance_schema.THREADS;
>
> # Expect no instances lost
> show status like "performance_schema_thread_instances_lost";
>
> === modified file 'mysql-test/suite/perfschema/t/start_server_no_thread_inst.test'
> --- a/mysql-test/suite/perfschema/t/start_server_no_thread_inst.test 2010-01-12
> 01:47:27 +0000
> +++ b/mysql-test/suite/perfschema/t/start_server_no_thread_inst.test 2010-07-21
> 00:27:05 +0000
> @@ -33,7 +33,7 @@ show status like "performance_schema_thr
> # Expect no instances
> show variables like "performance_schema_max_thread_instances";
>
> -select count(*) from performance_schema.PROCESSLIST;
> +select count(*) from performance_schema.THREADS;
>
> # Expect instances lost
> select variable_value> 0 from information_schema.global_status
>
> === modified file 'mysql-test/suite/perfschema/t/thread_cache.test'
> --- a/mysql-test/suite/perfschema/t/thread_cache.test 2010-07-16 13:50:50 +0000
> +++ b/mysql-test/suite/perfschema/t/thread_cache.test 2010-07-21 00:27:05 +0000
> @@ -30,14 +30,14 @@ connect (con1, localhost, root, , );
>
> let $con1_ID=`select connection_id()`;
>
> -let $con1_THREAD_ID=`select thread_id from performance_schema.PROCESSLIST
> +let $con1_THREAD_ID=`select thread_id from performance_schema.THREADS
> where ID = connection_id()`;
>
> connect (con2, localhost, root, , );
>
> let $con2_ID=`select connection_id()`;
>
> -let $con2_THREAD_ID=`select thread_id from performance_schema.PROCESSLIST
> +let $con2_THREAD_ID=`select thread_id from performance_schema.THREADS
> where ID = connection_id()`;
>
> connection default;
> @@ -58,7 +58,7 @@ connect (con3, localhost, root, , );
>
> let $con3_ID=`select connection_id()`;
>
> -let $con3_THREAD_ID=`select thread_id from performance_schema.PROCESSLIST
> +let $con3_THREAD_ID=`select thread_id from performance_schema.THREADS
> where ID = connection_id()`;
>
> disconnect con3;
> @@ -82,14 +82,14 @@ connect (con1, localhost, root, , );
>
> let $con1_ID=`select connection_id()`;
>
> -let $con1_THREAD_ID=`select thread_id from performance_schema.PROCESSLIST
> +let $con1_THREAD_ID=`select thread_id from performance_schema.THREADS
> where ID = connection_id()`;
>
> connect (con2, localhost, root, , );
>
> let $con2_ID=`select connection_id()`;
>
> -let $con2_THREAD_ID=`select thread_id from performance_schema.PROCESSLIST
> +let $con2_THREAD_ID=`select thread_id from performance_schema.THREADS
> where ID = connection_id()`;
>
> connection default;
> @@ -108,7 +108,7 @@ connect (con3, localhost, root, , );
>
> let $con3_ID=`select connection_id()`;
>
> -let $con3_THREAD_ID=`select thread_id from performance_schema.PROCESSLIST
> +let $con3_THREAD_ID=`select thread_id from performance_schema.THREADS
> where ID = connection_id()`;
>
> disconnect con3;
>
> === modified file 'scripts/mysql_system_tables.sql'
> --- a/scripts/mysql_system_tables.sql 2010-04-14 16:40:04 +0000
> +++ b/scripts/mysql_system_tables.sql 2010-07-21 00:27:05 +0000
> @@ -242,26 +242,6 @@ EXECUTE stmt;
> DROP PREPARE stmt;
>
> --
> --- TABLE EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
> ---
> -
> -SET @l1="CREATE TABLE performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME(";
> -SET @l2="EVENT_NAME VARCHAR(128) not null,";
> -SET @l3="COUNT_STAR BIGINT unsigned not null,";
> -SET @l4="SUM_TIMER_WAIT BIGINT unsigned not null,";
> -SET @l5="MIN_TIMER_WAIT BIGINT unsigned not null,";
> -SET @l6="AVG_TIMER_WAIT BIGINT unsigned not null,";
> -SET @l7="MAX_TIMER_WAIT BIGINT unsigned not null";
> -SET @l8=")ENGINE=PERFORMANCE_SCHEMA;";
> -
> -SET @cmd=concat(@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8);
> -
> -SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0');
> -PREPARE stmt FROM @str;
> -EXECUTE stmt;
> -DROP PREPARE stmt;
> -
> ---
> -- TABLE EVENTS_WAITS_SUMMARY_BY_INSTANCE
> --
>
> @@ -304,6 +284,26 @@ EXECUTE stmt;
> DROP PREPARE stmt;
>
> --
> +-- TABLE EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
> +--
> +
> +SET @l1="CREATE TABLE
> performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME(";
> +SET @l2="EVENT_NAME VARCHAR(128) not null,";
> +SET @l3="COUNT_STAR BIGINT unsigned not null,";
> +SET @l4="SUM_TIMER_WAIT BIGINT unsigned not null,";
> +SET @l5="MIN_TIMER_WAIT BIGINT unsigned not null,";
> +SET @l6="AVG_TIMER_WAIT BIGINT unsigned not null,";
> +SET @l7="MAX_TIMER_WAIT BIGINT unsigned not null";
> +SET @l8=")ENGINE=PERFORMANCE_SCHEMA;";
> +
> +SET @cmd=concat(@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8);
> +
> +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0');
> +PREPARE stmt FROM @str;
> +EXECUTE stmt;
> +DROP PREPARE stmt;
> +
> +--
> -- TABLE FILE_INSTANCES
> --
>
> @@ -395,23 +395,6 @@ EXECUTE stmt;
> DROP PREPARE stmt;
>
> --
> --- TABLE PROCESSLIST
> ---
> -
> -SET @l1="CREATE TABLE performance_schema.PROCESSLIST(";
> -SET @l2="THREAD_ID INTEGER not null,";
> -SET @l3="ID INTEGER not null,";
> -SET @l4="NAME VARCHAR(64) 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 RWLOCK_INSTANCES
> --
>
> @@ -463,19 +446,15 @@ EXECUTE stmt;
> DROP PREPARE stmt;
>
> --
> --- TABLE SETUP_OBJECTS
> +-- TABLE SETUP_TIMERS
> --
>
> -SET @l1="CREATE TABLE performance_schema.SETUP_OBJECTS(";
> -SET @l2="OBJECT_TYPE VARCHAR(64),";
> -SET @l3="OBJECT_SCHEMA VARCHAR(64),";
> -SET @l4="OBJECT_NAME VARCHAR(64),";
> -SET @l5="ENABLED ENUM ('YES', 'NO') not null,";
> -SET @l6="TIMED ENUM ('YES', 'NO') not null,";
> -SET @l7="AGGREGATED ENUM ('YES', 'NO') not null";
> -SET @l8=")ENGINE=PERFORMANCE_SCHEMA;";
> +SET @l1="CREATE TABLE performance_schema.SETUP_TIMERS(";
> +SET @l2="NAME VARCHAR(64) not null,";
> +SET @l3="TIMER_NAME ENUM ('CYCLE', 'NANOSECOND', 'MICROSECOND', 'MILLISECOND',
> 'TICK') not null";
> +SET @l4=")ENGINE=PERFORMANCE_SCHEMA;";
>
> -SET @cmd=concat(@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8);
> +SET @cmd=concat(@l1,@l2,@l3,@l4);
>
> SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0');
> PREPARE stmt FROM @str;
> @@ -483,15 +462,16 @@ EXECUTE stmt;
> DROP PREPARE stmt;
>
> --
> --- TABLE SETUP_TIMERS
> +-- TABLE THREADS
> --
>
> -SET @l1="CREATE TABLE performance_schema.SETUP_TIMERS(";
> -SET @l2="NAME VARCHAR(64) not null,";
> -SET @l3="TIMER_NAME ENUM ('CYCLE', 'NANOSECOND', 'MICROSECOND', 'MILLISECOND',
> 'TICK') not null";
> -SET @l4=")ENGINE=PERFORMANCE_SCHEMA;";
> +SET @l1="CREATE TABLE performance_schema.THREADS(";
> +SET @l2="THREAD_ID INTEGER not null,";
> +SET @l3="ID INTEGER not null,";
> +SET @l4="NAME VARCHAR(64) not null";
> +SET @l5=")ENGINE=PERFORMANCE_SCHEMA;";
>
> -SET @cmd=concat(@l1,@l2,@l3,@l4);
> +SET @cmd=concat(@l1,@l2,@l3,@l4,@l5);
>
> SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0');
> PREPARE stmt FROM @str;
>
> === modified file 'storage/perfschema/CMakeLists.txt'
> --- a/storage/perfschema/CMakeLists.txt 2010-07-15 23:44:45 +0000
> +++ b/storage/perfschema/CMakeLists.txt 2010-07-21 00:27:05 +0000
> @@ -38,15 +38,15 @@ SET(PERFSCHEMA_SOURCES ha_perfschema.h
> table_all_instr.h
> table_events_waits.h
> table_events_waits_summary.h
> + table_ews_global_by_event_name.h
> table_file_instances.h
> table_file_summary.h
> table_performance_timers.h
> - table_processlist.h
> table_setup_consumers.h
> table_setup_instruments.h
> - table_setup_objects.h
> table_setup_timers.h
> table_sync_instances.h
> + table_threads.h
> ha_perfschema.cc
> pfs.cc
> pfs_column_values.cc
> @@ -60,15 +60,15 @@ SET(PERFSCHEMA_SOURCES ha_perfschema.h
> table_all_instr.cc
> table_events_waits.cc
> table_events_waits_summary.cc
> + table_ews_global_by_event_name.cc
> table_file_instances.cc
> table_file_summary.cc
> table_performance_timers.cc
> - table_processlist.cc
> table_setup_consumers.cc
> table_setup_instruments.cc
> - table_setup_objects.cc
> table_setup_timers.cc
> table_sync_instances.cc
> + table_threads.cc
> pfs_atomic.cc
> pfs_check.cc
> )
>
> === modified file 'storage/perfschema/Makefile.am'
> --- a/storage/perfschema/Makefile.am 2010-07-15 23:44:45 +0000
> +++ b/storage/perfschema/Makefile.am 2010-07-21 00:27:05 +0000
> @@ -39,12 +39,12 @@ noinst_HEADERS = ha_perfschema.h pfs_eng
> table_setup_instruments.h table_performance_timers.h \
> table_setup_timers.h \
> table_setup_consumers.h table_events_waits.h \
> - pfs_events_waits.h pfs_timer.h table_processlist.h \
> + pfs_events_waits.h pfs_timer.h table_threads.h \
> table_sync_instances.h \
> table_events_waits_summary.h pfs_stat.h \
> - table_all_instr.h \
> + table_ews_global_by_event_name.h table_all_instr.h \
> table_file_instances.h table_file_summary.h \
> - table_setup_objects.h pfs_lock.h pfs_atomic.h
> + pfs_lock.h pfs_atomic.h
>
> PSE_SOURCES = ha_perfschema.cc pfs_engine_table.cc pfs.cc pfs_server.cc \
> pfs_global.cc pfs_instr_class.cc pfs_instr.cc \
> @@ -52,12 +52,12 @@ PSE_SOURCES = ha_perfschema.cc pfs_engin
> table_setup_instruments.cc table_performance_timers.cc \
> table_setup_timers.cc \
> table_setup_consumers.cc table_events_waits.cc \
> - pfs_events_waits.cc pfs_timer.cc table_processlist.cc \
> + pfs_events_waits.cc pfs_timer.cc table_threads.cc \
> table_sync_instances.cc \
> table_events_waits_summary.cc \
> - table_all_instr.cc \
> + table_ews_global_by_event_name.cc table_all_instr.cc \
> table_file_instances.cc table_file_summary.cc \
> - table_setup_objects.cc pfs_atomic.cc pfs_check.cc
> + pfs_atomic.cc pfs_check.cc
>
> EXTRA_LIBRARIES = libperfschema.a
> noinst_LIBRARIES = @plugin_perfschema_static_target@
>
> === modified file 'storage/perfschema/pfs_engine_table.cc'
> --- a/storage/perfschema/pfs_engine_table.cc 2010-07-16 01:18:44 +0000
> +++ b/storage/perfschema/pfs_engine_table.cc 2010-07-21 00:27:05 +0000
> @@ -23,11 +23,11 @@
> #include "table_events_waits.h"
> #include "table_setup_consumers.h"
> #include "table_setup_instruments.h"
> -#include "table_setup_objects.h"
> #include "table_setup_timers.h"
> #include "table_performance_timers.h"
> -#include "table_processlist.h"
> +#include "table_threads.h"
> #include "table_events_waits_summary.h"
> +#include "table_ews_global_by_event_name.h"
> #include "table_sync_instances.h"
> #include "table_file_instances.h"
> #include "table_file_summary.h"
> @@ -52,13 +52,12 @@ static PFS_engine_table_share *all_share
> &table_events_waits_history_long::m_share,
> &table_setup_consumers::m_share,
> &table_setup_instruments::m_share,
> -&table_setup_objects::m_share,
> &table_setup_timers::m_share,
> &table_performance_timers::m_share,
> -&table_processlist::m_share,
> +&table_threads::m_share,
> &table_events_waits_summary_by_thread_by_event_name::m_share,
> -&table_events_waits_summary_by_event_name::m_share,
> &table_events_waits_summary_by_instance::m_share,
> +&table_ews_global_by_event_name::m_share,
> &table_file_summary_by_event_name::m_share,
> &table_file_summary_by_instance::m_share,
> &table_mutex_instances::m_share,
>
> === modified file 'storage/perfschema/table_events_waits_summary.cc'
> --- a/storage/perfschema/table_events_waits_summary.cc 2010-07-16 00:06:33 +0000
> +++ b/storage/perfschema/table_events_waits_summary.cc 2010-07-21 00:27:05 +0000
> @@ -338,144 +338,6 @@ int table_events_waits_summary_by_thread
> return 0;
> }
>
> -THR_LOCK table_events_waits_summary_by_event_name::m_table_lock;
> -
> -static const TABLE_FIELD_TYPE ews_by_event_name_field_types[]=
> -{
> - {
> - { C_STRING_WITH_LEN("EVENT_NAME") },
> - { C_STRING_WITH_LEN("varchar(128)") },
> - { NULL, 0}
> - },
> - {
> - { C_STRING_WITH_LEN("COUNT_STAR") },
> - { C_STRING_WITH_LEN("bigint(20)") },
> - { NULL, 0}
> - },
> - {
> - { C_STRING_WITH_LEN("SUM_TIMER_WAIT") },
> - { C_STRING_WITH_LEN("bigint(20)") },
> - { NULL, 0}
> - },
> - {
> - { C_STRING_WITH_LEN("MIN_TIMER_WAIT") },
> - { C_STRING_WITH_LEN("bigint(20)") },
> - { NULL, 0}
> - },
> - {
> - { C_STRING_WITH_LEN("AVG_TIMER_WAIT") },
> - { C_STRING_WITH_LEN("bigint(20)") },
> - { NULL, 0}
> - },
> - {
> - { C_STRING_WITH_LEN("MAX_TIMER_WAIT") },
> - { C_STRING_WITH_LEN("bigint(20)") },
> - { NULL, 0}
> - }
> -};
> -
> -TABLE_FIELD_DEF
> -table_events_waits_summary_by_event_name::m_field_def=
> -{ 6, ews_by_event_name_field_types };
> -
> -PFS_engine_table_share
> -table_events_waits_summary_by_event_name::m_share=
> -{
> - { C_STRING_WITH_LEN("EVENTS_WAITS_SUMMARY_BY_EVENT_NAME") },
> -&pfs_truncatable_acl,
> -&table_events_waits_summary_by_event_name::create,
> - NULL, /* write_row */
> -&table_events_waits_summary_by_event_name::delete_all_rows,
> - 1000, /* records */
> - sizeof(pos_all_instr_class),
> -&m_table_lock,
> -&m_field_def,
> - false /* checked */
> -};
> -
> -PFS_engine_table* table_events_waits_summary_by_event_name::create(void)
> -{
> - return new table_events_waits_summary_by_event_name();
> -}
> -
> -int table_events_waits_summary_by_event_name::delete_all_rows(void)
> -{
> - reset_instrument_class_waits();
> - return 0;
> -}
> -
> -table_events_waits_summary_by_event_name
> -::table_events_waits_summary_by_event_name()
> - : table_all_instr_class(&m_share)
> -{}
> -
> -void table_events_waits_summary_by_event_name
> -::make_instr_row(PFS_instr_class *klass)
> -{
> - m_row.m_name= klass->m_name;
> - m_row.m_name_length= klass->m_name_length;
> -
> - m_row.m_count= klass->m_wait_stat.m_count;
> - m_row.m_sum= klass->m_wait_stat.m_sum;
> - m_row.m_min= klass->m_wait_stat.m_min;
> - m_row.m_max= klass->m_wait_stat.m_max;
> -
> - if (m_row.m_count)
> - m_row.m_avg= m_row.m_sum / m_row.m_count;
> - else
> - {
> - m_row.m_min= 0;
> - m_row.m_avg= 0;
> - }
> -}
> -
> -int table_events_waits_summary_by_event_name
> -::read_row_values(TABLE *table, unsigned char *, Field **fields,
> - bool read_all)
> -{
> - Field *f;
> -
> - /* Set the null bits */
> - DBUG_ASSERT(table->s->null_bytes == 0);
> -
> - /*
> - The row always exist,
> - the instrument classes are static and never disappear.
> - */
> -
> - for (; (f= *fields) ; fields++)
> - {
> - if (read_all || bitmap_is_set(table->read_set, f->field_index))
> - {
> - switch(f->field_index)
> - {
> - case 0: /* NAME */
> - set_field_varchar_utf8(f, m_row.m_name, m_row.m_name_length);
> - break;
> - case 1: /* COUNT */
> - set_field_ulonglong(f, m_row.m_count);
> - break;
> - case 2: /* SUM */
> - set_field_ulonglong(f, m_row.m_sum);
> - break;
> - case 3: /* MIN */
> - set_field_ulonglong(f, m_row.m_min);
> - break;
> - case 4: /* AVG */
> - set_field_ulonglong(f, m_row.m_avg);
> - break;
> - case 5: /* MAX */
> - set_field_ulonglong(f, m_row.m_max);
> - break;
> - default:
> - DBUG_ASSERT(false);
> - }
> - }
> - }
> -
> - return 0;
> -}
> -
> THR_LOCK table_events_waits_summary_by_instance::m_table_lock;
>
> static const TABLE_FIELD_TYPE ews_by_instance_field_types[]=
>
> === modified file 'storage/perfschema/table_events_waits_summary.h'
> --- a/storage/perfschema/table_events_waits_summary.h 2010-07-16 00:06:33 +0000
> +++ b/storage/perfschema/table_events_waits_summary.h 2010-07-21 00:27:05 +0000
> @@ -144,58 +144,6 @@ private:
> pos_events_waits_summary_by_thread_by_event_name m_next_pos;
> };
>
> -/** A row of PERFORMANCE_SCHEMA.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME. */
> -struct row_events_waits_summary_by_event_name
> -{
> - /** Column EVENT_NAME. */
> - const char *m_name;
> - /** Length in bytes of @c m_name. */
> - uint m_name_length;
> - /** Column COUNT_STAR. */
> - ulonglong m_count;
> - /** Column SUM_TIMER_WAIT. */
> - ulonglong m_sum;
> - /** Column MIN_TIMER_WAIT. */
> - ulonglong m_min;
> - /** Column AVG_TIMER_WAIT. */
> - ulonglong m_avg;
> - /** Column MAX_TIMER_WAIT. */
> - ulonglong m_max;
> -};
> -
> -/** Table PERFORMANCE_SCHEMA.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME. */
> -class table_events_waits_summary_by_event_name : public table_all_instr_class
> -{
> -public:
> - /** Table share */
> - static PFS_engine_table_share m_share;
> - static PFS_engine_table* create();
> - static int delete_all_rows();
> -
> -protected:
> - virtual void make_instr_row(PFS_instr_class *klass);
> -
> - virtual int read_row_values(TABLE *table,
> - unsigned char *buf,
> - Field **fields,
> - bool read_all);
> -
> - table_events_waits_summary_by_event_name();
> -
> -public:
> - ~table_events_waits_summary_by_event_name()
> - {}
> -
> -private:
> - /** Table share lock. */
> - static THR_LOCK m_table_lock;
> - /** Fields definition. */
> - static TABLE_FIELD_DEF m_field_def;
> -
> - /** Current row. */
> - row_events_waits_summary_by_event_name m_row;
> -};
> -
> /** A row of PERFORMANCE_SCHEMA.EVENTS_WAITS_SUMMARY_BY_INSTANCE. */
> struct row_events_waits_summary_by_instance
> {
>
> === added file 'storage/perfschema/table_ews_global_by_event_name.cc'
> --- a/storage/perfschema/table_ews_global_by_event_name.cc 1970-01-01 00:00:00 +0000
> +++ b/storage/perfschema/table_ews_global_by_event_name.cc 2010-07-21 00:27:05 +0000
> @@ -0,0 +1,166 @@
> +/* 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,
> + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
> +
> +/**
> + @file storage/perfschema/table_ews_global_by_event_name.cc
> + Table EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME (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 "table_ews_global_by_event_name.h"
> +#include "pfs_global.h"
> +
> +THR_LOCK table_ews_global_by_event_name::m_table_lock;
> +
> +static const TABLE_FIELD_TYPE field_types[]=
> +{
> + {
> + { C_STRING_WITH_LEN("EVENT_NAME") },
> + { C_STRING_WITH_LEN("varchar(128)") },
> + { NULL, 0}
> + },
> + {
> + { C_STRING_WITH_LEN("COUNT_STAR") },
> + { C_STRING_WITH_LEN("bigint(20)") },
> + { NULL, 0}
> + },
> + {
> + { C_STRING_WITH_LEN("SUM_TIMER_WAIT") },
> + { C_STRING_WITH_LEN("bigint(20)") },
> + { NULL, 0}
> + },
> + {
> + { C_STRING_WITH_LEN("MIN_TIMER_WAIT") },
> + { C_STRING_WITH_LEN("bigint(20)") },
> + { NULL, 0}
> + },
> + {
> + { C_STRING_WITH_LEN("AVG_TIMER_WAIT") },
> + { C_STRING_WITH_LEN("bigint(20)") },
> + { NULL, 0}
> + },
> + {
> + { C_STRING_WITH_LEN("MAX_TIMER_WAIT") },
> + { C_STRING_WITH_LEN("bigint(20)") },
> + { NULL, 0}
> + }
> +};
> +
> +TABLE_FIELD_DEF
> +table_ews_global_by_event_name::m_field_def=
> +{ 6, field_types };
> +
> +PFS_engine_table_share
> +table_ews_global_by_event_name::m_share=
> +{
> + { C_STRING_WITH_LEN("EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME") },
> +&pfs_truncatable_acl,
> +&table_ews_global_by_event_name::create,
> + NULL, /* write_row */
> +&table_ews_global_by_event_name::delete_all_rows,
> + 1000, /* records */
> + sizeof(pos_all_instr_class),
> +&m_table_lock,
> +&m_field_def,
> + false /* checked */
> +};
> +
> +PFS_engine_table* table_ews_global_by_event_name::create(void)
> +{
> + return new table_ews_global_by_event_name();
> +}
> +
> +int table_ews_global_by_event_name::delete_all_rows(void)
> +{
> + reset_instrument_class_waits();
> + return 0;
> +}
> +
> +table_ews_global_by_event_name
> +::table_ews_global_by_event_name()
> + : table_all_instr_class(&m_share)
> +{}
> +
> +void table_ews_global_by_event_name
> +::make_instr_row(PFS_instr_class *klass)
> +{
> + m_row.m_name= klass->m_name;
> + m_row.m_name_length= klass->m_name_length;
> +
> + m_row.m_count= klass->m_wait_stat.m_count;
> + m_row.m_sum= klass->m_wait_stat.m_sum;
> + m_row.m_min= klass->m_wait_stat.m_min;
> + m_row.m_max= klass->m_wait_stat.m_max;
> +
> + if (m_row.m_count)
> + m_row.m_avg= m_row.m_sum / m_row.m_count;
> + else
> + {
> + m_row.m_min= 0;
> + m_row.m_avg= 0;
> + }
> +}
> +
> +int table_ews_global_by_event_name
> +::read_row_values(TABLE *table, unsigned char *, Field **fields,
> + bool read_all)
> +{
> + Field *f;
> +
> + /* Set the null bits */
> + DBUG_ASSERT(table->s->null_bytes == 0);
> +
> + /*
> + The row always exist,
> + the instrument classes are static and never disappear.
> + */
> +
> + for (; (f= *fields) ; fields++)
> + {
> + if (read_all || bitmap_is_set(table->read_set, f->field_index))
> + {
> + switch(f->field_index)
> + {
> + case 0: /* NAME */
> + set_field_varchar_utf8(f, m_row.m_name, m_row.m_name_length);
> + break;
> + case 1: /* COUNT */
> + set_field_ulonglong(f, m_row.m_count);
> + break;
> + case 2: /* SUM */
> + set_field_ulonglong(f, m_row.m_sum);
> + break;
> + case 3: /* MIN */
> + set_field_ulonglong(f, m_row.m_min);
> + break;
> + case 4: /* AVG */
> + set_field_ulonglong(f, m_row.m_avg);
> + break;
> + case 5: /* MAX */
> + set_field_ulonglong(f, m_row.m_max);
> + break;
> + default:
> + DBUG_ASSERT(false);
> + }
> + }
> + }
> +
> + return 0;
> +}
> +
>
> === added file 'storage/perfschema/table_ews_global_by_event_name.h'
> --- a/storage/perfschema/table_ews_global_by_event_name.h 1970-01-01 00:00:00 +0000
> +++ b/storage/perfschema/table_ews_global_by_event_name.h 2010-07-21 00:27:05 +0000
> @@ -0,0 +1,88 @@
> +/* 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,
> + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
> +
> +#ifndef TABLE_EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME_H
> +#define TABLE_EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME_H
> +
> +/**
> + @file storage/perfschema/table_ews_global_by_event_name.h
> + Table EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME (declarations).
> +*/
> +
> +#include "pfs_column_types.h"
> +#include "pfs_engine_table.h"
> +#include "pfs_instr_class.h"
> +#include "pfs_instr.h"
> +#include "table_all_instr.h"
> +
> +/**
> + @addtogroup Performance_schema_tables
> + @{
> +*/
> +
> +/** A row of PERFORMANCE_SCHEMA.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME. */
> +struct row_ews_global_by_event_name
> +{
> + /** Column EVENT_NAME. */
> + const char *m_name;
> + /** Length in bytes of @c m_name. */
> + uint m_name_length;
> + /** Column COUNT_STAR. */
> + ulonglong m_count;
> + /** Column SUM_TIMER_WAIT. */
> + ulonglong m_sum;
> + /** Column MIN_TIMER_WAIT. */
> + ulonglong m_min;
> + /** Column AVG_TIMER_WAIT. */
> + ulonglong m_avg;
> + /** Column MAX_TIMER_WAIT. */
> + ulonglong m_max;
> +};
> +
> +/** Table PERFORMANCE_SCHEMA.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME. */
> +class table_ews_global_by_event_name : public table_all_instr_class
> +{
> +public:
> + /** Table share */
> + static PFS_engine_table_share m_share;
> + static PFS_engine_table* create();
> + static int delete_all_rows();
> +
> +protected:
> + virtual void make_instr_row(PFS_instr_class *klass);
> +
> + virtual int read_row_values(TABLE *table,
> + unsigned char *buf,
> + Field **fields,
> + bool read_all);
> +
> + table_ews_global_by_event_name();
> +
> +public:
> + ~table_ews_global_by_event_name()
> + {}
> +
> +private:
> + /** Table share lock. */
> + static THR_LOCK m_table_lock;
> + /** Fields definition. */
> + static TABLE_FIELD_DEF m_field_def;
> +
> + /** Current row. */
> + row_ews_global_by_event_name m_row;
> +};
> +
> +/** @} */
> +#endif
>
> === removed file 'storage/perfschema/table_processlist.cc'
> --- a/storage/perfschema/table_processlist.cc 2010-07-16 00:06:33 +0000
> +++ b/storage/perfschema/table_processlist.cc 1970-01-01 00:00:00 +0000
> @@ -1,177 +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,
> - 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
> -
> -/**
> - @file storage/perfschema/table_processlist.cc
> - Table PROCESSLIST (implementation).
> -*/
> -
> -#include "my_global.h"
> -#include "my_pthread.h"
> -#include "table_processlist.h"
> -#include "pfs_instr_class.h"
> -#include "pfs_instr.h"
> -
> -THR_LOCK table_processlist::m_table_lock;
> -
> -static const TABLE_FIELD_TYPE field_types[]=
> -{
> - {
> - { C_STRING_WITH_LEN("THREAD_ID") },
> - { C_STRING_WITH_LEN("int(11)") },
> - { NULL, 0}
> - },
> - {
> - { C_STRING_WITH_LEN("ID") },
> - { C_STRING_WITH_LEN("int(11)") },
> - { NULL, 0}
> - },
> - {
> - { C_STRING_WITH_LEN("NAME") },
> - { C_STRING_WITH_LEN("varchar(64)") },
> - { NULL, 0}
> - }
> -};
> -
> -TABLE_FIELD_DEF
> -table_processlist::m_field_def=
> -{ 3, field_types };
> -
> -PFS_engine_table_share
> -table_processlist::m_share=
> -{
> - { C_STRING_WITH_LEN("PROCESSLIST") },
> -&pfs_readonly_acl,
> -&table_processlist::create,
> - NULL, /* write_row */
> - NULL, /* delete_all_rows */
> - 1000, /* records */
> - sizeof(PFS_simple_index), /* ref length */
> -&m_table_lock,
> -&m_field_def,
> - false /* checked */
> -};
> -
> -PFS_engine_table* table_processlist::create(void)
> -{
> - return new table_processlist();
> -}
> -
> -table_processlist::table_processlist()
> - : PFS_engine_table(&m_share,&m_pos),
> - m_row_exists(false), m_pos(0), m_next_pos(0)
> -{}
> -
> -void table_processlist::reset_position(void)
> -{
> - m_pos.m_index= 0;
> - m_next_pos.m_index= 0;
> -}
> -
> -int table_processlist::rnd_next(void)
> -{
> - PFS_thread *pfs;
> -
> - for (m_pos.set_at(&m_next_pos);
> - m_pos.m_index< thread_max;
> - m_pos.next())
> - {
> - pfs=&thread_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_processlist::rnd_pos(const void *pos)
> -{
> - PFS_thread *pfs;
> -
> - set_position(pos);
> - DBUG_ASSERT(m_pos.m_index< thread_max);
> - pfs=&thread_array[m_pos.m_index];
> - if (pfs->m_lock.is_populated())
> - {
> - make_row(pfs);
> - return 0;
> - }
> -
> - return HA_ERR_RECORD_DELETED;
> -}
> -
> -void table_processlist::make_row(PFS_thread *pfs)
> -{
> - pfs_lock lock;
> - PFS_thread_class *safe_class;
> -
> - m_row_exists= false;
> -
> - /* Protect this reader against thread termination */
> - pfs->m_lock.begin_optimistic_lock(&lock);
> -
> - safe_class= sanitize_thread_class(pfs->m_class);
> - if (unlikely(safe_class == NULL))
> - return;
> -
> - m_row.m_thread_internal_id= pfs->m_thread_internal_id;
> - m_row.m_thread_id= pfs->m_thread_id;
> - m_row.m_name= safe_class->m_name;
> - m_row.m_name_length= safe_class->m_name_length;
> -
> - if (pfs->m_lock.end_optimistic_lock(&lock))
> - m_row_exists= true;
> -}
> -
> -int table_processlist::read_row_values(TABLE *table,
> - unsigned char *,
> - 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 == 0);
> -
> - for (; (f= *fields) ; fields++)
> - {
> - if (read_all || bitmap_is_set(table->read_set, f->field_index))
> - {
> - switch(f->field_index)
> - {
> - case 0: /* THREAD_ID */
> - set_field_ulong(f, m_row.m_thread_internal_id);
> - break;
> - case 1: /* ID */
> - set_field_ulong(f, m_row.m_thread_id);
> - break;
> - case 2: /* NAME */
> - set_field_varchar_utf8(f, m_row.m_name, m_row.m_name_length);
> - break;
> - default:
> - DBUG_ASSERT(false);
> - }
> - }
> - }
> - return 0;
> -}
> -
>
> === removed file 'storage/perfschema/table_processlist.h'
> --- a/storage/perfschema/table_processlist.h 2010-07-16 00:06:33 +0000
> +++ b/storage/perfschema/table_processlist.h 1970-01-01 00:00:00 +0000
> @@ -1,91 +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,
> - 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
> -
> -#ifndef TABLE_PROCESSIST_H
> -#define TABLE_PROCESSIST_H
> -
> -/**
> - @file storage/perfschema/table_processlist.h
> - Table PROCESSLIST (declarations).
> -*/
> -
> -#include "pfs_column_types.h"
> -#include "pfs_engine_table.h"
> -
> -struct PFS_thread;
> -
> -/**
> - @addtogroup Performance_schema_tables
> - @{
> -*/
> -
> -/** A row of PERFORMANCE_SCHEMA.PROCESSLIST. */
> -struct row_processlist
> -{
> - /** Column THREAD_ID. */
> - ulong m_thread_internal_id;
> - /** Column ID. */
> - ulong m_thread_id;
> - /** Column NAME. */
> - const char *m_name;
> - /** Length in bytes of @c m_name. */
> - uint m_name_length;
> -};
> -
> -/** Table PERFORMANCE_SCHEMA.PROCESSLIST. */
> -class table_processlist : public PFS_engine_table
> -{
> -public:
> - /** Table share. */
> - static PFS_engine_table_share m_share;
> - static PFS_engine_table* create();
> -
> - 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);
> -
> -protected:
> - table_processlist();
> -
> -public:
> - ~table_processlist()
> - {}
> -
> -private:
> - void make_row(PFS_thread *pfs);
> -
> - /** Table share lock. */
> - static THR_LOCK m_table_lock;
> - /** Fields definition. */
> - static TABLE_FIELD_DEF m_field_def;
> -
> - /** Current row. */
> - row_processlist 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
>
> === removed file 'storage/perfschema/table_setup_objects.cc'
> --- a/storage/perfschema/table_setup_objects.cc 2010-03-31 14:05:33 +0000
> +++ b/storage/perfschema/table_setup_objects.cc 1970-01-01 00:00:00 +0000
> @@ -1,281 +0,0 @@
> -/* Copyright (C) 2008-2009 Sun Microsystems, Inc
> -
> - 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_objects.cc
> - Table SETUP_OBJECTS (implementation).
> -*/
> -
> -#include "sql_priv.h"
> -#include "unireg.h"
> -#include "pfs_instr_class.h"
> -#include "pfs_column_types.h"
> -#include "pfs_column_values.h"
> -#include "table_setup_objects.h"
> -#include "pfs_global.h"
> -
> -THR_LOCK table_setup_objects::m_table_lock;
> -
> -static const TABLE_FIELD_TYPE field_types[]=
> -{
> - {
> - { C_STRING_WITH_LEN("OBJECT_TYPE") },
> - { C_STRING_WITH_LEN("varchar(64)") },
> - { NULL, 0}
> - },
> - {
> - { C_STRING_WITH_LEN("OBJECT_SCHEMA") },
> - { C_STRING_WITH_LEN("varchar(64)") },
> - { NULL, 0}
> - },
> - {
> - { C_STRING_WITH_LEN("OBJECT_NAME") },
> - { C_STRING_WITH_LEN("varchar(64)") },
> - { NULL, 0}
> - },
> - {
> - { C_STRING_WITH_LEN("ENABLED") },
> - { C_STRING_WITH_LEN("enum(\'YES\',\'NO\')") },
> - { NULL, 0}
> - },
> - {
> - { C_STRING_WITH_LEN("TIMED") },
> - { C_STRING_WITH_LEN("enum(\'YES\',\'NO\')") },
> - { NULL, 0}
> - },
> - {
> - { C_STRING_WITH_LEN("AGGREGATED") },
> - { C_STRING_WITH_LEN("enum(\'YES\',\'NO\')") },
> - { NULL, 0}
> - }
> -};
> -
> -TABLE_FIELD_DEF
> -table_setup_objects::m_field_def=
> -{ 6, field_types };
> -
> -PFS_engine_table_share
> -table_setup_objects::m_share=
> -{
> - { C_STRING_WITH_LEN("SETUP_OBJECTS") },
> -&pfs_editable_acl,
> -&table_setup_objects::create,
> - table_setup_objects::write_row,
> - table_setup_objects::delete_all_rows,
> - 1000, /* records */
> - sizeof(pos_setup_objects),
> -&m_table_lock,
> -&m_field_def,
> - false /* checked */
> -};
> -
> -PFS_engine_table* table_setup_objects::create(void)
> -{
> - return new table_setup_objects();
> -}
> -
> -int table_setup_objects::write_row(TABLE *table, unsigned char *buf,
> - Field **fields)
> -{
> - /* Not implemented */
> - return HA_ERR_WRONG_COMMAND;
> -}
> -
> -int table_setup_objects::delete_all_rows(void)
> -{
> - /* Not implemented */
> - return HA_ERR_WRONG_COMMAND;
> -}
> -
> -table_setup_objects::table_setup_objects()
> - : PFS_engine_table(&m_share,&m_pos),
> - m_row_exists(false), m_pos(), m_next_pos()
> -{}
> -
> -void table_setup_objects::reset_position(void)
> -{
> - m_pos.reset();
> - m_next_pos.reset();
> -}
> -
> -int table_setup_objects::rnd_next(void)
> -{
> - PFS_table_share *table_share;
> -
> - for (m_pos.set_at(&m_next_pos);
> - m_pos.has_more_view();
> - m_pos.next_view())
> - {
> - switch (m_pos.m_index_1) {
> - case pos_setup_objects::VIEW_TABLE:
> - for ( ; m_pos.m_index_2< table_share_max; m_pos.m_index_2++)
> - {
> - table_share=&table_share_array[m_pos.m_index_2];
> - if (table_share->m_lock.is_populated())
> - {
> - make_row(table_share);
> - m_next_pos.set_after(&m_pos);
> - return 0;
> - }
> - }
> - break;
> - case pos_setup_objects::VIEW_EVENT:
> - case pos_setup_objects::VIEW_PROCEDURE:
> - case pos_setup_objects::VIEW_FUNCTION:
> - default:
> - break;
> - }
> - }
> -
> - return HA_ERR_END_OF_FILE;
> -}
> -
> -int table_setup_objects::rnd_pos(const void *pos)
> -{
> - PFS_table_share *share;
> -
> - set_position(pos);
> -
> - switch (m_pos.m_index_1) {
> - case pos_setup_objects::VIEW_TABLE:
> - DBUG_ASSERT(m_pos.m_index_2< table_share_max);
> - share=&table_share_array[m_pos.m_index_2];
> - if (share->m_lock.is_populated())
> - {
> - make_row(share);
> - return 0;
> - }
> - break;
> - case pos_setup_objects::VIEW_EVENT:
> - case pos_setup_objects::VIEW_PROCEDURE:
> - case pos_setup_objects::VIEW_FUNCTION:
> - default:
> - break;
> - }
> -
> - return HA_ERR_RECORD_DELETED;
> -}
> -
> -void table_setup_objects::make_row(PFS_table_share *share)
> -{
> - pfs_lock lock;
> -
> - m_row_exists= false;
> - if (share == NULL)
> - return;
> -
> - share->m_lock.begin_optimistic_lock(&lock);
> -
> - m_row.m_schema_name=&share->m_schema_name[0];
> - m_row.m_schema_name_length= share->m_schema_name_length;
> - m_row.m_object_name=&share->m_table_name[0];
> - m_row.m_object_name_length= share->m_table_name_length;
> - m_row.m_enabled_ptr=&share->m_enabled;
> - m_row.m_timed_ptr=&share->m_timed;
> - m_row.m_aggregated_ptr=&share->m_aggregated;
> -
> - if (share->m_lock.end_optimistic_lock(&lock))
> - m_row_exists= true;
> -}
> -
> -int table_setup_objects::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);
> - buf[0]= 0;
> -
> - for (; (f= *fields) ; fields++)
> - {
> - if (read_all || bitmap_is_set(table->read_set, f->field_index))
> - {
> - switch(f->field_index)
> - {
> - case 0: /* OBJECT_TYPE */
> - set_field_varchar_utf8(f, "TABLE", 5);
> - break;
> - case 1: /* OBJECT_SCHEMA */
> - set_field_varchar_utf8(f, m_row.m_schema_name,
> - m_row.m_schema_name_length);
> - break;
> - case 2: /* OBJECT_NAME */
> - set_field_varchar_utf8(f, m_row.m_object_name,
> - m_row.m_object_name_length);
> - break;
> - case 3: /* ENABLED */
> - set_field_enum(f, (*m_row.m_enabled_ptr) ? ENUM_YES : ENUM_NO);
> - break;
> - case 4: /* TIMED */
> - set_field_enum(f, (*m_row.m_timed_ptr) ? ENUM_YES : ENUM_NO);
> - break;
> - case 5: /* AGGREGATED */
> - set_field_enum(f, (*m_row.m_aggregated_ptr) ? ENUM_YES : ENUM_NO);
> - break;
> - default:
> - DBUG_ASSERT(false);
> - }
> - }
> - }
> -
> - return 0;
> -}
> -
> -int table_setup_objects::update_row_values(TABLE *table,
> - const unsigned char *,
> - unsigned char *,
> - Field **fields)
> -{
> - Field *f;
> - enum_yes_no value;
> -
> - for (; (f= *fields) ; fields++)
> - {
> - if (bitmap_is_set(table->write_set, f->field_index))
> - {
> - switch(f->field_index)
> - {
> - case 0: /* OBJECT_TYPE */
> - case 1: /* OBJECT_SCHEMA */
> - case 2: /* OBJECT_NAME */
> - my_error(ER_WRONG_PERFSCHEMA_USAGE, MYF(0));
> - return HA_ERR_WRONG_COMMAND;
> - case 3: /* ENABLED */
> - value= (enum_yes_no) get_field_enum(f);
> - *m_row.m_enabled_ptr= (value == ENUM_YES) ? true : false;
> - break;
> - case 4: /* TIMED */
> - value= (enum_yes_no) get_field_enum(f);
> - *m_row.m_timed_ptr= (value == ENUM_YES) ? true : false;
> - break;
> - case 5: /* AGGREGATED */
> - value= (enum_yes_no) get_field_enum(f);
> - *m_row.m_aggregated_ptr= (value == ENUM_YES) ? true : false;
> - break;
> - default:
> - DBUG_ASSERT(false);
> - }
> - }
> - }
> -
> - return 0;
> -}
> -
>
> === removed file 'storage/perfschema/table_setup_objects.h'
> --- a/storage/perfschema/table_setup_objects.h 2010-01-12 01:47:27 +0000
> +++ b/storage/perfschema/table_setup_objects.h 1970-01-01 00:00:00 +0000
> @@ -1,125 +0,0 @@
> -/* Copyright (C) 2008-2009 Sun Microsystems, Inc
> -
> - 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_OBJECTS_H
> -#define TABLE_SETUP_OBJECTS_H
> -
> -/**
> - @file storage/perfschema/table_setup_objects.h
> - Table SETUP_OBJECTS (declarations).
> -*/
> -
> -#include "pfs_instr_class.h"
> -#include "pfs_engine_table.h"
> -
> -/**
> - @addtogroup Performance_schema_tables
> - @{
> -*/
> -
> -/** A row of PERFORMANCE_SCHEMA.SETUP_OBJECTS. */
> -struct row_setup_objects
> -{
> - /** Column SCHEMA_NAME. */
> - const char *m_schema_name;
> - /** Length in bytes of @c m_schema_name. */
> - uint m_schema_name_length;
> - /** Column OBJECT_NAME. */
> - const char *m_object_name;
> - /** Length in bytes of @c m_object_name. */
> - uint m_object_name_length;
> - /** Column ENABLED. */
> - bool *m_enabled_ptr;
> - /** Column TIMED. */
> - bool *m_timed_ptr;
> - /** Column AGGREGATED. */
> - bool *m_aggregated_ptr;
> -};
> -
> -/** Position of a cursor on PERFORMANCE_SCHEMA.SETUP_OBJECTS. */
> -struct pos_setup_objects : public PFS_double_index,
> - public PFS_object_view_constants
> -{
> - pos_setup_objects()
> - : PFS_double_index(VIEW_TABLE, 0)
> - {}
> -
> - inline void reset(void)
> - {
> - m_index_1= VIEW_TABLE;
> - m_index_2= 0;
> - }
> -
> - inline bool has_more_view(void)
> - { return (m_index_1<= VIEW_FUNCTION); }
> -
> - inline void next_view(void)
> - {
> - m_index_1++;
> - m_index_2= 0;
> - }
> -};
> -
> -/** Table PERFORMANCE_SCHEMA.SETUP_OBJECTS. */
> -class table_setup_objects : public PFS_engine_table
> -{
> -public:
> - /** Table share. */
> - static PFS_engine_table_share m_share;
> - static PFS_engine_table* create();
> - static int write_row(TABLE *table, unsigned char *buf, Field **fields);
> - static int delete_all_rows();
> -
> - 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);
> -
> - table_setup_objects();
> -
> -public:
> - ~table_setup_objects()
> - {}
> -
> -private:
> - void make_row(PFS_table_share *share);
> -
> - /** Table share lock. */
> - static THR_LOCK m_table_lock;
> - /** Fields definition. */
> - static TABLE_FIELD_DEF m_field_def;
> -
> - /** Current row. */
> - row_setup_objects m_row;
> - /** True is the current row exists. */
> - bool m_row_exists;
> - /** Current position. */
> - pos_setup_objects m_pos;
> - /** Next position. */
> - pos_setup_objects m_next_pos;
> -};
> -
> -/** @} */
> -#endif
>
> === added file 'storage/perfschema/table_threads.cc'
> --- a/storage/perfschema/table_threads.cc 1970-01-01 00:00:00 +0000
> +++ b/storage/perfschema/table_threads.cc 2010-07-21 00:27:05 +0000
> @@ -0,0 +1,177 @@
> +/* 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,
> + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
> +
> +/**
> + @file storage/perfschema/table_threads.cc
> + Table THREADS (implementation).
> +*/
> +
> +#include "my_global.h"
> +#include "my_pthread.h"
> +#include "table_threads.h"
> +#include "pfs_instr_class.h"
> +#include "pfs_instr.h"
> +
> +THR_LOCK table_threads::m_table_lock;
> +
> +static const TABLE_FIELD_TYPE field_types[]=
> +{
> + {
> + { C_STRING_WITH_LEN("THREAD_ID") },
> + { C_STRING_WITH_LEN("int(11)") },
> + { NULL, 0}
> + },
> + {
> + { C_STRING_WITH_LEN("ID") },
> + { C_STRING_WITH_LEN("int(11)") },
> + { NULL, 0}
> + },
> + {
> + { C_STRING_WITH_LEN("NAME") },
> + { C_STRING_WITH_LEN("varchar(64)") },
> + { NULL, 0}
> + }
> +};
> +
> +TABLE_FIELD_DEF
> +table_threads::m_field_def=
> +{ 3, field_types };
> +
> +PFS_engine_table_share
> +table_threads::m_share=
> +{
> + { C_STRING_WITH_LEN("THREADS") },
> +&pfs_readonly_acl,
> +&table_threads::create,
> + NULL, /* write_row */
> + NULL, /* delete_all_rows */
> + 1000, /* records */
> + sizeof(PFS_simple_index), /* ref length */
> +&m_table_lock,
> +&m_field_def,
> + false /* checked */
> +};
> +
> +PFS_engine_table* table_threads::create(void)
> +{
> + return new table_threads();
> +}
> +
> +table_threads::table_threads()
> + : PFS_engine_table(&m_share,&m_pos),
> + m_row_exists(false), m_pos(0), m_next_pos(0)
> +{}
> +
> +void table_threads::reset_position(void)
> +{
> + m_pos.m_index= 0;
> + m_next_pos.m_index= 0;
> +}
> +
> +int table_threads::rnd_next(void)
> +{
> + PFS_thread *pfs;
> +
> + for (m_pos.set_at(&m_next_pos);
> + m_pos.m_index< thread_max;
> + m_pos.next())
> + {
> + pfs=&thread_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_threads::rnd_pos(const void *pos)
> +{
> + PFS_thread *pfs;
> +
> + set_position(pos);
> + DBUG_ASSERT(m_pos.m_index< thread_max);
> + pfs=&thread_array[m_pos.m_index];
> + if (pfs->m_lock.is_populated())
> + {
> + make_row(pfs);
> + return 0;
> + }
> +
> + return HA_ERR_RECORD_DELETED;
> +}
> +
> +void table_threads::make_row(PFS_thread *pfs)
> +{
> + pfs_lock lock;
> + PFS_thread_class *safe_class;
> +
> + m_row_exists= false;
> +
> + /* Protect this reader against thread termination */
> + pfs->m_lock.begin_optimistic_lock(&lock);
> +
> + safe_class= sanitize_thread_class(pfs->m_class);
> + if (unlikely(safe_class == NULL))
> + return;
> +
> + m_row.m_thread_internal_id= pfs->m_thread_internal_id;
> + m_row.m_thread_id= pfs->m_thread_id;
> + m_row.m_name= safe_class->m_name;
> + m_row.m_name_length= safe_class->m_name_length;
> +
> + if (pfs->m_lock.end_optimistic_lock(&lock))
> + m_row_exists= true;
> +}
> +
> +int table_threads::read_row_values(TABLE *table,
> + unsigned char *,
> + 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 == 0);
> +
> + for (; (f= *fields) ; fields++)
> + {
> + if (read_all || bitmap_is_set(table->read_set, f->field_index))
> + {
> + switch(f->field_index)
> + {
> + case 0: /* THREAD_ID */
> + set_field_ulong(f, m_row.m_thread_internal_id);
> + break;
> + case 1: /* ID */
> + set_field_ulong(f, m_row.m_thread_id);
> + break;
> + case 2: /* NAME */
> + set_field_varchar_utf8(f, m_row.m_name, m_row.m_name_length);
> + break;
> + default:
> + DBUG_ASSERT(false);
> + }
> + }
> + }
> + return 0;
> +}
> +
>
> === added file 'storage/perfschema/table_threads.h'
> --- a/storage/perfschema/table_threads.h 1970-01-01 00:00:00 +0000
> +++ b/storage/perfschema/table_threads.h 2010-07-21 00:27:05 +0000
> @@ -0,0 +1,91 @@
> +/* 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,
> + 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
> +
> +#ifndef TABLE_THREADS_H
> +#define TABLE_THREADS_H
> +
> +/**
> + @file storage/perfschema/table_threads.h
> + Table THREADS (declarations).
> +*/
> +
> +#include "pfs_column_types.h"
> +#include "pfs_engine_table.h"
> +
> +struct PFS_thread;
> +
> +/**
> + @addtogroup Performance_schema_tables
> + @{
> +*/
> +
> +/** A row of PERFORMANCE_SCHEMA.THREADS. */
> +struct row_threads
> +{
> + /** Column THREAD_ID. */
> + ulong m_thread_internal_id;
> + /** Column ID. */
> + ulong m_thread_id;
> + /** Column NAME. */
> + const char *m_name;
> + /** Length in bytes of @c m_name. */
> + uint m_name_length;
> +};
> +
> +/** Table PERFORMANCE_SCHEMA.THREADS. */
> +class table_threads : public PFS_engine_table
> +{
> +public:
> + /** Table share. */
> + static PFS_engine_table_share m_share;
> + static PFS_engine_table* create();
> +
> + 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);
> +
> +protected:
> + table_threads();
> +
> +public:
> + ~table_threads()
> + {}
> +
> +private:
> + void make_row(PFS_thread *pfs);
> +
> + /** Table share lock. */
> + static THR_LOCK m_table_lock;
> + /** Fields definition. */
> + static TABLE_FIELD_DEF m_field_def;
> +
> + /** Current row. */
> + row_threads 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
>
>
>
>
>