1
# Can't test with embedded server that doesn't support grants
2
-- source include/not_embedded.inc
5
drop database if exists events_test;
7
create database if not exists events_test;
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
16
create procedure select_general_log()
18
select user_host, argument from mysql.general_log
19
where argument like '%events_logs_test%';
23
--echo Check that general query log works, but sub-statements
24
--echo of the stored procedure do not leave traces in it.
26
truncate mysql.general_log;
27
# Logging format in ps protocol is slightly different
29
select 'events_logs_tests' as outside_event;
31
--replace_column 1 USER_HOST
32
call select_general_log();
34
--echo Check that unlike sub-statements of stored procedures,
35
--echo sub-statements of events are present in the general log.
37
set global event_scheduler=on;
38
truncate mysql.general_log;
39
create 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
43
call select_general_log();
46
--echo Check slow query log
48
--echo Ensure that slow logging is on
49
show variables like 'log_slow_queries';
51
--echo Demonstrate that session value has no effect
53
set @@session.long_query_time=1;
54
set @@global.long_query_time=300;
55
truncate mysql.slow_log;
56
create 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
61
--echo Nothing should be logged
63
--replace_column 1 USER_HOST
64
select user_host, db, sql_text from mysql.slow_log
65
where sql_text like 'select \'events_logs_test\'%';
66
set @@global.long_query_time=1;
67
truncate mysql.slow_log;
68
create 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
73
--echo Event sub-statement should be logged.
75
--replace_column 1 USER_HOST
76
select user_host, db, sql_text from mysql.slow_log
77
where sql_text like 'select \'events_logs_test\'%';
79
drop database events_test;
80
set global event_scheduler=off;
81
set @@global.long_query_time=default;
82
set @@session.long_query_time=default;
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