# Copyright (c) 2009, 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 # Setup update performance_schema.setup_instruments set enabled='NO'; update performance_schema.setup_instruments set enabled='YES' where name like "wait/io/file/myisam/%"; update performance_schema.setup_consumers set enabled='YES'; truncate table performance_schema.events_waits_history_long; # Reset lost counters to a known state flush status; # Code to test --disable_warnings drop table if exists test.no_index_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 = 1; insert into no_index_tab set a = 'foo', b = 1; # Verification # Note that mi_create.c contains mysql_file_tell() calls in debug only, # so the result are filtered to remove 'tell'. # Note that even after setting other instruments to enabled='NO' # and truncating the events_waits_history_long table, # some events -- that were already started but not completed -- # for other instruments could still be added in the history. # To protect against that, an extra where clause # "and event_name like "wait/io/file/myisam/%" # is added to the select to filter out the result. select event_name, left(source, locate(":", source)) as short_source, operation, number_of_bytes, substring(object_name, locate("no_index_tab", object_name)) as short_name from performance_schema.events_waits_history_long where operation not like "tell" and event_name like "wait/io/file/myisam/%" order by thread_id, event_id; # In case of failures, this will tell if file io are lost. show status like 'performance_schema_%'; # Cleanup update performance_schema.setup_instruments set enabled='YES'; drop table test.no_index_tab;