blob: d332767a9f1dd422c9e31bf805b9c51ccbe48a28 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
set @save_long_query_time=@@long_query_time;
drop database if exists events_test;
create database if not exists events_test;
use events_test;
We use procedure here because its statements won't be
logged into the general log. If we had used normal select
that are logged in different ways depending on whether the
test suite is run in normal mode or with --ps-protocol
create procedure select_general_log()
begin
select user_host, argument from mysql.general_log
where argument like '%events_logs_test%' AND
(command_type = 'Query' OR command_type = 'Execute');
end|
Check that general query log works, but sub-statements
of the stored procedure do not leave traces in it.
truncate mysql.general_log;
select 'events_logs_tests' as outside_event;
outside_event
events_logs_tests
call select_general_log();
user_host argument
USER_HOST select 'events_logs_tests' as outside_event
Check that unlike sub-statements of stored procedures,
sub-statements of events are present in the general log.
set global event_scheduler=on;
truncate mysql.general_log;
create event ev_log_general on schedule at now() on completion not preserve do select 'events_logs_test' as inside_event;
call select_general_log();
user_host argument
USER_HOST create event ev_log_general on schedule at now() on completion not preserve do select 'events_logs_test' as inside_event
USER_HOST select 'events_logs_test' as inside_event
Check slow query log
Ensure that slow logging is on
show variables like 'slow_query_log';
Variable_name Value
slow_query_log ON
Demonstrate that session value has no effect
set @@session.long_query_time=1;
set @@global.long_query_time=300;
truncate mysql.slow_log;
create event ev_log_general on schedule at now() on completion not preserve
do select 'events_logs_test' as inside_event, sleep(1.5);
Nothing should be logged
select user_host, db, sql_text from mysql.slow_log
where sql_text like 'select \'events_logs_test\'%';
user_host db sql_text
set @@global.long_query_time=1;
truncate mysql.slow_log;
create event ev_log_general on schedule at now() on completion not preserve
do select 'events_logs_test' as inside_event, sleep(1.5);
Event sub-statement should be logged.
select user_host, db, sql_text from mysql.slow_log
where sql_text like 'select \'events_logs_test\'%';
user_host db sql_text
USER_HOST events_test select 'events_logs_test' as inside_event, sleep(1.5)
drop database events_test;
set global event_scheduler=off;
set @@global.long_query_time=@save_long_query_time;
set @@session.long_query_time=@save_long_query_time;
|