Commit 26f1efd9 authored by Marc Alff's avatar Marc Alff

Bug#55416 Renaming of performance_schema tables 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.
parent ad264fa2
......@@ -25,17 +25,17 @@ update performance_schema.SETUP_CONSUMERS set enabled='YES';
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
......@@ -29,20 +29,19 @@ select * from performance_schema.COND_INSTANCES;
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:
......
......@@ -4,7 +4,7 @@ update performance_schema.SETUP_INSTRUMENTS set enabled = 'NO';
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_TIMER_WAIT))
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
......
alter table performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME add column foo integer;
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_BY_EVENT_NAME;
ALTER TABLE performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME ADD INDEX test_index(EVENT_NAME);
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_BY_EVENT_NAME(EVENT_NAME);
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'
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'
alter table performance_schema.PROCESSLIST add column foo integer;
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.PROCESSLIST;
truncate table performance_schema.THREADS;
ERROR HY000: Invalid performance_schema usage.
ALTER TABLE performance_schema.PROCESSLIST ADD INDEX test_index(ID);
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.PROCESSLIST(ID);
CREATE UNIQUE INDEX test_index ON performance_schema.THREADS(ID);
ERROR 42000: Access denied for user 'root'@'localhost' to database 'performance_schema'
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
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_BY_EVENT_NAME
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_BY_EVENT_NAME
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_BY_EVENT_NAME'
update performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
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_BY_EVENT_NAME'
update performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
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_BY_EVENT_NAME'
delete from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
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_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'
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_BY_EVENT_NAME WRITE;
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
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;
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;
select * from performance_schema.PROCESSLIST
select * from performance_schema.THREADS
where name like 'Thread/%' limit 1;
THREAD_ID ID NAME
# # #
select * from performance_schema.PROCESSLIST
select * from performance_schema.THREADS
where name='FOO';
THREAD_ID ID NAME
insert into performance_schema.PROCESSLIST
insert into performance_schema.THREADS
set name='FOO', thread_id=1, id=2;
ERROR 42000: INSERT command denied to user 'root'@'localhost' for table 'PROCESSLIST'
update performance_schema.PROCESSLIST
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 'PROCESSLIST'
update performance_schema.PROCESSLIST
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 'PROCESSLIST'
delete from performance_schema.PROCESSLIST
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 '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'
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.PROCESSLIST WRITE;
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'PROCESSLIST'
LOCK TABLES performance_schema.THREADS WRITE;
ERROR 42000: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'THREADS'
UNLOCK TABLES;
......@@ -90,27 +90,27 @@ SUM(SUM_NUMBER_OF_BYTES_WRITE) AS sum_num_bytes_write
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
......
......@@ -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_SCHEMA
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
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/%")
......
......@@ -17,11 +17,11 @@ show variables like "performance_schema_max_thread%";
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
......
......@@ -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 `EVENTS_WAITS_HISTORY_LONG` (
`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 `PERFORMANCE_TIMERS` (
`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_INSTRUMENTS` (
`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
......@@ -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/%")
......@@ -86,7 +86,7 @@ DROP TRIGGER t_ps_trigger;
DROP PROCEDURE IF EXISTS t_ps_proc;
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;
|
......@@ -94,7 +94,7 @@ CALL t_ps_proc(0, @p_id);
DROP FUNCTION IF EXISTS t_ps_proc;
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;
|
......
......@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
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
......
......@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
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
......
......@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
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
......
......@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
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
......
......@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
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
......
......@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
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
......
......@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
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
......
......@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
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
......
......@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
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 information_schema.global_status
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";
......
......@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
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
......
......@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
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
......
......@@ -21,20 +21,19 @@ select * from performance_schema.COND_INSTANCES;
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
......
......@@ -31,7 +31,7 @@ update performance_schema.SETUP_CONSUMERS set enabled = 'NO';
# 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_TIMER_WAIT))
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
......
......@@ -19,13 +19,16 @@
--source include/have_perfschema.inc
-- error ER_DBACCESS_DENIED_ERROR
alter table performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME add column foo integer;
alter table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
add column foo integer;
truncate table performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME;
truncate table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
-- error ER_DBACCESS_DENIED_ERROR
ALTER TABLE performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME ADD INDEX test_index(EVENT_NAME);
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_BY_EVENT_NAME(EVENT_NAME);
CREATE UNIQUE INDEX test_index
ON performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME(EVENT_NAME);
# 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);
......@@ -19,14 +19,14 @@
--source include/have_perfschema.inc
-- error ER_DBACCESS_DENIED_ERROR
alter table performance_schema.PROCESSLIST add column foo integer;
alter table performance_schema.THREADS add column foo integer;
-- error ER_WRONG_PERFSCHEMA_USAGE
truncate table performance_schema.PROCESSLIST;
truncate table performance_schema.THREADS;
-- error ER_DBACCESS_DENIED_ERROR
ALTER TABLE performance_schema.PROCESSLIST ADD INDEX test_index(ID);
ALTER TABLE performance_schema.THREADS ADD INDEX test_index(ID);
-- error ER_DBACCESS_DENIED_ERROR
CREATE UNIQUE INDEX test_index ON performance_schema.PROCESSLIST(ID);
CREATE UNIQUE INDEX test_index ON performance_schema.THREADS(ID);
......@@ -19,44 +19,44 @@
--source include/have_perfschema.inc
--replace_column 1 # 2 # 3 # 4 # 5 # 6 #
select * from performance_schema.EVENTS_WAITS_SUMMARY_BY_EVENT_NAME
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_BY_EVENT_NAME
select * from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
where event_name='FOO';
--replace_result '\'events_waits_summary_by_event_name' '\'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
--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_BY_EVENT_NAME
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_by_event_name' '\'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
--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_BY_EVENT_NAME
update performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
set count_star=12;
--replace_result '\'events_waits_summary_by_event_name' '\'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
--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_BY_EVENT_NAME
update performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_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'
--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_BY_EVENT_NAME
delete from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME
where count_star=1;
--replace_result '\'events_waits_summary_by_event_name' '\'EVENTS_WAITS_SUMMARY_BY_EVENT_NAME'
--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_BY_EVENT_NAME;
delete from performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME;
--replace_result '\'events_waits_summary_by_event_name' '\'EVENTS_WAITS_SUMMARY_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_BY_EVENT_NAME READ;
LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME READ;
UNLOCK TABLES;
--replace_result '\'events_waits_summary_by_event_name' '\'EVENTS_WAITS_SUMMARY_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_BY_EVENT_NAME WRITE;
LOCK TABLES performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME WRITE;
UNLOCK TABLES;
# 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;
......@@ -19,43 +19,43 @@
--source include/have_perfschema.inc
--replace_column 1 # 2 # 3 #
select * from performance_schema.PROCESSLIST
select * from performance_schema.THREADS
where name like 'Thread/%' limit 1;
select * from performance_schema.PROCESSLIST
select * from performance_schema.THREADS
where name='FOO';
--replace_result '\'processlist' '\'PROCESSLIST'
--replace_result '\'threads' '\'THREADS'
--error ER_TABLEACCESS_DENIED_ERROR
insert into performance_schema.PROCESSLIST
insert into performance_schema.THREADS
set name='FOO', thread_id=1, id=2;
--replace_result '\'processlist' '\'PROCESSLIST'
--replace_result '\'threads' '\'THREADS'
--error ER_TABLEACCESS_DENIED_ERROR
update performance_schema.PROCESSLIST
update performance_schema.THREADS
set thread_id=12;
--replace_result '\'processlist' '\'PROCESSLIST'
--replace_result '\'threads' '\'THREADS'
--error ER_TABLEACCESS_DENIED_ERROR
update performance_schema.PROCESSLIST
update performance_schema.THREADS
set thread_id=12 where name like "FOO";
--replace_result '\'processlist' '\'PROCESSLIST'
--replace_result '\'threads' '\'THREADS'
--error ER_TABLEACCESS_DENIED_ERROR
delete from performance_schema.PROCESSLIST
delete from performance_schema.THREADS
where id=1;
--replace_result '\'processlist' '\'PROCESSLIST'
--replace_result '\'threads' '\'THREADS'
--error ER_TABLEACCESS_DENIED_ERROR
delete from performance_schema.PROCESSLIST;
delete from performance_schema.THREADS;
--replace_result '\'processlist' '\'PROCESSLIST'
--replace_result '\'threads' '\'THREADS'
-- error ER_TABLEACCESS_DENIED_ERROR
LOCK TABLES performance_schema.PROCESSLIST READ;
LOCK TABLES performance_schema.THREADS READ;
UNLOCK TABLES;
--replace_result '\'processlist' '\'PROCESSLIST'
--replace_result '\'threads' '\'THREADS'
-- error ER_TABLEACCESS_DENIED_ERROR
LOCK TABLES performance_schema.PROCESSLIST WRITE;
LOCK TABLES performance_schema.THREADS WRITE;
UNLOCK TABLES;
......@@ -144,7 +144,7 @@ WHERE FILE_NAME LIKE CONCAT('%', @@tmpdir, '%') ORDER BY NULL;
#
--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
......
......@@ -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/%")
......
......@@ -45,10 +45,10 @@ show variables like "performance_schema_max_thread%";
# 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,
......
......@@ -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;
......@@ -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/%")
......@@ -138,7 +138,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;
......@@ -157,7 +157,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;
......
......@@ -31,7 +31,7 @@ select variable_value > 0 from information_schema.global_status
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";
......
......@@ -33,7 +33,7 @@ show status like "performance_schema_thread_classes_lost";
# 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
......
......@@ -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;
......
......@@ -241,26 +241,6 @@ PREPARE stmt FROM @str;
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
--
......@@ -303,6 +283,26 @@ PREPARE stmt FROM @str;
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
--
......@@ -394,23 +394,6 @@ PREPARE stmt FROM @str;
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;
......
......@@ -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
)
......
......@@ -39,12 +39,12 @@ noinst_HEADERS = ha_perfschema.h pfs_engine_table.h pfs.h pfs_server.h \
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_engine_table.cc pfs.cc pfs_server.cc \
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@
......
......@@ -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_shares[]=
&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,
......
......@@ -338,144 +338,6 @@ int table_events_waits_summary_by_thread_by_event_name
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[]=
......
......@@ -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
{
......
/* 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;
}
/* Copyright (C) 2008-2009 Sun Microsystems, Inc
/* 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
......@@ -10,115 +10,78 @@
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 */
along with this program; if not, write to the Free Software Foundation,
51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
#ifndef TABLE_SETUP_OBJECTS_H
#define TABLE_SETUP_OBJECTS_H
#ifndef TABLE_EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME_H
#define TABLE_EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME_H
/**
@file storage/perfschema/table_setup_objects.h
Table SETUP_OBJECTS (declarations).
@file storage/perfschema/table_ews_global_by_event_name.h
Table EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME (declarations).
*/
#include "pfs_instr_class.h"
#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.SETUP_OBJECTS. */
struct row_setup_objects
/** A row of PERFORMANCE_SCHEMA.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME. */
struct row_ews_global_by_event_name
{
/** 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;
/** 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;
};
/** 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
/** 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. */
/** 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 void make_instr_row(PFS_instr_class *klass);
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();
table_ews_global_by_event_name();
public:
~table_setup_objects()
~table_ews_global_by_event_name()
{}
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;
row_ews_global_by_event_name m_row;
};
/** @} */
......
/* 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;
}
......@@ -14,17 +14,17 @@
51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
/**
@file storage/perfschema/table_processlist.cc
Table PROCESSLIST (implementation).
@file storage/perfschema/table_threads.cc
Table THREADS (implementation).
*/
#include "my_global.h"
#include "my_pthread.h"
#include "table_processlist.h"
#include "table_threads.h"
#include "pfs_instr_class.h"
#include "pfs_instr.h"
THR_LOCK table_processlist::m_table_lock;
THR_LOCK table_threads::m_table_lock;
static const TABLE_FIELD_TYPE field_types[]=
{
......@@ -46,15 +46,15 @@ static const TABLE_FIELD_TYPE field_types[]=
};
TABLE_FIELD_DEF
table_processlist::m_field_def=
table_threads::m_field_def=
{ 3, field_types };
PFS_engine_table_share
table_processlist::m_share=
table_threads::m_share=
{
{ C_STRING_WITH_LEN("PROCESSLIST") },
{ C_STRING_WITH_LEN("THREADS") },
&pfs_readonly_acl,
&table_processlist::create,
&table_threads::create,
NULL, /* write_row */
NULL, /* delete_all_rows */
1000, /* records */
......@@ -64,23 +64,23 @@ table_processlist::m_share=
false /* checked */
};
PFS_engine_table* table_processlist::create(void)
PFS_engine_table* table_threads::create(void)
{
return new table_processlist();
return new table_threads();
}
table_processlist::table_processlist()
table_threads::table_threads()
: PFS_engine_table(&m_share, &m_pos),
m_row_exists(false), m_pos(0), m_next_pos(0)
{}
void table_processlist::reset_position(void)
void table_threads::reset_position(void)
{
m_pos.m_index= 0;
m_next_pos.m_index= 0;
}
int table_processlist::rnd_next(void)
int table_threads::rnd_next(void)
{
PFS_thread *pfs;
......@@ -100,7 +100,7 @@ int table_processlist::rnd_next(void)
return HA_ERR_END_OF_FILE;
}
int table_processlist::rnd_pos(const void *pos)
int table_threads::rnd_pos(const void *pos)
{
PFS_thread *pfs;
......@@ -116,7 +116,7 @@ int table_processlist::rnd_pos(const void *pos)
return HA_ERR_RECORD_DELETED;
}
void table_processlist::make_row(PFS_thread *pfs)
void table_threads::make_row(PFS_thread *pfs)
{
pfs_lock lock;
PFS_thread_class *safe_class;
......@@ -139,7 +139,7 @@ void table_processlist::make_row(PFS_thread *pfs)
m_row_exists= true;
}
int table_processlist::read_row_values(TABLE *table,
int table_threads::read_row_values(TABLE *table,
unsigned char *,
Field **fields,
bool read_all)
......
......@@ -13,12 +13,12 @@
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
#ifndef TABLE_THREADS_H
#define TABLE_THREADS_H
/**
@file storage/perfschema/table_processlist.h
Table PROCESSLIST (declarations).
@file storage/perfschema/table_threads.h
Table THREADS (declarations).
*/
#include "pfs_column_types.h"
......@@ -31,8 +31,8 @@ struct PFS_thread;
@{
*/
/** A row of PERFORMANCE_SCHEMA.PROCESSLIST. */
struct row_processlist
/** A row of PERFORMANCE_SCHEMA.THREADS. */
struct row_threads
{
/** Column THREAD_ID. */
ulong m_thread_internal_id;
......@@ -44,8 +44,8 @@ struct row_processlist
uint m_name_length;
};
/** Table PERFORMANCE_SCHEMA.PROCESSLIST. */
class table_processlist : public PFS_engine_table
/** Table PERFORMANCE_SCHEMA.THREADS. */
class table_threads : public PFS_engine_table
{
public:
/** Table share. */
......@@ -63,10 +63,10 @@ protected:
bool read_all);
protected:
table_processlist();
table_threads();
public:
~table_processlist()
~table_threads()
{}
private:
......@@ -78,7 +78,7 @@ private:
static TABLE_FIELD_DEF m_field_def;
/** Current row. */
row_processlist m_row;
row_threads m_row;
/** True is the current row exists. */
bool m_row_exists;
/** Current position. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment