• unknown's avatar
    Added UNDO handling of insert during recovery · 5f473af7
    unknown authored
    
    storage/maria/ma_blockrec.c:
      Added UNDO handling of insert during recovery
      To do this, I also had to add write locking of tail pages during undo phase (As we need to access the same page twice if extents are split over two pages)
      Another way to handle the undo of insert would be to store the extent information as part of the UNDO_INSERT block.
    storage/maria/ma_blockrec.h:
      Added new prototype
    storage/maria/ma_loghandler.c:
      Changed type of CLR_END (to avoid crash in log handler)
      Removed not used variable
    storage/maria/ma_loghandler.h:
      Added TRN argument to record_execute_in_undo_phase()
    storage/maria/ma_pagecache.c:
      Hack for undo phase of recovery.  During REDO we work with PLAIN pages, but UNDO works with LSN pages, which caused an abort when trying to access a cached page.
    storage/maria/ma_recovery.c:
      Added execution of UNDO_ROW_INSERT
    storage/maria/ma_test1.c:
      Added option --test-undo for testing recovery with undo
    storage/maria/maria_read_log.c:
      Added processing of undos
    5f473af7
ma_recovery.c 49.3 KB