• unknown's avatar
    BUG#26138 - REPAIR TABLE with option USE_FRM erases all records in · 0da1a0cd
    unknown authored
                ARCHIVE table
    ARCHIVE table was truncated by REPAIR TABLE ... USE_FRM statement.
    The table handler returned its file name extensions in a wrong order.
    REPAIR TABLE believed it has to use the meta file to create a new table
    from it.
    
    With the fixed order, REPAIR TABLE does now use the data file to create
    a new table. So REPAIR TABLE ... USE_FRM works well with ARCHIVE engine
    now.
    
    This issue affects 5.0 only, since in 5.1 ARCHIVE engine stores meta
    information and data in the same file.
    
    
    mysql-test/r/archive.result:
      A test case for bug#26138.
    mysql-test/t/archive.test:
      A test case for bug#26138.
    sql/examples/ha_example.cc:
      Added a comment.
    sql/ha_archive.cc:
      First element of engine file name extentions array should be meta/index
      file extention. Second element - data file extention. This is true
      for engines that have separate meta/index file and data file.
      
      Reoder ha_archive_exts elements to meet described above requirement.
    sql/handler.h:
      Added a comment.
    sql/sql_table.cc:
      Added a comment.
    0da1a0cd
sql_table.cc 127 KB