• sjaakola's avatar
    MDEV-24119 MDL BF-BF Conflict caused by TRUNCATE TABLE · 2fbcddbe
    sjaakola authored
    A follow-up fix, for original fix for MDEV-21577, which did not handle well
    temporary tables.
    
    OPTIMIZE and REPAIR TABLE statements can take a list of tables as argument,
    and some of the tables may be temporary. Proper handling of temporary tables
    is to skip them and continue working on the real tables. The bad version, skipped all tables,
    if a single temporary table was in the argument list. And this resulted so that FK parent
    tables were not scnanned for the remaining real tables. Some mtr tests, using OPTIMIZE or REPAIR
    for temporary tables caused regressions bacause of this, e.g. galera.galera_optimize_analyze_multi
    
    The fix in this PR opens temporary and real tables first, and in the table handling loop skips
    temporary tables, FK parent scanning is done only for real tables.
    
    The test has new scenario for OPTIMIZE and REPAIR issued for two tables of which one is temporary table.
    Reviewed-by: default avatarJan Lindström <jan.lindstrom@mariadb.com>
    2fbcddbe
wsrep_mysqld.cc 86.5 KB