mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 21:12:26 +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.
59 lines
1.3 KiB
Text
59 lines
1.3 KiB
Text
# drop table t1 t2 t3 are included int master-slave.inc
|
|
# meaningful only in statement-based:
|
|
|
|
-- source include/have_binlog_format_mixed_or_statement.inc
|
|
-- source include/master-slave.inc
|
|
|
|
|
|
create table t2 (n int, PRIMARY KEY(n));
|
|
create temporary table t1 (n int);
|
|
create temporary table t3 (n int not null);
|
|
|
|
insert into t1 values(1),(2),(3),(100),(25),(26),(200),(300);
|
|
insert into t2 select * from t1;
|
|
alter table t3 add primary key(n);
|
|
|
|
flush logs;
|
|
insert into t3 values (1010);
|
|
insert into t2 select * from t3;
|
|
|
|
drop table if exists t3;
|
|
insert into t2 values (1012);
|
|
|
|
connection master1;
|
|
create temporary table t1 (n int);
|
|
insert into t1 values (4),(5);
|
|
insert into t2 select * from t1;
|
|
|
|
save_master_pos;
|
|
disconnect master;
|
|
|
|
connection slave;
|
|
#add 1 to the saved position, so we will catch drop table on disconnect
|
|
#for sure
|
|
sync_with_master 1;
|
|
|
|
connection master1;
|
|
insert into t2 values(61);
|
|
|
|
save_master_pos;
|
|
disconnect master1;
|
|
|
|
connection slave;
|
|
#same trick - make sure we catch drop of temporary table on disconnect
|
|
sync_with_master 1;
|
|
|
|
select * from t2;
|
|
select count(*) from t2;
|
|
select sum(n) from t2;
|
|
show status like 'Slave_open_temp_tables';
|
|
|
|
#
|
|
# Clean up
|
|
#
|
|
connect (master2,localhost,root,,);
|
|
connection master2;
|
|
drop table if exists t1,t2;
|
|
save_master_pos;
|
|
connection slave;
|
|
sync_with_master;
|