diff options
author | unknown <guilhem@gbichot4.local> | 2007-10-08 19:08:25 +0200 |
---|---|---|
committer | unknown <guilhem@gbichot4.local> | 2007-10-08 19:08:25 +0200 |
commit | 63ff9877a588477e646afda9a0b30befc5e02866 (patch) | |
tree | 3cee2a41cb705c7a4b17818661c3652784f74902 /storage/maria/ma_recovery.h | |
parent | dcd4b6f540d205f37a5db4e8911f40c4c41736c1 (diff) | |
download | mariadb-git-63ff9877a588477e646afda9a0b30befc5e02866.tar.gz |
WL#3072 Maria recovery
Misc changes:
- fix for benign Valgrind error, compiler warnings
- fix for a segfault in execution of maria_delete_all_rows() and one
when taking multiple checkpoints
- fix for too paranoid assertion
- adding ability to take checkpoints at the end of the REDO phase
and at the end of recovery.
- other minor changes
storage/maria/ha_maria.cc:
The checkpoint done after Recovery is finished, is moved to
maria_recover().
storage/maria/ma_bitmap.c:
fix for Valgrind error: the "shadow debug copy" of the bitmap page
started unitialized and so ma_print_bitmap() would use it uninitialized
storage/maria/ma_checkpoint.c:
* reset pointers to NULL after freeing them, or we segfault at
next checkpoint in my_realloc().
* fix for compiler warnings.
storage/maria/ma_delete_all.c:
info->trn is NULL for non-transactional tables
storage/maria/ma_locking.c:
correct assertion (it fired wrongly in execution of REDO_DROP_TABLE
due to the maria_extra(HA_PREPARE_FOR_DROP)->_ma_decrement_open_count()
->maria_lock_database(F_UNLCK); another solution would have been to
not call _ma_decrement_open_count() (it's ok to have a wrong open
count in a table which we are dropping), but the same problem
would still exist for REDO_RENAME_TABLE.
storage/maria/ma_loghandler.c:
fail early if UNRECOVERABLE_ERROR
storage/maria/ma_recovery.c:
* new argument to maria_apply_log(): should it take checkpoints
(at end of REDO phase and at the very end) or no.
* moving the call to translog_next_LSN() into
parse_checkpoint_record() ("hide the details").
* Refining an error detection for something which could happen
if there is a checkpoint record in the log.
* Using close_one_table() instead of maria_extra(HA_EXTRA_PREPARE_FOR_DROP|RENAME),
as it looks safer, and also changing how close_one_table() works:
it now limits itself to scanning all_tables[], thus having one loopp
instead of two, which should be faster (as a result, it does not
close tables not registered in this array, which is ok as there
should not be any).
storage/maria/ma_recovery.h:
new parameter
storage/maria/maria_read_log.c:
update to new prototype
Diffstat (limited to 'storage/maria/ma_recovery.h')
-rw-r--r-- | storage/maria/ma_recovery.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/storage/maria/ma_recovery.h b/storage/maria/ma_recovery.h index e3864d6022b..da4e8895e2f 100644 --- a/storage/maria/ma_recovery.h +++ b/storage/maria/ma_recovery.h @@ -26,5 +26,6 @@ C_MODE_START int maria_recover(void); int maria_apply_log(LSN lsn, my_bool apply, FILE *trace_file, - my_bool execute_undo_phase, my_bool skip_DDLs); + my_bool execute_undo_phase, my_bool skip_DDLs, + my_bool take_checkpoints); C_MODE_END |