• Marko Mäkelä's avatar
    MDEV-17859 Operating system errors in file operations after failed CREATE · b26e603a
    Marko Mäkelä authored
    This is a regression due to MDEV-17816.
    
    When creating a table fails, we must roll back the dictionary
    transaction. Because the rollback may rename tables, and because
    InnoDB lacks proper undo logging for CREATE operations, we must
    drop the incompletely created table before rolling back the
    transaction, which could include a RENAME operation.
    But, we must not blindly drop the table by name; after all,
    the operation could have failed because another table by the
    same name already existed.
    
    create_table_info_t::m_drop_before_rollback: A flag that is set
    if the table needs to be dropped before transaction rollback.
    
    create_table_info_t::create_table(): Remove some duplicated
    error handling.
    
    ha_innobase::create(): On error, only drop the table if it was
    actually created.
    b26e603a
truncate.test 1.68 KB