37 #ifndef UNIV_HOTBACKUP
91 #ifndef UNIV_HOTBACKUP
344 #define TRX_UNDO_INSERT 1
345 #define TRX_UNDO_UPDATE 2
350 #define TRX_UNDO_ACTIVE 1
352 #define TRX_UNDO_CACHED 2
353 #define TRX_UNDO_TO_FREE 3
354 #define TRX_UNDO_TO_PURGE 4
357 #define TRX_UNDO_PREPARED 5
360 #ifndef UNIV_HOTBACKUP
422 #define TRX_UNDO_PAGE_HDR FSEG_PAGE_DATA
426 #define TRX_UNDO_PAGE_TYPE 0
428 #define TRX_UNDO_PAGE_START 2
433 #define TRX_UNDO_PAGE_FREE 4
436 #define TRX_UNDO_PAGE_NODE 6
439 #define TRX_UNDO_PAGE_HDR_SIZE (6 + FLST_NODE_SIZE)
448 #define TRX_UNDO_PAGE_REUSE_LIMIT (3 * UNIV_PAGE_SIZE / 4)
462 #define TRX_UNDO_SEG_HDR (TRX_UNDO_PAGE_HDR + TRX_UNDO_PAGE_HDR_SIZE)
466 #define TRX_UNDO_STATE 0
467 #define TRX_UNDO_LAST_LOG 2
470 #define TRX_UNDO_FSEG_HEADER 4
472 #define TRX_UNDO_PAGE_LIST (4 + FSEG_HEADER_SIZE)
478 #define TRX_UNDO_SEG_HDR_SIZE (4 + FSEG_HEADER_SIZE + FLST_BASE_NODE_SIZE)
486 #define TRX_UNDO_TRX_ID 0
487 #define TRX_UNDO_TRX_NO 8
490 #define TRX_UNDO_DEL_MARKS 16
494 #define TRX_UNDO_LOG_START 18
500 #define TRX_UNDO_XID_EXISTS 20
503 #define TRX_UNDO_DICT_TRANS 21
510 #define TRX_UNDO_TABLE_ID 22
512 #define TRX_UNDO_NEXT_LOG 30
514 #define TRX_UNDO_PREV_LOG 32
516 #define TRX_UNDO_HISTORY_NODE 34
520 #define TRX_UNDO_LOG_OLD_HDR_SIZE (34 + FLST_NODE_SIZE)
533 #define TRX_UNDO_XA_FORMAT (TRX_UNDO_LOG_OLD_HDR_SIZE)
535 #define TRX_UNDO_XA_TRID_LEN (TRX_UNDO_XA_FORMAT + 4)
537 #define TRX_UNDO_XA_BQUAL_LEN (TRX_UNDO_XA_TRID_LEN + 4)
539 #define TRX_UNDO_XA_XID (TRX_UNDO_XA_BQUAL_LEN + 4)
541 #define TRX_UNDO_LOG_XA_HDR_SIZE (TRX_UNDO_XA_XID + XIDDATASIZE)
547 #include "trx0undo.ic"
buf_block_t * guess_block
UNIV_INTERN ulint trx_undo_add_page(trx_t *trx, trx_undo_t *undo, mtr_t *mtr)
UNIV_INTERN void trx_undo_update_cleanup(trx_t *trx, page_t *undo_page, mtr_t *mtr)
UNIV_INTERN void trx_undo_mem_free(trx_undo_t *undo)
UNIV_INTERN byte * trx_undo_parse_discard_latest(byte *ptr, byte *end_ptr, page_t *page, mtr_t *mtr)
UNIV_INTERN void trx_undo_truncate_start(trx_rseg_t *rseg, ulint space, ulint hdr_page_no, ulint hdr_offset, undo_no_t limit)
UNIV_INTERN page_t * trx_undo_set_state_at_finish(trx_undo_t *undo, mtr_t *mtr)
UNIV_INLINE roll_ptr_t trx_read_roll_ptr(const byte *ptr)
UNIV_INLINE roll_ptr_t trx_undo_build_roll_ptr(ibool is_insert, ulint rseg_id, ulint page_no, ulint offset)
UNIV_INLINE page_t * trx_undo_page_get(ulint space, ulint zip_size, ulint page_no, mtr_t *mtr)
UNIV_INTERN void trx_undo_insert_cleanup(trx_t *trx)
UNIV_INLINE void trx_write_roll_ptr(byte *ptr, roll_ptr_t roll_ptr)
UNIV_INTERN page_t * trx_undo_set_state_at_prepare(trx_t *trx, trx_undo_t *undo, mtr_t *mtr)
UNIV_INLINE trx_undo_rec_t * trx_undo_page_get_prev_rec(trx_undo_rec_t *rec, ulint page_no, ulint offset)
UNIV_INLINE void trx_undo_decode_roll_ptr(roll_ptr_t roll_ptr, ibool *is_insert, ulint *rseg_id, ulint *page_no, ulint *offset)
UNIV_INLINE trx_undo_rec_t * trx_undo_page_get_last_rec(page_t *undo_page, ulint page_no, ulint offset)
UNIV_INTERN trx_undo_rec_t * trx_undo_get_next_rec(trx_undo_rec_t *rec, ulint page_no, ulint offset, mtr_t *mtr)
UNIV_INLINE trx_undo_rec_t * trx_undo_page_get_first_rec(page_t *undo_page, ulint page_no, ulint offset)
UNIV_INLINE trx_undo_rec_t * trx_undo_page_get_next_rec(trx_undo_rec_t *rec, ulint page_no, ulint offset)
UNIV_INTERN trx_undo_rec_t * trx_undo_get_first_rec(ulint space, ulint zip_size, ulint page_no, ulint offset, ulint mode, mtr_t *mtr)
UNIV_INTERN ulint trx_undo_assign_undo(trx_t *trx, ulint type)
UNIV_INTERN byte * trx_undo_parse_page_init(byte *ptr, byte *end_ptr, page_t *page, mtr_t *mtr)
UNIV_INTERN void trx_undo_truncate_end(trx_t *trx, trx_undo_t *undo, undo_no_t limit)
UNIV_INTERN ulint trx_undo_lists_init(trx_rseg_t *rseg)
UNIV_INTERN byte * trx_undo_parse_page_header(ulint type, byte *ptr, byte *end_ptr, page_t *page, mtr_t *mtr)
UNIV_INLINE page_t * trx_undo_page_get_s_latched(ulint space, ulint zip_size, ulint page_no, mtr_t *mtr)
UNIV_INLINE ibool trx_undo_roll_ptr_is_insert(roll_ptr_t roll_ptr)
UT_LIST_NODE_T(trx_undo_t) undo_list
UNIV_INTERN trx_undo_rec_t * trx_undo_get_prev_rec(trx_undo_rec_t *rec, ulint page_no, ulint offset, mtr_t *mtr)