• Kristian Nielsen's avatar
    MDEV-8075: DROP TEMPORARY TABLE not marked as ddl, causing optimistic parallel replication to fail · 228479a2
    Kristian Nielsen authored
    CREATE/DROP TEMPORARY TABLE are not safe to optimistically replicate in
    parallel with other transactions, so they need to be marked as "ddl" in the
    binlog.
    
    This was already done for stand-alone CREATE/DROP TEMPORARY. But temporary
    tables can also be created and dropped inside a BEGIN...END transaction, and
    such transactions were not marked as ddl. Nor was the DROP TEMPORARY TABLE
    statement emitted implicitly when a client connection is closed.
    
    So this patch adds such ddl mark for the missing cases.
    
    The difference to Kristian's original patch is mainly a fix in
    mysql_trans_commit_alter_copy_data() to remember the unsafe_rollback_flags
    over the temporary commit.
    228479a2
sql_parse.cc 294 KB