mirror of
https://github.com/MariaDB/server.git
synced 2025-01-20 14:02:32 +01:00
7be4bc4e55
The following is an excerption from the WL. 1. Change so that MIXED is default format 1.1 to change the default for command line --binlog-format 1.2 to alter global_system_variables.binlog_format calculation basing on command line --binlog-format parameter and its default. 2. Change test suite so that more testing is done by MIXED format. 2.1 to check if there are test cases requiring --binlog-foramt=statement via `source include/have_binlog_format_statement.inc' and affected by altering the latter to be "mixed". 2.2 to check the content of such vulnerable cases to find if extending to the mixed does not modify results. In that case simply substitute source arguments as explained. 2.3 if a test in mixed mode deals with features triggering row-binlogging then if necessary we can switch explicitly to statement mode or create another test to run with non-recommended STATEMENT mode Particullarily, extracting INSERT DELAYED binlogging subtest for statement mode is performed, and the snippet is moved into a separate test file. Note that since now all three modes verify this use case through 3 different tests. No changes in item 3 of HLD appeared to be needed.
164 lines
6.7 KiB
Text
164 lines
6.7 KiB
Text
# Test for the new options --start-datetime, stop-datetime,
|
|
# and a few others.
|
|
|
|
# TODO: Need to look at making row based version once new binlog client is complete.
|
|
-- source include/have_binlog_format_mixed_or_statement.inc
|
|
|
|
# Embedded server doesn't support binlogging
|
|
-- source include/not_embedded.inc
|
|
|
|
--disable_warnings
|
|
drop table if exists t1;
|
|
--enable_warnings
|
|
reset master;
|
|
|
|
# We need this for getting fixed timestamps inside of this test.
|
|
# I use a date in the future to keep a growing timestamp along the
|
|
# binlog (including the Start_log_event). This test will work
|
|
# unchanged everywhere, because mysql-test-run has fixed TZ, which it
|
|
# exports (so mysqlbinlog has same fixed TZ).
|
|
set @a=UNIX_TIMESTAMP("2020-01-21 15:32:22");
|
|
set timestamp=@a;
|
|
create table t1 (a int auto_increment not null primary key, b char(3));
|
|
insert into t1 values(null, "a");
|
|
insert into t1 values(null, "b");
|
|
set timestamp=@a+2;
|
|
insert into t1 values(null, "c");
|
|
set timestamp=@a+4;
|
|
insert into t1 values(null, "d");
|
|
insert into t1 values(null, "e");
|
|
|
|
flush logs;
|
|
set timestamp=@a+1; # this could happen on a slave
|
|
insert into t1 values(null, "f");
|
|
|
|
# delimiters are for easier debugging in future
|
|
|
|
--disable_query_log
|
|
select "--- Local --" as "";
|
|
--enable_query_log
|
|
|
|
#
|
|
# We should use --short-form everywhere because in other case output will
|
|
# be time dependent (the Start events). Better than nothing.
|
|
#
|
|
|
|
--exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000001
|
|
|
|
--disable_query_log
|
|
select "--- offset --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form --offset=2 $MYSQLTEST_VARDIR/log/master-bin.000001
|
|
--disable_query_log
|
|
select "--- start-position --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form --start-position=604 $MYSQLTEST_VARDIR/log/master-bin.000001
|
|
--disable_query_log
|
|
select "--- stop-position --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form --stop-position=604 $MYSQLTEST_VARDIR/log/master-bin.000001
|
|
--disable_query_log
|
|
select "--- start-datetime --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form "--start-datetime=2020-01-21 15:32:24" $MYSQLTEST_VARDIR/log/master-bin.000001
|
|
--disable_query_log
|
|
select "--- stop-datetime --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form "--stop-datetime=2020-01-21 15:32:24" $MYSQLTEST_VARDIR/log/master-bin.000001
|
|
|
|
--disable_query_log
|
|
select "--- Local with 2 binlogs on command line --" as "";
|
|
--enable_query_log
|
|
|
|
# This is to verify that some options apply only to first, or last binlog
|
|
|
|
--exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000001 $MYSQLTEST_VARDIR/log/master-bin.000002
|
|
|
|
--disable_query_log
|
|
select "--- offset --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form --offset=2 $MYSQLTEST_VARDIR/log/master-bin.000001 $MYSQLTEST_VARDIR/log/master-bin.000002
|
|
--disable_query_log
|
|
select "--- start-position --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form --start-position=604 $MYSQLTEST_VARDIR/log/master-bin.000001 $MYSQLTEST_VARDIR/log/master-bin.000002
|
|
--disable_query_log
|
|
select "--- stop-position --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form --stop-position=130 $MYSQLTEST_VARDIR/log/master-bin.000001 $MYSQLTEST_VARDIR/log/master-bin.000002
|
|
--disable_query_log
|
|
select "--- start-datetime --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form "--start-datetime=2020-01-21 15:32:24" $MYSQLTEST_VARDIR/log/master-bin.000001 $MYSQLTEST_VARDIR/log/master-bin.000002
|
|
--disable_query_log
|
|
select "--- stop-datetime --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form "--stop-datetime=2020-01-21 15:32:24" $MYSQLTEST_VARDIR/log/master-bin.000001 $MYSQLTEST_VARDIR/log/master-bin.000002
|
|
|
|
--disable_query_log
|
|
select "--- Remote --" as "";
|
|
--enable_query_log
|
|
|
|
--exec $MYSQL_BINLOG --short-form --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001
|
|
|
|
--disable_query_log
|
|
select "--- offset --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form --offset=2 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001
|
|
--disable_query_log
|
|
select "--- start-position --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form --start-position=604 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001
|
|
--disable_query_log
|
|
select "--- stop-position --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form --stop-position=604 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001
|
|
--disable_query_log
|
|
select "--- start-datetime --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form "--start-datetime=2020-01-21 15:32:24" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001
|
|
--disable_query_log
|
|
select "--- stop-datetime --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form "--stop-datetime=2020-01-21 15:32:24" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001
|
|
|
|
--disable_query_log
|
|
select "--- Remote with 2 binlogs on command line --" as "";
|
|
--enable_query_log
|
|
|
|
--exec $MYSQL_BINLOG --short-form --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002
|
|
|
|
--disable_query_log
|
|
select "--- offset --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form --offset=2 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002
|
|
--disable_query_log
|
|
select "--- start-position --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form --start-position=604 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002
|
|
--disable_query_log
|
|
select "--- stop-position --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form --stop-position=130 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002
|
|
--disable_query_log
|
|
select "--- start-datetime --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form "--start-datetime=20200121153224" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002
|
|
--disable_query_log
|
|
select "--- stop-datetime --" as "";
|
|
--enable_query_log
|
|
--exec $MYSQL_BINLOG --short-form "--stop-datetime=2020/01/21 15@32@24" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002
|
|
|
|
--disable_query_log
|
|
select "--- to-last-log --" as "";
|
|
--enable_query_log
|
|
|
|
--exec $MYSQL_BINLOG --short-form --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT --to-last-log master-bin.000001
|
|
|
|
# clean up
|
|
--disable_query_log
|
|
select "--- end of test --" as "";
|
|
--enable_query_log
|
|
drop table t1;
|
|
|
|
# End of 4.1 tests
|