• Sujatha Sivakumar's avatar
    BUG#12662190:COM_COMMIT IS NOT INCREMENTED FROM THE BINARY LOGS ON SLAVE, COM_BEGIN IS · 64e74d48
    Sujatha Sivakumar authored
    PROBLEM:
    
    --------
    
    When binary log statements are replayed on the slave, BEGIN is represented
    
    in com_counters but COMMIT is not. Similarly in 'ROW' based replication
    
    'INSERT','UPDATE',and 'DELETE' com_counters are not getting incremented
    
    when the binary log statements are replayed at slave.
    
    ANALYSIS:
    ---------
    
    In 'ROW' based replication for COMMIT,INSERT,UPDATE and DELETE operations
    following special events are invoked.
    Xid_log_event,Write_rows_log_event,Update_rows_log_event,Update_rows_log_event.
    
    The above mentioned events doesn't go through the parser where the
    'COM_COUNTERS' are incremented.
    
    
    FIX:
    -----
    Increment statements are added at appropriate events.
    Respective functions are listed below.
    
    'Xid_log_event::do_apply_event'
    'Write_rows_log_event::do_before_row_operations'
    'Update_rows_log_event::do_before_row_operations'
    'Delete_rows_log_event::do_before_row_operations' 
    
    sql/log_event.cc:
      Added code to increment counts for 'COM_INSERT','COM_UPDATE',
      'COM_DELETE' and 'COM_COMMIT'during ROW based replicaiton
    64e74d48
log_event.cc 322 KB