Commit 167c5400 authored by Sergei Golubchik's avatar Sergei Golubchik

5.6.26

parent 3c372499
...@@ -16,12 +16,12 @@ NULL NULL NULL 1 2 3 NULL NULL ...@@ -16,12 +16,12 @@ NULL NULL NULL 1 2 3 NULL NULL
SELECT SCHEMA_NAME, DIGEST_TEXT, COUNT_STAR SELECT SCHEMA_NAME, DIGEST_TEXT, COUNT_STAR
FROM performance_schema.events_statements_summary_by_digest; FROM performance_schema.events_statements_summary_by_digest;
SCHEMA_NAME DIGEST_TEXT COUNT_STAR SCHEMA_NAME DIGEST_TEXT COUNT_STAR
test TRUNCATE TABLE performance_schema . events_statements_summary_by_digest 1 test TRUNCATE TABLE `performance_schema` . `events_statements_summary_by_digest` 1
test SELECT ? 1 test SELECT ? 1
test SELECT ? FROM DUAL 1 test SELECT ? FROM DUAL 1
test SELECT ?, ... 2 test SELECT ?, ... 2
test SELECT ? IS NULL 1 test SELECT ? IS NULL 1
test SELECT ? IS NOT NULL 1 test SELECT ? IS NOT NULL 1
test SELECT ? IS NULL , ? IS NULL , ? IS NOT NULL , ? IS NOT NULL 1 test SELECT ? IS NULL , ? IS NULL , ? IS NOT NULL , ? IS NOT NULL 1
test CREATE TABLE foo ( a INTEGER DEFAULT ? , b INTEGER NOT NULL DEFAULT ? , c INTEGER NOT NULL ) 1 test CREATE TABLE `foo` ( `a` INTEGER DEFAULT ? , `b` INTEGER NOT NULL DEFAULT ? , `c` INTEGER NOT NULL ) 1
test DROP TABLE foo 1 test DROP TABLE `foo` 1
...@@ -113,7 +113,7 @@ SELECT SCHEMA_NAME, DIGEST, DIGEST_TEXT, COUNT_STAR, SUM_ROWS_AFFECTED, SUM_WARN ...@@ -113,7 +113,7 @@ SELECT SCHEMA_NAME, DIGEST, DIGEST_TEXT, COUNT_STAR, SUM_ROWS_AFFECTED, SUM_WARN
SUM_ERRORS FROM performance_schema.events_statements_summary_by_digest; SUM_ERRORS FROM performance_schema.events_statements_summary_by_digest;
SCHEMA_NAME DIGEST DIGEST_TEXT COUNT_STAR SUM_ROWS_AFFECTED SUM_WARNINGS SUM_ERRORS SCHEMA_NAME DIGEST DIGEST_TEXT COUNT_STAR SUM_ROWS_AFFECTED SUM_WARNINGS SUM_ERRORS
NULL NULL NULL 55 32 1 2 NULL NULL NULL 55 32 1 2
statements_digest e4a84a547a18a89f4708509a720def58 TRUNCATE TABLE performance_schema . events_statements_summary_by_digest 1 0 0 0 statements_digest 01cfd3c48ebe150803a02f0b32ab4f7b TRUNCATE TABLE `performance_schema` . `events_statements_summary_by_digest` 1 0 0 0
SHOW VARIABLES LIKE "performance_schema_digests_size"; SHOW VARIABLES LIKE "performance_schema_digests_size";
Variable_name Value Variable_name Value
performance_schema_digests_size 2 performance_schema_digests_size 2
......
...@@ -20,11 +20,13 @@ lock tables performance_schema.setup_instruments write; ...@@ -20,11 +20,13 @@ lock tables performance_schema.setup_instruments write;
connection default; connection default;
select event_name, select event_name,
left(source, locate(":", source)) as short_source, left(source, locate(":", source)) as short_source,
timer_end, timer_wait, operation if(timer_end IS NULL, NULL, "SET") as timer_end,
if(timer_wait IS NULL, NULL, "SET") as timer_wait,
operation
from performance_schema.events_waits_current from performance_schema.events_waits_current
where event_name like "wait/synch/cond/sql/MDL_context::COND_wait_status"; where event_name like "wait/synch/cond/sql/MDL_context::COND_wait_status";
event_name short_source timer_end timer_wait operation event_name short_source timer_end timer_wait operation
wait/synch/cond/sql/MDL_context::COND_wait_status mdl.cc: NULL NULL timed_wait wait/synch/cond/sql/MDL_context::COND_wait_status mdl.cc: SET SET timed_wait
unlock tables; unlock tables;
update performance_schema.setup_instruments set enabled='NO'; update performance_schema.setup_instruments set enabled='NO';
update performance_schema.setup_instruments set enabled='YES'; update performance_schema.setup_instruments set enabled='YES';
......
...@@ -108,6 +108,7 @@ performance_schema_events_waits_history_size 10 ...@@ -108,6 +108,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -38,6 +38,7 @@ performance_schema_events_waits_history_size 10 ...@@ -38,6 +38,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -40,7 +40,7 @@ select digest, digest_text, count_star ...@@ -40,7 +40,7 @@ select digest, digest_text, count_star
from performance_schema.events_statements_summary_by_digest from performance_schema.events_statements_summary_by_digest
where digest_text like "%in_%_digest%"; where digest_text like "%in_%_digest%";
digest digest_text count_star digest digest_text count_star
8d588d616712c7d8dfabf22ce262662b SELECT ? AS in_master_digest 1 83fd516ccb1407eac535df09e5dd1e50 SELECT ? AS `in_master_digest` 1
insert into test.marker values (2); insert into test.marker values (2);
**** On Slave **** **** On Slave ****
select * from test.marker; select * from test.marker;
...@@ -67,7 +67,7 @@ select digest, digest_text, count_star ...@@ -67,7 +67,7 @@ select digest, digest_text, count_star
from performance_schema.events_statements_summary_by_digest from performance_schema.events_statements_summary_by_digest
where digest_text like "%in_%_digest%"; where digest_text like "%in_%_digest%";
digest digest_text count_star digest digest_text count_star
02e25175edc3b2834b9b41d58f5a8a6a SELECT ? AS in_slave_digest 1 073b595f4ca8178745392f361ef8a531 SELECT ? AS `in_slave_digest` 1
**** On Master **** **** On Master ****
delete from performance_schema.setup_objects delete from performance_schema.setup_objects
where object_schema='master'; where object_schema='master';
......
...@@ -101,20 +101,20 @@ drop database marker2_db; ...@@ -101,20 +101,20 @@ drop database marker2_db;
select thread_id, event_id, rpad(event_name, 28, ' ') event_name, rpad(current_schema, 10, ' ') current_schema, rpad(digest_text, 72, ' ') digest_text, sql_text from performance_schema.events_statements_history_long select thread_id, event_id, rpad(event_name, 28, ' ') event_name, rpad(current_schema, 10, ' ') current_schema, rpad(digest_text, 72, ' ') digest_text, sql_text from performance_schema.events_statements_history_long
where sql_text like '%marker%' order by event_id; where sql_text like '%marker%' order by event_id;
thread_id event_id event_name current_schema digest_text sql_text thread_id event_id event_name current_schema digest_text sql_text
[THREAD_ID] [EVENT_ID] statement/sql/create_db test CREATE SCHEMA marker1_db create database marker1_db [THREAD_ID] [EVENT_ID] statement/sql/create_db test CREATE SCHEMA `marker1_db` create database marker1_db
[THREAD_ID] [EVENT_ID] statement/sql/create_db test CREATE SCHEMA marker2_db create database marker2_db [THREAD_ID] [EVENT_ID] statement/sql/create_db test CREATE SCHEMA `marker2_db` create database marker2_db
[THREAD_ID] [EVENT_ID] statement/sql/create_table test CREATE TABLE marker1_db . table1 ( s1 INTEGER ) ENGINE = innodb create table marker1_db.table1 (s1 int) engine=innodb [THREAD_ID] [EVENT_ID] statement/sql/create_table test CREATE TABLE `marker1_db` . `table1` ( `s1` INTEGER ) ENGINE = `innodb` create table marker1_db.table1 (s1 int) engine=innodb
[THREAD_ID] [EVENT_ID] statement/sql/create_table test CREATE TABLE marker2_db . table1 ( s1 INTEGER ) ENGINE = innodb create table marker2_db.table1 (s1 int) engine=innodb [THREAD_ID] [EVENT_ID] statement/sql/create_table test CREATE TABLE `marker2_db` . `table1` ( `s1` INTEGER ) ENGINE = `innodb` create table marker2_db.table1 (s1 int) engine=innodb
[THREAD_ID] [EVENT_ID] statement/sql/create_table test CREATE TABLE marker2_db . table2 ( s1 INTEGER ) ENGINE = innodb create table marker2_db.table2 (s1 int) engine=innodb [THREAD_ID] [EVENT_ID] statement/sql/create_table test CREATE TABLE `marker2_db` . `table2` ( `s1` INTEGER ) ENGINE = `innodb` create table marker2_db.table2 (s1 int) engine=innodb
[THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO marker1_db . table1 VALUES (?) /* , ... */ insert into marker1_db.table1 values (1), (2), (3) [THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO `marker1_db` . `table1` VALUES (?) /* , ... */ insert into marker1_db.table1 values (1), (2), (3)
[THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO marker2_db . table1 VALUES (?) /* , ... */ insert into marker2_db.table1 values (1), (2), (3) [THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO `marker2_db` . `table1` VALUES (?) /* , ... */ insert into marker2_db.table1 values (1), (2), (3)
[THREAD_ID] [EVENT_ID] statement/sql/alter_table test ALTER TABLE marker1_db . table1 ADD COLUMN ( s2 VARCHARACTER (?) ) alter table marker1_db.table1 add column (s2 varchar(32)) [THREAD_ID] [EVENT_ID] statement/sql/alter_table test ALTER TABLE `marker1_db` . `table1` ADD COLUMN ( `s2` VARCHARACTER (?) ) alter table marker1_db.table1 add column (s2 varchar(32))
[THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO marker1_db . table1 VALUES (...) /* , ... */ insert into marker1_db.table1 values (4, 'four'), (5, 'five'), (6, 'six') [THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO `marker1_db` . `table1` VALUES (...) /* , ... */ insert into marker1_db.table1 values (4, 'four'), (5, 'five'), (6, 'six')
[THREAD_ID] [EVENT_ID] statement/sql/update test UPDATE marker1_db . table1 SET s1 = s1 + ? update marker1_db.table1 set s1 = s1 + 1 [THREAD_ID] [EVENT_ID] statement/sql/update test UPDATE `marker1_db` . `table1` SET `s1` = `s1` + ? update marker1_db.table1 set s1 = s1 + 1
[THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO marker1_db . table1 VALUES (...) /* , ... */ insert into marker1_db.table1 values (7, 'seven'), (8, 'eight'), (9, 'nine') [THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO `marker1_db` . `table1` VALUES (...) /* , ... */ insert into marker1_db.table1 values (7, 'seven'), (8, 'eight'), (9, 'nine')
[THREAD_ID] [EVENT_ID] statement/sql/delete test DELETE FROM marker1_db . table1 WHERE s1 > ? delete from marker1_db.table1 where s1 > 4 [THREAD_ID] [EVENT_ID] statement/sql/delete test DELETE FROM `marker1_db` . `table1` WHERE `s1` > ? delete from marker1_db.table1 where s1 > 4
[THREAD_ID] [EVENT_ID] statement/sql/drop_table test DROP TABLE marker2_db . table1 drop table marker2_db.table1 [THREAD_ID] [EVENT_ID] statement/sql/drop_table test DROP TABLE `marker2_db` . `table1` drop table marker2_db.table1
[THREAD_ID] [EVENT_ID] statement/sql/drop_db test DROP SCHEMA marker2_db drop database marker2_db [THREAD_ID] [EVENT_ID] statement/sql/drop_db test DROP SCHEMA `marker2_db` drop database marker2_db
# #
# STEP 4 - REPLICATE STATEMENT EVENTS ON MASTER TO SLAVE # STEP 4 - REPLICATE STATEMENT EVENTS ON MASTER TO SLAVE
...@@ -141,39 +141,39 @@ where (thread_id=@my_thread_id and digest_text like '%marker%')); ...@@ -141,39 +141,39 @@ where (thread_id=@my_thread_id and digest_text like '%marker%'));
select thread_id, event_id, rpad(event_name, 28, ' ') event_name, rpad(current_schema, 10, ' ') current_schema, rpad(digest_text, 72, ' ') digest_text, sql_text from master_events_statements_history_long order by event_id; select thread_id, event_id, rpad(event_name, 28, ' ') event_name, rpad(current_schema, 10, ' ') current_schema, rpad(digest_text, 72, ' ') digest_text, sql_text from master_events_statements_history_long order by event_id;
thread_id event_id event_name current_schema digest_text sql_text thread_id event_id event_name current_schema digest_text sql_text
[THREAD_ID] [EVENT_ID] statement/sql/create_db test CREATE SCHEMA marker1_db create database marker1_db [THREAD_ID] [EVENT_ID] statement/sql/create_db test CREATE SCHEMA `marker1_db` create database marker1_db
[THREAD_ID] [EVENT_ID] statement/sql/create_db test CREATE SCHEMA marker2_db create database marker2_db [THREAD_ID] [EVENT_ID] statement/sql/create_db test CREATE SCHEMA `marker2_db` create database marker2_db
[THREAD_ID] [EVENT_ID] statement/sql/create_table test CREATE TABLE marker1_db . table1 ( s1 INTEGER ) ENGINE = innodb create table marker1_db.table1 (s1 int) engine=innodb [THREAD_ID] [EVENT_ID] statement/sql/create_table test CREATE TABLE `marker1_db` . `table1` ( `s1` INTEGER ) ENGINE = `innodb` create table marker1_db.table1 (s1 int) engine=innodb
[THREAD_ID] [EVENT_ID] statement/sql/create_table test CREATE TABLE marker2_db . table1 ( s1 INTEGER ) ENGINE = innodb create table marker2_db.table1 (s1 int) engine=innodb [THREAD_ID] [EVENT_ID] statement/sql/create_table test CREATE TABLE `marker2_db` . `table1` ( `s1` INTEGER ) ENGINE = `innodb` create table marker2_db.table1 (s1 int) engine=innodb
[THREAD_ID] [EVENT_ID] statement/sql/create_table test CREATE TABLE marker2_db . table2 ( s1 INTEGER ) ENGINE = innodb create table marker2_db.table2 (s1 int) engine=innodb [THREAD_ID] [EVENT_ID] statement/sql/create_table test CREATE TABLE `marker2_db` . `table2` ( `s1` INTEGER ) ENGINE = `innodb` create table marker2_db.table2 (s1 int) engine=innodb
[THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO marker1_db . table1 VALUES (?) /* , ... */ insert into marker1_db.table1 values (1), (2), (3) [THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO `marker1_db` . `table1` VALUES (?) /* , ... */ insert into marker1_db.table1 values (1), (2), (3)
[THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO marker2_db . table1 VALUES (?) /* , ... */ insert into marker2_db.table1 values (1), (2), (3) [THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO `marker2_db` . `table1` VALUES (?) /* , ... */ insert into marker2_db.table1 values (1), (2), (3)
[THREAD_ID] [EVENT_ID] statement/sql/alter_table test ALTER TABLE marker1_db . table1 ADD COLUMN ( s2 VARCHARACTER (?) ) alter table marker1_db.table1 add column (s2 varchar(32)) [THREAD_ID] [EVENT_ID] statement/sql/alter_table test ALTER TABLE `marker1_db` . `table1` ADD COLUMN ( `s2` VARCHARACTER (?) ) alter table marker1_db.table1 add column (s2 varchar(32))
[THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO marker1_db . table1 VALUES (...) /* , ... */ insert into marker1_db.table1 values (4, 'four'), (5, 'five'), (6, 'six') [THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO `marker1_db` . `table1` VALUES (...) /* , ... */ insert into marker1_db.table1 values (4, 'four'), (5, 'five'), (6, 'six')
[THREAD_ID] [EVENT_ID] statement/sql/update test UPDATE marker1_db . table1 SET s1 = s1 + ? update marker1_db.table1 set s1 = s1 + 1 [THREAD_ID] [EVENT_ID] statement/sql/update test UPDATE `marker1_db` . `table1` SET `s1` = `s1` + ? update marker1_db.table1 set s1 = s1 + 1
[THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO marker1_db . table1 VALUES (...) /* , ... */ insert into marker1_db.table1 values (7, 'seven'), (8, 'eight'), (9, 'nine') [THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO `marker1_db` . `table1` VALUES (...) /* , ... */ insert into marker1_db.table1 values (7, 'seven'), (8, 'eight'), (9, 'nine')
[THREAD_ID] [EVENT_ID] statement/sql/delete test DELETE FROM marker1_db . table1 WHERE s1 > ? delete from marker1_db.table1 where s1 > 4 [THREAD_ID] [EVENT_ID] statement/sql/delete test DELETE FROM `marker1_db` . `table1` WHERE `s1` > ? delete from marker1_db.table1 where s1 > 4
[THREAD_ID] [EVENT_ID] statement/sql/drop_table test DROP TABLE marker2_db . table1 drop table marker2_db.table1 [THREAD_ID] [EVENT_ID] statement/sql/drop_table test DROP TABLE `marker2_db` . `table1` drop table marker2_db.table1
[THREAD_ID] [EVENT_ID] statement/sql/drop_db test DROP SCHEMA marker2_db drop database marker2_db [THREAD_ID] [EVENT_ID] statement/sql/drop_db test DROP SCHEMA `marker2_db` drop database marker2_db
*** List statement events on slave *** List statement events on slave
select thread_id, event_id, rpad(event_name, 28, ' ') event_name, rpad(current_schema, 10, ' ') current_schema, rpad(digest_text, 72, ' ') digest_text, sql_text from performance_schema.events_statements_history_long select thread_id, event_id, rpad(event_name, 28, ' ') event_name, rpad(current_schema, 10, ' ') current_schema, rpad(digest_text, 72, ' ') digest_text, sql_text from performance_schema.events_statements_history_long
where thread_id = @slave_thread_id and sql_text like '%marker%' order by event_id; where thread_id = @slave_thread_id and sql_text like '%marker%' order by event_id;
thread_id event_id event_name current_schema digest_text sql_text thread_id event_id event_name current_schema digest_text sql_text
[THREAD_ID] [EVENT_ID] statement/sql/create_db marker1_db CREATE SCHEMA marker1_db create database marker1_db [THREAD_ID] [EVENT_ID] statement/sql/create_db marker1_db CREATE SCHEMA `marker1_db` create database marker1_db
[THREAD_ID] [EVENT_ID] statement/sql/create_db marker2_db CREATE SCHEMA marker2_db create database marker2_db [THREAD_ID] [EVENT_ID] statement/sql/create_db marker2_db CREATE SCHEMA `marker2_db` create database marker2_db
[THREAD_ID] [EVENT_ID] statement/sql/create_table test CREATE TABLE marker1_db . table1 ( s1 INTEGER ) ENGINE = innodb create table marker1_db.table1 (s1 int) engine=innodb [THREAD_ID] [EVENT_ID] statement/sql/create_table test CREATE TABLE `marker1_db` . `table1` ( `s1` INTEGER ) ENGINE = `innodb` create table marker1_db.table1 (s1 int) engine=innodb
[THREAD_ID] [EVENT_ID] statement/sql/create_table test CREATE TABLE marker2_db . table1 ( s1 INTEGER ) ENGINE = innodb create table marker2_db.table1 (s1 int) engine=innodb [THREAD_ID] [EVENT_ID] statement/sql/create_table test CREATE TABLE `marker2_db` . `table1` ( `s1` INTEGER ) ENGINE = `innodb` create table marker2_db.table1 (s1 int) engine=innodb
[THREAD_ID] [EVENT_ID] statement/sql/create_table test CREATE TABLE marker2_db . table2 ( s1 INTEGER ) ENGINE = innodb create table marker2_db.table2 (s1 int) engine=innodb [THREAD_ID] [EVENT_ID] statement/sql/create_table test CREATE TABLE `marker2_db` . `table2` ( `s1` INTEGER ) ENGINE = `innodb` create table marker2_db.table2 (s1 int) engine=innodb
[THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO marker1_db . table1 VALUES (?) /* , ... */ insert into marker1_db.table1 values (1), (2), (3) [THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO `marker1_db` . `table1` VALUES (?) /* , ... */ insert into marker1_db.table1 values (1), (2), (3)
[THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO marker2_db . table1 VALUES (?) /* , ... */ insert into marker2_db.table1 values (1), (2), (3) [THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO `marker2_db` . `table1` VALUES (?) /* , ... */ insert into marker2_db.table1 values (1), (2), (3)
[THREAD_ID] [EVENT_ID] statement/sql/alter_table test ALTER TABLE marker1_db . table1 ADD COLUMN ( s2 VARCHARACTER (?) ) alter table marker1_db.table1 add column (s2 varchar(32)) [THREAD_ID] [EVENT_ID] statement/sql/alter_table test ALTER TABLE `marker1_db` . `table1` ADD COLUMN ( `s2` VARCHARACTER (?) ) alter table marker1_db.table1 add column (s2 varchar(32))
[THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO marker1_db . table1 VALUES (...) /* , ... */ insert into marker1_db.table1 values (4, 'four'), (5, 'five'), (6, 'six') [THREAD_ID] [EVENT_ID] statement/sql/insert test INSERT INTO `marker1_db` . `table1` VALUES (...) /* , ... */ insert into marker1_db.table1 values (4, 'four'), (5, 'five'), (6, 'six')
[THREAD_ID] [EVENT_ID] statement/sql/update test UPDATE marker1_db . table1 SET s1 = s1 + ? update marker1_db.table1 set s1 = s1 + 1 [THREAD_ID] [EVENT_ID] statement/sql/update test UPDATE `marker1_db` . `table1` SET `s1` = `s1` + ? update marker1_db.table1 set s1 = s1 + 1
[THREAD_ID] [EVENT_ID] statement/sql/delete test DELETE FROM marker1_db . table1 WHERE s1 > ? delete from marker1_db.table1 where s1 > 4 [THREAD_ID] [EVENT_ID] statement/sql/delete test DELETE FROM `marker1_db` . `table1` WHERE `s1` > ? delete from marker1_db.table1 where s1 > 4
[THREAD_ID] [EVENT_ID] statement/sql/drop_table test DROP TABLE `marker2_db` . `table1` DROP TABLE `marker2_db`.`table1` /* generated by server */ [THREAD_ID] [EVENT_ID] statement/sql/drop_table test DROP TABLE `marker2_db` . `table1` DROP TABLE `marker2_db`.`table1` /* generated by server */
[THREAD_ID] [EVENT_ID] statement/sql/drop_db marker2_db DROP SCHEMA marker2_db drop database marker2_db [THREAD_ID] [EVENT_ID] statement/sql/drop_db marker2_db DROP SCHEMA `marker2_db` drop database marker2_db
*** Compare master and slave events *** Compare master and slave events
...@@ -193,7 +193,6 @@ where t1.thread_id = @slave_thread_id and ...@@ -193,7 +193,6 @@ where t1.thread_id = @slave_thread_id and
sql_text like '%marker%' and sql_text like '%marker%' and
not exists (select * from master_events_statements_history_long t2 where t2.digest = t1.digest); not exists (select * from master_events_statements_history_long t2 where t2.digest = t1.digest);
thread_id event_id event_name digest digest_text sql_text thread_id event_id event_name digest digest_text sql_text
[THREAD_ID] [EVENT_ID] statement/sql/drop_table [DIGEST] DROP TABLE `marker2_db` . `table1` DROP TABLE `marker2_db`.`table1` /* generated by server */
# #
# STEP 6 - DISABLE REPLICATED STATEMENT EVENTS ON SLAVE # STEP 6 - DISABLE REPLICATED STATEMENT EVENTS ON SLAVE
......
...@@ -23,6 +23,7 @@ performance_schema_events_waits_history_size 10 ...@@ -23,6 +23,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 3504 performance_schema_max_cond_instances 3504
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 7693 performance_schema_max_file_instances 7693
......
...@@ -23,6 +23,7 @@ performance_schema_events_waits_history_size 10 ...@@ -23,6 +23,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 10900 performance_schema_max_cond_instances 10900
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 23385 performance_schema_max_file_instances 23385
......
...@@ -23,6 +23,7 @@ performance_schema_events_waits_history_size 5 ...@@ -23,6 +23,7 @@ performance_schema_events_waits_history_size 5
performance_schema_hosts_size 20 performance_schema_hosts_size 20
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 612 performance_schema_max_cond_instances 612
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 1556 performance_schema_max_file_instances 1556
......
...@@ -23,6 +23,7 @@ performance_schema_events_waits_history_size 10 ...@@ -23,6 +23,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1079 performance_schema_max_cond_instances 1079
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 1754 performance_schema_max_file_instances 1754
......
...@@ -14,6 +14,7 @@ performance_schema_events_waits_history_size -1 ...@@ -14,6 +14,7 @@ performance_schema_events_waits_history_size -1
performance_schema_hosts_size -1 performance_schema_hosts_size -1
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances -1 performance_schema_max_cond_instances -1
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances -1 performance_schema_max_file_instances -1
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 0 performance_schema_max_cond_classes 0
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 0 performance_schema_max_cond_instances 0
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 0 performance_schema_max_file_classes 0
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 0 performance_schema_max_file_instances 0
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 0 performance_schema_hosts_size 0
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 0 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 0
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 0 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 0
performance_schema_hosts_size 0 performance_schema_hosts_size 0
performance_schema_max_cond_classes 0 performance_schema_max_cond_classes 0
performance_schema_max_cond_instances 0 performance_schema_max_cond_instances 0
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 0 performance_schema_max_file_classes 0
performance_schema_max_file_handles 0 performance_schema_max_file_handles 0
performance_schema_max_file_instances 0 performance_schema_max_file_instances 0
...@@ -119,6 +120,7 @@ performance_schema_events_waits_history_size 0 ...@@ -119,6 +120,7 @@ performance_schema_events_waits_history_size 0
performance_schema_hosts_size 0 performance_schema_hosts_size 0
performance_schema_max_cond_classes 0 performance_schema_max_cond_classes 0
performance_schema_max_cond_instances 0 performance_schema_max_cond_instances 0
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 0 performance_schema_max_file_classes 0
performance_schema_max_file_handles 0 performance_schema_max_file_handles 0
performance_schema_max_file_instances 0 performance_schema_max_file_instances 0
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10 ...@@ -85,6 +85,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -112,42 +112,41 @@ DROP TRIGGER trg; ...@@ -112,42 +112,41 @@ DROP TRIGGER trg;
SELECT SCHEMA_NAME, DIGEST, DIGEST_TEXT, COUNT_STAR, SUM_ROWS_AFFECTED, SUM_WARNINGS, SELECT SCHEMA_NAME, DIGEST, DIGEST_TEXT, COUNT_STAR, SUM_ROWS_AFFECTED, SUM_WARNINGS,
SUM_ERRORS FROM performance_schema.events_statements_summary_by_digest; SUM_ERRORS FROM performance_schema.events_statements_summary_by_digest;
SCHEMA_NAME DIGEST DIGEST_TEXT COUNT_STAR SUM_ROWS_AFFECTED SUM_WARNINGS SUM_ERRORS SCHEMA_NAME DIGEST DIGEST_TEXT COUNT_STAR SUM_ROWS_AFFECTED SUM_WARNINGS SUM_ERRORS
statements_digest e4a84a547a18a89f4708509a720def58 TRUNCATE TABLE performance_schema . events_statements_summary_by_digest 1 0 0 0 statements_digest 01cfd3c48ebe150803a02f0b32ab4f7b TRUNCATE TABLE `performance_schema` . `events_statements_summary_by_digest` 1 0 0 0
statements_digest ab105aea9c15b3842ad161d18349f9c4 SELECT ? FROM t1 1 0 0 0 statements_digest 4a958a8b2138b7ae3b65a0edde877dca SELECT ? FROM `t1` 2 0 0 0
statements_digest 835083efbaa5d8c29d01d558abb8216b SELECT ? FROM `t1` 1 0 0 0 statements_digest 1f346cc75586f18fdded6e2f518e7d25 SELECT ?, ... FROM `t1` 2 0 0 0
statements_digest 6ff375c6f4b283de91711a78bd91b953 SELECT ?, ... FROM t1 2 0 0 0 statements_digest 9ed289e97245aee8872bd79573ff71dc SELECT ? FROM `t2` 1 0 0 0
statements_digest 4879fbad051c94ff76e6ad29effa4903 SELECT ? FROM t2 1 0 0 0 statements_digest ec5d6ae42b4292cce44168c701fde301 SELECT ?, ... FROM `t2` 2 0 0 0
statements_digest b1ea4bca7c91ebd647b6b81e80a2ef94 SELECT ?, ... FROM t2 2 0 0 0 statements_digest c689b670f102bc028f36273ed00244de INSERT INTO `t1` VALUES (?) 2 2 0 0
statements_digest 14d463345df747d42a036019a5988a9b INSERT INTO t1 VALUES (?) 2 2 0 0 statements_digest baf2d67435fc5a66f517bd655c9154a3 INSERT INTO `t2` VALUES (?) 1 1 0 0
statements_digest ff2d8aa1fd516f5e25b0faf7b1c80b04 INSERT INTO t2 VALUES (?) 1 1 0 0 statements_digest cba557f7a643fac3a34563f74c57f040 INSERT INTO `t3` VALUES (...) 4 4 0 0
statements_digest 430116339c3a5bf0a1aa9a96e9cfd354 INSERT INTO t3 VALUES (...) 4 4 0 0 statements_digest 26f967699697844ef6757a283c0432e0 INSERT INTO `t4` VALUES (...) 1 1 0 0
statements_digest 01467137a1045e85119538ea248d52dd INSERT INTO t4 VALUES (...) 1 1 0 0 statements_digest 1565e5ec0755d0d212e84567fdb86500 INSERT INTO `t5` VALUES (...) 1 1 0 0
statements_digest b201a20a2a534d2789750270b7f90fab INSERT INTO t5 VALUES (...) 1 1 0 0 statements_digest 931de69cfc4123c9f5ebeb8da2e6fb0e INSERT INTO `t1` VALUES (?) /* , ... */ 2 7 0 0
statements_digest b1a5f24770580f243ad6704590165d90 INSERT INTO t1 VALUES (?) /* , ... */ 2 7 0 0 statements_digest 81d8a0e0212bb8e02ad8f5e84d8c819a INSERT INTO `t3` VALUES (...) /* , ... */ 1 3 0 0
statements_digest bbbf619ec8ca4ec4a4da28a71eb12a2f INSERT INTO t3 VALUES (...) /* , ... */ 1 3 0 0 statements_digest 793ba1cc016c6e3c45c63023531955ad INSERT INTO `t5` VALUES (...) /* , ... */ 1 3 0 0
statements_digest de7bdb298875f4ef826383e3fce53ef9 INSERT INTO t5 VALUES (...) /* , ... */ 1 3 0 0 statements_digest d44b7d3c3f03b5b9605c9cffb537b083 INSERT INTO `t6` VALUES (...) 5 5 0 0
statements_digest cd4a3e419e2eaed79f66a705ff002910 INSERT INTO t6 VALUES (...) 5 5 0 0
statements_digest f2d57cea9e78e7b37c4509c0564dd1cc SELECT ? + ? 3 0 0 0 statements_digest f2d57cea9e78e7b37c4509c0564dd1cc SELECT ? + ? 3 0 0 0
statements_digest 02396199eed2345830efcf00e51107ee SELECT ? 1 0 0 0 statements_digest 02396199eed2345830efcf00e51107ee SELECT ? 1 0 0 0
statements_digest 7c5b403e11cb8fa41954f8b81d47fb44 CREATE SCHEMA statements_digest_temp 2 2 0 0 statements_digest d02f821e8ce0a27519c833324368696d CREATE SCHEMA `statements_digest_temp` 2 2 0 0
statements_digest d5c2a9eedc964698407667a633301e69 DROP SCHEMA statements_digest_temp 2 0 0 0 statements_digest 5ea9da83763ff4b01e34c408d865568f DROP SCHEMA `statements_digest_temp` 2 0 0 0
statements_digest add5619cd2761d01c66b68b50a4c0476 SELECT ? FROM no_such_table 1 0 0 1 statements_digest ac9dfca3fe35b0d4c43a6bf62a3489b5 SELECT ? FROM `no_such_table` 1 0 0 1
statements_digest f59e7a7dbcdc342b7ea72ae24e5ef081 CREATE TABLE dup_table ( c CHARACTER (?) ) 2 0 0 1 statements_digest 9fd65056536a8d74ea107b68849cfd27 CREATE TABLE `dup_table` ( `c` CHARACTER (?) ) 2 0 0 1
statements_digest b42311b2b180ba680ebb286f671982f1 DROP TABLE dup_table 1 0 0 0 statements_digest f259e984954d6d77a9f94230726e1c0f DROP TABLE `dup_table` 1 0 0 0
statements_digest 8af43d157243ebdc9dcb1a9502acdd24 INSERT INTO t11 VALUES (?) 1 1 1 0 statements_digest 17c0f9e5abf747e425ae24b66d44cf01 INSERT INTO `t11` VALUES (?) 1 1 1 0
statements_digest cee5b131782212e0ba1cd76ba28485c4 SHOW WARNINGS 1 0 0 0 statements_digest cee5b131782212e0ba1cd76ba28485c4 SHOW WARNINGS 1 0 0 0
statements_digest 438623439c3a1702203d6190795127ad PREPARE stmt FROM ? 1 0 0 0 statements_digest 44d441f36c0487f8b32b6cb1e37f7c3f PREPARE `stmt` FROM ? 1 0 0 0
statements_digest e53b71815168ad954fd921a6ae1860c9 EXECUTE stmt 2 0 0 0 statements_digest 73bf0dc38bbbc571613bdb78e85ddb18 EXECUTE `stmt` 2 0 0 0
statements_digest 3bccf5096186ceaf50c11c3deb4e21cf DEALLOCATE PREPARE stmt 1 0 0 0 statements_digest 8a87274dfc2961861326c1591f0df4bc DEALLOCATE PREPARE `stmt` 1 0 0 0
statements_digest e20f8d5cb15105439af39592b79c0edd CREATE PROCEDURE p1 ( ) BEGIN SELECT * FROM t12 ; END 1 0 0 0 statements_digest 639ff9b1728335f463d2ed4134c7ec26 CREATE PROCEDURE `p1` ( ) BEGIN SELECT * FROM `t12` ; END 1 0 0 0
statements_digest 10298a45c9f7114e4985de53ca99bda7 CALL p1 ( ) 2 0 0 0 statements_digest 627bb08bd333aa83cb4bbad88ab6e6b8 CALL `p1` ( ) 2 0 0 0
statements_digest efc046c5d04acb8afa61326f759ad380 DROP PROCEDURE p1 1 0 0 0 statements_digest 949464b6c55462d9d7ad3f0a7608db10 DROP PROCEDURE `p1` 1 0 0 0
statements_digest 8eaf9e776b79f24f2b8fae8efb92d8a4 CREATE FUNCTION `func` ( a INTEGER , b INTEGER ) RETURNS INTEGER (?) RETURN a + b 1 0 0 0 statements_digest bfc5c562a60a60857a026a17434e77bb CREATE FUNCTION `func` ( `a` INTEGER , `b` INTEGER ) RETURNS INTEGER (?) RETURN `a` + `b` 1 0 0 0
statements_digest b364c71d8c904eb9e95df4d0ca258c00 SELECT func (...) 2 0 0 0 statements_digest cf6fe4a8895dabaf9c30615b49bce6db SELECT `func` (...) 2 0 0 0
statements_digest 88e7ac9784e4561d12fadccde6ea704a DROP FUNCTION func 1 0 0 0 statements_digest 4b2d4d67e2faa0b938156e60e1f2023b DROP FUNCTION `func` 1 0 0 0
statements_digest 15deeaae5594a691cf21abd4439ee5e6 CREATE TRIGGER trg BEFORE INSERT ON t12 FOR EACH ROW SET @? := ? 1 0 0 0 statements_digest b859e51c90bdd984a1226ecf25fd80de CREATE TRIGGER `trg` BEFORE INSERT ON `t12` FOR EACH ROW SET @? := ? 1 0 0 0
statements_digest 074e38814943a6dce874784d21fea89d INSERT INTO t12 VALUES (?) 2 2 0 0 statements_digest cb2f065274b3e03693cb7d5396d4d978 INSERT INTO `t12` VALUES (?) 2 2 0 0
statements_digest 2b5b02ba54b27638d5d8dbe917ff432d DROP TRIGGER trg 1 0 0 0 statements_digest 903b51b5db2d5393542a7fc2614049fd DROP TRIGGER `trg` 1 0 0 0
#################################### ####################################
# CLEANUP # CLEANUP
#################################### ####################################
......
...@@ -125,42 +125,41 @@ DROP TRIGGER trg; ...@@ -125,42 +125,41 @@ DROP TRIGGER trg;
#################################### ####################################
SELECT schema_name, digest, digest_text, count_star FROM performance_schema.events_statements_summary_by_digest; SELECT schema_name, digest, digest_text, count_star FROM performance_schema.events_statements_summary_by_digest;
schema_name digest digest_text count_star schema_name digest digest_text count_star
statements_digest e4a84a547a18a89f4708509a720def58 TRUNCATE TABLE performance_schema . events_statements_summary_by_digest 1 statements_digest 01cfd3c48ebe150803a02f0b32ab4f7b TRUNCATE TABLE `performance_schema` . `events_statements_summary_by_digest` 1
statements_digest ab105aea9c15b3842ad161d18349f9c4 SELECT ? FROM t1 1 statements_digest 4a958a8b2138b7ae3b65a0edde877dca SELECT ? FROM `t1` 2
statements_digest 835083efbaa5d8c29d01d558abb8216b SELECT ? FROM `t1` 1 statements_digest 1f346cc75586f18fdded6e2f518e7d25 SELECT ?, ... FROM `t1` 2
statements_digest 6ff375c6f4b283de91711a78bd91b953 SELECT ?, ... FROM t1 2 statements_digest 9ed289e97245aee8872bd79573ff71dc SELECT ? FROM `t2` 1
statements_digest 4879fbad051c94ff76e6ad29effa4903 SELECT ? FROM t2 1 statements_digest ec5d6ae42b4292cce44168c701fde301 SELECT ?, ... FROM `t2` 2
statements_digest b1ea4bca7c91ebd647b6b81e80a2ef94 SELECT ?, ... FROM t2 2 statements_digest c689b670f102bc028f36273ed00244de INSERT INTO `t1` VALUES (?) 2
statements_digest 14d463345df747d42a036019a5988a9b INSERT INTO t1 VALUES (?) 2 statements_digest baf2d67435fc5a66f517bd655c9154a3 INSERT INTO `t2` VALUES (?) 1
statements_digest ff2d8aa1fd516f5e25b0faf7b1c80b04 INSERT INTO t2 VALUES (?) 1 statements_digest cba557f7a643fac3a34563f74c57f040 INSERT INTO `t3` VALUES (...) 4
statements_digest 430116339c3a5bf0a1aa9a96e9cfd354 INSERT INTO t3 VALUES (...) 4 statements_digest 26f967699697844ef6757a283c0432e0 INSERT INTO `t4` VALUES (...) 1
statements_digest 01467137a1045e85119538ea248d52dd INSERT INTO t4 VALUES (...) 1 statements_digest 1565e5ec0755d0d212e84567fdb86500 INSERT INTO `t5` VALUES (...) 1
statements_digest b201a20a2a534d2789750270b7f90fab INSERT INTO t5 VALUES (...) 1 statements_digest 931de69cfc4123c9f5ebeb8da2e6fb0e INSERT INTO `t1` VALUES (?) /* , ... */ 2
statements_digest b1a5f24770580f243ad6704590165d90 INSERT INTO t1 VALUES (?) /* , ... */ 2 statements_digest 81d8a0e0212bb8e02ad8f5e84d8c819a INSERT INTO `t3` VALUES (...) /* , ... */ 1
statements_digest bbbf619ec8ca4ec4a4da28a71eb12a2f INSERT INTO t3 VALUES (...) /* , ... */ 1 statements_digest 793ba1cc016c6e3c45c63023531955ad INSERT INTO `t5` VALUES (...) /* , ... */ 1
statements_digest de7bdb298875f4ef826383e3fce53ef9 INSERT INTO t5 VALUES (...) /* , ... */ 1 statements_digest d44b7d3c3f03b5b9605c9cffb537b083 INSERT INTO `t6` VALUES (...) 5
statements_digest cd4a3e419e2eaed79f66a705ff002910 INSERT INTO t6 VALUES (...) 5
statements_digest f2d57cea9e78e7b37c4509c0564dd1cc SELECT ? + ? 3 statements_digest f2d57cea9e78e7b37c4509c0564dd1cc SELECT ? + ? 3
statements_digest 02396199eed2345830efcf00e51107ee SELECT ? 1 statements_digest 02396199eed2345830efcf00e51107ee SELECT ? 1
statements_digest 7c5b403e11cb8fa41954f8b81d47fb44 CREATE SCHEMA statements_digest_temp 2 statements_digest d02f821e8ce0a27519c833324368696d CREATE SCHEMA `statements_digest_temp` 2
statements_digest d5c2a9eedc964698407667a633301e69 DROP SCHEMA statements_digest_temp 2 statements_digest 5ea9da83763ff4b01e34c408d865568f DROP SCHEMA `statements_digest_temp` 2
statements_digest add5619cd2761d01c66b68b50a4c0476 SELECT ? FROM no_such_table 1 statements_digest ac9dfca3fe35b0d4c43a6bf62a3489b5 SELECT ? FROM `no_such_table` 1
statements_digest f59e7a7dbcdc342b7ea72ae24e5ef081 CREATE TABLE dup_table ( c CHARACTER (?) ) 2 statements_digest 9fd65056536a8d74ea107b68849cfd27 CREATE TABLE `dup_table` ( `c` CHARACTER (?) ) 2
statements_digest b42311b2b180ba680ebb286f671982f1 DROP TABLE dup_table 1 statements_digest f259e984954d6d77a9f94230726e1c0f DROP TABLE `dup_table` 1
statements_digest 8af43d157243ebdc9dcb1a9502acdd24 INSERT INTO t11 VALUES (?) 1 statements_digest 17c0f9e5abf747e425ae24b66d44cf01 INSERT INTO `t11` VALUES (?) 1
statements_digest cee5b131782212e0ba1cd76ba28485c4 SHOW WARNINGS 1 statements_digest cee5b131782212e0ba1cd76ba28485c4 SHOW WARNINGS 1
statements_digest 438623439c3a1702203d6190795127ad PREPARE stmt FROM ? 1 statements_digest 44d441f36c0487f8b32b6cb1e37f7c3f PREPARE `stmt` FROM ? 1
statements_digest e53b71815168ad954fd921a6ae1860c9 EXECUTE stmt 2 statements_digest 73bf0dc38bbbc571613bdb78e85ddb18 EXECUTE `stmt` 2
statements_digest 3bccf5096186ceaf50c11c3deb4e21cf DEALLOCATE PREPARE stmt 1 statements_digest 8a87274dfc2961861326c1591f0df4bc DEALLOCATE PREPARE `stmt` 1
statements_digest e20f8d5cb15105439af39592b79c0edd CREATE PROCEDURE p1 ( ) BEGIN SELECT * FROM t12 ; END 1 statements_digest 639ff9b1728335f463d2ed4134c7ec26 CREATE PROCEDURE `p1` ( ) BEGIN SELECT * FROM `t12` ; END 1
statements_digest 10298a45c9f7114e4985de53ca99bda7 CALL p1 ( ) 2 statements_digest 627bb08bd333aa83cb4bbad88ab6e6b8 CALL `p1` ( ) 2
statements_digest efc046c5d04acb8afa61326f759ad380 DROP PROCEDURE p1 1 statements_digest 949464b6c55462d9d7ad3f0a7608db10 DROP PROCEDURE `p1` 1
statements_digest 8eaf9e776b79f24f2b8fae8efb92d8a4 CREATE FUNCTION `func` ( a INTEGER , b INTEGER ) RETURNS INTEGER (?) RETURN a + b 1 statements_digest bfc5c562a60a60857a026a17434e77bb CREATE FUNCTION `func` ( `a` INTEGER , `b` INTEGER ) RETURNS INTEGER (?) RETURN `a` + `b` 1
statements_digest b364c71d8c904eb9e95df4d0ca258c00 SELECT func (...) 2 statements_digest cf6fe4a8895dabaf9c30615b49bce6db SELECT `func` (...) 2
statements_digest 88e7ac9784e4561d12fadccde6ea704a DROP FUNCTION func 1 statements_digest 4b2d4d67e2faa0b938156e60e1f2023b DROP FUNCTION `func` 1
statements_digest 15deeaae5594a691cf21abd4439ee5e6 CREATE TRIGGER trg BEFORE INSERT ON t12 FOR EACH ROW SET @? := ? 1 statements_digest b859e51c90bdd984a1226ecf25fd80de CREATE TRIGGER `trg` BEFORE INSERT ON `t12` FOR EACH ROW SET @? := ? 1
statements_digest 074e38814943a6dce874784d21fea89d INSERT INTO t12 VALUES (?) 2 statements_digest cb2f065274b3e03693cb7d5396d4d978 INSERT INTO `t12` VALUES (?) 2
statements_digest 2b5b02ba54b27638d5d8dbe917ff432d DROP TRIGGER trg 1 statements_digest 903b51b5db2d5393542a7fc2614049fd DROP TRIGGER `trg` 1
SELECT digest, digest_text FROM performance_schema.events_statements_current; SELECT digest, digest_text FROM performance_schema.events_statements_current;
digest digest_text digest digest_text
#################################### ####################################
......
...@@ -8,5 +8,5 @@ SELECT 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1 ...@@ -8,5 +8,5 @@ SELECT 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1
#################################### ####################################
SELECT schema_name, digest, digest_text, count_star FROM events_statements_summary_by_digest; SELECT schema_name, digest, digest_text, count_star FROM events_statements_summary_by_digest;
schema_name digest digest_text count_star schema_name digest digest_text count_star
performance_schema e8d937c7ecf79e105de0f9e364fa5edb TRUNCATE TABLE events_statements_summary_by_digest 1 performance_schema d12faab4b919fcc50abb18a009fb6b0b TRUNCATE TABLE `events_statements_summary_by_digest` 1
performance_schema 5d9a2f95653d8ca9d9cea3eefff7e361 SELECT ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? 1 performance_schema 5d9a2f95653d8ca9d9cea3eefff7e361 SELECT ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? + ? 1
...@@ -55,6 +55,7 @@ performance_schema_events_waits_history_size 10 ...@@ -55,6 +55,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -54,6 +54,7 @@ performance_schema_events_waits_history_size 10 ...@@ -54,6 +54,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -55,6 +55,7 @@ performance_schema_events_waits_history_size 10 ...@@ -55,6 +55,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -54,6 +54,7 @@ performance_schema_events_waits_history_size 10 ...@@ -54,6 +54,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -53,6 +53,7 @@ performance_schema_events_waits_history_size 10 ...@@ -53,6 +53,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -52,6 +52,7 @@ performance_schema_events_waits_history_size 10 ...@@ -52,6 +52,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -53,6 +53,7 @@ performance_schema_events_waits_history_size 10 ...@@ -53,6 +53,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -52,6 +52,7 @@ performance_schema_events_waits_history_size 10 ...@@ -52,6 +52,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -54,6 +54,7 @@ performance_schema_events_waits_history_size 10 ...@@ -54,6 +54,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -55,6 +55,7 @@ performance_schema_events_waits_history_size 10 ...@@ -55,6 +55,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -54,6 +54,7 @@ performance_schema_events_waits_history_size 10 ...@@ -54,6 +54,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -55,6 +55,7 @@ performance_schema_events_waits_history_size 10 ...@@ -55,6 +55,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -54,6 +54,7 @@ performance_schema_events_waits_history_size 10 ...@@ -54,6 +54,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -57,6 +57,7 @@ performance_schema_events_waits_history_size 10 ...@@ -57,6 +57,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -56,6 +56,7 @@ performance_schema_events_waits_history_size 10 ...@@ -56,6 +56,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -57,6 +57,7 @@ performance_schema_events_waits_history_size 10 ...@@ -57,6 +57,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -56,6 +56,7 @@ performance_schema_events_waits_history_size 10 ...@@ -56,6 +56,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -55,6 +55,7 @@ performance_schema_events_waits_history_size 10 ...@@ -55,6 +55,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -54,6 +54,7 @@ performance_schema_events_waits_history_size 10 ...@@ -54,6 +54,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -55,6 +55,7 @@ performance_schema_events_waits_history_size 10 ...@@ -55,6 +55,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -54,6 +54,7 @@ performance_schema_events_waits_history_size 10 ...@@ -54,6 +54,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -57,6 +57,7 @@ performance_schema_events_waits_history_size 10 ...@@ -57,6 +57,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -56,6 +56,7 @@ performance_schema_events_waits_history_size 10 ...@@ -56,6 +56,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -57,6 +57,7 @@ performance_schema_events_waits_history_size 10 ...@@ -57,6 +57,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -56,6 +56,7 @@ performance_schema_events_waits_history_size 10 ...@@ -56,6 +56,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -57,6 +57,7 @@ performance_schema_events_waits_history_size 10 ...@@ -57,6 +57,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -56,6 +56,7 @@ performance_schema_events_waits_history_size 10 ...@@ -56,6 +56,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -57,6 +57,7 @@ performance_schema_events_waits_history_size 10 ...@@ -57,6 +57,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -56,6 +56,7 @@ performance_schema_events_waits_history_size 10 ...@@ -56,6 +56,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -55,6 +55,7 @@ performance_schema_events_waits_history_size 10 ...@@ -55,6 +55,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -54,6 +54,7 @@ performance_schema_events_waits_history_size 10 ...@@ -54,6 +54,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -55,6 +55,7 @@ performance_schema_events_waits_history_size 10 ...@@ -55,6 +55,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -54,6 +54,7 @@ performance_schema_events_waits_history_size 10 ...@@ -54,6 +54,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -57,6 +57,7 @@ performance_schema_events_waits_history_size 10 ...@@ -57,6 +57,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -56,6 +56,7 @@ performance_schema_events_waits_history_size 10 ...@@ -56,6 +56,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -57,6 +57,7 @@ performance_schema_events_waits_history_size 10 ...@@ -57,6 +57,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -56,6 +56,7 @@ performance_schema_events_waits_history_size 10 ...@@ -56,6 +56,7 @@ performance_schema_events_waits_history_size 10
performance_schema_hosts_size 100 performance_schema_hosts_size 100
performance_schema_max_cond_classes 80 performance_schema_max_cond_classes 80
performance_schema_max_cond_instances 1000 performance_schema_max_cond_instances 1000
performance_schema_max_digest_length 1024
performance_schema_max_file_classes 50 performance_schema_max_file_classes 50
performance_schema_max_file_handles 32768 performance_schema_max_file_handles 32768
performance_schema_max_file_instances 10000 performance_schema_max_file_instances 10000
......
...@@ -39,9 +39,9 @@ ERROR 42S02: Table 'test.expect_unchanged' doesn't exist ...@@ -39,9 +39,9 @@ ERROR 42S02: Table 'test.expect_unchanged' doesn't exist
SELECT SCHEMA_NAME, DIGEST_TEXT, COUNT_STAR SELECT SCHEMA_NAME, DIGEST_TEXT, COUNT_STAR
FROM performance_schema.events_statements_summary_by_digest; FROM performance_schema.events_statements_summary_by_digest;
SCHEMA_NAME DIGEST_TEXT COUNT_STAR SCHEMA_NAME DIGEST_TEXT COUNT_STAR
test TRUNCATE TABLE performance_schema . events_statements_summary_by_digest 1 test TRUNCATE TABLE `performance_schema` . `events_statements_summary_by_digest` 1
test SELECT ? FROM expect_unary 5 test SELECT ? FROM `expect_unary` 5
test SELECT ? + ? FROM expect_binary 2 test SELECT ? + ? FROM `expect_binary` 2
test SELECT ? - ? FROM expect_binary 2 test SELECT ? - ? FROM `expect_binary` 2
test INSERT INTO expect_full_reduce VALUES (...) 27 test INSERT INTO `expect_full_reduce` VALUES (...) 27
test SELECT a - b , a + b , - a , - b , + a , + b FROM expect_unchanged 1 test SELECT `a` - `b` , `a` + `b` , - `a` , - `b` , + `a` , + `b` FROM `expect_unchanged` 1
...@@ -56,7 +56,9 @@ let $wait_condition= select 1 from performance_schema.events_waits_current where ...@@ -56,7 +56,9 @@ let $wait_condition= select 1 from performance_schema.events_waits_current where
# Observe the blocked thread in the performance schema :) # Observe the blocked thread in the performance schema :)
select event_name, select event_name,
left(source, locate(":", source)) as short_source, left(source, locate(":", source)) as short_source,
timer_end, timer_wait, operation if(timer_end IS NULL, NULL, "SET") as timer_end,
if(timer_wait IS NULL, NULL, "SET") as timer_wait,
operation
from performance_schema.events_waits_current from performance_schema.events_waits_current
where event_name like "wait/synch/cond/sql/MDL_context::COND_wait_status"; where event_name like "wait/synch/cond/sql/MDL_context::COND_wait_status";
......
...@@ -69,8 +69,8 @@ int init_account(const PFS_global_param *param) ...@@ -69,8 +69,8 @@ int init_account(const PFS_global_param *param)
if (account_max > 0) if (account_max > 0)
{ {
account_array= PFS_MALLOC_ARRAY(account_max, PFS_account, account_array= PFS_MALLOC_ARRAY(account_max, sizeof(PFS_account), PFS_account,
MYF(MY_ZEROFILL)); MYF(MY_ZEROFILL));
if (unlikely(account_array == NULL)) if (unlikely(account_array == NULL))
return 1; return 1;
} }
......
/* Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. /* Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
...@@ -39,7 +39,8 @@ PFS_connection_slice::alloc_waits_slice(uint sizing) ...@@ -39,7 +39,8 @@ PFS_connection_slice::alloc_waits_slice(uint sizing)
if (sizing > 0) if (sizing > 0)
{ {
slice= PFS_MALLOC_ARRAY(sizing, PFS_single_stat, MYF(MY_ZEROFILL)); slice= PFS_MALLOC_ARRAY(sizing, sizeof(PFS_single_stat), PFS_single_stat,
MYF(MY_ZEROFILL));
if (unlikely(slice == NULL)) if (unlikely(slice == NULL))
return NULL; return NULL;
...@@ -58,7 +59,8 @@ PFS_connection_slice::alloc_stages_slice(uint sizing) ...@@ -58,7 +59,8 @@ PFS_connection_slice::alloc_stages_slice(uint sizing)
if (sizing > 0) if (sizing > 0)
{ {
slice= PFS_MALLOC_ARRAY(sizing, PFS_stage_stat, MYF(MY_ZEROFILL)); slice= PFS_MALLOC_ARRAY(sizing, sizeof(PFS_stage_stat), PFS_stage_stat,
MYF(MY_ZEROFILL));
if (unlikely(slice == NULL)) if (unlikely(slice == NULL))
return NULL; return NULL;
...@@ -77,7 +79,8 @@ PFS_connection_slice::alloc_statements_slice(uint sizing) ...@@ -77,7 +79,8 @@ PFS_connection_slice::alloc_statements_slice(uint sizing)
if (sizing > 0) if (sizing > 0)
{ {
slice= PFS_MALLOC_ARRAY(sizing, PFS_statement_stat, MYF(MY_ZEROFILL)); slice= PFS_MALLOC_ARRAY(sizing, sizeof(PFS_statement_stat), PFS_statement_stat,
MYF(MY_ZEROFILL));
if (unlikely(slice == NULL)) if (unlikely(slice == NULL))
return NULL; return NULL;
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
#include "sql_string.h" #include "sql_string.h"
#include <string.h> #include <string.h>
ulong digest_max= 0; size_t digest_max= 0;
ulong digest_lost= 0; ulong digest_lost= 0;
/** EVENTS_STATEMENTS_HISTORY_LONG circular buffer. */ /** EVENTS_STATEMENTS_HISTORY_LONG circular buffer. */
...@@ -57,8 +57,6 @@ static bool digest_hash_inited= false; ...@@ -57,8 +57,6 @@ static bool digest_hash_inited= false;
*/ */
int init_digest(const PFS_global_param *param) int init_digest(const PFS_global_param *param)
{ {
unsigned int index;
/* /*
Allocate memory for statements_digest_stat_array based on Allocate memory for statements_digest_stat_array based on
performance_schema_digests_size values performance_schema_digests_size values
...@@ -73,6 +71,7 @@ int init_digest(const PFS_global_param *param) ...@@ -73,6 +71,7 @@ int init_digest(const PFS_global_param *param)
statements_digest_stat_array= statements_digest_stat_array=
PFS_MALLOC_ARRAY(digest_max, PFS_MALLOC_ARRAY(digest_max,
sizeof(PFS_statements_digest_stat),
PFS_statements_digest_stat, PFS_statements_digest_stat,
MYF(MY_ZEROFILL)); MYF(MY_ZEROFILL));
...@@ -84,8 +83,12 @@ int init_digest(const PFS_global_param *param) ...@@ -84,8 +83,12 @@ int init_digest(const PFS_global_param *param)
if (pfs_max_digest_length > 0) if (pfs_max_digest_length > 0)
{ {
/* Size of each digest array. */
size_t digest_memory_size= pfs_max_digest_length * sizeof(unsigned char);
statements_digest_token_array= statements_digest_token_array=
PFS_MALLOC_ARRAY(digest_max * pfs_max_digest_length, PFS_MALLOC_ARRAY(digest_max,
digest_memory_size,
unsigned char, unsigned char,
MYF(MY_ZEROFILL)); MYF(MY_ZEROFILL));
...@@ -96,7 +99,7 @@ int init_digest(const PFS_global_param *param) ...@@ -96,7 +99,7 @@ int init_digest(const PFS_global_param *param)
} }
} }
for (index= 0; index < digest_max; index++) for (size_t index= 0; index < digest_max; index++)
{ {
statements_digest_stat_array[index].reset_data(statements_digest_token_array statements_digest_stat_array[index].reset_data(statements_digest_token_array
+ index * pfs_max_digest_length, pfs_max_digest_length); + index * pfs_max_digest_length, pfs_max_digest_length);
...@@ -144,7 +147,7 @@ int init_digest_hash(void) ...@@ -144,7 +147,7 @@ int init_digest_hash(void)
lf_hash_init(&digest_hash, sizeof(PFS_statements_digest_stat*), lf_hash_init(&digest_hash, sizeof(PFS_statements_digest_stat*),
LF_HASH_UNIQUE, 0, 0, digest_hash_get_key, LF_HASH_UNIQUE, 0, 0, digest_hash_get_key,
&my_charset_bin); &my_charset_bin);
digest_hash.size= digest_max; digest_hash.size= (int32)digest_max;
digest_hash_inited= true; digest_hash_inited= true;
} }
return 0; return 0;
...@@ -334,8 +337,6 @@ void PFS_statements_digest_stat::reset_index(PFS_thread *thread) ...@@ -334,8 +337,6 @@ void PFS_statements_digest_stat::reset_index(PFS_thread *thread)
void reset_esms_by_digest() void reset_esms_by_digest()
{ {
uint index;
if (statements_digest_stat_array == NULL) if (statements_digest_stat_array == NULL)
return; return;
...@@ -344,7 +345,7 @@ void reset_esms_by_digest() ...@@ -344,7 +345,7 @@ void reset_esms_by_digest()
return; return;
/* Reset statements_digest_stat_array. */ /* Reset statements_digest_stat_array. */
for (index= 0; index < digest_max; index++) for (size_t index= 0; index < digest_max; index++)
{ {
statements_digest_stat_array[index].reset_index(thread); statements_digest_stat_array[index].reset_index(thread);
statements_digest_stat_array[index].reset_data(statements_digest_token_array + index * pfs_max_digest_length, pfs_max_digest_length); statements_digest_stat_array[index].reset_data(statements_digest_token_array + index * pfs_max_digest_length, pfs_max_digest_length);
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
#include "sql_digest.h" #include "sql_digest.h"
extern bool flag_statements_digest; extern bool flag_statements_digest;
extern ulong digest_max; extern size_t digest_max;
extern ulong digest_lost; extern ulong digest_lost;
struct PFS_thread; struct PFS_thread;
......
/* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. /* Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
...@@ -59,8 +59,8 @@ int init_events_stages_history_long(uint events_stages_history_long_sizing) ...@@ -59,8 +59,8 @@ int init_events_stages_history_long(uint events_stages_history_long_sizing)
return 0; return 0;
events_stages_history_long_array= events_stages_history_long_array=
PFS_MALLOC_ARRAY(events_stages_history_long_size, PFS_events_stages, PFS_MALLOC_ARRAY(events_stages_history_long_size, sizeof(PFS_events_stages),
MYF(MY_ZEROFILL)); PFS_events_stages, MYF(MY_ZEROFILL));
return (events_stages_history_long_array ? 0 : 1); return (events_stages_history_long_array ? 0 : 1);
} }
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
#include "pfs_atomic.h" #include "pfs_atomic.h"
#include "m_string.h" #include "m_string.h"
ulong events_statements_history_long_size= 0; size_t events_statements_history_long_size= 0;
/** Consumer flag for table EVENTS_STATEMENTS_CURRENT. */ /** Consumer flag for table EVENTS_STATEMENTS_CURRENT. */
bool flag_events_statements_current= false; bool flag_events_statements_current= false;
/** Consumer flag for table EVENTS_STATEMENTS_HISTORY. */ /** Consumer flag for table EVENTS_STATEMENTS_HISTORY. */
...@@ -50,9 +50,8 @@ static unsigned char *h_long_stmts_digest_token_array= NULL; ...@@ -50,9 +50,8 @@ static unsigned char *h_long_stmts_digest_token_array= NULL;
Initialize table EVENTS_STATEMENTS_HISTORY_LONG. Initialize table EVENTS_STATEMENTS_HISTORY_LONG.
@param events_statements_history_long_sizing table sizing @param events_statements_history_long_sizing table sizing
*/ */
int init_events_statements_history_long(uint events_statements_history_long_sizing) int init_events_statements_history_long(size_t events_statements_history_long_sizing)
{ {
uint index;
events_statements_history_long_size= events_statements_history_long_sizing; events_statements_history_long_size= events_statements_history_long_sizing;
events_statements_history_long_full= false; events_statements_history_long_full= false;
PFS_atomic::store_u32(&events_statements_history_long_index, 0); PFS_atomic::store_u32(&events_statements_history_long_index, 0);
...@@ -61,8 +60,8 @@ int init_events_statements_history_long(uint events_statements_history_long_sizi ...@@ -61,8 +60,8 @@ int init_events_statements_history_long(uint events_statements_history_long_sizi
return 0; return 0;
events_statements_history_long_array= events_statements_history_long_array=
PFS_MALLOC_ARRAY(events_statements_history_long_size, PFS_events_statements, PFS_MALLOC_ARRAY(events_statements_history_long_size, sizeof(PFS_events_statements),
MYF(MY_ZEROFILL)); PFS_events_statements, MYF(MY_ZEROFILL));
if (events_statements_history_long_array == NULL) if (events_statements_history_long_array == NULL)
{ {
...@@ -72,8 +71,11 @@ int init_events_statements_history_long(uint events_statements_history_long_sizi ...@@ -72,8 +71,11 @@ int init_events_statements_history_long(uint events_statements_history_long_sizi
if (pfs_max_digest_length > 0) if (pfs_max_digest_length > 0)
{ {
/* Size of each digest token array. */
size_t digest_text_size= pfs_max_digest_length * sizeof(unsigned char);
h_long_stmts_digest_token_array= h_long_stmts_digest_token_array=
PFS_MALLOC_ARRAY(events_statements_history_long_size * pfs_max_digest_length, PFS_MALLOC_ARRAY(events_statements_history_long_size, digest_text_size,
unsigned char, MYF(MY_ZEROFILL)); unsigned char, MYF(MY_ZEROFILL));
if (h_long_stmts_digest_token_array == NULL) if (h_long_stmts_digest_token_array == NULL)
{ {
...@@ -82,7 +84,7 @@ int init_events_statements_history_long(uint events_statements_history_long_sizi ...@@ -82,7 +84,7 @@ int init_events_statements_history_long(uint events_statements_history_long_sizi
} }
} }
for (index= 0; index < events_statements_history_long_size; index++) for (size_t index= 0; index < events_statements_history_long_size; index++)
{ {
events_statements_history_long_array[index].m_digest_storage.reset(h_long_stmts_digest_token_array events_statements_history_long_array[index].m_digest_storage.reset(h_long_stmts_digest_token_array
+ index * pfs_max_digest_length, pfs_max_digest_length); + index * pfs_max_digest_length, pfs_max_digest_length);
......
...@@ -106,9 +106,9 @@ extern bool flag_events_statements_history_long; ...@@ -106,9 +106,9 @@ extern bool flag_events_statements_history_long;
extern bool events_statements_history_long_full; extern bool events_statements_history_long_full;
extern volatile uint32 events_statements_history_long_index; extern volatile uint32 events_statements_history_long_index;
extern PFS_events_statements *events_statements_history_long_array; extern PFS_events_statements *events_statements_history_long_array;
extern ulong events_statements_history_long_size; extern size_t events_statements_history_long_size;
int init_events_statements_history_long(uint events_statements_history_long_sizing); int init_events_statements_history_long(size_t events_statements_history_long_sizing);
void cleanup_events_statements_history_long(); void cleanup_events_statements_history_long();
void reset_events_statements_current(); void reset_events_statements_current();
......
/* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. /* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
...@@ -63,8 +63,8 @@ int init_events_waits_history_long(uint events_waits_history_long_sizing) ...@@ -63,8 +63,8 @@ int init_events_waits_history_long(uint events_waits_history_long_sizing)
return 0; return 0;
events_waits_history_long_array= events_waits_history_long_array=
PFS_MALLOC_ARRAY(events_waits_history_long_size, PFS_events_waits, PFS_MALLOC_ARRAY(events_waits_history_long_size, sizeof(PFS_events_waits),
MYF(MY_ZEROFILL)); PFS_events_waits, MYF(MY_ZEROFILL));
return (events_waits_history_long_array ? 0 : 1); return (events_waits_history_long_array ? 0 : 1);
} }
......
/* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. /* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
...@@ -49,7 +49,7 @@ void *pfs_malloc(size_t size, myf flags) ...@@ -49,7 +49,7 @@ void *pfs_malloc(size_t size, myf flags)
DBUG_ASSERT(! pfs_initialized); DBUG_ASSERT(! pfs_initialized);
DBUG_ASSERT(size > 0); DBUG_ASSERT(size > 0);
void *ptr; void *ptr= NULL;
#ifdef PFS_ALIGNEMENT #ifdef PFS_ALIGNEMENT
#ifdef HAVE_POSIX_MEMALIGN #ifdef HAVE_POSIX_MEMALIGN
...@@ -125,6 +125,40 @@ void pfs_print_error(const char *format, ...) ...@@ -125,6 +125,40 @@ void pfs_print_error(const char *format, ...)
fflush(stderr); fflush(stderr);
} }
/**
Array allocation for the performance schema.
Checks for overflow of n * size before allocating.
@param n number of array elements
@param size element size
@param flags malloc flags
@return pointer to memory on success, else NULL
*/
void *pfs_malloc_array(size_t n, size_t size, myf flags)
{
DBUG_ASSERT(n > 0);
DBUG_ASSERT(size > 0);
size_t array_size= n * size;
/* Check for overflow before allocating. */
if (is_overflow(array_size, n, size))
return NULL;
return pfs_malloc(array_size, flags);
}
/**
Detect multiplication overflow.
@param product multiplication product
@param n1 operand
@param n2 operand
@return true if multiplication caused an overflow.
*/
bool is_overflow(size_t product, size_t n1, size_t n2)
{
if (n1 != 0 && (product / n1 != n2))
return true;
else
return false;
}
/** Convert raw ip address into readable format. Do not do a reverse DNS lookup. */ /** Convert raw ip address into readable format. Do not do a reverse DNS lookup. */
uint pfs_get_socket_address(char *host, uint pfs_get_socket_address(char *host,
......
/* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. /* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
...@@ -43,18 +43,24 @@ extern size_t pfs_allocated_memory; ...@@ -43,18 +43,24 @@ extern size_t pfs_allocated_memory;
void *pfs_malloc(size_t size, myf flags); void *pfs_malloc(size_t size, myf flags);
/** Allocate an array of structures with overflow check. */
void *pfs_malloc_array(size_t n, size_t size, myf flags);
/** /**
Helper, to allocate an array of structures. Helper, to allocate an array of structures.
@param n number of elements in the array. @param n number of elements in the array
@param T type of an element. @param s size of array element
@param T type of an element
@param f flags to use when allocating memory @param f flags to use when allocating memory
*/ */
#define PFS_MALLOC_ARRAY(n, T, f) \ #define PFS_MALLOC_ARRAY(n, s, T, f) \
reinterpret_cast<T*> (pfs_malloc((n) * sizeof(T), (f))) reinterpret_cast<T*>(pfs_malloc_array((n), (s), (f)))
/** Free memory allocated with @sa pfs_malloc. */ /** Free memory allocated with @sa pfs_malloc. */
void pfs_free(void *ptr); void pfs_free(void *ptr);
/** Detect multiplication overflow. */
bool is_overflow(size_t product, size_t n1, size_t n2);
uint pfs_get_socket_address(char *host, uint pfs_get_socket_address(char *host,
uint host_len, uint host_len,
...@@ -106,7 +112,7 @@ inline uint randomized_index(const void *ptr, uint max_size) ...@@ -106,7 +112,7 @@ inline uint randomized_index(const void *ptr, uint max_size)
value= (reinterpret_cast<intptr> (ptr)) >> 3; value= (reinterpret_cast<intptr> (ptr)) >> 3;
value*= 1789; value*= 1789;
value+= seed2 + seed1 + 1; value+= seed2 + seed1 + 1;
result= (static_cast<uint> (value)) % max_size; result= (static_cast<uint> (value)) % max_size;
seed2= seed1*seed1; seed2= seed1*seed1;
......
...@@ -66,7 +66,7 @@ int init_host(const PFS_global_param *param) ...@@ -66,7 +66,7 @@ int init_host(const PFS_global_param *param)
if (host_max > 0) if (host_max > 0)
{ {
host_array= PFS_MALLOC_ARRAY(host_max, PFS_host, host_array= PFS_MALLOC_ARRAY(host_max, sizeof(PFS_host), PFS_host,
MYF(MY_ZEROFILL)); MYF(MY_ZEROFILL));
if (unlikely(host_array == NULL)) if (unlikely(host_array == NULL))
return 1; return 1;
......
...@@ -94,7 +94,7 @@ ulong events_stages_history_per_thread; ...@@ -94,7 +94,7 @@ ulong events_stages_history_per_thread;
/** Number of EVENTS_STATEMENTS_HISTORY records per thread. */ /** Number of EVENTS_STATEMENTS_HISTORY records per thread. */
ulong events_statements_history_per_thread; ulong events_statements_history_per_thread;
uint statement_stack_max; uint statement_stack_max;
uint pfs_max_digest_length= 0; size_t pfs_max_digest_length= 0;
/** Number of locker lost. @sa LOCKER_STACK_SIZE. */ /** Number of locker lost. @sa LOCKER_STACK_SIZE. */
ulong locker_lost= 0; ulong locker_lost= 0;
/** Number of statement lost. @sa STATEMENT_STACK_SIZE. */ /** Number of statement lost. @sa STATEMENT_STACK_SIZE. */
...@@ -287,56 +287,56 @@ int init_instruments(const PFS_global_param *param) ...@@ -287,56 +287,56 @@ int init_instruments(const PFS_global_param *param)
if (mutex_max > 0) if (mutex_max > 0)
{ {
mutex_array= PFS_MALLOC_ARRAY(mutex_max, PFS_mutex, MYF(MY_ZEROFILL)); mutex_array= PFS_MALLOC_ARRAY(mutex_max, sizeof(PFS_mutex), PFS_mutex, MYF(MY_ZEROFILL));
if (unlikely(mutex_array == NULL)) if (unlikely(mutex_array == NULL))
return 1; return 1;
} }
if (rwlock_max > 0) if (rwlock_max > 0)
{ {
rwlock_array= PFS_MALLOC_ARRAY(rwlock_max, PFS_rwlock, MYF(MY_ZEROFILL)); rwlock_array= PFS_MALLOC_ARRAY(rwlock_max, sizeof(PFS_rwlock), PFS_rwlock, MYF(MY_ZEROFILL));
if (unlikely(rwlock_array == NULL)) if (unlikely(rwlock_array == NULL))
return 1; return 1;
} }
if (cond_max > 0) if (cond_max > 0)
{ {
cond_array= PFS_MALLOC_ARRAY(cond_max, PFS_cond, MYF(MY_ZEROFILL)); cond_array= PFS_MALLOC_ARRAY(cond_max, sizeof(PFS_cond), PFS_cond, MYF(MY_ZEROFILL));
if (unlikely(cond_array == NULL)) if (unlikely(cond_array == NULL))
return 1; return 1;
} }
if (file_max > 0) if (file_max > 0)
{ {
file_array= PFS_MALLOC_ARRAY(file_max, PFS_file, MYF(MY_ZEROFILL)); file_array= PFS_MALLOC_ARRAY(file_max, sizeof(PFS_file), PFS_file, MYF(MY_ZEROFILL));
if (unlikely(file_array == NULL)) if (unlikely(file_array == NULL))
return 1; return 1;
} }
if (file_handle_max > 0) if (file_handle_max > 0)
{ {
file_handle_array= PFS_MALLOC_ARRAY(file_handle_max, PFS_file*, MYF(MY_ZEROFILL)); file_handle_array= PFS_MALLOC_ARRAY(file_handle_max, sizeof(PFS_file*), PFS_file*, MYF(MY_ZEROFILL));
if (unlikely(file_handle_array == NULL)) if (unlikely(file_handle_array == NULL))
return 1; return 1;
} }
if (table_max > 0) if (table_max > 0)
{ {
table_array= PFS_MALLOC_ARRAY(table_max, PFS_table, MYF(MY_ZEROFILL)); table_array= PFS_MALLOC_ARRAY(table_max, sizeof(PFS_table), PFS_table, MYF(MY_ZEROFILL));
if (unlikely(table_array == NULL)) if (unlikely(table_array == NULL))
return 1; return 1;
} }
if (socket_max > 0) if (socket_max > 0)
{ {
socket_array= PFS_MALLOC_ARRAY(socket_max, PFS_socket, MYF(MY_ZEROFILL)); socket_array= PFS_MALLOC_ARRAY(socket_max, sizeof(PFS_socket), PFS_socket, MYF(MY_ZEROFILL));
if (unlikely(socket_array == NULL)) if (unlikely(socket_array == NULL))
return 1; return 1;
} }
if (thread_max > 0) if (thread_max > 0)
{ {
thread_array= PFS_MALLOC_ARRAY(thread_max, PFS_thread, MYF(MY_ZEROFILL)); thread_array= PFS_MALLOC_ARRAY(thread_max, sizeof(PFS_thread), PFS_thread, MYF(MY_ZEROFILL));
if (unlikely(thread_array == NULL)) if (unlikely(thread_array == NULL))
return 1; return 1;
} }
...@@ -344,7 +344,7 @@ int init_instruments(const PFS_global_param *param) ...@@ -344,7 +344,7 @@ int init_instruments(const PFS_global_param *param)
if (thread_waits_history_sizing > 0) if (thread_waits_history_sizing > 0)
{ {
thread_waits_history_array= thread_waits_history_array=
PFS_MALLOC_ARRAY(thread_waits_history_sizing, PFS_events_waits, PFS_MALLOC_ARRAY(thread_waits_history_sizing, sizeof(PFS_events_waits), PFS_events_waits,
MYF(MY_ZEROFILL)); MYF(MY_ZEROFILL));
if (unlikely(thread_waits_history_array == NULL)) if (unlikely(thread_waits_history_array == NULL))
return 1; return 1;
...@@ -354,7 +354,7 @@ int init_instruments(const PFS_global_param *param) ...@@ -354,7 +354,7 @@ int init_instruments(const PFS_global_param *param)
{ {
thread_instr_class_waits_array= thread_instr_class_waits_array=
PFS_MALLOC_ARRAY(thread_instr_class_waits_sizing, PFS_MALLOC_ARRAY(thread_instr_class_waits_sizing,
PFS_single_stat, MYF(MY_ZEROFILL)); sizeof(PFS_single_stat), PFS_single_stat, MYF(MY_ZEROFILL));
if (unlikely(thread_instr_class_waits_array == NULL)) if (unlikely(thread_instr_class_waits_array == NULL))
return 1; return 1;
...@@ -365,7 +365,7 @@ int init_instruments(const PFS_global_param *param) ...@@ -365,7 +365,7 @@ int init_instruments(const PFS_global_param *param)
if (thread_stages_history_sizing > 0) if (thread_stages_history_sizing > 0)
{ {
thread_stages_history_array= thread_stages_history_array=
PFS_MALLOC_ARRAY(thread_stages_history_sizing, PFS_events_stages, PFS_MALLOC_ARRAY(thread_stages_history_sizing, sizeof(PFS_events_stages), PFS_events_stages,
MYF(MY_ZEROFILL)); MYF(MY_ZEROFILL));
if (unlikely(thread_stages_history_array == NULL)) if (unlikely(thread_stages_history_array == NULL))
return 1; return 1;
...@@ -375,7 +375,7 @@ int init_instruments(const PFS_global_param *param) ...@@ -375,7 +375,7 @@ int init_instruments(const PFS_global_param *param)
{ {
thread_instr_class_stages_array= thread_instr_class_stages_array=
PFS_MALLOC_ARRAY(thread_instr_class_stages_sizing, PFS_MALLOC_ARRAY(thread_instr_class_stages_sizing,
PFS_stage_stat, MYF(MY_ZEROFILL)); sizeof(PFS_stage_stat), PFS_stage_stat, MYF(MY_ZEROFILL));
if (unlikely(thread_instr_class_stages_array == NULL)) if (unlikely(thread_instr_class_stages_array == NULL))
return 1; return 1;
...@@ -386,8 +386,8 @@ int init_instruments(const PFS_global_param *param) ...@@ -386,8 +386,8 @@ int init_instruments(const PFS_global_param *param)
if (thread_statements_history_sizing > 0) if (thread_statements_history_sizing > 0)
{ {
thread_statements_history_array= thread_statements_history_array=
PFS_MALLOC_ARRAY(thread_statements_history_sizing, PFS_events_statements, PFS_MALLOC_ARRAY(thread_statements_history_sizing, sizeof(PFS_events_statements),
MYF(MY_ZEROFILL)); PFS_events_statements, MYF(MY_ZEROFILL));
if (unlikely(thread_statements_history_array == NULL)) if (unlikely(thread_statements_history_array == NULL))
return 1; return 1;
} }
...@@ -395,8 +395,8 @@ int init_instruments(const PFS_global_param *param) ...@@ -395,8 +395,8 @@ int init_instruments(const PFS_global_param *param)
if (thread_statements_stack_sizing > 0) if (thread_statements_stack_sizing > 0)
{ {
thread_statements_stack_array= thread_statements_stack_array=
PFS_MALLOC_ARRAY(thread_statements_stack_sizing, PFS_events_statements, PFS_MALLOC_ARRAY(thread_statements_stack_sizing, sizeof(PFS_events_statements),
MYF(MY_ZEROFILL)); PFS_events_statements, MYF(MY_ZEROFILL));
if (unlikely(thread_statements_stack_array == NULL)) if (unlikely(thread_statements_stack_array == NULL))
return 1; return 1;
} }
...@@ -405,7 +405,7 @@ int init_instruments(const PFS_global_param *param) ...@@ -405,7 +405,7 @@ int init_instruments(const PFS_global_param *param)
{ {
thread_instr_class_statements_array= thread_instr_class_statements_array=
PFS_MALLOC_ARRAY(thread_instr_class_statements_sizing, PFS_MALLOC_ARRAY(thread_instr_class_statements_sizing,
PFS_statement_stat, MYF(MY_ZEROFILL)); sizeof(PFS_statement_stat), PFS_statement_stat, MYF(MY_ZEROFILL));
if (unlikely(thread_instr_class_statements_array == NULL)) if (unlikely(thread_instr_class_statements_array == NULL))
return 1; return 1;
...@@ -477,7 +477,7 @@ int init_instruments(const PFS_global_param *param) ...@@ -477,7 +477,7 @@ int init_instruments(const PFS_global_param *param)
{ {
global_instr_class_stages_array= global_instr_class_stages_array=
PFS_MALLOC_ARRAY(stage_class_max, PFS_MALLOC_ARRAY(stage_class_max,
PFS_stage_stat, MYF(MY_ZEROFILL)); sizeof(PFS_stage_stat), PFS_stage_stat, MYF(MY_ZEROFILL));
if (unlikely(global_instr_class_stages_array == NULL)) if (unlikely(global_instr_class_stages_array == NULL))
return 1; return 1;
...@@ -489,7 +489,7 @@ int init_instruments(const PFS_global_param *param) ...@@ -489,7 +489,7 @@ int init_instruments(const PFS_global_param *param)
{ {
global_instr_class_statements_array= global_instr_class_statements_array=
PFS_MALLOC_ARRAY(statement_class_max, PFS_MALLOC_ARRAY(statement_class_max,
PFS_statement_stat, MYF(MY_ZEROFILL)); sizeof(PFS_statement_stat), PFS_statement_stat, MYF(MY_ZEROFILL));
if (unlikely(global_instr_class_statements_array == NULL)) if (unlikely(global_instr_class_statements_array == NULL))
return 1; return 1;
......
...@@ -299,7 +299,7 @@ struct PFS_ALIGNED PFS_socket : public PFS_instr ...@@ -299,7 +299,7 @@ struct PFS_ALIGNED PFS_socket : public PFS_instr
/** Max size of the statements stack. */ /** Max size of the statements stack. */
extern uint statement_stack_max; extern uint statement_stack_max;
/** Max size of the digests token array. */ /** Max size of the digests token array. */
extern uint pfs_max_digest_length; extern size_t pfs_max_digest_length;
/** /**
@def PFS_MAX_ALLOC_RETRY @def PFS_MAX_ALLOC_RETRY
......
/* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. /* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
...@@ -255,24 +255,24 @@ int init_sync_class(uint mutex_class_sizing, ...@@ -255,24 +255,24 @@ int init_sync_class(uint mutex_class_sizing,
if (mutex_class_max > 0) if (mutex_class_max > 0)
{ {
mutex_class_array= PFS_MALLOC_ARRAY(mutex_class_max, PFS_mutex_class, mutex_class_array= PFS_MALLOC_ARRAY(mutex_class_max, sizeof(PFS_mutex_class),
MYF(MY_ZEROFILL)); PFS_mutex_class, MYF(MY_ZEROFILL));
if (unlikely(mutex_class_array == NULL)) if (unlikely(mutex_class_array == NULL))
return 1; return 1;
} }
if (rwlock_class_max > 0) if (rwlock_class_max > 0)
{ {
rwlock_class_array= PFS_MALLOC_ARRAY(rwlock_class_max, PFS_rwlock_class, rwlock_class_array= PFS_MALLOC_ARRAY(rwlock_class_max, sizeof(PFS_rwlock_class),
MYF(MY_ZEROFILL)); PFS_rwlock_class, MYF(MY_ZEROFILL));
if (unlikely(rwlock_class_array == NULL)) if (unlikely(rwlock_class_array == NULL))
return 1; return 1;
} }
if (cond_class_max > 0) if (cond_class_max > 0)
{ {
cond_class_array= PFS_MALLOC_ARRAY(cond_class_max, PFS_cond_class, cond_class_array= PFS_MALLOC_ARRAY(cond_class_max, sizeof(PFS_cond_class),
MYF(MY_ZEROFILL)); PFS_cond_class, MYF(MY_ZEROFILL));
if (unlikely(cond_class_array == NULL)) if (unlikely(cond_class_array == NULL))
return 1; return 1;
} }
...@@ -308,8 +308,8 @@ int init_thread_class(uint thread_class_sizing) ...@@ -308,8 +308,8 @@ int init_thread_class(uint thread_class_sizing)
if (thread_class_max > 0) if (thread_class_max > 0)
{ {
thread_class_array= PFS_MALLOC_ARRAY(thread_class_max, PFS_thread_class, thread_class_array= PFS_MALLOC_ARRAY(thread_class_max, sizeof(PFS_thread_class),
MYF(MY_ZEROFILL)); PFS_thread_class, MYF(MY_ZEROFILL));
if (unlikely(thread_class_array == NULL)) if (unlikely(thread_class_array == NULL))
result= 1; result= 1;
} }
...@@ -341,8 +341,8 @@ int init_table_share(uint table_share_sizing) ...@@ -341,8 +341,8 @@ int init_table_share(uint table_share_sizing)
if (table_share_max > 0) if (table_share_max > 0)
{ {
table_share_array= PFS_MALLOC_ARRAY(table_share_max, PFS_table_share, table_share_array= PFS_MALLOC_ARRAY(table_share_max, sizeof(PFS_table_share),
MYF(MY_ZEROFILL)); PFS_table_share, MYF(MY_ZEROFILL));
if (unlikely(table_share_array == NULL)) if (unlikely(table_share_array == NULL))
result= 1; result= 1;
} }
...@@ -481,8 +481,8 @@ int init_file_class(uint file_class_sizing) ...@@ -481,8 +481,8 @@ int init_file_class(uint file_class_sizing)
if (file_class_max > 0) if (file_class_max > 0)
{ {
file_class_array= PFS_MALLOC_ARRAY(file_class_max, PFS_file_class, file_class_array= PFS_MALLOC_ARRAY(file_class_max, sizeof(PFS_file_class),
MYF(MY_ZEROFILL)); PFS_file_class, MYF(MY_ZEROFILL));
if (unlikely(file_class_array == NULL)) if (unlikely(file_class_array == NULL))
return 1; return 1;
} }
...@@ -515,8 +515,8 @@ int init_stage_class(uint stage_class_sizing) ...@@ -515,8 +515,8 @@ int init_stage_class(uint stage_class_sizing)
if (stage_class_max > 0) if (stage_class_max > 0)
{ {
stage_class_array= PFS_MALLOC_ARRAY(stage_class_max, PFS_stage_class, stage_class_array= PFS_MALLOC_ARRAY(stage_class_max, sizeof(PFS_stage_class),
MYF(MY_ZEROFILL)); PFS_stage_class, MYF(MY_ZEROFILL));
if (unlikely(stage_class_array == NULL)) if (unlikely(stage_class_array == NULL))
return 1; return 1;
} }
...@@ -549,8 +549,8 @@ int init_statement_class(uint statement_class_sizing) ...@@ -549,8 +549,8 @@ int init_statement_class(uint statement_class_sizing)
if (statement_class_max > 0) if (statement_class_max > 0)
{ {
statement_class_array= PFS_MALLOC_ARRAY(statement_class_max, PFS_statement_class, statement_class_array= PFS_MALLOC_ARRAY(statement_class_max, sizeof(PFS_statement_class),
MYF(MY_ZEROFILL)); PFS_statement_class, MYF(MY_ZEROFILL));
if (unlikely(statement_class_array == NULL)) if (unlikely(statement_class_array == NULL))
return 1; return 1;
} }
...@@ -583,8 +583,8 @@ int init_socket_class(uint socket_class_sizing) ...@@ -583,8 +583,8 @@ int init_socket_class(uint socket_class_sizing)
if (socket_class_max > 0) if (socket_class_max > 0)
{ {
socket_class_array= PFS_MALLOC_ARRAY(socket_class_max, PFS_socket_class, socket_class_array= PFS_MALLOC_ARRAY(socket_class_max, sizeof(PFS_socket_class),
MYF(MY_ZEROFILL)); PFS_socket_class, MYF(MY_ZEROFILL));
if (unlikely(socket_class_array == NULL)) if (unlikely(socket_class_array == NULL))
return 1; return 1;
} }
......
...@@ -197,7 +197,7 @@ struct PFS_global_param ...@@ -197,7 +197,7 @@ struct PFS_global_param
/** Maximum number of session attribute strings per thread */ /** Maximum number of session attribute strings per thread */
long m_session_connect_attrs_sizing; long m_session_connect_attrs_sizing;
uint m_max_digest_length; long m_max_digest_length;
/** Sizing hints, for auto tuning. */ /** Sizing hints, for auto tuning. */
PFS_sizing_hints m_hints; PFS_sizing_hints m_hints;
......
/* Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. /* Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
...@@ -60,8 +60,8 @@ int init_setup_actor(const PFS_global_param *param) ...@@ -60,8 +60,8 @@ int init_setup_actor(const PFS_global_param *param)
if (setup_actor_max > 0) if (setup_actor_max > 0)
{ {
setup_actor_array= PFS_MALLOC_ARRAY(setup_actor_max, PFS_setup_actor, setup_actor_array= PFS_MALLOC_ARRAY(setup_actor_max, sizeof(PFS_setup_actor),
MYF(MY_ZEROFILL)); PFS_setup_actor, MYF(MY_ZEROFILL));
if (unlikely(setup_actor_array == NULL)) if (unlikely(setup_actor_array == NULL))
return 1; return 1;
} }
......
/* Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. /* Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
...@@ -55,8 +55,8 @@ int init_setup_object(const PFS_global_param *param) ...@@ -55,8 +55,8 @@ int init_setup_object(const PFS_global_param *param)
if (setup_object_max > 0) if (setup_object_max > 0)
{ {
setup_object_array= PFS_MALLOC_ARRAY(setup_object_max, PFS_setup_object, setup_object_array= PFS_MALLOC_ARRAY(setup_object_max, sizeof(PFS_setup_object),
MYF(MY_ZEROFILL)); PFS_setup_object, MYF(MY_ZEROFILL));
if (unlikely(setup_object_array == NULL)) if (unlikely(setup_object_array == NULL))
return 1; return 1;
} }
......
...@@ -66,7 +66,7 @@ int init_user(const PFS_global_param *param) ...@@ -66,7 +66,7 @@ int init_user(const PFS_global_param *param)
if (user_max > 0) if (user_max > 0)
{ {
user_array= PFS_MALLOC_ARRAY(user_max, PFS_user, user_array= PFS_MALLOC_ARRAY(user_max, sizeof(PFS_user), PFS_user,
MYF(MY_ZEROFILL)); MYF(MY_ZEROFILL));
if (unlikely(user_array == NULL)) if (unlikely(user_array == NULL))
return 1; return 1;
......
/* Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. /* Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
...@@ -152,6 +152,7 @@ void table_events_stages_common::make_row(PFS_events_stages *stage) ...@@ -152,6 +152,7 @@ void table_events_stages_common::make_row(PFS_events_stages *stage)
{ {
const char *base; const char *base;
const char *safe_source_file; const char *safe_source_file;
ulonglong timer_end;
m_row_exists= false; m_row_exists= false;
...@@ -166,7 +167,16 @@ void table_events_stages_common::make_row(PFS_events_stages *stage) ...@@ -166,7 +167,16 @@ void table_events_stages_common::make_row(PFS_events_stages *stage)
m_row.m_nesting_event_id= stage->m_nesting_event_id; m_row.m_nesting_event_id= stage->m_nesting_event_id;
m_row.m_nesting_event_type= stage->m_nesting_event_type; m_row.m_nesting_event_type= stage->m_nesting_event_type;
m_normalizer->to_pico(stage->m_timer_start, stage->m_timer_end, if (m_row.m_end_event_id == 0)
{
timer_end= get_timer_raw_value(stage_timer);
}
else
{
timer_end= stage->m_timer_end;
}
m_normalizer->to_pico(stage->m_timer_start, timer_end,
& m_row.m_timer_start, & m_row.m_timer_end, & m_row.m_timer_wait); & m_row.m_timer_start, & m_row.m_timer_end, & m_row.m_timer_wait);
m_row.m_name= klass->m_name; m_row.m_name= klass->m_name;
......
...@@ -306,6 +306,7 @@ void table_events_statements_common::make_row_part_1(PFS_events_statements *stat ...@@ -306,6 +306,7 @@ void table_events_statements_common::make_row_part_1(PFS_events_statements *stat
{ {
const char *base; const char *base;
const char *safe_source_file; const char *safe_source_file;
ulonglong timer_end;
m_row_exists= false; m_row_exists= false;
...@@ -320,7 +321,16 @@ void table_events_statements_common::make_row_part_1(PFS_events_statements *stat ...@@ -320,7 +321,16 @@ void table_events_statements_common::make_row_part_1(PFS_events_statements *stat
m_row.m_nesting_event_id= statement->m_nesting_event_id; m_row.m_nesting_event_id= statement->m_nesting_event_id;
m_row.m_nesting_event_type= statement->m_nesting_event_type; m_row.m_nesting_event_type= statement->m_nesting_event_type;
m_normalizer->to_pico(statement->m_timer_start, statement->m_timer_end, if (m_row.m_end_event_id == 0)
{
timer_end= get_timer_raw_value(statement_timer);
}
else
{
timer_end= statement->m_timer_end;
}
m_normalizer->to_pico(statement->m_timer_start, timer_end,
& m_row.m_timer_start, & m_row.m_timer_end, & m_row.m_timer_wait); & m_row.m_timer_start, & m_row.m_timer_end, & m_row.m_timer_wait);
m_row.m_lock_time= statement->m_lock_time * MICROSEC_TO_PICOSEC; m_row.m_lock_time= statement->m_lock_time * MICROSEC_TO_PICOSEC;
...@@ -340,8 +350,8 @@ void table_events_statements_common::make_row_part_1(PFS_events_statements *stat ...@@ -340,8 +350,8 @@ void table_events_statements_common::make_row_part_1(PFS_events_statements *stat
return; return;
base= base_name(safe_source_file); base= base_name(safe_source_file);
m_row.m_source_length= my_snprintf(m_row.m_source, sizeof(m_row.m_source), m_row.m_source_length= (uint)my_snprintf(m_row.m_source, sizeof(m_row.m_source),
"%s:%d", base, statement->m_source_line); "%s:%d", base, statement->m_source_line);
if (m_row.m_source_length > sizeof(m_row.m_source)) if (m_row.m_source_length > sizeof(m_row.m_source))
m_row.m_source_length= sizeof(m_row.m_source); m_row.m_source_length= sizeof(m_row.m_source);
...@@ -382,7 +392,7 @@ void table_events_statements_common::make_row_part_2(const sql_digest_storage *d ...@@ -382,7 +392,7 @@ void table_events_statements_common::make_row_part_2(const sql_digest_storage *d
/* /*
Filling up statement digest information. Filling up statement digest information.
*/ */
uint safe_byte_count= digest->m_byte_count; size_t safe_byte_count= digest->m_byte_count;
if (safe_byte_count > 0 && if (safe_byte_count > 0 &&
safe_byte_count <= pfs_max_digest_length) safe_byte_count <= pfs_max_digest_length)
{ {
...@@ -519,7 +529,7 @@ int table_events_statements_common::read_row_values(TABLE *table, ...@@ -519,7 +529,7 @@ int table_events_statements_common::read_row_values(TABLE *table,
f->set_null(); f->set_null();
break; break;
case 19: /* MESSAGE_TEXT */ case 19: /* MESSAGE_TEXT */
len= strlen(m_row.m_message_text); len= (uint)strlen(m_row.m_message_text);
if (len) if (len)
set_field_varchar_utf8(f, m_row.m_message_text, len); set_field_varchar_utf8(f, m_row.m_message_text, len);
else else
...@@ -881,7 +891,7 @@ int table_events_statements_history_long::rnd_init(bool scan) ...@@ -881,7 +891,7 @@ int table_events_statements_history_long::rnd_init(bool scan)
int table_events_statements_history_long::rnd_next(void) int table_events_statements_history_long::rnd_next(void)
{ {
PFS_events_statements *statement; PFS_events_statements *statement;
uint limit; size_t limit;
if (events_statements_history_long_size == 0) if (events_statements_history_long_size == 0)
return HA_ERR_END_OF_FILE; return HA_ERR_END_OF_FILE;
...@@ -910,7 +920,7 @@ int table_events_statements_history_long::rnd_next(void) ...@@ -910,7 +920,7 @@ int table_events_statements_history_long::rnd_next(void)
int table_events_statements_history_long::rnd_pos(const void *pos) int table_events_statements_history_long::rnd_pos(const void *pos)
{ {
PFS_events_statements *statement; PFS_events_statements *statement;
uint limit; size_t limit;
if (events_statements_history_long_size == 0) if (events_statements_history_long_size == 0)
return HA_ERR_RECORD_DELETED; return HA_ERR_RECORD_DELETED;
......
/* Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. /* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
...@@ -363,6 +363,8 @@ void table_events_waits_common::make_row(bool thread_own_wait, ...@@ -363,6 +363,8 @@ void table_events_waits_common::make_row(bool thread_own_wait,
PFS_instr_class *safe_class; PFS_instr_class *safe_class;
const char *base; const char *base;
const char *safe_source_file; const char *safe_source_file;
enum_timer_name timer_name= wait_timer;
ulonglong timer_end;
m_row_exists= false; m_row_exists= false;
safe_thread= sanitize_thread(pfs_thread); safe_thread= sanitize_thread(pfs_thread);
...@@ -401,6 +403,7 @@ void table_events_waits_common::make_row(bool thread_own_wait, ...@@ -401,6 +403,7 @@ void table_events_waits_common::make_row(bool thread_own_wait,
case WAIT_CLASS_IDLE: case WAIT_CLASS_IDLE:
clear_object_columns(); clear_object_columns();
safe_class= sanitize_idle_class(wait->m_class); safe_class= sanitize_idle_class(wait->m_class);
timer_name= idle_timer;
break; break;
case WAIT_CLASS_MUTEX: case WAIT_CLASS_MUTEX:
clear_object_columns(); clear_object_columns();
...@@ -444,7 +447,17 @@ void table_events_waits_common::make_row(bool thread_own_wait, ...@@ -444,7 +447,17 @@ void table_events_waits_common::make_row(bool thread_own_wait,
m_row.m_nesting_event_type= wait->m_nesting_event_type; m_row.m_nesting_event_type= wait->m_nesting_event_type;
get_normalizer(safe_class); get_normalizer(safe_class);
m_normalizer->to_pico(wait->m_timer_start, wait->m_timer_end,
if (m_row.m_end_event_id == 0)
{
timer_end= get_timer_raw_value(timer_name);
}
else
{
timer_end= wait->m_timer_end;
}
m_normalizer->to_pico(wait->m_timer_start, timer_end,
& m_row.m_timer_start, & m_row.m_timer_end, & m_row.m_timer_wait); & m_row.m_timer_start, & m_row.m_timer_end, & m_row.m_timer_wait);
m_row.m_name= safe_class->m_name; m_row.m_name= safe_class->m_name;
......
...@@ -110,7 +110,7 @@ int PFS_digest_row::make_row(PFS_statements_digest_stat* pfs) ...@@ -110,7 +110,7 @@ int PFS_digest_row::make_row(PFS_statements_digest_stat* pfs)
if (m_schema_name_length > 0) if (m_schema_name_length > 0)
memcpy(m_schema_name, pfs->m_digest_key.m_schema_name, m_schema_name_length); memcpy(m_schema_name, pfs->m_digest_key.m_schema_name, m_schema_name_length);
uint safe_byte_count= pfs->m_digest_storage.m_byte_count; size_t safe_byte_count= pfs->m_digest_storage.m_byte_count;
if (safe_byte_count > pfs_max_digest_length) if (safe_byte_count > pfs_max_digest_length)
safe_byte_count= 0; safe_byte_count= 0;
......
...@@ -42,6 +42,7 @@ SET(tests ...@@ -42,6 +42,7 @@ SET(tests
pfs_host-oom pfs_host-oom
pfs_user-oom pfs_user-oom
pfs pfs
pfs_misc
) )
FOREACH(testname ${tests}) FOREACH(testname ${tests})
PFS_ADD_TEST(${testname}) PFS_ADD_TEST(${testname})
......
/* Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License 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 */
#include <my_global.h>
#include <pfs_instr.h>
#include <pfs_stat.h>
#include <pfs_global.h>
#include <pfs_instr_class.h>
#include <tap.h>
#include <memory.h>
void test_digest_length_overflow()
{
if (sizeof(size_t) != 4)
{
skip(2, "digest length overflow requires a 32-bit environment");
return;
}
PFS_global_param param;
memset(&param, 0, sizeof(param));
param.m_enabled= true;
/*
Force 32-bit arithmetic overflow using the digest memory allocation
parameters. The Performance Schema should detect the overflow, free
allocated memory and abort initialization with a warning.
*/
/* Max digest length, events_statements_history_long. */
param.m_events_statements_history_long_sizing= 10000;
param.m_digest_sizing= 1000;
param.m_max_digest_length= (1024 * 1024);
pfs_max_digest_length= param.m_max_digest_length;
int rc = init_events_statements_history_long(param.m_events_statements_history_long_sizing);
ok(rc == 1, "digest length overflow (init_events_statements_history_long");
/* Max digest length, events_statements_summary_by_digest. */
param.m_max_digest_length= (1024 * 1024);
param.m_digest_sizing= 10000;
rc = init_digest(&param);
ok(rc == 1, "digest length overflow (init_digest)");
}
void do_all_tests()
{
test_digest_length_overflow();
}
int main(int, char **)
{
plan(2);
MY_INIT("pfs_misc-t");
do_all_tests();
return exit_status();
}
/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. /* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
...@@ -25,6 +25,11 @@ int stub_alloc_fails_after_count= 0; ...@@ -25,6 +25,11 @@ int stub_alloc_fails_after_count= 0;
void *pfs_malloc(size_t size, myf) void *pfs_malloc(size_t size, myf)
{ {
/*
Catch non initialized sizing parameter in the unit tests.
*/
DBUG_ASSERT(size <= 100*1024*1024);
if (stub_alloc_always_fails) if (stub_alloc_always_fails)
return NULL; return NULL;
...@@ -43,6 +48,23 @@ void pfs_free(void *ptr) ...@@ -43,6 +48,23 @@ void pfs_free(void *ptr)
free(ptr); free(ptr);
} }
void *pfs_malloc_array(size_t n, size_t size, myf flags)
{
size_t array_size= n * size;
/* Check for overflow before allocating. */
if (is_overflow(array_size, n, size))
return NULL;
return pfs_malloc(array_size, flags);
}
bool is_overflow(size_t product, size_t n1, size_t n2)
{
if (n1 != 0 && (product / n1 != n2))
return true;
else
return false;
}
void pfs_print_error(const char *format, ...) void pfs_print_error(const char *format, ...)
{ {
} }
......
/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. /* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
...@@ -33,6 +33,23 @@ void pfs_free(void *ptr) ...@@ -33,6 +33,23 @@ void pfs_free(void *ptr)
free(ptr); free(ptr);
} }
void *pfs_malloc_array(size_t n, size_t size, myf flags)
{
size_t array_size= n * size;
/* Check for overflow before allocating. */
if (is_overflow(array_size, n, size))
return NULL;
return pfs_malloc(array_size, flags);
}
bool is_overflow(size_t product, size_t n1, size_t n2)
{
if (n1 != 0 && (product / n1 != n2))
return true;
else
return false;
}
void pfs_print_error(const char *format, ...) void pfs_print_error(const char *format, ...)
{ {
/* Do not pollute the unit test output with annoying messages. */ /* Do not pollute the unit test output with annoying messages. */
......
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