mirror of
https://github.com/MariaDB/server.git
synced 2025-10-24 07:13:33 +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.
85 lines
2.2 KiB
Plaintext
85 lines
2.2 KiB
Plaintext
# TBF - difference in row level logging
|
|
-- source include/have_binlog_format_mixed_or_statement.inc
|
|
-- source include/master-slave.inc
|
|
|
|
--disable_warnings
|
|
drop database if exists mysqltest1;
|
|
--enable_warnings
|
|
create database mysqltest1;
|
|
|
|
use mysqltest1;
|
|
create table t1 (a int);
|
|
insert into t1 values(9);
|
|
select * from mysqltest1.t1;
|
|
sync_slave_with_master;
|
|
show databases like 'mysqltest1'; # should be empty
|
|
select * from test.t1;
|
|
# cleanup
|
|
connection master;
|
|
drop table t1;
|
|
drop database mysqltest1;
|
|
sync_slave_with_master;
|
|
|
|
#
|
|
# BUG#6353:
|
|
# Option --replicate-rewrite-db should work together with LOAD DATA INFILE
|
|
#
|
|
|
|
connection slave;
|
|
--disable_warnings
|
|
drop database if exists rewrite;
|
|
--enable_warnings
|
|
create database rewrite;
|
|
|
|
connection master;
|
|
use test;
|
|
create table t1 (a date, b date, c date not null, d date);
|
|
load data infile '../std_data_ln/loaddata1.dat' into table t1 fields terminated by ',';
|
|
load data infile '../std_data_ln/loaddata1.dat' into table t1 fields terminated by ',' IGNORE 2 LINES;
|
|
sync_slave_with_master;
|
|
|
|
connection slave;
|
|
select * from rewrite.t1;
|
|
|
|
connection master;
|
|
truncate table t1;
|
|
load data infile '../std_data_ln/loaddata1.dat' into table t1 fields terminated by ',' LINES STARTING BY ',' (b,c,d);
|
|
sync_slave_with_master;
|
|
|
|
connection slave;
|
|
select * from rewrite.t1;
|
|
|
|
connection master;
|
|
drop table t1;
|
|
create table t1 (a text, b text);
|
|
load data infile '../std_data_ln/loaddata2.dat' into table t1 fields terminated by ',' enclosed by '''';
|
|
sync_slave_with_master;
|
|
|
|
connection slave;
|
|
select concat('|',a,'|'), concat('|',b,'|') from rewrite.t1;
|
|
|
|
connection master;
|
|
drop table t1;
|
|
create table t1 (a int, b char(10));
|
|
load data infile '../std_data_ln/loaddata3.dat' into table t1 fields terminated by '' enclosed by '' ignore 1 lines;
|
|
sync_slave_with_master;
|
|
|
|
connection slave;
|
|
select * from rewrite.t1;
|
|
|
|
connection master;
|
|
truncate table t1;
|
|
load data infile '../std_data_ln/loaddata4.dat' into table t1 fields terminated by '' enclosed by '' lines terminated by '' ignore 1 lines;
|
|
sync_slave_with_master;
|
|
|
|
connection slave;
|
|
# The empty line last comes from the end line field in the file
|
|
select * from rewrite.t1;
|
|
|
|
drop database rewrite;
|
|
|
|
connection master;
|
|
drop table t1;
|
|
|
|
# End of 4.1 tests
|