• unknown's avatar
    Fixed several bugs found by running *.test with maria engine · 5183a4b0
    unknown authored
    Renamed HA_EXTRA_PREAPRE_FOR_DELETE to HA_EXTRA_PERPARE_FOR_DROP
    Added HA_EXTRA_PREPARE_FOR_RENAME (as we in the code before used HA_EXTRA_PREPARE_FOR_DELETE also for renames which confused things)
    Allow multiple write locks for same page by same file handle
    Don't write table state if table is not changed
    
    
    include/my_base.h:
      Renamed HA_EXTRA_PREAPRE_FOR_DELETE to HA_EXTRA_PERPARE_FOR_DROP
      Added HA_EXTRA_PREPARE_FOR_RENAME (as we in the code before used HA_EXTRA_PREPARE_FOR_DELETE also for renames which confused things)
    mysql-test/r/maria.result:
      More tests of things that failed in other tests
    mysql-test/t/maria.test:
      More tests of things that failed in other tests
    sql/ha_partition.cc:
      HA_EXTRA_PREPARE_FOR_DELETE -> HA_EXTRA_PREPARE_FOR_DROP
      Use HA_EXTRA_PREPARE_FOR_RENAME for renames
    sql/ha_partition.h:
      HA_EXTRA_PREPARE_FOR_DELETE -> HA_EXTRA_PREPARE_FOR_DROP
      Use HA_EXTRA_PREPARE_FOR_RENAME for renames
    sql/lock.cc:
      Fixed comment
    sql/sql_table.cc:
      Fixed wrong usage of HA_EXTRA_PREAPRE_FOR_DELETE
    storage/maria/ha_maria.cc:
      Added missing _ma_renable_logging_for_table()  (When using with ALTER TABLE + repair index)
      Enabled fast generation of index
    storage/maria/ma_bitmap.c:
      Fixed bug when resetting full pages when page was a tail page
    storage/maria/ma_blockrec.c:
      Fixed several bugs found by running *.test with maria engine:
      During update we keep old changed pages locked with a write lock to be able to reuse them.
      - Fixed bug with allocated but not used tail part
      - Fixed bug with blob that only had tail part
      - Fixed bug when update reused a page (needed multiple write locks for same page)
      - Fixed bug when first extent was a tail block
    storage/maria/ma_check.c:
      Better error message when bitmap is destroyed
    storage/maria/ma_close.c:
      Only write status if file was changed.
      Fixed bug when maria_chk -e file_name changed the file.
    storage/maria/ma_dynrec.c:
      Removed not used argument to _ma_state_info_read_dsk
    storage/maria/ma_extra.c:
      HA_EXTRA_PREPARE_FOR_DELETE -> HA_EXTRA_PREPARE_FOR_DROP
      Use HA_EXTRA_PREPARE_FOR_RENAME for renames
      Only ignore flushing of pages for DROP (not rename)
    storage/maria/ma_locking.c:
      Removed not used argument to _ma_state_info_read_dsk
    storage/maria/ma_open.c:
      Removed not used argument to _ma_state_info_read_dsk
    storage/maria/ma_pagecache.c:
      Allow multiple write locks for same page by same file handle
      (Not yet complete, Sanja will fix)
    storage/maria/ma_recovery.c:
      HA_EXTRA_PREPARE_FOR_DELETE -> HA_EXTRA_PREPARE_FOR_DROP
    storage/maria/maria_def.h:
      Removed not used argument to _ma_state_info_read_dsk
    storage/myisam/mi_extra.c:
      HA_EXTRA_PREPARE_FOR_DELETE -> HA_EXTRA_PREPARE_FOR_DROP
      Use HA_EXTRA_PREPARE_FOR_RENAME for renames
      Only ignore flushing of pages for DROP (not rename)
    storage/myisammrg/ha_myisammrg.cc:
      HA_EXTRA_PREPARE_FOR_DELETE -> HA_EXTRA_PREPARE_FOR_DROP
      Use HA_EXTRA_PREPARE_FOR_RENAME for renames
    5183a4b0
ma_locking.c 15.6 KB