# # Test the extended slow query log output format for various log_slow_verbosity values. # Test that InnoDB stats for the extended slow query log are collected. # # This test file is based on tests from Percona server # --source include/have_innodb.inc --source include/have_sequence.inc --source include/log_slow_prepare.inc # Cannot be used with view protocol as number of temporary tables changes --source include/no_view_protocol.inc --let $log_slow_prefix=log_slow_innodb # Force cold buffer pool #--let $restart_parameters=--innodb_buffer_pool_load_at_startup=OFF #--source include/restart_mysqld.inc CREATE TABLE t1(a INT primary key, b int) ENGINE=InnoDB; INSERT INTO t1 select seq, seq from seq_1_to_1000; SET SESSION min_examined_row_limit=0; SET SESSION long_query_time=0; # # Test all enabled options with InnoDB-involving query # SET SESSION log_slow_verbosity='innodb,query_plan'; --let log_file=$log_slow_prefix-verbosity_1 --source include/log_slow_start.inc --disable_cursor_protocol --disable_ps2_protocol SELECT sum(a+b) FROM t1; --enable_ps2_protocol --enable_cursor_protocol UPDATE t1 set b=b+1 where a=1 or a=999; --source include/log_slow_stop.inc --let log_slow_verbosity_expected_matches= 3 --let log_slow_verbosity_queryplan_matches= 1 --let log_slow_verbosity_innodb_expected_matches= 2 --let log_slow_verbosity_tmptable_expected_matches= 0 --source include/log_slow_grep.inc # # Test for "No InnoDB statistics available" in output when InnoDB stats are requested # but the query does not involve InnoDB tables # SET SESSION log_slow_verbosity='innodb,query_plan'; --let log_file=$log_slow_prefix-verbosity_2 --source include/log_slow_start.inc --disable_cursor_protocol --disable_ps2_protocol SELECT 1; --enable_ps2_protocol --enable_cursor_protocol --source include/log_slow_stop.inc --let log_slow_verbosity_expected_matches= 2 --let log_slow_verbosity_queryplan_matches= 1 --let log_slow_verbosity_innodb_expected_matches= 0 --source include/log_slow_grep.inc --echo # --echo # Test 'query_plan' --echo # SET SESSION log_slow_verbosity='query_plan'; --let log_file=$log_slow_prefix-verbosity_3 --source include/log_slow_start.inc INSERT INTO t1 VALUE(1001,1001); --source include/log_slow_stop.inc --let log_slow_verbosity_innodb_expected_matches= 0 --source include/log_slow_grep.inc DROP TABLE t1; --echo # --echo # Test max_tmp_disk_space_used --echo # CREATE TABLE t1(a INT primary key, c varchar(1024)) ENGINE=InnoDB; insert into t1 select seq, concat(repeat(char(65+mod(seq,61)),32),repeat(char(65+mod(seq,59)),32)) from seq_1_to_1000; SET SESSION log_slow_verbosity='query_plan'; SET SESSION sort_buffer_size=16384; SET SESSION long_query_time=0; --let log_file=$log_slow_prefix-verbosity_4 --disable_ps_protocol --source include/log_slow_start.inc SELECT c, count(*) from t1 group by c order by 2 limit 700,10; --source include/log_slow_stop.inc --enable_ps_protocol --let grep_pattern = ^# Max_tmp_disk_space_used.* --let log_expected_matches= 1 --source include/log_grep.inc drop table t1; --echo # --echo # Cleanup --echo # --source include/log_slow_cleanup.inc