mirror of
https://github.com/MariaDB/server.git
synced 2025-11-08 00:28:29 +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.
mysql-test/extra/binlog_tests/binlog.test:
Moving INSERT DELAYED verification section into separate file. The latter is sourced
from two different files: the current one and a newly created for STATEMENT
mode check.
mysql-test/extra/rpl_tests/rpl_loaddata.test:
require mixed_or_statement
mysql-test/extra/rpl_tests/rpl_stm_000001.test:
require mixed_or_statement
mysql-test/extra/rpl_tests/rpl_stm_charset.test:
require mixed_or_statement
mysql-test/r/binlog_stm_binlog.result:
new result to correspond to MIXED mode.
mysql-test/r/rpl_rbr_to_sbr.result:
result changed
mysql-test/t/archive.test:
require mixed_or_statement
mysql-test/t/binlog_stm_binlog.test:
require exclusive mixed format because of INSERT DELAYED.
mysql-test/t/binlog_stm_blackhole.test:
require mixed_or_statement
mysql-test/t/binlog_stm_ctype_cp932.test:
require mixed_or_statement
mysql-test/t/binlog_stm_ctype_ucs.test:
require mixed_or_statement
mysql-test/t/binlog_stm_drop_tmp_tbl.test:
require mixed_or_statement
mysql-test/t/binlog_stm_innodb_stat.test:
require mixed_or_statement
mysql-test/t/binlog_stm_insert_select.test:
require mixed_or_statement
mysql-test/t/binlog_stm_mix_innodb_myisam.test:
require mixed_or_statement
mysql-test/t/create_select_tmp.test:
require mixed_or_statement
mysql-test/t/ctype_cp932_binlog_stm.test:
require mixed_or_statement
mysql-test/t/date_formats.test:
MIXED case appended to the replace instruction
mysql-test/t/mysqlbinlog.test:
require mixed_or_statement
mysql-test/t/mysqlbinlog2.test:
require mixed_or_statement
mysql-test/t/ndb_multi.test:
require mixed_or_statement
mysql-test/t/rpl000013.test:
require mixed_or_statement
mysql-test/t/rpl_heap.test:
require mixed_or_statement
mysql-test/t/rpl_loaddata_s.test:
require mixed_or_statement
mysql-test/t/rpl_mixed_ddl_dml.test:
require mixed_or_statement
mysql-test/t/rpl_rbr_to_sbr.test:
Rather meaningless line is discarded.
The test does not loose anything without it and without considering the WL.
mysql-test/t/rpl_rewrt_db.test:
require mixed_or_statement
mysql-test/t/rpl_rotate_logs.test:
require mixed_or_statement
mysql-test/t/rpl_stm_EE_err2.test:
require mixed_or_statement
mysql-test/t/rpl_stm_flsh_tbls.test:
require mixed_or_statement
mysql-test/t/rpl_stm_log.test:
require mixed_or_statement
mysql-test/t/rpl_stm_max_relay_size.test:
require mixed_or_statement
mysql-test/t/rpl_stm_multi_query.test:
require mixed_or_statement
mysql-test/t/rpl_stm_mystery22.test:
require mixed_or_statement
mysql-test/t/rpl_stm_no_op.test:
require mixed_or_statement
mysql-test/t/rpl_stm_reset_slave.test:
require mixed_or_statement
mysql-test/t/rpl_stm_until.test:
require mixed_or_statement
mysql-test/t/rpl_temp_table.test:
require mixed_or_statement
mysql-test/t/rpl_trigger.test:
require mixed_or_statement
mysql-test/t/rpl_trunc_temp.test:
require mixed_or_statement
mysql-test/t/user_var-binlog.test:
require mixed_or_statement
sql/mysqld.cc:
Implementation of making BINLOG_FORMAT_MIXED to be the default of
global_system_variables.binlog_format. Not in the case of embedded.
mysql-test/extra/binlog_tests/binlog_insert_delayed.test:
Snippend sourced from two tests to verify INSERT DELAYED in all three binlog formats.
mysql-test/include/have_binlog_format_mixed.inc:
Part of exclusive MIXED format requirement
mysql-test/include/have_binlog_format_mixed_or_statement.inc:
requirement to have mixed or statement. Most of the tests with STATEMENT format indeed
are tolerant to MIXED format to yield the same result files. There are few exception
because of features triggering RBR events when MIXED format.
mysql-test/r/binlog_statement_insert_delayed.result:
BitKeeper file /home/elkin/MySQL/TEAM/FIXES/5.1/wl3368_mixed_default/mysql-test/r/binlog_statement_insert_delayed.result
mysql-test/r/have_binlog_format_mixed.require:
Exclusive MIXED format
mysql-test/t/binlog_statement_insert_delayed.test:
BitKeeper file /home/elkin/MySQL/TEAM/FIXES/5.1/wl3368_mixed_default/mysql-test/t/binlog_statement_insert_delayed.test
182 lines
10 KiB
Plaintext
182 lines
10 KiB
Plaintext
create table t1 (a int, b int) engine=innodb;
|
|
begin;
|
|
insert into t1 values (1,2);
|
|
commit;
|
|
show binlog events;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 4 Format_desc 1 102 Server ver: #, Binlog ver: #
|
|
master-bin.000001 102 Query 1 209 use `test`; create table t1 (a int, b int) engine=innodb
|
|
master-bin.000001 209 Query 1 277 use `test`; BEGIN
|
|
master-bin.000001 277 Query 1 90 use `test`; insert into t1 values (1,2)
|
|
master-bin.000001 367 Xid 1 394 COMMIT /* XID */
|
|
drop table t1;
|
|
drop table if exists t1, t2;
|
|
reset master;
|
|
create table t1 (a int) engine=bdb;
|
|
create table t2 (a int) engine=innodb;
|
|
begin;
|
|
insert t1 values (5);
|
|
commit;
|
|
begin;
|
|
insert t2 values (5);
|
|
commit;
|
|
show binlog events from 102;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Query 1 # use `test`; create table t1 (a int) engine=bdb
|
|
master-bin.000001 # Query 1 # use `test`; create table t2 (a int) engine=innodb
|
|
master-bin.000001 # Query 1 # use `test`; BEGIN
|
|
master-bin.000001 # Query 1 # use `test`; insert t1 values (5)
|
|
master-bin.000001 # Query 1 # use `test`; COMMIT
|
|
master-bin.000001 # Query 1 # use `test`; BEGIN
|
|
master-bin.000001 # Query 1 # use `test`; insert t2 values (5)
|
|
master-bin.000001 # Xid 1 # COMMIT /* xid= */
|
|
drop table t1,t2;
|
|
reset master;
|
|
create table t1 (n int) engine=innodb;
|
|
begin;
|
|
commit;
|
|
drop table t1;
|
|
show binlog events in 'master-bin.000001' from 102;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Query 1 # use `test`; create table t1 (n int) engine=innodb
|
|
master-bin.000001 # Query 1 # use `test`; BEGIN
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(100 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(99 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(98 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(97 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(96 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(95 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(94 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(93 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(92 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(91 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(90 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(89 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(88 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(87 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(86 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(85 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(84 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(83 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(82 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(81 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(80 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(79 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(78 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(77 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(76 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(75 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(74 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(73 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(72 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(71 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(70 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(69 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(68 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(67 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(66 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(65 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(64 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(63 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(62 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(61 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(60 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(59 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(58 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(57 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(56 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(55 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(54 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(53 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(52 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(51 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(50 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(49 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(48 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(47 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(46 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(45 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(44 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(43 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(42 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(41 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(40 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(39 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(38 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(37 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(36 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(35 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(34 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(33 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(32 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(31 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(30 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(29 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(28 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(27 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(26 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(25 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(24 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(23 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(22 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(21 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(20 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(19 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(18 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(17 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(16 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(15 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(14 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(13 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(12 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(11 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(10 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(9 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(8 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(7 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(6 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(5 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(4 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(3 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(2 + 4)
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(1 + 4)
|
|
master-bin.000001 # Xid 1 # COMMIT /* xid= */
|
|
master-bin.000001 # Rotate 1 # master-bin.000002;pos=4
|
|
show binlog events in 'master-bin.000002' from 102;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000002 # Query 1 # use `test`; drop table t1
|
|
reset master;
|
|
create table t1 (id tinyint auto_increment primary key);
|
|
set insert_id=128;
|
|
insert into t1 values(null);
|
|
Warnings:
|
|
Warning 1264 Out of range value for column 'id' at row 1
|
|
select * from t1;
|
|
id
|
|
127
|
|
drop table t1;
|
|
create table t1 (a int not null auto_increment, primary key (a)) engine=myisam;
|
|
set @@session.auto_increment_increment=1, @@session.auto_increment_offset=1;
|
|
insert delayed into t1 values (207);
|
|
insert delayed into t1 values (null);
|
|
insert delayed into t1 values (300);
|
|
select * from t1;
|
|
a
|
|
207
|
|
208
|
|
300
|
|
show binlog events from 102;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Query 1 # use `test`; create table t1 (id tinyint auto_increment primary key)
|
|
master-bin.000001 # Intvar 1 # INSERT_ID=127
|
|
master-bin.000001 # Query 1 # use `test`; insert into t1 values(null)
|
|
master-bin.000001 # Query 1 # use `test`; drop table t1
|
|
master-bin.000001 # Query 1 # use `test`; create table t1 (a int not null auto_increment, primary key (a)) engine=myisam
|
|
master-bin.000001 # Table_map 1 # table_id: # (test.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (test.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
master-bin.000001 # Table_map 1 # table_id: # (test.t1)
|
|
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
|
|
drop table t1;
|