# Tests for PERFORMANCE_SCHEMA table io # This test makes a restart because without it, events_waits_history_long # sometimes contains duplicated entries of roles_mapping. --source include/not_embedded.inc --source include/have_perfschema.inc --source include/restart_mysqld.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. # There are two possible server reactions which are both ok. # Table Op Msg_type Msg_text # mysql.db optimize status OK # or # mysql.db optimize status Table is already up to date # Therefore we suppress the query_log here. --echo # We are forced to suppress here the server response. --disable_result_log optimize table mysql.host; optimize table mysql.user; optimize table mysql.db; optimize table mysql.proxies_priv; optimize table mysql.roles_mapping; optimize table mysql.tables_priv; optimize table mysql.procs_priv; optimize table mysql.servers; optimize table mysql.roles_mapping; --enable_result_log # Start recording events update performance_schema.setup_consumers set enabled='YES'; update performance_schema.setup_objects set enabled='YES' where object_type='TABLE' and object_schema= 'mysql'; # 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; show variables where `Variable_name` != "performance_schema_max_statement_classes" and `Variable_name` like "performance_schema%"; show status like "performance_schema%"; # Stop recording events + pull results let $schema_to_dump= "test", "mysql"; --source ../include/table_io_result_helper.inc # Cleanup --source ../include/table_io_cleanup_helper.inc update performance_schema.setup_objects set enabled='NO' where object_type='TABLE' and object_schema= 'mysql';