• 's avatar
    Bug #56662 Assertion failed: next_insert_id == 0, file .\handler.cc · bcd47f41
    authored
          
    Normally, auto_increment value is generated for the column by
    inserting either NULL or 0 into it. NO_AUTO_VALUE_ON_ZERO
    suppresses this behavior for 0 so that only NULL generates
    the auto_increment value. This behavior is also followed by
    a slave, specifically by the SQL Thread, when applying events
    in the statement format from a master. However, when applying
    events in the row format, the flag was ignored thus causing
    an assertion failure:
    "Assertion failed: next_insert_id == 0, file .\handler.cc"
          
    In fact, we never need to generate a auto_increment value for
    the column when applying events in row format on slave. So we
    don't allow it to happen by using 'MODE_NO_AUTO_VALUE_ON_ZERO'.
          
    Refactoring: Get rid of all the sql_mode checks to rows_log_event
    when applying it for avoiding problems caused by the inconsistency
    of the sql_mode on slave and master as the sql_mode is not set for
    Rows_log_event.
    bcd47f41
log_event.cc 313 KB