MySQL 5.6.14 Source Code Document
|
#include "page0cur.h"
#include "page0zip.h"
#include "btr0btr.h"
#include "mtr0log.h"
#include "log0recv.h"
#include "ut0ut.h"
#include "rem0cmp.h"
Go to the source code of this file.
UNIV_INTERN void page_copy_rec_list_end_to_created_page | ( | page_t * | new_page, |
rec_t * | rec, | ||
dict_index_t * | index, | ||
mtr_t * | mtr | ||
) |
Copies records from page to a newly created page, from a given record onward, including that record. Infimum and supremum records are not copied.
IMPORTANT: The caller will have to update IBUF_BITMAP_FREE if this is a compressed leaf page in a secondary index. This has to be done either within the same mini-transaction, or by invoking ibuf_reset_free_bits() before mtr_commit().
new_page | in/out: index page to copy to |
rec | in: first record to copy |
index | in: record descriptor |
mtr | in: mtr |
Definition at line 1715 of file page0cur.cc.
UNIV_INLINE byte* page_copy_rec_list_to_created_page_write_log | ( | page_t * | page, |
dict_index_t * | index, | ||
mtr_t * | mtr | ||
) |
Writes a log record of copying a record list end to a new created page.
page | in: index page |
index | in: record descriptor |
mtr | in: mtr |
Definition at line 1626 of file page0cur.cc.
UNIV_INTERN void page_cur_delete_rec | ( | page_cur_t * | cursor, |
const dict_index_t * | index, | ||
const ulint * | offsets, | ||
mtr_t * | mtr | ||
) |
Deletes a record at the page cursor. The cursor is moved to the next record after the deleted one.
cursor | in/out: a page cursor |
index | in: record descriptor |
offsets | in: rec_get_offsets( cursor->rec, index) |
mtr | in: mini-transaction handle |
Definition at line 1974 of file page0cur.cc.
UNIV_INLINE void page_cur_delete_rec_write_log | ( | rec_t * | rec, |
const dict_index_t * | index, | ||
mtr_t * | mtr | ||
) |
Writes log record of a record delete on a page.
rec | in: record to be deleted |
index | in: record descriptor |
mtr | in: mini-transaction handle |
Definition at line 1890 of file page0cur.cc.
UNIV_INTERN rec_t* page_cur_insert_rec_low | ( | rec_t * | current_rec, |
dict_index_t * | index, | ||
const rec_t * | rec, | ||
ulint * | offsets, | ||
mtr_t * | mtr | ||
) |
Inserts a record next to page cursor on an uncompressed page. Returns pointer to inserted record if succeed, i.e., enough space available, NULL otherwise. The cursor stays at the same position.
< the relevant page
< cursor position at previous insert
< a free record that was reused, or NULL
< inserted record
< heap number of the inserted record
current_rec | in: pointer to current record after which the new record is inserted |
index | in: record descriptor |
rec | in: pointer to a physical record |
offsets | in/out: rec_get_offsets(rec, index) |
mtr | in: mini-transaction handle, or NULL |
Definition at line 953 of file page0cur.cc.
UNIV_INTERN rec_t* page_cur_insert_rec_zip | ( | page_cur_t * | cursor, |
dict_index_t * | index, | ||
const rec_t * | rec, | ||
ulint * | offsets, | ||
mtr_t * | mtr | ||
) |
Inserts a record next to page cursor on a compressed and uncompressed page. Returns pointer to inserted record if succeed, i.e., enough space available, NULL otherwise. The cursor stays at the same position.
IMPORTANT: The caller will have to update IBUF_BITMAP_FREE if this is a compressed leaf page in a secondary index. This has to be done either within the same mini-transaction, or by invoking ibuf_reset_free_bits() before mtr_commit().
< the relevant page
< cursor position at previous insert
< a free record that was reused, or NULL
< inserted record
< heap number of the inserted record
cursor | in/out: page cursor |
index | in: record descriptor |
rec | in: pointer to a physical record |
offsets | in/out: rec_get_offsets(rec, index) |
mtr | in: mini-transaction handle, or NULL |
Definition at line 1177 of file page0cur.cc.
UNIV_INTERN void page_cur_open_on_rnd_user_rec | ( | buf_block_t * | block, |
page_cur_t * | cursor | ||
) |
Positions a page cursor on a randomly chosen user record on a page. If there are no user records, sets the cursor on the infimum record.
block | in: page |
cursor | out: page cursor |
Definition at line 547 of file page0cur.cc.
UNIV_INTERN byte* page_cur_parse_delete_rec | ( | byte * | ptr, |
byte * | end_ptr, | ||
buf_block_t * | block, | ||
dict_index_t * | index, | ||
mtr_t * | mtr | ||
) |
Parses log record of a record delete on a page.
ptr | in: buffer |
end_ptr | in: buffer end |
block | in: page or NULL |
index | in: record descriptor |
mtr | in: mtr or NULL |
Definition at line 1925 of file page0cur.cc.
UNIV_INTERN byte* page_cur_parse_insert_rec | ( | ibool | is_short, |
byte * | ptr, | ||
byte * | end_ptr, | ||
buf_block_t * | block, | ||
dict_index_t * | index, | ||
mtr_t * | mtr | ||
) |
Parses a log record of a record insert on a page.
is_short | in: TRUE if short inserts |
ptr | in: buffer |
end_ptr | in: buffer end |
block | in: page or NULL |
index | in: record descriptor |
mtr | in: mtr or NULL |
Definition at line 759 of file page0cur.cc.
UNIV_INTERN void page_cur_search_with_match | ( | const buf_block_t * | block, |
const dict_index_t * | index, | ||
const dtuple_t * | tuple, | ||
ulint | mode, | ||
ulint * | iup_matched_fields, | ||
ulint * | iup_matched_bytes, | ||
ulint * | ilow_matched_fields, | ||
ulint * | ilow_matched_bytes, | ||
page_cur_t * | cursor | ||
) |
Searches the right position for a page cursor.
block | in: buffer block |
index | in: record descriptor |
tuple | in: data tuple |
mode | in: PAGE_CUR_L, PAGE_CUR_LE, PAGE_CUR_G, or PAGE_CUR_GE |
iup_matched_fields | in/out: already matched fields in upper limit record |
iup_matched_bytes | in/out: already matched bytes in a field not yet completely matched |
ilow_matched_fields | in/out: already matched fields in lower limit record |
ilow_matched_bytes | in/out: already matched bytes in a field not yet completely matched |
cursor | out: page cursor |
Definition at line 248 of file page0cur.cc.
UNIV_INTERN byte* page_parse_copy_rec_list_to_created_page | ( | byte * | ptr, |
byte * | end_ptr, | ||
buf_block_t * | block, | ||
dict_index_t * | index, | ||
mtr_t * | mtr | ||
) |
Parses a log record of copying a record list end to a new created page.
ptr | in: buffer |
end_ptr | in: buffer end |
block | in: page or NULL |
index | in: record descriptor |
mtr | in: mtr or NULL |
Definition at line 1653 of file page0cur.cc.