From: Marc Alff Date: July 7 2010 3:15am Subject: bzr push into mysql-next-mr-wl4895 branch (marc.alff:3162 to 3163) WL#4895 List-Archive: http://lists.mysql.com/commits/112985 Message-Id: <20100707031517.8A38545E80@linux-su11.site> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1400216494102291290==" --===============1400216494102291290== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline 3163 Marc Alff 2010-07-06 WL#4895 PERFORMANCE SCHEMA TABLE IO Added test cases added: mysql-test/suite/perfschema/include/table_io_basic_dml.inc mysql-test/suite/perfschema/include/table_io_cleanup_helper.inc mysql-test/suite/perfschema/include/table_io_setup_helper.inc mysql-test/suite/perfschema/r/csv_table_io.result mysql-test/suite/perfschema/r/innodb_table_io.result mysql-test/suite/perfschema/r/memory_table_io.result mysql-test/suite/perfschema/r/privilege_table_io.result mysql-test/suite/perfschema/r/trigger_table_io.result mysql-test/suite/perfschema/t/csv_table_io.test mysql-test/suite/perfschema/t/innodb_table_io.test mysql-test/suite/perfschema/t/memory_table_io.test mysql-test/suite/perfschema/t/privilege_table_io.test mysql-test/suite/perfschema/t/trigger_table_io.test modified: mysql-test/suite/perfschema/r/myisam_table_io.result mysql-test/suite/perfschema/t/myisam_table_io.test 3162 Marc Alff 2010-07-02 Implemented code review comments modified: include/mysql/psi/mysql_table.h mysql-test/include/mtr_check.sql mysql-test/suite/perfschema/t/myisam_table_io.test mysql-test/suite/perfschema/t/start_server_no_table_hdl.test mysql-test/suite/perfschema/t/start_server_no_table_inst.test mysql-test/suite/perfschema/t/start_server_nothing.test storage/perfschema/table_helper.h === added file 'mysql-test/suite/perfschema/include/table_io_basic_dml.inc' --- a/mysql-test/suite/perfschema/include/table_io_basic_dml.inc 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/include/table_io_basic_dml.inc 2010-07-07 03:14:49 +0000 @@ -0,0 +1,92 @@ +# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA + +# Tests for PERFORMANCE_SCHEMA + +# Payload fragment to test table io for basic DML. + +# Setup + +--disable_warnings +drop table if exists test.no_index_tab; +drop temporary table if exists test.temp_tab; +--enable_warnings + +# Start recording events +update performance_schema.SETUP_CONSUMERS set enabled='YES'; + +# Code to test + +insert into marker set a=1; +eval create table test.no_index_tab + ( a varchar(255) not null, b int not null) engine=$engine_type; +# Make sure the proper engine is used +show create table test.no_index_tab; +insert into marker set a=1; +insert into no_index_tab set a = 'foo', b = 1; +insert into marker set a=1; +insert into no_index_tab set a = 'foo', b = 2; +insert into marker set a=1; +insert into no_index_tab set a = 'foo', b = 3; +insert into marker set a=1; +select * from test.no_index_tab; +insert into marker set a=1; +update test.no_index_tab set a = 'bar'; +insert into marker set a=1; +select * from test.no_index_tab limit 2; +insert into marker set a=1; +delete from test.no_index_tab where b = 3; +insert into marker set a=1; +# This may record a fetch for "deleted" records +select * from test.no_index_tab; +insert into marker set a=1; +optimize table test.no_index_tab; +insert into marker set a=1; +# Same data after optimize +select * from test.no_index_tab; +insert into marker set a=1; +truncate table test.no_index_tab; + +insert into marker set a=1; +eval create temporary table test.temp_tab + ( a varchar(255) not null, b int not null) engine=$engine_type; +show create table test.temp_tab; +insert into marker set a=1; +insert into temp_tab set a = 'foo', b = 1; +insert into marker set a=1; +insert into temp_tab set a = 'foo', b = 2; +insert into marker set a=1; +insert into temp_tab set a = 'foo', b = 3; +insert into marker set a=1; +select * from test.temp_tab; +insert into marker set a=1; +update test.temp_tab set a = 'bar'; +insert into marker set a=1; +select * from test.temp_tab limit 2; +insert into marker set a=1; +delete from test.temp_tab where b = 3; +insert into marker set a=1; +select * from test.temp_tab; +insert into marker set a=1; +truncate table test.temp_tab; + +# Stop recording events +update performance_schema.SETUP_CONSUMERS set enabled='NO'; + +# Cleanup + +drop table test.no_index_tab; +drop temporary table test.temp_tab; + === added file 'mysql-test/suite/perfschema/include/table_io_cleanup_helper.inc' --- a/mysql-test/suite/perfschema/include/table_io_cleanup_helper.inc 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/include/table_io_cleanup_helper.inc 2010-07-07 03:14:49 +0000 @@ -0,0 +1,39 @@ +# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA + +# See related script table_io_setup_helper.inc + +eval select event_name, + left(source, locate(":", source)) as short_source, + object_type, object_schema, + if (locate("#sql-", object_name), "#sql-XXXX", object_name) + as pretty_name, + operation, number_of_bytes + from performance_schema.EVENTS_WAITS_HISTORY_LONG + where event_name like 'wait/io/table/%' + and object_schema in ($schema_to_dump) + order by thread_id, event_id; + +# In case of failures, this will tell if table io are lost. +show status like 'performance_schema_%'; + +# Cleanup + +update performance_schema.SETUP_INSTRUMENTS set enabled='YES'; +update performance_schema.SETUP_CONSUMERS set enabled='YES'; + +drop table test.marker; + + === added file 'mysql-test/suite/perfschema/include/table_io_setup_helper.inc' --- a/mysql-test/suite/perfschema/include/table_io_setup_helper.inc 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/include/table_io_setup_helper.inc 2010-07-07 03:14:49 +0000 @@ -0,0 +1,66 @@ +# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA + +# Performance schema test template + +# How to use this script in a test case +# ===================================== +# +# The general table io test template is as follows +# +# --source include/not_embedded.inc +# --source include/have_perfschema.inc +# --source ../include/table_io_setup_helper.inc +# ... more setup scripts as needed ... +# update performance_schema.SETUP_CONSUMERS set enabled='YES'; +# ... test payload here ... +# ... optionally, add this insert between statements +# ... to make the final output more readable +# insert into test.marker set a=1; +# ... more test payload here ... +# update performance_schema.SETUP_CONSUMERS set enabled='NO'; +# ... more cleanup scripts as needed... +# ... optionaly, add the following line (by default, only "test" is dumped) ... +# let $schema_to_dump="db1", "db2", "db3"; +# --source ../include/table_io_cleanup_helper.inc +# +# (end of template) + +# Setup + +--disable_warnings +drop table if exists test.marker; +--enable_warnings + +# To be used in the test payload, +# insert into marker makes the test output easier to read, +# to separate table io events between statements. +create table test.marker(a int); + +update performance_schema.SETUP_CONSUMERS set enabled='NO'; + +update performance_schema.SETUP_INSTRUMENTS set enabled='NO'; +update performance_schema.SETUP_INSTRUMENTS set enabled='YES' + where name like "wait/io/table/%"; + +truncate table performance_schema.EVENTS_WAITS_HISTORY_LONG; + +# Reset lost counters to a known state +flush status; + +# By default, dump table io only for test. +# A test can overide this +let $schema_to_dump="test"; + === added file 'mysql-test/suite/perfschema/r/csv_table_io.result' --- a/mysql-test/suite/perfschema/r/csv_table_io.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/csv_table_io.result 2010-07-07 03:14:49 +0000 @@ -0,0 +1,200 @@ +drop table if exists test.marker; +create table test.marker(a int); +update performance_schema.SETUP_CONSUMERS set enabled='NO'; +update performance_schema.SETUP_INSTRUMENTS set enabled='NO'; +update performance_schema.SETUP_INSTRUMENTS set enabled='YES' + where name like "wait/io/table/%"; +truncate table performance_schema.EVENTS_WAITS_HISTORY_LONG; +flush status; +drop table if exists test.no_index_tab; +drop temporary table if exists test.temp_tab; +update performance_schema.SETUP_CONSUMERS set enabled='YES'; +insert into marker set a=1; +create table test.no_index_tab +( a varchar(255) not null, b int not null) engine=csv; +show create table test.no_index_tab; +Table Create Table +no_index_tab CREATE TABLE `no_index_tab` ( + `a` varchar(255) NOT NULL, + `b` int(11) NOT NULL +) ENGINE=CSV DEFAULT CHARSET=latin1 +insert into marker set a=1; +insert into no_index_tab set a = 'foo', b = 1; +insert into marker set a=1; +insert into no_index_tab set a = 'foo', b = 2; +insert into marker set a=1; +insert into no_index_tab set a = 'foo', b = 3; +insert into marker set a=1; +select * from test.no_index_tab; +a b +foo 1 +foo 2 +foo 3 +insert into marker set a=1; +update test.no_index_tab set a = 'bar'; +insert into marker set a=1; +select * from test.no_index_tab limit 2; +a b +bar 1 +bar 2 +insert into marker set a=1; +delete from test.no_index_tab where b = 3; +insert into marker set a=1; +select * from test.no_index_tab; +a b +bar 1 +bar 2 +insert into marker set a=1; +optimize table test.no_index_tab; +Table Op Msg_type Msg_text +test.no_index_tab optimize note The storage engine for the table doesn't support optimize +insert into marker set a=1; +select * from test.no_index_tab; +a b +bar 1 +bar 2 +insert into marker set a=1; +truncate table test.no_index_tab; +insert into marker set a=1; +create temporary table test.temp_tab +( a varchar(255) not null, b int not null) engine=csv; +show create table test.temp_tab; +Table Create Table +temp_tab CREATE TEMPORARY TABLE `temp_tab` ( + `a` varchar(255) NOT NULL, + `b` int(11) NOT NULL +) ENGINE=CSV DEFAULT CHARSET=latin1 +insert into marker set a=1; +insert into temp_tab set a = 'foo', b = 1; +insert into marker set a=1; +insert into temp_tab set a = 'foo', b = 2; +insert into marker set a=1; +insert into temp_tab set a = 'foo', b = 3; +insert into marker set a=1; +select * from test.temp_tab; +a b +foo 1 +foo 2 +foo 3 +insert into marker set a=1; +update test.temp_tab set a = 'bar'; +insert into marker set a=1; +select * from test.temp_tab limit 2; +a b +bar 1 +bar 2 +insert into marker set a=1; +delete from test.temp_tab where b = 3; +insert into marker set a=1; +select * from test.temp_tab; +a b +bar 1 +bar 2 +insert into marker set a=1; +truncate table test.temp_tab; +update performance_schema.SETUP_CONSUMERS set enabled='NO'; +drop table test.no_index_tab; +drop temporary table test.temp_tab; +select event_name, +left(source, locate(":", source)) as short_source, +object_type, object_schema, +if (locate("#sql-", object_name), "#sql-XXXX", object_name) +as pretty_name, +operation, number_of_bytes +from performance_schema.EVENTS_WAITS_HISTORY_LONG +where event_name like 'wait/io/table/%' + and object_schema in ("test") +order by thread_id, event_id; +event_name short_source object_type object_schema pretty_name operation number_of_bytes +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab update NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab update NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab update NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab delete NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab update NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab update NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab update NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab delete NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +show status like 'performance_schema_%'; +Variable_name Value +Performance_schema_cond_classes_lost 0 +Performance_schema_cond_instances_lost 0 +Performance_schema_file_classes_lost 0 +Performance_schema_file_handles_lost 0 +Performance_schema_file_instances_lost 0 +Performance_schema_locker_lost 0 +Performance_schema_mutex_classes_lost 0 +Performance_schema_mutex_instances_lost 0 +Performance_schema_rwlock_classes_lost 0 +Performance_schema_rwlock_instances_lost 0 +Performance_schema_table_handles_lost 0 +Performance_schema_table_instances_lost 0 +Performance_schema_thread_classes_lost 0 +Performance_schema_thread_instances_lost 0 +update performance_schema.SETUP_INSTRUMENTS set enabled='YES'; +update performance_schema.SETUP_CONSUMERS set enabled='YES'; +drop table test.marker; === added file 'mysql-test/suite/perfschema/r/innodb_table_io.result' --- a/mysql-test/suite/perfschema/r/innodb_table_io.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/innodb_table_io.result 2010-07-07 03:14:49 +0000 @@ -0,0 +1,206 @@ +drop table if exists test.marker; +create table test.marker(a int); +update performance_schema.SETUP_CONSUMERS set enabled='NO'; +update performance_schema.SETUP_INSTRUMENTS set enabled='NO'; +update performance_schema.SETUP_INSTRUMENTS set enabled='YES' + where name like "wait/io/table/%"; +truncate table performance_schema.EVENTS_WAITS_HISTORY_LONG; +flush status; +drop table if exists test.no_index_tab; +drop temporary table if exists test.temp_tab; +update performance_schema.SETUP_CONSUMERS set enabled='YES'; +insert into marker set a=1; +create table test.no_index_tab +( a varchar(255) not null, b int not null) engine=innodb; +show create table test.no_index_tab; +Table Create Table +no_index_tab CREATE TABLE `no_index_tab` ( + `a` varchar(255) NOT NULL, + `b` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +insert into marker set a=1; +insert into no_index_tab set a = 'foo', b = 1; +insert into marker set a=1; +insert into no_index_tab set a = 'foo', b = 2; +insert into marker set a=1; +insert into no_index_tab set a = 'foo', b = 3; +insert into marker set a=1; +select * from test.no_index_tab; +a b +foo 1 +foo 2 +foo 3 +insert into marker set a=1; +update test.no_index_tab set a = 'bar'; +insert into marker set a=1; +select * from test.no_index_tab limit 2; +a b +bar 1 +bar 2 +insert into marker set a=1; +delete from test.no_index_tab where b = 3; +insert into marker set a=1; +select * from test.no_index_tab; +a b +bar 1 +bar 2 +insert into marker set a=1; +optimize table test.no_index_tab; +Table Op Msg_type Msg_text +test.no_index_tab optimize note Table does not support optimize, doing recreate + analyze instead +test.no_index_tab optimize status OK +insert into marker set a=1; +select * from test.no_index_tab; +a b +bar 1 +bar 2 +insert into marker set a=1; +truncate table test.no_index_tab; +insert into marker set a=1; +create temporary table test.temp_tab +( a varchar(255) not null, b int not null) engine=innodb; +show create table test.temp_tab; +Table Create Table +temp_tab CREATE TEMPORARY TABLE `temp_tab` ( + `a` varchar(255) NOT NULL, + `b` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +insert into marker set a=1; +insert into temp_tab set a = 'foo', b = 1; +insert into marker set a=1; +insert into temp_tab set a = 'foo', b = 2; +insert into marker set a=1; +insert into temp_tab set a = 'foo', b = 3; +insert into marker set a=1; +select * from test.temp_tab; +a b +foo 1 +foo 2 +foo 3 +insert into marker set a=1; +update test.temp_tab set a = 'bar'; +insert into marker set a=1; +select * from test.temp_tab limit 2; +a b +bar 1 +bar 2 +insert into marker set a=1; +delete from test.temp_tab where b = 3; +insert into marker set a=1; +select * from test.temp_tab; +a b +bar 1 +bar 2 +insert into marker set a=1; +truncate table test.temp_tab; +update performance_schema.SETUP_CONSUMERS set enabled='NO'; +drop table test.no_index_tab; +drop temporary table test.temp_tab; +select event_name, +left(source, locate(":", source)) as short_source, +object_type, object_schema, +if (locate("#sql-", object_name), "#sql-XXXX", object_name) +as pretty_name, +operation, number_of_bytes +from performance_schema.EVENTS_WAITS_HISTORY_LONG +where event_name like 'wait/io/table/%' + and object_schema in ("test") +order by thread_id, event_id; +event_name short_source object_type object_schema pretty_name operation number_of_bytes +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab update NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab update NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab update NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab delete NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test #sql-XXXX insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test #sql-XXXX insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab update NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab update NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab update NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab delete NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +show status like 'performance_schema_%'; +Variable_name Value +Performance_schema_cond_classes_lost 0 +Performance_schema_cond_instances_lost 0 +Performance_schema_file_classes_lost 0 +Performance_schema_file_handles_lost 0 +Performance_schema_file_instances_lost 0 +Performance_schema_locker_lost 0 +Performance_schema_mutex_classes_lost 0 +Performance_schema_mutex_instances_lost 0 +Performance_schema_rwlock_classes_lost 0 +Performance_schema_rwlock_instances_lost 0 +Performance_schema_table_handles_lost 0 +Performance_schema_table_instances_lost 0 +Performance_schema_thread_classes_lost 0 +Performance_schema_thread_instances_lost 0 +update performance_schema.SETUP_INSTRUMENTS set enabled='YES'; +update performance_schema.SETUP_CONSUMERS set enabled='YES'; +drop table test.marker; === added file 'mysql-test/suite/perfschema/r/memory_table_io.result' --- a/mysql-test/suite/perfschema/r/memory_table_io.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/memory_table_io.result 2010-07-07 03:14:49 +0000 @@ -0,0 +1,203 @@ +drop table if exists test.marker; +create table test.marker(a int); +update performance_schema.SETUP_CONSUMERS set enabled='NO'; +update performance_schema.SETUP_INSTRUMENTS set enabled='NO'; +update performance_schema.SETUP_INSTRUMENTS set enabled='YES' + where name like "wait/io/table/%"; +truncate table performance_schema.EVENTS_WAITS_HISTORY_LONG; +flush status; +drop table if exists test.no_index_tab; +drop temporary table if exists test.temp_tab; +update performance_schema.SETUP_CONSUMERS set enabled='YES'; +insert into marker set a=1; +create table test.no_index_tab +( a varchar(255) not null, b int not null) engine=memory; +show create table test.no_index_tab; +Table Create Table +no_index_tab CREATE TABLE `no_index_tab` ( + `a` varchar(255) NOT NULL, + `b` int(11) NOT NULL +) ENGINE=MEMORY DEFAULT CHARSET=latin1 +insert into marker set a=1; +insert into no_index_tab set a = 'foo', b = 1; +insert into marker set a=1; +insert into no_index_tab set a = 'foo', b = 2; +insert into marker set a=1; +insert into no_index_tab set a = 'foo', b = 3; +insert into marker set a=1; +select * from test.no_index_tab; +a b +foo 1 +foo 2 +foo 3 +insert into marker set a=1; +update test.no_index_tab set a = 'bar'; +insert into marker set a=1; +select * from test.no_index_tab limit 2; +a b +bar 1 +bar 2 +insert into marker set a=1; +delete from test.no_index_tab where b = 3; +insert into marker set a=1; +select * from test.no_index_tab; +a b +bar 1 +bar 2 +insert into marker set a=1; +optimize table test.no_index_tab; +Table Op Msg_type Msg_text +test.no_index_tab optimize note The storage engine for the table doesn't support optimize +insert into marker set a=1; +select * from test.no_index_tab; +a b +bar 1 +bar 2 +insert into marker set a=1; +truncate table test.no_index_tab; +insert into marker set a=1; +create temporary table test.temp_tab +( a varchar(255) not null, b int not null) engine=memory; +show create table test.temp_tab; +Table Create Table +temp_tab CREATE TEMPORARY TABLE `temp_tab` ( + `a` varchar(255) NOT NULL, + `b` int(11) NOT NULL +) ENGINE=MEMORY DEFAULT CHARSET=latin1 +insert into marker set a=1; +insert into temp_tab set a = 'foo', b = 1; +insert into marker set a=1; +insert into temp_tab set a = 'foo', b = 2; +insert into marker set a=1; +insert into temp_tab set a = 'foo', b = 3; +insert into marker set a=1; +select * from test.temp_tab; +a b +foo 1 +foo 2 +foo 3 +insert into marker set a=1; +update test.temp_tab set a = 'bar'; +insert into marker set a=1; +select * from test.temp_tab limit 2; +a b +bar 1 +bar 2 +insert into marker set a=1; +delete from test.temp_tab where b = 3; +insert into marker set a=1; +select * from test.temp_tab; +a b +bar 1 +bar 2 +insert into marker set a=1; +truncate table test.temp_tab; +update performance_schema.SETUP_CONSUMERS set enabled='NO'; +drop table test.no_index_tab; +drop temporary table test.temp_tab; +select event_name, +left(source, locate(":", source)) as short_source, +object_type, object_schema, +if (locate("#sql-", object_name), "#sql-XXXX", object_name) +as pretty_name, +operation, number_of_bytes +from performance_schema.EVENTS_WAITS_HISTORY_LONG +where event_name like 'wait/io/table/%' + and object_schema in ("test") +order by thread_id, event_id; +event_name short_source object_type object_schema pretty_name operation number_of_bytes +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab update NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab update NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab update NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab delete NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab update NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab update NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab update NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab delete NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +show status like 'performance_schema_%'; +Variable_name Value +Performance_schema_cond_classes_lost 0 +Performance_schema_cond_instances_lost 0 +Performance_schema_file_classes_lost 0 +Performance_schema_file_handles_lost 0 +Performance_schema_file_instances_lost 0 +Performance_schema_locker_lost 0 +Performance_schema_mutex_classes_lost 0 +Performance_schema_mutex_instances_lost 0 +Performance_schema_rwlock_classes_lost 0 +Performance_schema_rwlock_instances_lost 0 +Performance_schema_table_handles_lost 0 +Performance_schema_table_instances_lost 0 +Performance_schema_thread_classes_lost 0 +Performance_schema_thread_instances_lost 0 +update performance_schema.SETUP_INSTRUMENTS set enabled='YES'; +update performance_schema.SETUP_CONSUMERS set enabled='YES'; +drop table test.marker; === modified file 'mysql-test/suite/perfschema/r/myisam_table_io.result' --- a/mysql-test/suite/perfschema/r/myisam_table_io.result 2010-05-25 08:19:01 +0000 +++ b/mysql-test/suite/perfschema/r/myisam_table_io.result 2010-07-07 03:14:49 +0000 @@ -1,69 +1,124 @@ +drop table if exists test.marker; +create table test.marker(a int); update performance_schema.SETUP_CONSUMERS set enabled='NO'; update performance_schema.SETUP_INSTRUMENTS set enabled='NO'; update performance_schema.SETUP_INSTRUMENTS set enabled='YES' where name like "wait/io/table/%"; truncate table performance_schema.EVENTS_WAITS_HISTORY_LONG; flush status; -update performance_schema.SETUP_CONSUMERS set enabled='YES'; drop table if exists test.no_index_tab; drop temporary table if exists test.temp_tab; -create table test.no_index_tab ( a varchar(255), b int ) engine=myisam; +update performance_schema.SETUP_CONSUMERS set enabled='YES'; +insert into marker set a=1; +create table test.no_index_tab +( a varchar(255) not null, b int not null) engine=myisam; +show create table test.no_index_tab; +Table Create Table +no_index_tab CREATE TABLE `no_index_tab` ( + `a` varchar(255) NOT NULL, + `b` int(11) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +insert into marker set a=1; insert into no_index_tab set a = 'foo', b = 1; +insert into marker set a=1; insert into no_index_tab set a = 'foo', b = 2; +insert into marker set a=1; insert into no_index_tab set a = 'foo', b = 3; +insert into marker set a=1; select * from test.no_index_tab; a b foo 1 foo 2 foo 3 +insert into marker set a=1; update test.no_index_tab set a = 'bar'; +insert into marker set a=1; select * from test.no_index_tab limit 2; a b bar 1 bar 2 +insert into marker set a=1; delete from test.no_index_tab where b = 3; +insert into marker set a=1; +select * from test.no_index_tab; +a b +bar 1 +bar 2 +insert into marker set a=1; +optimize table test.no_index_tab; +Table Op Msg_type Msg_text +test.no_index_tab optimize status OK +insert into marker set a=1; select * from test.no_index_tab; a b bar 1 bar 2 +insert into marker set a=1; truncate table test.no_index_tab; -create temporary table test.temp_tab ( a varchar(255), b int ) engine=myisam; +insert into marker set a=1; +create temporary table test.temp_tab +( a varchar(255) not null, b int not null) engine=myisam; +show create table test.temp_tab; +Table Create Table +temp_tab CREATE TEMPORARY TABLE `temp_tab` ( + `a` varchar(255) NOT NULL, + `b` int(11) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +insert into marker set a=1; insert into temp_tab set a = 'foo', b = 1; +insert into marker set a=1; insert into temp_tab set a = 'foo', b = 2; +insert into marker set a=1; insert into temp_tab set a = 'foo', b = 3; +insert into marker set a=1; select * from test.temp_tab; a b foo 1 foo 2 foo 3 +insert into marker set a=1; update test.temp_tab set a = 'bar'; +insert into marker set a=1; select * from test.temp_tab limit 2; a b bar 1 bar 2 +insert into marker set a=1; delete from test.temp_tab where b = 3; +insert into marker set a=1; select * from test.temp_tab; a b bar 1 bar 2 +insert into marker set a=1; truncate table test.temp_tab; update performance_schema.SETUP_CONSUMERS set enabled='NO'; +drop table test.no_index_tab; +drop temporary table test.temp_tab; select event_name, left(source, locate(":", source)) as short_source, -object_type, object_schema, object_name, +object_type, object_schema, +if (locate("#sql-", object_name), "#sql-XXXX", object_name) +as pretty_name, operation, number_of_bytes from performance_schema.EVENTS_WAITS_HISTORY_LONG where event_name like 'wait/io/table/%' - and object_schema='test' - order by thread_id, event_id; -event_name short_source object_type object_schema object_name operation number_of_bytes + and object_schema in ("test") +order by thread_id, event_id; +event_name short_source object_type object_schema pretty_name operation number_of_bytes +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab update NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL @@ -71,23 +126,38 @@ wait/io/table/sql/handler handler.cc: TA wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab update NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab delete NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab update NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL @@ -95,16 +165,20 @@ wait/io/table/sql/handler handler.cc: TE wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab update NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab delete NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL show status like 'performance_schema_%'; Variable_name Value Performance_schema_cond_classes_lost 0 @@ -123,4 +197,4 @@ Performance_schema_thread_classes_lost 0 Performance_schema_thread_instances_lost 0 update performance_schema.SETUP_INSTRUMENTS set enabled='YES'; update performance_schema.SETUP_CONSUMERS set enabled='YES'; -drop table test.no_index_tab; +drop table test.marker; === added file 'mysql-test/suite/perfschema/r/privilege_table_io.result' --- a/mysql-test/suite/perfschema/r/privilege_table_io.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/privilege_table_io.result 2010-07-07 03:14:49 +0000 @@ -0,0 +1,62 @@ +drop table if exists test.marker; +create table test.marker(a int); +update performance_schema.SETUP_CONSUMERS set enabled='NO'; +update performance_schema.SETUP_INSTRUMENTS set enabled='NO'; +update performance_schema.SETUP_INSTRUMENTS set enabled='YES' + where name like "wait/io/table/%"; +truncate table performance_schema.EVENTS_WAITS_HISTORY_LONG; +flush status; +optimize table mysql.db; +Table Op Msg_type Msg_text +mysql.db optimize status OK +update performance_schema.SETUP_CONSUMERS set enabled='YES'; +flush privileges; +insert into test.marker set a=1; +insert into test.marker set a=1; +insert into test.marker set a=1; +update performance_schema.SETUP_CONSUMERS set enabled='NO'; +select event_name, +left(source, locate(":", source)) as short_source, +object_type, object_schema, +if (locate("#sql-", object_name), "#sql-XXXX", object_name) +as pretty_name, +operation, number_of_bytes +from performance_schema.EVENTS_WAITS_HISTORY_LONG +where event_name like 'wait/io/table/%' + and object_schema in ("test", "mysql") +order by thread_id, event_id; +event_name short_source object_type object_schema pretty_name operation number_of_bytes +wait/io/table/sql/handler handler.cc: TABLE mysql host fetch NULL +wait/io/table/sql/handler handler.cc: TABLE mysql user fetch NULL +wait/io/table/sql/handler handler.cc: TABLE mysql user fetch NULL +wait/io/table/sql/handler handler.cc: TABLE mysql user fetch NULL +wait/io/table/sql/handler handler.cc: TABLE mysql user fetch NULL +wait/io/table/sql/handler handler.cc: TABLE mysql user fetch NULL +wait/io/table/sql/handler handler.cc: TABLE mysql db fetch NULL +wait/io/table/sql/handler handler.cc: TABLE mysql db fetch NULL +wait/io/table/sql/handler handler.cc: TABLE mysql db fetch NULL +wait/io/table/sql/handler handler.cc: TABLE mysql tables_priv fetch NULL +wait/io/table/sql/handler handler.cc: TABLE mysql procs_priv fetch NULL +wait/io/table/sql/handler handler.cc: TABLE mysql servers fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +show status like 'performance_schema_%'; +Variable_name Value +Performance_schema_cond_classes_lost 0 +Performance_schema_cond_instances_lost 0 +Performance_schema_file_classes_lost 0 +Performance_schema_file_handles_lost 0 +Performance_schema_file_instances_lost 0 +Performance_schema_locker_lost 0 +Performance_schema_mutex_classes_lost 0 +Performance_schema_mutex_instances_lost 0 +Performance_schema_rwlock_classes_lost 0 +Performance_schema_rwlock_instances_lost 0 +Performance_schema_table_handles_lost 0 +Performance_schema_table_instances_lost 0 +Performance_schema_thread_classes_lost 0 +Performance_schema_thread_instances_lost 0 +update performance_schema.SETUP_INSTRUMENTS set enabled='YES'; +update performance_schema.SETUP_CONSUMERS set enabled='YES'; +drop table test.marker; === added file 'mysql-test/suite/perfschema/r/trigger_table_io.result' --- a/mysql-test/suite/perfschema/r/trigger_table_io.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/trigger_table_io.result 2010-07-07 03:14:49 +0000 @@ -0,0 +1,191 @@ +drop table if exists test.marker; +create table test.marker(a int); +update performance_schema.SETUP_CONSUMERS set enabled='NO'; +update performance_schema.SETUP_INSTRUMENTS set enabled='NO'; +update performance_schema.SETUP_INSTRUMENTS set enabled='YES' + where name like "wait/io/table/%"; +truncate table performance_schema.EVENTS_WAITS_HISTORY_LONG; +flush status; +drop table if exists test.t1; +drop table if exists test.t2; +create table test.t1 (a int, v int); +create table test.t2 (b int, v int); +create trigger t1_bi before insert on t1 +for each row insert into test.t2 set b= new.a, v= 0; +create trigger t1_ai after insert on t1 +for each row update test.t2 set v= 1 where b = new.a; +create trigger t1_bu before update on t1 +for each row update test.t2 set v= 3 where b = old.a; +create trigger t1_au after update on t1 +for each row update test.t2 set v= 4 where b = new.a; +create trigger t1_bd before delete on t1 +for each row delete from test.t2 where b = old.a; +create trigger t1_ad after delete on t1 +for each row insert into test.t2 set b= old.a, v=99; +update performance_schema.SETUP_CONSUMERS set enabled='YES'; +insert into marker set a=1; +insert into t1 set a=1, v=10; +insert into marker set a=1; +insert into t1 set a=2, v=20; +insert into marker set a=1; +select * from t1; +a v +1 10 +2 20 +insert into marker set a=1; +select * from t2; +b v +1 1 +2 1 +insert into marker set a=1; +update t1 set v=v+100; +insert into marker set a=1; +select * from t1; +a v +1 110 +2 120 +insert into marker set a=1; +select * from t2; +b v +1 4 +2 4 +insert into marker set a=1; +delete from t1 where a=1; +insert into marker set a=1; +select * from t1; +a v +2 120 +insert into marker set a=1; +select * from t2; +b v +1 99 +2 4 +insert into marker set a=1; +delete from t1 where a=2; +insert into marker set a=1; +select * from t1; +a v +insert into marker set a=1; +select * from t2; +b v +1 99 +2 99 +update performance_schema.SETUP_CONSUMERS set enabled='NO'; +drop table test.t1; +drop table test.t2; +select event_name, +left(source, locate(":", source)) as short_source, +object_type, object_schema, +if (locate("#sql-", object_name), "#sql-XXXX", object_name) +as pretty_name, +operation, number_of_bytes +from performance_schema.EVENTS_WAITS_HISTORY_LONG +where event_name like 'wait/io/table/%' + and object_schema in ("test") +order by thread_id, event_id; +event_name short_source object_type object_schema pretty_name operation number_of_bytes +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 update NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 update NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 update NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 update NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 update NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 update NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 update NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 update NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 delete NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 delete NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 delete NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 delete NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t1 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test marker insert NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test t2 fetch NULL +show status like 'performance_schema_%'; +Variable_name Value +Performance_schema_cond_classes_lost 0 +Performance_schema_cond_instances_lost 0 +Performance_schema_file_classes_lost 0 +Performance_schema_file_handles_lost 0 +Performance_schema_file_instances_lost 0 +Performance_schema_locker_lost 0 +Performance_schema_mutex_classes_lost 0 +Performance_schema_mutex_instances_lost 0 +Performance_schema_rwlock_classes_lost 0 +Performance_schema_rwlock_instances_lost 0 +Performance_schema_table_handles_lost 0 +Performance_schema_table_instances_lost 0 +Performance_schema_thread_classes_lost 0 +Performance_schema_thread_instances_lost 0 +update performance_schema.SETUP_INSTRUMENTS set enabled='YES'; +update performance_schema.SETUP_CONSUMERS set enabled='YES'; +drop table test.marker; === added file 'mysql-test/suite/perfschema/t/csv_table_io.test' --- a/mysql-test/suite/perfschema/t/csv_table_io.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/csv_table_io.test 2010-07-07 03:14:49 +0000 @@ -0,0 +1,24 @@ +# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc +--source ../include/table_io_setup_helper.inc +let $engine_type=csv; +--source ../include/table_io_basic_dml.inc +--source ../include/table_io_cleanup_helper.inc + === added file 'mysql-test/suite/perfschema/t/innodb_table_io.test' --- a/mysql-test/suite/perfschema/t/innodb_table_io.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/innodb_table_io.test 2010-07-07 03:14:49 +0000 @@ -0,0 +1,24 @@ +# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc +--source ../include/table_io_setup_helper.inc +let $engine_type=innodb; +--source ../include/table_io_basic_dml.inc +--source ../include/table_io_cleanup_helper.inc + === added file 'mysql-test/suite/perfschema/t/memory_table_io.test' --- a/mysql-test/suite/perfschema/t/memory_table_io.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/memory_table_io.test 2010-07-07 03:14:49 +0000 @@ -0,0 +1,24 @@ +# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc +--source ../include/table_io_setup_helper.inc +let $engine_type=memory; +--source ../include/table_io_basic_dml.inc +--source ../include/table_io_cleanup_helper.inc + === modified file 'mysql-test/suite/perfschema/t/myisam_table_io.test' --- a/mysql-test/suite/perfschema/t/myisam_table_io.test 2010-07-02 17:25:26 +0000 +++ b/mysql-test/suite/perfschema/t/myisam_table_io.test 2010-07-07 03:14:49 +0000 @@ -17,83 +17,8 @@ --source include/not_embedded.inc --source include/have_perfschema.inc - -# Setup - -update performance_schema.SETUP_CONSUMERS set enabled='NO'; - -update performance_schema.SETUP_INSTRUMENTS set enabled='NO'; -update performance_schema.SETUP_INSTRUMENTS set enabled='YES' - where name like "wait/io/table/%"; - -truncate table performance_schema.EVENTS_WAITS_HISTORY_LONG; - -# Reset lost counters to a known state -flush status; - -# Start recording events -update performance_schema.SETUP_CONSUMERS set enabled='YES'; - -# Code to test - ---disable_warnings -drop table if exists test.no_index_tab; -drop temporary table if exists test.temp_tab; ---enable_warnings - -create table test.no_index_tab ( a varchar(255), b int ) engine=myisam; -insert into no_index_tab set a = 'foo', b = 1; -insert into no_index_tab set a = 'foo', b = 2; -insert into no_index_tab set a = 'foo', b = 3; - -select * from test.no_index_tab; - -update test.no_index_tab set a = 'bar'; - -select * from test.no_index_tab limit 2; - -delete from test.no_index_tab where b = 3; - -select * from test.no_index_tab; - -truncate table test.no_index_tab; - -create temporary table test.temp_tab ( a varchar(255), b int ) engine=myisam; -insert into temp_tab set a = 'foo', b = 1; -insert into temp_tab set a = 'foo', b = 2; -insert into temp_tab set a = 'foo', b = 3; - -select * from test.temp_tab; - -update test.temp_tab set a = 'bar'; - -select * from test.temp_tab limit 2; - -delete from test.temp_tab where b = 3; - -select * from test.temp_tab; - -truncate table test.temp_tab; - -# Stop recording events -update performance_schema.SETUP_CONSUMERS set enabled='NO'; - -select event_name, - left(source, locate(":", source)) as short_source, - object_type, object_schema, object_name, - operation, number_of_bytes - from performance_schema.EVENTS_WAITS_HISTORY_LONG - where event_name like 'wait/io/table/%' - and object_schema='test' - order by thread_id, event_id; - -# In case of failures, this will tell if table io are lost. -show status like 'performance_schema_%'; - -# Cleanup - -update performance_schema.SETUP_INSTRUMENTS set enabled='YES'; -update performance_schema.SETUP_CONSUMERS set enabled='YES'; - -drop table test.no_index_tab; +--source ../include/table_io_setup_helper.inc +let $engine_type=myisam; +--source ../include/table_io_basic_dml.inc +--source ../include/table_io_cleanup_helper.inc === added file 'mysql-test/suite/perfschema/t/privilege_table_io.test' --- a/mysql-test/suite/perfschema/t/privilege_table_io.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/privilege_table_io.test 2010-07-07 03:14:49 +0000 @@ -0,0 +1,44 @@ +# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc +--source ../include/table_io_setup_helper.inc + +# Remove "deleted" records from mysql.db +# that may come from previous tests, +# to avoid displaying spurious fetch +optimize table mysql.db; + +# Start recording events +update performance_schema.SETUP_CONSUMERS set enabled='YES'; + +# Code to test + +flush privileges; +# This will cause table io in mysql system security tables +insert into test.marker set a=1; +# This will not, the ACL cache is already loaded +insert into test.marker set a=1; +insert into test.marker set a=1; + +# Stop recording events +update performance_schema.SETUP_CONSUMERS set enabled='NO'; + +let $schema_to_dump="test", "mysql"; +--source ../include/table_io_cleanup_helper.inc + === added file 'mysql-test/suite/perfschema/t/trigger_table_io.test' --- a/mysql-test/suite/perfschema/t/trigger_table_io.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/trigger_table_io.test 2010-07-07 03:14:49 +0000 @@ -0,0 +1,87 @@ +# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc +--source ../include/table_io_setup_helper.inc + +--disable_warnings +drop table if exists test.t1; +drop table if exists test.t2; +--enable_warnings + +create table test.t1 (a int, v int); +create table test.t2 (b int, v int); + +create trigger t1_bi before insert on t1 +for each row insert into test.t2 set b= new.a, v= 0; + +create trigger t1_ai after insert on t1 +for each row update test.t2 set v= 1 where b = new.a; + +create trigger t1_bu before update on t1 +for each row update test.t2 set v= 3 where b = old.a; + +create trigger t1_au after update on t1 +for each row update test.t2 set v= 4 where b = new.a; + +create trigger t1_bd before delete on t1 +for each row delete from test.t2 where b = old.a; + +create trigger t1_ad after delete on t1 +for each row insert into test.t2 set b= old.a, v=99; + +# Start recording events +update performance_schema.SETUP_CONSUMERS set enabled='YES'; + +# Code to test + +insert into marker set a=1; +insert into t1 set a=1, v=10; +insert into marker set a=1; +insert into t1 set a=2, v=20; +insert into marker set a=1; +select * from t1; +insert into marker set a=1; +select * from t2; +insert into marker set a=1; +update t1 set v=v+100; +insert into marker set a=1; +select * from t1; +insert into marker set a=1; +select * from t2; +insert into marker set a=1; +delete from t1 where a=1; +insert into marker set a=1; +select * from t1; +insert into marker set a=1; +select * from t2; +insert into marker set a=1; +delete from t1 where a=2; +insert into marker set a=1; +select * from t1; +insert into marker set a=1; +select * from t2; + +# Stop recording events +update performance_schema.SETUP_CONSUMERS set enabled='NO'; + +drop table test.t1; +drop table test.t2; + +--source ../include/table_io_cleanup_helper.inc + --===============1400216494102291290== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/marc.alff@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: marc.alff@stripped # target_branch: file:///home/malff/BZR_TREE/mysql-next-mr-wl4895/ # testament_sha1: 573049c07c65f6c93c9765e1a95ce26f4c6d0333 # timestamp: 2010-07-06 21:15:17 -0600 # source_branch: file:///home/malff/BZR_TREE/mysql-next-mr/ # base_revision_id: marc.alff@stripped\ # 13rst659fnwnfls0 # # Begin bundle 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 --===============1400216494102291290==--