mysql-server/mysql-test/t/skip_log_bin.test
2025-03-05 14:31:37 +07:00

52 lines
1.7 KiB
Text

#
# binlog_off.test purpose is to verify that the --skip-log-bin flag
# works correctly
#
# When log-bin, skip-log-bin and binlog-format options are specified, mask the warning.
--disable_query_log
call mtr.add_suppression("\\[Warning\\] \\[[^]]*\\] \\[[^]]*\\] You need to use --log-bin to make --binlog-format work.");
--enable_query_log
--disable_warnings
DROP TABLE IF EXISTS t1, t2;
--enable_warnings
#
# Bug #38798 Assertion mysql_bin_log.is_open() failed in
# binlog_trans_log_savepos()
# Testing that there is no crash.
# Before BUG#38798, the code for CREATE...SELECT called an internal function to
# binlog the statement, even with --skip-log-bin. This caused an assertion
# to be thrown since the binlog was not open.
set @@session.binlog_format='row';
create table t1 (a int);
insert into t1 values (1);
create table t2 select * from t1;
# clean-up
drop table t1, t2;
# coverage for WL#14930 - run some statements with the binlog disabled.
--let $saved_binlog_expire_logs_seconds=`SELECT @@global.binlog_expire_logs_seconds`
--let $saved_binlog_expire_logs_auto_purge=`SELECT @@global.binlog_expire_logs_auto_purge`
SET @@global.binlog_expire_logs_seconds=3600;
SET @@global.binlog_expire_logs_auto_purge=ON;
# the following statements will not emit warning or errors
PURGE BINARY LOGS TO 'source-bin.000002';
--let $date=`SELECT NOW()`
--replace_result $date DATE
--eval PURGE BINARY LOGS BEFORE '$date'
--replace_result $saved_binlog_expire_logs_seconds SAVED_BINLOG_EXPIRE_LOGS_SECONDS
--eval SET @@global.binlog_expire_logs_seconds=$saved_binlog_expire_logs_seconds
--replace_result $saved_binlog_expire_logs_auto_purge SAVED_BINLOG_EXPIRE_LOGS_AUTO_PURGE
--eval SET @global.binlog_expire_logs_auto_purge=$saved_binlog_expire_logs_auto_purge