• gshchepa/uchum@host.loc's avatar
    Fixed bug #36055: mysql_upgrade doesn't really 'upgrade' tables · 1e7be565
    gshchepa/uchum@host.loc authored
    The REPAIR TABLE ... USE_FRM query silently corrupts data of tables
    with old .FRM file version.
    The mysql_upgrade client program or the REPAIR TABLE query (without
    the USE_FRM clause) can't prevent this trouble, because in the
    common case they don't upgrade .FRM file to compatible structure.
    
    1. Evaluation of the REPAIR TABLE ... USE_FRM query has been
       modified to reject such tables with the message:
       "Failed repairing incompatible .FRM file".
    
    2. REPAIR TABLE query (without USE_FRM clause) evaluation has been
       modified to upgrade .FRM files to current version.
    
    3. CHECK TABLE ... FOR UPGRADE query evaluation has been modified
       to return error status when .FRM file has incompatible version.
    
    4. mysql_upgrade and mysqlcheck client programs call CHECK TABLE
       FOR UPGRADE and REPAIR TABLE queries, so their behaviors have
       been changed too to upgrade .FRM files with incompatible
       version numbers.
    1e7be565
sql_table.cc 134 KB