mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
BUG#39393 slave-skip-errors does not work when using ROW based replication
RBR was not considering the option --slave-skip-errors. To fix the problem, we are reporting the ignored ERROR(s) as warnings thus avoiding stopping the SQL Thread. Besides, it fixes the output of "SHOW VARIABLES LIKE 'slave_skip_errors'" which was showing nothing when the value "all" was assigned to --slave-skip-errors. @sql/log_event.cc skipped rbr errors when the option skip-slave-errors is set. @sql/slave.cc fixed the output of for SHOW VARIABLES LIKE 'slave_skip_errors'" @test-cases fixed the output of rpl.rpl_idempotency updated the test case rpl_skip_error
This commit is contained in:
@@ -74,19 +74,16 @@ Last_SQL_Error
|
||||
drop table t1;
|
||||
create table t1(a int primary key);
|
||||
insert into t1 values (1),(2);
|
||||
delete from t1 where @@server_id=1;
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
SET SQL_LOG_BIN=0;
|
||||
delete from t1;
|
||||
SET SQL_LOG_BIN=1;
|
||||
set sql_mode=strict_trans_tables;
|
||||
insert into t1 values (7), (8), (9);
|
||||
insert into t1 values (1), (2), (3);
|
||||
[on slave]
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW SLAVE STATUS;
|
||||
Slave_IO_State #
|
||||
Master_Host 127.0.0.1
|
||||
@@ -128,3 +125,84 @@ Last_SQL_Errno 0
|
||||
Last_SQL_Error
|
||||
==== Clean Up ====
|
||||
drop table t1;
|
||||
==== Using Innodb ====
|
||||
SET SQL_LOG_BIN=0;
|
||||
CREATE TABLE t1(id INT NOT NULL PRIMARY KEY, data INT) Engine=InnoDB;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` int(11) NOT NULL,
|
||||
`data` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
SET SQL_LOG_BIN=1;
|
||||
CREATE TABLE t1(id INT NOT NULL PRIMARY KEY, data INT) Engine=InnoDB;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` int(11) NOT NULL,
|
||||
`data` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
INSERT INTO t1 VALUES(1, 1);
|
||||
INSERT INTO t1 VALUES(2, 1);
|
||||
INSERT INTO t1 VALUES(3, 1);
|
||||
INSERT INTO t1 VALUES(4, 1);
|
||||
SET SQL_LOG_BIN=0;
|
||||
DELETE FROM t1 WHERE id = 4;
|
||||
SET SQL_LOG_BIN=1;
|
||||
UPDATE t1 SET id= id + 3, data = 2;
|
||||
|
||||
SELECT *, "INNODB SET SLAVE DATA" FROM t1 ORDER BY id;
|
||||
id data INNODB SET SLAVE DATA
|
||||
1 1 INNODB SET SLAVE DATA
|
||||
2 1 INNODB SET SLAVE DATA
|
||||
3 1 INNODB SET SLAVE DATA
|
||||
4 1 INNODB SET SLAVE DATA
|
||||
SELECT *, "INNODB SET MASTER DATA" FROM t1 ORDER BY id;
|
||||
id data INNODB SET MASTER DATA
|
||||
4 2 INNODB SET MASTER DATA
|
||||
5 2 INNODB SET MASTER DATA
|
||||
6 2 INNODB SET MASTER DATA
|
||||
==== Using MyIsam ====
|
||||
SET SQL_LOG_BIN=0;
|
||||
CREATE TABLE t2(id INT NOT NULL PRIMARY KEY, data INT) Engine=MyIsam;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`id` int(11) NOT NULL,
|
||||
`data` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SET SQL_LOG_BIN=1;
|
||||
CREATE TABLE t2(id INT NOT NULL PRIMARY KEY, data INT) Engine=MyIsam;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`id` int(11) NOT NULL,
|
||||
`data` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
INSERT INTO t2 VALUES(1, 1);
|
||||
INSERT INTO t2 VALUES(2, 1);
|
||||
INSERT INTO t2 VALUES(3, 1);
|
||||
INSERT INTO t2 VALUES(5, 1);
|
||||
SET SQL_LOG_BIN=0;
|
||||
DELETE FROM t2 WHERE id = 5;
|
||||
SET SQL_LOG_BIN=1;
|
||||
UPDATE t2 SET id= id + 3, data = 2;
|
||||
|
||||
SELECT *, "MYISAM SET SLAVE DATA" FROM t2 ORDER BY id;
|
||||
id data MYISAM SET SLAVE DATA
|
||||
2 1 MYISAM SET SLAVE DATA
|
||||
3 1 MYISAM SET SLAVE DATA
|
||||
4 2 MYISAM SET SLAVE DATA
|
||||
5 1 MYISAM SET SLAVE DATA
|
||||
SELECT *, "MYISAM SET MASTER DATA" FROM t2 ORDER BY id;
|
||||
id data MYISAM SET MASTER DATA
|
||||
4 2 MYISAM SET MASTER DATA
|
||||
5 2 MYISAM SET MASTER DATA
|
||||
6 2 MYISAM SET MASTER DATA
|
||||
==== Clean Up ====
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
|
Reference in New Issue
Block a user