• Marko Mäkelä's avatar
    MDEV-25910: Aim to make all InnoDB DDL durable · 71964c76
    Marko Mäkelä authored
    Before any committed DDL operation returns control to the caller,
    we must ensure that it will have been durably committed before the
    ddl_log state may be changed, no matter if
    innodb_flush_log_at_trx_commit=0 is being used.
    
    Operations that would involve deleting files were already safe,
    because the durable write of the FILE_DELETE record that would precede
    the file deletion would also have made the commit durable.
    
    Furthermore, when we clean up ADD INDEX stubs that were left behind
    by a previous ha_innobase::commit_inplace_alter_table(commit=false)
    when MDL could not be acquired, we will use the same interface as
    for dropping indexes. This safety measure should be dead code,
    because ADD FULLTEXT INDEX is not supported online, and dropping indexes
    only involves file deletion for FULLTEXT INDEX.
    71964c76
ha_innodb.cc 600 KB