Details
-
Task
-
Status: Stalled (View Workflow)
-
Minor
-
Resolution: Unresolved
-
None
Description
For example, UPDATE statement. It currently writes Update_rows_event and Write_row_event for every updated row. It should write only Update_rows_event, and the slave, when executing it, should create the historical row internally. Because existing binlogs already have Update_rows_event and Write_row_event, the slave should ignore all events that modify the history.
source include/have_binlog_format_row.inc;
|
source include/master-slave.inc;
|
|
create table t1 (a int, rs timestamp(6) not null, re timestamp(6) not null); |
|
sync_slave_with_master;
|
stop slave;
|
drop table t1; |
create table t1 (a int, rs timestamp(6) as row start, re timestamp(6) as row end, |
period for system_time(rs,re)) with system versioning; |
start slave;
|
|
connection master; |
# create two rows on the slave: one in the past, one with some fake row_start |
insert t1 values (1, '2010-10-10 10:10:10', '2011-11-11 11:11:11'); |
insert t1 values (2, '2012-12-12 12:12:12', from_unixtime(2147483647.999999)); |
|
sync_slave_with_master;
|
select * from t1; |
select * from t1 for system_time all; |
|
connection master; |
# now update the versioned row on the slave without leaving any trace |
update t1 set a=3, rs='2009-09-09 9:9:9' where a=2; |
sync_slave_with_master;
|
select * from t1; |
select * from t1 for system_time all; |
|
connection master; |
drop table t1; |
|
source include/rpl_end.inc;
|
Attachments
Issue Links
- is blocked by
-
MDEV-23486 RBR can bypass secure_timestamp=YES
- Stalled
There are no Sub-Tasks for this issue.