• Marko Mäkelä's avatar
    MDEV-17043 Purge of indexed virtual columns may cause hang on table-rebuilding DDL · 9a815401
    Marko Mäkelä authored
    When a table is renamed to an internal #sql2 or #sql-ib name during
    a table-rebuilding DDL operation such as OPTIMIZE TABLE or ALTER TABLE,
    and shortly after that a purge operation in an index on virtual columns
    is attempted, the operation could fail, but purge would fail to release
    the table reference.
    
    innodb_acquire_mdl(): Release the reference if the table name is not
    valid for acquiring a meta-data lock (MDL).
    
    innodb_find_table_for_vc(): Add a debug assertion if the table name
    is not valid. This code path is for DML execution. The table
    should have a valid name for executing DML, and furthermore a MDL
    will prevent the table from being renamed.
    
    row_vers_build_clust_v_col(): Add a debug assertion that both indexes
    must belong to the same table.
    9a815401
ha_innodb.cc 634 KB