mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 10:31:54 +01:00
9cba6c5aa3
This allows one to run the test suite even if any of the following options are changed: - character-set-server - collation-server - join-cache-level - log-basename - max-allowed-packet - optimizer-switch - query-cache-size and query-cache-type - skip-name-resolve - table-definition-cache - table-open-cache - Some innodb options etc Changes: - Don't print out the value of system variables as one can't depend on them to being constants. - Don't set global variables to 'default' as the default may not be the same as the test was started with if there was an additional option file. Instead save original value and reset it at end of test. - Test that depends on the latin1 character set should include default_charset.inc or set the character set to latin1 - Test that depends on the original optimizer switch, should include default_optimizer_switch.inc - Test that depends on the value of a specific system variable should set it in the test (like optimizer_use_condition_selectivity) - Split subselect3.test into subselect3.test and subselect3.inc to make it easier to set and reset system variables. - Added .opt files for test that required specfic options that could be changed by external configuration files. - Fixed result files in rockdsb & tokudb that had not been updated for a while.
73 lines
2.4 KiB
Text
73 lines
2.4 KiB
Text
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%';
|
|
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;
|