• Sergey Vojtovich's avatar
    MDEV-4786 - merge 10.0-monty - 10.0 · 0f985c64
    Sergey Vojtovich authored
    Fixed archive.archive failure.
    
    Applied remnants of two revisions, which were partially merged.
    
    Rev. 3225.1.1 (5.0 compatibility):
    
      BUG#11756687 - 48633: ARCHIVE TABLES ARE NOT UPGRADEABLE
    
      Archive table created by 5.0 were not accessible.
    
      This patch adds various fixes so that 5.0 archive tables
      are readable and writable. Though it is strongly recommended
      to avoid binary upgrade of archive tables whenever it is
      possible.
    
    Rev. 3710 (due to valgrind warnings):
    
      Bug#13907676: HA_ARCHIVE::INFO
      In WL#4305 the refactoring of the archive writer,
      it could flush the writer when it was not yet open.
    
      This was due to if bulk insert was used but no
      rows was actually inserted (write_row was never called),
      the writer was marked dirty even if it was not open.
    
      Fix was to only mark it as dirty if it was opened.
    
    mysql-test/std_data/bug48633.ARM:
      A test case for BUG#11756687: archive table created by 5.0.95.
    mysql-test/std_data/bug48633.ARZ:
      A test case for BUG#11756687: archive table created by 5.0.95.
    mysql-test/std_data/bug48633.frm:
      A test case for BUG#11756687: archive table created by 5.0.95.
    mysql-test/suite/archive/archive.result:
      Modified a test case for BUG#47012 according to fix for
      BUG#11756687.
      Added a test case for BUG#11756687.
    mysql-test/suite/archive/archive.test:
      Modified a test case for BUG#47012 according to fix for
      BUG#11756687.
      Added a test case for BUG#11756687.
      
      No need to remove .ARM files anymore: DROP TABLE will take
      care of them.
    storage/archive/azio.c:
      Do not write AZIO (v.3) header to GZIO file (v.1).
      
      Added initialization of various azio_stream members
      to read_header() so it can proceed with v.1 format.
      
      Update data start position only when reading first
      GZIO header. That is only on azopen(), but never on
      azread().
    storage/archive/ha_archive.cc:
      Removed guardians that were rejecting to open v.1 archive
      tables.
      
      Reload .frm when repairing v.1 tables - they didn't have
      storage for .frm.
      
      Do not flush write stream when it is not open.
      
      Let DROP TABLE remove 5.0 .ARM files.
    0f985c64