• unknown's avatar
    Fix for BUG#4551 "Temporary InnoDB tables not replicated properly with CREATE TABLE .. SELECT" · 382ff793
    unknown authored
    The problem was that (for any storage engine), the created temporary table was not removed if CREATE SELECT failed (because
    of a constraint violation for example). This was not consistent with the manual and with CREATE SELECT (no TEMPORARY).
    
    
    sql/sql_insert.cc:
      Fix for BUG#4551 "Temporary InnoDB tables not replicated properly with CREATE TABLE .. SELECT"
      The problem was that (for any storage engine), the created temporary table was not removed if CREATE SELECT failed (because
      of a constraint violation for example). This was not consistent with the manual and with CREATE SELECT (no TEMPORARY).
      And it led to the above bug, because the binlogging of CREATE SELECT is done by select_insert::send_eof() (same function
      as INSERT SELECT) and so, if the table is transactional and there is a failure, the statement is considered as rolled
      back and so nothing is written in the binlog. So temp table MUST be deleted.
    382ff793
sql_insert.cc 43.3 KB