• unknown's avatar
    BUG#31581: 5.1-telco-6.1 -> 5.1.22. Slave crashes during starting · a1fce447
    unknown authored
    This patch has two purposes:
    (1) To refactor the code so that
       {Write|Update|Delete}_rows_log_event_old does not use code from
       {Write|Update|Delete}_rows_log_event. Before refactoring there
       was the following problem: whenever we modifed the code for new
       events, it affected the old events. This is bad, as it makes
       maintainance difficult. After refactoring, we can safely edit the
       new code without affecting old events. So, if we for instance
       modify the binary format of new events, we no longer need to worry
       about how the new code reads old events.
    (2) To fix BUG#31581.
    
    These two objectives are reached by the following changes:
     - Merged Rows_log_event into Old_rows_log_event and
       {Write|Update|Delete}_rows_log_event into
       {Write|Update|Delete}_rows_log_event_old.
     - Fixed the bug by replacing {WRITE|UPDATE|DELETE}_ROWS_EVENT by
       PRE_GA_{WRITE|UPDATE|DELETE}_ROWS_EVENT.
     - Added comments to log_event_old.h
    
    (This patch is identical to the previously committed patch which was
    a collapse of three changesets, except that it adds assert(0) to
    constructors for old types of row log events that should never be
    called.)
    
    
    sql/log_event_old.cc:
      Merged Rows_log_event into Old_rows_log_event and
      {Write|Update|Delete}_rows_log_event into
      {Write|Update|Delete}_rows_log_event_old. Also fixed the bug by
      replacing {WRITE|UPDATE|DELETE}_ROWS_EVENT by
      PRE_GA_{WRITE|UPDATE|DELETE}_ROWS_EVENT.
    sql/log_event_old.h:
      Merged Rows_log_event into Old_rows_log_event and
      {Write|Update|Delete}_rows_log_event into
      {Write|Update|Delete}_rows_log_event_old. Also added comment
      explaining what the file contains and what the classes do.
    a1fce447
log_event_old.cc 95.9 KB