• unknown's avatar
    Fixes for redo/undo logging of key pages · 6b3743f0
    unknown authored
    New extendable format for maria_log_control file
    Fixed some compiler warnings
    
    
    include/maria.h:
      Added maria_disable_logging() and maria_enable_logging()
    mysql-test/include/maria_verify_recovery.inc:
      Updated tests now when key redo/undo works
    mysql-test/r/maria-recovery.result:
      Updated tests now when key redo/undo works
    storage/maria/ma_blockrec.c:
      Use unified CLR code
      Added rec_lsn for full pages
      Moved clr write hook to ma_key_recover.c
      Changed REDO code to keep pages pinned until undo
      Mark page_link's as changed
    storage/maria/ma_blockrec.h:
      Moved write_hook_for_clr_end() to ma_key_recover.c
    storage/maria/ma_check.c:
      Changed key check code to use PAGECACHE_READ_UNKNOWN_PAGE
      Fixed wrong warning when checking files after maria_pack
      When unpacking files, we have to use new keypos_to_recpos method
      When doing repair, we can disregard index key file pages in page cache
    storage/maria/ma_commit.c:
      Added simple enable/disable logging functions
      (Needed for recovery)
    storage/maria/ma_control_file.c:
      Make maria control file extendable without having to make it incompatible for older versions
    storage/maria/ma_control_file.h:
      New error messages
      Added CONTROL_FILE_VERSION
    storage/maria/ma_delete.c:
      Added redo/undo for key pages
      change_length -> changed_length to make things similar
      More comments & more DBUG
    storage/maria/ma_key_recover.c:
      Unified CLR method
      Moved here write_hook_for_clr_end() and common keypage log functions
      Changed REDO to keep pages pinned until undo
      Changed UNDO code to change key_root under log mutex
    storage/maria/ma_key_recover.h:
      New structures and functions
    storage/maria/ma_loghandler.c:
      Include needed files
    storage/maria/ma_open.c:
      Change maria_open() to use pread() instead of read()
    storage/maria/ma_page.c:
      Fixed bug in key_del handling
      Clear pages if IDENTICAL_PAGES_AFTER_RECOVERY is defined
    storage/maria/ma_pagecache.c:
      Indentation and spelling fixes
      More DBUG
      Added helper function: pagecache_block_link_to_buffer()
    storage/maria/ma_pagecache.h:
      Added pagecache_block_link_to_buffer()
    storage/maria/ma_recovery.c:
      Fixed state.changed
      Fixed that REDO keeps pages pinned until UNDO
      Some bug fixes from previous commit
      Fixes for UNDO/REDO of key pages
    storage/maria/ma_search.c:
      Fixed packing and storing of keys to provide more information to caller so
      that we can do efficent REDO logging of the changes.
    storage/maria/ma_test1.c:
      Fixed bug with not initialized variable
    storage/maria/ma_test2.c:
      Removed not used code
    storage/maria/ma_test_all.res:
      Updated results
    storage/maria/ma_test_all.sh:
      Changed one test to test more
      Removed timing tests as not relevant here
    storage/maria/ma_test_recovery.expected:
      Updated test result after redo/undo if key pages works
    storage/maria/ma_test_recovery:
      Updated test after redo/undo if key pages works
    storage/maria/ma_write.c:
      Moved some general log functions to ma_key_recover.c
      Fixed some bugs in undo
      Moved ma_log_split() to _ma_split_page()
      Small changes in some function arguments to be able to do redo logging
    storage/maria/maria_chk.c:
      disable logging while doing repair table
    storage/maria/maria_def.h:
      New function prototypes
      Move some structs and functions to ma_key_recover.c
    storage/maria/unittest/ma_control_file-t.c:
      Updated with patch from Sanja
      NOTE: This is not complete and need to be updated to new control file format
    storage/maria/unittest/ma_test_loghandler-t.c:
      Fixed compiler warning
    6b3743f0
ma_recovery.c 94.1 KB