91 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			91 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | # Can't test with embedded server that doesn't support grants | ||
|  | -- source include/not_embedded.inc | ||
|  | 
 | ||
|  | --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%'; | ||
|  | 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 'log_slow_queries'; | ||
|  | --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=default; | ||
|  | set @@session.long_query_time=default; | ||
|  | 
 | ||
|  | # | ||
|  | # 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 |