73 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			73 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | 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%'; | ||
|  | 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 'log_slow_queries'; | ||
|  | Variable_name	Value | ||
|  | log_slow_queries	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=default; | ||
|  | set @@session.long_query_time=default; |