mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 19:06:14 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			93 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| # Can't test with embedded server that doesn't support grants
 | |
| -- source include/not_embedded.inc
 | |
| -- source include/no_view_protocol.inc
 | |
| 
 | |
| set @save_long_query_time=@@long_query_time;
 | |
| --disable_warnings
 | |
| drop database if exists events_test;
 | |
| --enable_warnings
 | |
| create database if not exists events_test;
 | |
| use events_test;
 | |
| --echo
 | |
| --echo We use procedure here because its statements won't be
 | |
| --echo logged into the general log. If we had used normal select
 | |
| --echo that are logged in different ways depending on whether the
 | |
| --echo test suite is run in normal mode or with --ps-protocol
 | |
| --echo
 | |
| delimiter |;
 | |
| 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|
 | |
| delimiter ;|
 | |
| --echo
 | |
| --echo Check that general query log works, but sub-statements
 | |
| --echo of the stored procedure do not leave traces in it.
 | |
| --echo
 | |
| truncate mysql.general_log;
 | |
| # Logging format in ps protocol is slightly different
 | |
| --disable_ps_protocol
 | |
| select 'events_logs_tests' as outside_event;
 | |
| --enable_ps_protocol
 | |
| --replace_column 1 USER_HOST
 | |
| call select_general_log();
 | |
| --echo  
 | |
| --echo Check that unlike sub-statements of stored procedures,
 | |
| --echo sub-statements of events are present in the general log.
 | |
| --echo 
 | |
| 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;
 | |
| --let $wait_condition=select count(*)=0 from information_schema.events where event_name='ev_log_general'
 | |
| --source include/wait_condition.inc
 | |
| --replace_column 1 USER_HOST
 | |
| call select_general_log();
 | |
| 
 | |
| --echo
 | |
| --echo Check slow query log
 | |
| --echo
 | |
| --echo Ensure that slow logging is on
 | |
| show variables like 'slow_query_log';
 | |
| --echo 
 | |
| --echo Demonstrate that session value has no effect
 | |
| --echo
 | |
| 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);
 | |
| --let $wait_condition=select count(*)=0 from information_schema.events where event_name='ev_log_general'
 | |
| --source include/wait_condition.inc
 | |
| --echo
 | |
| --echo Nothing should be logged
 | |
| --echo
 | |
| --replace_column 1 USER_HOST
 | |
| select user_host, db, sql_text from mysql.slow_log
 | |
|   where sql_text like 'select \'events_logs_test\'%';
 | |
| 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);
 | |
| --let $wait_condition=select count(*)=0 from information_schema.events where event_name='ev_log_general'
 | |
| --source include/wait_condition.inc
 | |
| --echo
 | |
| --echo Event sub-statement should be logged.
 | |
| --echo 
 | |
| --replace_column 1 USER_HOST
 | |
| select user_host, db, sql_text from mysql.slow_log
 | |
|   where sql_text like 'select \'events_logs_test\'%';
 | |
| 
 | |
| 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;
 | |
| 
 | |
| #
 | |
| # Safety
 | |
| #
 | |
| let $wait_condition=
 | |
|   select count(*) = 0 from information_schema.processlist
 | |
|   where db='events_test' and command = 'Connect' and user=current_user();
 | |
| --source include/wait_condition.inc
 | 
