• Michael Widenius's avatar
    Fixes for bug#37276: · ffd2cd89
    Michael Widenius authored
    - Fixes key corruption where pages wasn't marked that they contained transid.
    - Fixed bug in block record that could create too small rows when transid was removed. This fixed some asserts() when testing block length
    
    Added --abort-source-on-error to the mysql client. (Very helpfull when debugging wrong .sql files)
    
    client/client_priv.h:
      Added enum for new option to mysql
    client/mysql.cc:
      Added new option --abort-source-on-error to allow one to get 'source' to stop on error. This is 0 by default, to keep old behaviour.
      Print file name and line number when getting an error when doing source filename
    sql/field.cc:
      Removed old dead code
    sql/sql_class.cc:
      Removed old dead code
    storage/maria/ma_blockrec.c:
      Added checking of min block length to check_directory()
      When creating new directory entry, set length to 0; This ensures that the assert checks() on block lengths works properly.
      Added more DBUG_ASSERT() and more calls to check_directory()
      In get_head_or_tail_page(), send in correct min_block_length. This is now safe as the length of new blocks are now 0
    storage/maria/ma_delete.c:
      When moving key to parent page, mark page if key has transid
    storage/maria/ma_write.c:
      Fixed bug where _ma_find_last_pos() didn't set int_key->flag.
      Simpilifed code by unrolling loop.
    ffd2cd89
mysql.cc 135 KB