mirror of
https://github.com/MariaDB/server.git
synced 2025-11-13 21:42:58 +03:00
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.
59 lines
1.5 KiB
Plaintext
59 lines
1.5 KiB
Plaintext
# Requires statement logging
|
|
-- source include/have_binlog_format_mixed_or_statement.inc
|
|
|
|
# You must run this test with --manager.
|
|
|
|
require_manager;
|
|
|
|
# Don't know why, but using TCP/IP connections makes this test fail
|
|
# with "Lost connection to MySQL server during query" when we
|
|
# issue a query after the server restart.
|
|
# Maybe this is something awkward in mysqltest or in the manager?
|
|
# So we use sockets.
|
|
connect (master,localhost,root,,test,0,$MASTER_MYPORT);
|
|
connect (slave,localhost,root,,test,0,slave.sock);
|
|
|
|
connection master;
|
|
reset master;
|
|
drop table if exists t1;
|
|
# we use CREATE SELECT to verify that DELETE does not get into binlog
|
|
# before CREATE SELECT
|
|
create table t1 engine=HEAP select 10 as a;
|
|
insert into t1 values(11);
|
|
save_master_pos;
|
|
--replace_column 2 # 5 #
|
|
--replace_regex /table_id: [0-9]+/table_id: #/
|
|
show binlog events from 79;
|
|
connection slave;
|
|
reset slave;
|
|
start slave;
|
|
sync_with_master;
|
|
show create table t1;
|
|
select * from t1; # should be one row
|
|
|
|
server_stop master;
|
|
server_start master;
|
|
|
|
connection master;
|
|
select * from t1;
|
|
# to check that DELETE is not written twice
|
|
# (the LIMIT is to not use the query cache)
|
|
select * from t1 limit 10;
|
|
save_master_pos;
|
|
--replace_column 2 # 5 #
|
|
--replace_regex /table_id: [0-9]+/table_id: #/
|
|
show binlog events in 'master-bin.002' from 79;
|
|
|
|
connection slave;
|
|
sync_with_master;
|
|
select * from t1; # should be empty
|
|
|
|
# clean up
|
|
connection master;
|
|
drop table t1;
|
|
save_master_pos;
|
|
connection slave;
|
|
sync_with_master;
|
|
|
|
# End of 4.1 tests
|