• Anurag Shekhar's avatar
    Bug #47012 archive tables are not upgradeable, and server crashes · c8737515
    Anurag Shekhar authored
           on any access
    
    Archive engine for 5.1 (and latter) version uses a modified 
    version of zlib (azlib). These two version are incompatible
    so a proper upgrade is needed before tables created in 5.0 
    can be used reliable.
    
    This upgrade can be performed using repair. But due to lack 
    of test its risky to allow upgrade for now. This patch addresses
    only the crashing issue. Any attempt to repair will be blocked.
    
    Eventually repair can be allowed to run through (which will also
    cause an upgrade from older version to newer) but only after a 
    thorough testing.
    
    mysql-test/r/archive.result:
      Updated result file for test case for bug#47012
    mysql-test/std_data/bug47012.ARM:
      part of archive table (t1) created in mysql 5.0
    mysql-test/std_data/bug47012.ARZ:
      part of archive table (t1) created in mysql 5.0
    mysql-test/std_data/bug47012.frm:
      part of archive table (t1) created in mysql 5.0
    mysql-test/t/archive.test:
      Added test case for bug#47012.
    storage/archive/azio.c:
      Fixed a minor issues (minor version overwriting version in 
      stream structure)
      Removed assertion when an older version is found. Instead
      setting the correct version (2) in s->version
      If an unknown version is found marked it as corrupt.
    storage/archive/ha_archive.cc:
      Detecting the archive version in getShare and marking
      it as need to upgrade.
      Blocking open if the archive needs an upgrade. This
      can be allowed in case of open for repair to upgrade
      the archive but needs to tested.
    c8737515
azio.c 24.6 KB