• Luis Soares's avatar
    BUG#11766865: 60091: RBR + NO PK + UPDATE NULL VALUE --> SLAVE BREAK WITH ERROR HA_ERR_END_OF_ · 16e4677c
    Luis Soares authored
      
    The slave was not able to find the correct row in the innodb
    table, because the row fetched from the innodb table would not
    match the before image. This happened because the (don't care)
    bytes in the NULLed fields would change once the row was stored
    in the storage engine (from zero to the default value). This
    would make bulk memory comparison (using memcmp) to fail.
      
    We fix this by taking a preventing measure and avoiding memcmp
    for tables that contain nullable fields. Therefore, we protect
    the slave search routine from engines that return arbitrary
    values for don't care bytes (in the nulled fields). Instead, the
    slave thread will only check null_bits and those fields that are
    not set to NULL when comparing the before image against the
    storage engine row.
    16e4677c
log_event.cc 306 KB