Commit 469a27ac authored by marko's avatar marko

branches/zip: Replace buf_frame_align() with page_align(), page_offset(),

ut_align_down(), or ut_align_offset().
parent d3741832
......@@ -151,7 +151,7 @@ btr_get_prev_user_rec(
}
}
page = buf_frame_align(rec);
page = page_align(rec);
prev_page_no = btr_page_get_prev(page, mtr);
space = buf_frame_get_space_id(page);
......@@ -203,7 +203,7 @@ btr_get_next_user_rec(
}
}
page = buf_frame_align(rec);
page = page_align(rec);
next_page_no = btr_page_get_next(page, mtr);
space = buf_frame_get_space_id(page);
......@@ -501,7 +501,7 @@ btr_node_ptr_set_child_page_no(
ulint len;
ut_ad(rec_offs_validate(rec, NULL, offsets));
ut_ad(!page_is_leaf(buf_frame_align(rec)));
ut_ad(!page_is_leaf(page_align(rec)));
ut_ad(!rec_offs_comp(offsets) || rec_get_node_ptr_flag(rec));
/* The child address is in the last field */
......@@ -593,9 +593,9 @@ btr_page_get_father_for_rec(
!= buf_frame_get_page_no(page))) {
rec_t* print_rec;
fputs("InnoDB: Dump of the child page:\n", stderr);
buf_page_print(buf_frame_align(page), 0);
buf_page_print(page_align(page), 0);
fputs("InnoDB: Dump of the parent page:\n", stderr);
buf_page_print(buf_frame_align(node_ptr), 0);
buf_page_print(page_align(node_ptr), 0);
fputs("InnoDB: Corruption of an index tree: table ", stderr);
ut_print_name(stderr, NULL, TRUE, index->table_name);
......@@ -2143,7 +2143,7 @@ btr_lift_page_up(
ut_ad(btr_page_get_next(page, mtr) == FIL_NULL);
ut_ad(mtr_memo_contains(mtr, buf_block_align(page),
MTR_MEMO_PAGE_X_FIX));
father_page = buf_frame_align(
father_page = page_align(
btr_page_get_father_node_ptr(index, page, mtr));
father_page_zip = buf_frame_get_page_zip(father_page);
#ifdef UNIV_ZIP_DEBUG
......@@ -2442,8 +2442,8 @@ btr_discard_only_page_on_level(
MTR_MEMO_PAGE_X_FIX));
btr_search_drop_page_hash_index(page);
father_page = buf_frame_align(btr_page_get_father_node_ptr(index,
page, mtr));
father_page = page_align(
btr_page_get_father_node_ptr(index, page, mtr));
page_level = btr_page_get_level(page, mtr);
......@@ -2793,7 +2793,7 @@ btr_index_rec_validate(
ulint* offsets = offsets_;
*offsets_ = (sizeof offsets_) / sizeof *offsets_;
page = buf_frame_align(rec);
page = page_align(rec);
if (UNIV_UNLIKELY(index->type & DICT_UNIVERSAL)) {
/* The insert buffer index tree can contain records from any
......@@ -3121,7 +3121,7 @@ btr_validate_level(
/* Check father node pointers */
node_ptr = btr_page_get_father_node_ptr(index, page, &mtr);
father_page = buf_frame_align(node_ptr);
father_page = page_align(node_ptr);
offsets = rec_get_offsets(node_ptr, index,
offsets, ULINT_UNDEFINED, &heap);
......@@ -3224,8 +3224,7 @@ btr_validate_level(
buf_page_print(right_page, 0);
}
} else {
right_father_page = buf_frame_align(
right_node_ptr);
right_father_page = page_align(right_node_ptr);
if (right_node_ptr != page_rec_get_next(
page_get_infimum_rec(
......
......@@ -1939,7 +1939,7 @@ btr_cur_pess_upd_restore_supremum(
ulint space;
ulint prev_page_no;
page = buf_frame_align(rec);
page = page_align(rec);
if (page_rec_get_next(page_get_infimum_rec(page)) != rec) {
/* Updated record is not the first user record on its page */
......@@ -2133,7 +2133,7 @@ btr_cur_pessimistic_update(
delete the lock structs set on the root page even if the root
page carries just node pointers. */
lock_rec_store_on_page_infimum(buf_frame_align(rec), rec);
lock_rec_store_on_page_infimum(page_align(rec), rec);
btr_search_update_hash_on_delete(cursor);
......@@ -2897,7 +2897,7 @@ btr_cur_add_path_info(
slot = cursor->path_arr + (root_height - height);
slot->nth_rec = page_rec_get_n_recs_before(rec);
slot->n_recs = page_get_n_recs(buf_frame_align(rec));
slot->n_recs = page_get_n_recs(page_align(rec));
}
/***********************************************************************
......
......@@ -615,8 +615,8 @@ btr_search_check_guess(
prev_rec = page_rec_get_prev(rec);
if (page_rec_is_infimum(prev_rec)) {
success = btr_page_get_prev(
buf_frame_align(prev_rec), mtr) == FIL_NULL;
success = btr_page_get_prev(page_align(prev_rec), mtr)
== FIL_NULL;
goto exit_func;
}
......@@ -640,8 +640,7 @@ btr_search_check_guess(
next_rec = page_rec_get_next(rec);
if (page_rec_is_supremum(next_rec)) {
if (btr_page_get_next(
buf_frame_align(next_rec), mtr)
if (btr_page_get_next(page_align(next_rec), mtr)
== FIL_NULL) {
cursor->up_match = 0;
......@@ -757,7 +756,7 @@ btr_search_guess_on_hash(
goto failure_unlock;
}
page = buf_frame_align(rec);
page = page_align(rec);
if (UNIV_LIKELY(!has_search_latch)) {
......@@ -1632,7 +1631,7 @@ btr_search_validate(void)
while (node != NULL) {
block = buf_block_align(node->data);
page = buf_frame_align(node->data);
page = page_align(node->data);
offsets = rec_get_offsets((rec_t*) node->data,
block->index, offsets,
block->curr_n_fields
......
......@@ -712,7 +712,7 @@ xdes_get_descriptor_with_space_hdr(
if (descr_page_no == 0) {
/* It is on the space header page */
descr_page = buf_frame_align(sp_header);
descr_page = page_align(sp_header);
} else {
descr_page = buf_page_get(space, descr_page_no, RW_X_LATCH,
mtr);
......@@ -812,8 +812,7 @@ xdes_get_offset(
ut_ad(descr);
return(buf_frame_get_page_no(descr)
+ ((descr - buf_frame_align(descr) - XDES_ARR_OFFSET)
/ XDES_SIZE)
+ ((page_offset(descr) - XDES_ARR_OFFSET) / XDES_SIZE)
* FSP_EXTENT_SIZE);
}
......@@ -1936,7 +1935,7 @@ fsp_free_seg_inode(
fsp_header_t* space_header;
ulint zip_size;
page = buf_frame_align(inode);
page = page_align(inode);
space_header = fsp_get_space_header(space, mtr);
zip_size = mach_read_from_4(space_header + FSP_PAGE_ZIP_SIZE);
......@@ -2228,14 +2227,14 @@ fseg_create_general(
}
mlog_write_ulint(header + FSEG_HDR_OFFSET,
inode - buf_frame_align(inode), MLOG_2BYTES, mtr);
page_offset(inode), MLOG_2BYTES, mtr);
mlog_write_ulint(header + FSEG_HDR_PAGE_NO,
buf_frame_get_page_no(inode), MLOG_4BYTES, mtr);
mlog_write_ulint(header + FSEG_HDR_SPACE, space, MLOG_4BYTES, mtr);
ret = buf_frame_align(header);
ret = page_align(header);
funct_exit:
if (!has_done_reservation) {
......
......@@ -13,7 +13,7 @@ Created 11/28/1995 Heikki Tuuri
#endif
#include "buf0buf.h"
#include "page0page.h"
/************************************************************************
Adds a node to an empty list. */
......@@ -83,7 +83,7 @@ flst_add_last(
/* If the list is not empty, call flst_insert_after */
if (len != 0) {
if (last_addr.page == node_addr.page) {
last_node = buf_frame_align(node) + last_addr.boffset;
last_node = page_align(node) + last_addr.boffset;
} else {
last_node = fut_get_ptr(space, last_addr, RW_X_LATCH,
mtr);
......@@ -126,8 +126,7 @@ flst_add_first(
/* If the list is not empty, call flst_insert_before */
if (len != 0) {
if (first_addr.page == node_addr.page) {
first_node = buf_frame_align(node)
+ first_addr.boffset;
first_node = page_align(node) + first_addr.boffset;
} else {
first_node = fut_get_ptr(space, first_addr,
RW_X_LATCH, mtr);
......@@ -285,7 +284,7 @@ flst_remove(
if (node1_addr.page == node2_addr.page) {
node1 = buf_frame_align(node2) + node1_addr.boffset;
node1 = page_align(node2) + node1_addr.boffset;
} else {
node1 = fut_get_ptr(space, node1_addr, RW_X_LATCH,
mtr);
......@@ -304,7 +303,7 @@ flst_remove(
if (node3_addr.page == node2_addr.page) {
node3 = buf_frame_align(node2) + node3_addr.boffset;
node3 = page_align(node2) + node3_addr.boffset;
} else {
node3 = fut_get_ptr(space, node3_addr, RW_X_LATCH,
mtr);
......@@ -362,7 +361,7 @@ flst_cut_end(
if (node1_addr.page == node2_addr.page) {
node1 = buf_frame_align(node2) + node1_addr.boffset;
node1 = page_align(node2) + node1_addr.boffset;
} else {
node1 = fut_get_ptr(space, node1_addr, RW_X_LATCH,
mtr);
......@@ -505,7 +504,7 @@ flst_print(
ut_ad(base && mtr);
ut_ad(mtr_memo_contains(mtr, buf_block_align(base),
MTR_MEMO_PAGE_X_FIX));
frame = buf_frame_align(base);
frame = page_align(base);
len = flst_get_len(base, mtr);
......
......@@ -12,6 +12,7 @@ Created 8/22/1994 Heikki Tuuri
#endif
#include "buf0buf.h"
#include "page0page.h"
/*****************************************************************
Creates a hash table with >= n array cells. The actual number of cells is
......@@ -252,7 +253,7 @@ ha_remove_all_nodes_to_page(
node = ha_chain_get_first(table, fold);
while (node) {
if (buf_frame_align(ha_node_get_data(node)) == page) {
if (page_align(ha_node_get_data(node)) == page) {
/* Remove the hash node */
......@@ -273,7 +274,7 @@ ha_remove_all_nodes_to_page(
node = ha_chain_get_first(table, fold);
while (node) {
ut_a(buf_frame_align(ha_node_get_data(node)) != page);
ut_a(page_align(ha_node_get_data(node)) != page);
node = ha_chain_get_next(node);
}
......
......@@ -2366,7 +2366,7 @@ ibuf_get_volume_buffered(
rec = btr_pcur_get_rec(pcur);
page = buf_frame_align(rec);
page = page_align(rec);
if (page_rec_is_supremum(rec)) {
rec = page_rec_get_prev(rec);
......@@ -2739,7 +2739,7 @@ ibuf_insert_low(
thr, &mtr);
if (err == DB_SUCCESS) {
/* Update the page max trx id field */
page_update_max_trx_id(buf_frame_align(ins_rec), NULL,
page_update_max_trx_id(page_align(ins_rec), NULL,
thr_get_trx(thr)->id);
}
} else {
......@@ -2760,7 +2760,7 @@ ibuf_insert_low(
thr, &mtr);
if (err == DB_SUCCESS) {
/* Update the page max trx id field */
page_update_max_trx_id(buf_frame_align(ins_rec), NULL,
page_update_max_trx_id(page_align(ins_rec), NULL,
thr_get_trx(thr)->id);
}
......@@ -3332,13 +3332,14 @@ ibuf_merge_or_delete_for_page(
insertion is finished! */
dict_index_t* dummy_index;
dulint max_trx_id = page_get_max_trx_id(
buf_frame_align(ibuf_rec));
page_align(ibuf_rec));
page_update_max_trx_id(page, page_zip, max_trx_id);
entry = ibuf_build_entry_from_ibuf_rec(
ibuf_rec, heap, &dummy_index);
#ifdef UNIV_IBUF_DEBUG
volume += rec_get_converted_size(dummy_index, entry)
volume += rec_get_converted_size(dummy_index, entry,
NULL, 0)
+ page_dir_calc_reserved_space(1);
ut_a(volume <= 4 * UNIV_PAGE_SIZE
/ IBUF_PAGE_SIZE_PER_FREE_SPACE);
......
......@@ -239,7 +239,7 @@ btr_node_ptr_get_child_page_no(
"InnoDB: a nonsensical page number 0"
" in a node ptr record at offset %lu\n",
(ulong) page_offset(rec));
buf_page_print(buf_frame_align(rec), 0);
buf_page_print(page_align(rec), 0);
}
return(page_no);
......
......@@ -52,7 +52,7 @@ btr_cur_get_page(
/* out: pointer to page */
btr_cur_t* cursor) /* in: tree cursor */
{
return(buf_frame_align(page_cur_get_rec(&(cursor->page_cur))));
return(page_align(page_cur_get_rec(&(cursor->page_cur))));
}
/*************************************************************
......
......@@ -296,7 +296,7 @@ btr_pcur_move_to_last_on_page(
UT_NOT_USED(mtr);
ut_ad(cursor->latch_mode != BTR_NO_LATCHES);
page_cur_set_after_last(buf_frame_align(btr_pcur_get_rec(cursor)),
page_cur_set_after_last(page_align(btr_pcur_get_rec(cursor)),
btr_pcur_get_page_cur(cursor));
cursor->old_stored = BTR_PCUR_OLD_NOT_STORED;
......
......@@ -492,14 +492,6 @@ buf_frame_get_lock_mutex(
/* out: mutex */
byte* ptr); /* in: pointer to within a buffer frame */
/***********************************************************************
Gets the frame the pointer is pointing to. */
UNIV_INLINE
buf_frame_t*
buf_frame_align(
/*============*/
/* out: pointer to frame */
byte* ptr); /* in: pointer to a frame */
/***********************************************************************
Checks if a pointer points to the block array of the buffer pool (blocks, not
the frames). */
UNIV_INLINE
......
......@@ -251,43 +251,6 @@ buf_block_align(
return(block);
}
/***********************************************************************
Gets the frame the pointer is pointing to. */
UNIV_INLINE
buf_frame_t*
buf_frame_align(
/*============*/
/* out: pointer to frame */
byte* ptr) /* in: pointer to a frame */
{
buf_frame_t* frame;
ut_ad(ptr);
frame = ut_align_down(ptr, UNIV_PAGE_SIZE);
if (UNIV_UNLIKELY((ulint)frame < (ulint)(buf_pool->frame_zero))
|| UNIV_UNLIKELY((ulint)frame >= (ulint)(buf_pool->high_end))) {
ut_print_timestamp(stderr);
fprintf(stderr,
"InnoDB: Error: trying to access a stray pointer %p\n"
"InnoDB: buf pool start is at %p, end at %p\n"
"InnoDB: Probable reason is database corruption"
" or memory\n"
"InnoDB: corruption. If this happens in an"
" InnoDB database recovery, see\n"
"InnoDB: http://dev.mysql.com/doc/refman/5.1/en/"
"forcing-recovery.html\n"
"InnoDB: how to force recovery.\n",
ptr, buf_pool->frame_zero,
buf_pool->high_end);
ut_error;
}
return(frame);
}
/**************************************************************************
Gets the page number of a pointer pointing within a buffer frame containing
a file page. */
......@@ -331,7 +294,7 @@ buf_ptr_get_fsp_addr(
*space = buf_block_get_space(block);
addr->page = buf_block_get_page_no(block);
addr->boffset = ptr - buf_frame_align(ptr);
addr->boffset = ut_align_offset(ptr, UNIV_PAGE_SIZE);
}
/**************************************************************************
......
......@@ -20,7 +20,7 @@ page_cur_get_page(
{
ut_ad(cur);
return(buf_frame_align(cur->rec));
return(page_align(cur->rec));
}
/*************************************************************
......
......@@ -76,8 +76,8 @@ trx_undo_rec_copy(
ulint len;
trx_undo_rec_t* rec_copy;
len = mach_read_from_2(undo_rec) + buf_frame_align(undo_rec)
- undo_rec;
len = mach_read_from_2(undo_rec)
- ut_align_offset(undo_rec, UNIV_PAGE_SIZE);
rec_copy = mem_heap_alloc(heap, len);
ut_memcpy(rec_copy, undo_rec, len);
......
......@@ -236,7 +236,7 @@ trx_undo_page_get_prev_rec(
page_t* undo_page;
ulint start;
undo_page = buf_frame_align(rec);
undo_page = ut_align_down(rec, UNIV_PAGE_SIZE);
start = trx_undo_page_get_start(undo_page, page_no, offset);
......@@ -264,7 +264,7 @@ trx_undo_page_get_next_rec(
ulint end;
ulint next;
undo_page = buf_frame_align(rec);
undo_page = ut_align_down(rec, UNIV_PAGE_SIZE);
end = trx_undo_page_get_end(undo_page, page_no, offset);
......
......@@ -566,7 +566,7 @@ lock_sec_rec_cons_read_sees(
return(FALSE);
}
max_trx_id = page_get_max_trx_id(buf_frame_align(rec));
max_trx_id = page_get_max_trx_id(page_align(rec));
if (ut_dulint_cmp(max_trx_id, view->up_limit_id) >= 0) {
......@@ -1675,7 +1675,7 @@ lock_sec_rec_some_has_impl_off_kernel(
ut_ad(page_rec_is_user_rec(rec));
ut_ad(rec_offs_validate(rec, index, offsets));
page = buf_frame_align(rec);
page = page_align(rec);
/* Some transaction may have an implicit x-lock on the record only
if the max trx id for the page >= min trx id for the trx list, or
......@@ -1767,7 +1767,7 @@ lock_rec_create(
ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
page = buf_frame_align(rec);
page = page_align(rec);
space = buf_frame_get_space_id(page);
page_no = buf_frame_get_page_no(page);
......@@ -2787,7 +2787,7 @@ lock_move_rec_list_end(
ulint heap_no;
ulint type_mode;
ut_ad(page_is_comp(page) == page_is_comp(new_page));
ut_ad(page == buf_frame_align(rec));
ut_ad(page == page_align(rec));
lock_mutex_enter_kernel();
......@@ -2893,7 +2893,7 @@ lock_move_rec_list_start(
lock = lock_rec_get_first_on_page(page);
ut_ad(page_is_comp(page) == page_is_comp(new_page));
ut_ad(page == buf_frame_align(rec));
ut_ad(page == page_align(rec));
while (lock != NULL) {
......@@ -3108,7 +3108,7 @@ lock_update_merge_left(
lock_mutex_enter_kernel();
comp = page_is_comp(left_page);
ut_ad(comp == page_is_comp(right_page));
ut_ad(left_page == buf_frame_align(orig_pred));
ut_ad(left_page == page_align(orig_pred));
left_next_rec = page_rec_get_next(orig_pred);
left_supremum = page_get_supremum_rec(left_page);
......@@ -3256,7 +3256,7 @@ lock_rec_store_on_page_infimum(
on the infimum record of the same page; lock
bits are reset on the record */
{
ut_ad(page == buf_frame_align(rec));
ut_ad(page == page_align(rec));
lock_mutex_enter_kernel();
......@@ -5240,7 +5240,7 @@ lock_sec_rec_read_check_and_lock(
if the max trx id for the page >= min trx id for the trx list or a
database recovery is running. */
if (((ut_dulint_cmp(page_get_max_trx_id(buf_frame_align(rec)),
if (((ut_dulint_cmp(page_get_max_trx_id(page_align(rec)),
trx_list_get_min_trx_id()) >= 0)
|| recv_recovery_is_on())
&& !page_rec_is_supremum(rec)) {
......
......@@ -1595,10 +1595,8 @@ recv_apply_log_recs_for_backup(void)
}
/* We simulate a page read made by the buffer pool, to
make sure the recovery apparatus works ok, for
example, the buf_frame_align() function. We must init
the block corresponding to buf_pool->frame_zero
(== page). */
make sure the recovery apparatus works ok. We must init
the block. */
buf_page_init_for_backup_restore(
recv_addr->space, recv_addr->page_no,
......
......@@ -316,7 +316,7 @@ mlog_write_dulint(
log_ptr = mlog_write_initial_log_record_fast(ptr, MLOG_8BYTES,
log_ptr, mtr);
mach_write_to_2(log_ptr, ptr - buf_frame_align(ptr));
mach_write_to_2(log_ptr, page_offset(ptr));
log_ptr += 2;
log_ptr += mach_dulint_write_compressed(log_ptr, val);
......
......@@ -251,8 +251,7 @@ page_cur_search_with_match(
|| mode == PAGE_CUR_G || mode == PAGE_CUR_GE);
#endif /* UNIV_DEBUG */
#ifdef UNIV_ZIP_DEBUG
page_zip_des_t* page_zip
= buf_block_get_page_zip(buf_block_align(page));
page_zip_des_t* page_zip = buf_frame_get_page_zip(page);
ut_a(!page_zip || page_zip_validate(page_zip, page));
#endif /* UNIV_ZIP_DEBUG */
......@@ -538,7 +537,7 @@ page_cur_insert_rec_write_log(
ulint i;
ut_a(rec_size < UNIV_PAGE_SIZE);
ut_ad(buf_frame_align(insert_rec) == buf_frame_align(cursor_rec));
ut_ad(page_align(insert_rec) == page_align(cursor_rec));
ut_ad(!page_rec_is_comp(insert_rec)
== !dict_table_is_comp(index->table));
......
......@@ -81,7 +81,7 @@ page_dir_find_owner_slot(
ut_ad(page_rec_check(rec));
page = buf_frame_align(rec);
page = page_align(rec);
first_slot = page_dir_get_nth_slot(page, 0);
slot = page_dir_get_nth_slot(page, page_dir_get_n_slots(page) - 1);
......@@ -1453,7 +1453,7 @@ page_rec_get_n_recs_before(
ut_ad(page_rec_check(rec));
page = buf_frame_align(rec);
page = page_align(rec);
if (page_is_comp(page)) {
while (rec_get_n_owned_new(rec) == 0) {
......
......@@ -2930,7 +2930,7 @@ page_zip_write_node_ptr(
{
byte* field;
byte* storage;
page_t* page = buf_frame_align(rec);
page_t* page = page_align(rec);
ut_ad(buf_frame_get_page_zip(rec) == page_zip);
ut_ad(page_simple_validate_new(page));
......
......@@ -1342,11 +1342,9 @@ row_ins_check_foreign_constraint(
/* Scan index records and check if there is a matching record */
for (;;) {
page_t* page;
rec = btr_pcur_get_rec(&pcur);
page = buf_frame_align(rec);
if (rec == page_get_infimum_rec(page)) {
if (page_rec_is_infimum(rec)) {
goto next_rec;
}
......@@ -1354,7 +1352,7 @@ row_ins_check_foreign_constraint(
offsets = rec_get_offsets(rec, check_index,
offsets, ULINT_UNDEFINED, &heap);
if (rec == page_get_supremum_rec(page)) {
if (page_rec_is_supremum(rec)) {
err = row_ins_set_shared_rec_lock(
LOCK_ORDINARY, rec, check_index, offsets, thr);
......@@ -1694,7 +1692,7 @@ row_ins_scan_sec_index_for_duplicate(
for (;;) {
rec = btr_pcur_get_rec(&pcur);
if (rec == page_get_infimum_rec(buf_frame_align(rec))) {
if (page_rec_is_infimum(rec)) {
goto next_rec;
}
......
......@@ -448,7 +448,7 @@ row_purge_upd_exist_or_extern(
+ offset + internal_offset;
#ifdef UNIV_SYNC_DEBUG
buf_page_dbg_add_level(buf_frame_align(data_field),
buf_page_dbg_add_level(page_align(data_field),
SYNC_TRX_UNDO_PAGE);
#endif /* UNIV_SYNC_DEBUG */
ut_a(ufield->new_val.len >= BTR_EXTERN_FIELD_REF_SIZE);
......
......@@ -3709,7 +3709,7 @@ row_search_for_mysql(
fputs("Using ", stderr);
dict_index_name_print(stderr, index);
fprintf(stderr, " cnt %lu ; Page no %lu\n", cnt,
buf_frame_get_page_no(buf_frame_align(rec)));
buf_frame_get_page_no(page_align(rec)));
rec_print(rec);
*/
#endif /* UNIV_SEARCH_DEBUG */
......@@ -3777,7 +3777,7 @@ row_search_for_mysql(
wrong_offs:
if (srv_force_recovery == 0 || moves_up == FALSE) {
ut_print_timestamp(stderr);
buf_page_print(buf_frame_align(rec), 0);
buf_page_print(page_align(rec), 0);
fprintf(stderr,
"\nInnoDB: rec address %p, first"
" buffer frame %p\n"
......
......@@ -789,7 +789,7 @@ trx_purge_choose_next_log(void)
purge_sys->purge_undo_no = trx_undo_rec_get_undo_no(rec);
purge_sys->page_no = buf_frame_get_page_no(rec);
purge_sys->offset = rec - buf_frame_align(rec);
purge_sys->offset = page_offset(rec);
}
mtr_commit(&mtr);
......@@ -897,7 +897,7 @@ trx_purge_get_next_rec(
rec = undo_page + offset;
} else {
page = buf_frame_align(rec2);
page = page_align(rec2);
purge_sys->purge_undo_no = trx_undo_rec_get_undo_no(rec2);
purge_sys->page_no = buf_frame_get_page_no(page);
......
......@@ -832,7 +832,7 @@ trx_roll_pop_top_rec(
undo->empty = TRUE;
} else {
prev_rec_page = buf_frame_align(prev_rec);
prev_rec_page = page_align(prev_rec);
if (prev_rec_page != undo_page) {
......
......@@ -142,7 +142,7 @@ trx_undo_get_prev_rec_from_prev_page(
page_t* prev_page;
page_t* undo_page;
undo_page = buf_frame_align(rec);
undo_page = page_align(rec);
prev_page_no = flst_get_prev_addr(undo_page + TRX_UNDO_PAGE_HDR
+ TRX_UNDO_PAGE_NODE, mtr)
......@@ -261,7 +261,7 @@ trx_undo_get_next_rec(
return(next_rec);
}
return(trx_undo_get_next_rec_from_next_page(buf_frame_align(rec),
return(trx_undo_get_next_rec_from_next_page(page_align(rec),
page_no, offset,
RW_S_LATCH, mtr));
}
......@@ -1117,7 +1117,7 @@ trx_undo_truncate_start(
return;
}
undo_page = buf_frame_align(rec);
undo_page = page_align(rec);
last_rec = trx_undo_page_get_last_rec(undo_page, hdr_page_no,
hdr_offset);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment