Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-18432

RBR logging of system versioned tables

    XMLWordPrintable

Details

    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

          Activity

            People

              midenok Aleksey Midenkov
              serg Sergei Golubchik
              Votes:
              1 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.