1# Can't test with embedded server that doesn't support grants 2-- source include/not_embedded.inc 3 4--disable_warnings 5drop database if exists events_test; 6--enable_warnings 7create database if not exists events_test; 8use events_test; 9--echo 10--echo We use procedure here because its statements won't be 11--echo logged into the general log. If we had used normal select 12--echo that are logged in different ways depending on whether the 13--echo test suite is run in normal mode or with --ps-protocol 14--echo 15delimiter |; 16create procedure select_general_log() 17begin 18 select user_host, argument from mysql.general_log 19 where argument like '%events_logs_test%'; 20end| 21delimiter ;| 22--echo 23--echo Check that general query log works, but sub-statements 24--echo of the stored procedure do not leave traces in it. 25--echo 26truncate mysql.general_log; 27# Logging format in ps protocol is slightly different 28--disable_ps_protocol 29select 'events_logs_tests' as outside_event; 30--enable_ps_protocol 31--replace_column 1 USER_HOST 32call select_general_log(); 33--echo 34--echo Check that unlike sub-statements of stored procedures, 35--echo sub-statements of events are present in the general log. 36--echo 37set global event_scheduler=on; 38truncate mysql.general_log; 39create event ev_log_general on schedule at now() on completion not preserve do select 'events_logs_test' as inside_event; 40--let $wait_condition=select count(*)=0 from information_schema.events where event_name='ev_log_general' 41--source include/wait_condition.inc 42--replace_column 1 USER_HOST 43call select_general_log(); 44 45--echo 46--echo Check slow query log 47--echo 48--echo Ensure that slow logging is on 49show variables like 'slow_query_log'; 50--echo 51--echo Demonstrate that session value has no effect 52--echo 53set @@session.long_query_time=1; 54set @@global.long_query_time=300; 55truncate mysql.slow_log; 56create event ev_log_general on schedule at now() on completion not preserve 57 do select 'events_logs_test' as inside_event, sleep(1.5); 58--let $wait_condition=select count(*)=0 from information_schema.events where event_name='ev_log_general' 59--source include/wait_condition.inc 60--echo 61--echo Nothing should be logged 62--echo 63--replace_column 1 USER_HOST 64select user_host, db, sql_text from mysql.slow_log 65 where sql_text like 'select \'events_logs_test\'%'; 66set @@global.long_query_time=1; 67truncate mysql.slow_log; 68create event ev_log_general on schedule at now() on completion not preserve 69 do select 'events_logs_test' as inside_event, sleep(1.5); 70--let $wait_condition=select count(*)=0 from information_schema.events where event_name='ev_log_general' 71--source include/wait_condition.inc 72--echo 73--echo Event sub-statement should be logged. 74--echo 75--replace_column 1 USER_HOST 76select user_host, db, sql_text from mysql.slow_log 77 where sql_text like 'select \'events_logs_test\'%'; 78 79drop database events_test; 80set global event_scheduler=off; 81set @@global.long_query_time=default; 82set @@session.long_query_time=default; 83 84# 85# Safety 86# 87let $wait_condition= 88 select count(*) = 0 from information_schema.processlist 89 where db='events_test' and command = 'Connect' and user=current_user(); 90--source include/wait_condition.inc 91