summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2017-12-19 14:37:48 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2017-12-19 14:42:34 +0200
commitccb3550221497e7e652883b79e4a01451a55c4d7 (patch)
tree36aab7aa017e7954ef825464d9499b2cb37d6e9b
parent3464b670257e954cd6ee88c95da7b4a217d0ea82 (diff)
downloadmariadb-git-ccb3550221497e7e652883b79e4a01451a55c4d7.tar.gz
Replace MLOG_UNDO_INIT with MLOG_2BYTES, MLOG_4BYTES
-rw-r--r--storage/innobase/include/mtr0types.h3
-rw-r--r--storage/innobase/include/trx0undo.h10
-rw-r--r--storage/innobase/log/log0recv.cc7
-rw-r--r--storage/innobase/trx/trx0undo.cc63
4 files changed, 11 insertions, 72 deletions
diff --git a/storage/innobase/include/mtr0types.h b/storage/innobase/include/mtr0types.h
index ac24812cdfc..7bf162e90a9 100644
--- a/storage/innobase/include/mtr0types.h
+++ b/storage/innobase/include/mtr0types.h
@@ -106,9 +106,6 @@ enum mlog_id_t {
/** erase an undo log page end */
MLOG_UNDO_ERASE_END = 21,
- /** initialize a page in an undo log */
- MLOG_UNDO_INIT = 22,
-
/** create an undo log header */
MLOG_UNDO_HDR_CREATE = 25,
diff --git a/storage/innobase/include/trx0undo.h b/storage/innobase/include/trx0undo.h
index 51f8035d886..b51484a61cb 100644
--- a/storage/innobase/include/trx0undo.h
+++ b/storage/innobase/include/trx0undo.h
@@ -315,16 +315,6 @@ bool
trx_undo_truncate_tablespace(
undo::Truncate* undo_trunc);
-/***********************************************************//**
-Parses the redo log entry of an undo log page initialization.
-@return end of log record or NULL */
-byte*
-trx_undo_parse_page_init(
-/*=====================*/
- const byte* ptr, /*!< in: buffer */
- const byte* end_ptr,/*!< in: buffer end */
- page_t* page, /*!< in: page or NULL */
- mtr_t* mtr); /*!< in: mtr or NULL */
/** Parse the redo log entry of an undo log page header create.
@param[in] ptr redo log record
@param[in] end_ptr end of log buffer
diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc
index 1097dafb9b6..63edfdd63e8 100644
--- a/storage/innobase/log/log0recv.cc
+++ b/storage/innobase/log/log0recv.cc
@@ -1402,10 +1402,6 @@ parse_log:
ut_ad(!page || page_type == FIL_PAGE_UNDO_LOG);
ptr = trx_undo_parse_erase_page_end(ptr, end_ptr, page, mtr);
break;
- case MLOG_UNDO_INIT:
- /* Allow anything in page_type when creating a page. */
- ptr = trx_undo_parse_page_init(ptr, end_ptr, page, mtr);
- break;
case MLOG_UNDO_HDR_CREATE:
ut_ad(!page || page_type == FIL_PAGE_UNDO_LOG);
ptr = trx_undo_parse_page_header(ptr, end_ptr, page, mtr);
@@ -3636,9 +3632,6 @@ get_mlog_string(mlog_id_t type)
case MLOG_UNDO_ERASE_END:
return("MLOG_UNDO_ERASE_END");
- case MLOG_UNDO_INIT:
- return("MLOG_UNDO_INIT");
-
case MLOG_UNDO_HDR_CREATE:
return("MLOG_UNDO_HDR_CREATE");
diff --git a/storage/innobase/trx/trx0undo.cc b/storage/innobase/trx/trx0undo.cc
index 6dcdf4c51a6..1340d19aee8 100644
--- a/storage/innobase/trx/trx0undo.cc
+++ b/storage/innobase/trx/trx0undo.cc
@@ -309,47 +309,6 @@ trx_undo_get_first_rec(
/*============== UNDO LOG FILE COPY CREATION AND FREEING ==================*/
-/**********************************************************************//**
-Writes the mtr log entry of an undo log page initialization. */
-UNIV_INLINE
-void
-trx_undo_page_init_log(
-/*===================*/
- page_t* undo_page, /*!< in: undo log page */
- mtr_t* mtr) /*!< in: mtr */
-{
- mlog_write_initial_log_record(undo_page, MLOG_UNDO_INIT, mtr);
-
- mlog_catenate_ulint_compressed(mtr, 0);
-}
-
-/***********************************************************//**
-Parses the redo log entry of an undo log page initialization.
-@return end of log record or NULL */
-byte*
-trx_undo_parse_page_init(
-/*=====================*/
- const byte* ptr, /*!< in: buffer */
- const byte* end_ptr,/*!< in: buffer end */
- page_t* page, /*!< in: page or NULL */
- mtr_t* mtr) /*!< in: mtr or NULL */
-{
- if (mach_parse_compressed(&ptr, end_ptr)) {
- recv_sys->found_corrupt_log = true;
- }
-
- if (ptr == NULL) {
-
- return(NULL);
- }
-
- if (page) {
- trx_undo_page_init(page, mtr);
- }
-
- return(const_cast<byte*>(ptr));
-}
-
/********************************************************************//**
Initializes the fields in an undo log segment page. */
static
@@ -361,18 +320,18 @@ trx_undo_page_init(
{
trx_upagef_t* page_hdr;
- page_hdr = undo_page + TRX_UNDO_PAGE_HDR;
+ mlog_write_ulint(undo_page + FIL_PAGE_TYPE,
+ FIL_PAGE_UNDO_LOG, MLOG_2BYTES, mtr);
+ compile_time_assert(TRX_UNDO_PAGE_TYPE == 0);
+ compile_time_assert(TRX_UNDO_PAGE_START == 2);
+ compile_time_assert(TRX_UNDO_PAGE_NODE == TRX_UNDO_PAGE_FREE + 2);
- *reinterpret_cast<uint16*>(page_hdr + TRX_UNDO_PAGE_TYPE) = 0;
-
- mach_write_to_2(page_hdr + TRX_UNDO_PAGE_START,
- TRX_UNDO_PAGE_HDR + TRX_UNDO_PAGE_HDR_SIZE);
- mach_write_to_2(page_hdr + TRX_UNDO_PAGE_FREE,
- TRX_UNDO_PAGE_HDR + TRX_UNDO_PAGE_HDR_SIZE);
-
- fil_page_set_type(undo_page, FIL_PAGE_UNDO_LOG);
-
- trx_undo_page_init_log(undo_page, mtr);
+ page_hdr = undo_page + TRX_UNDO_PAGE_HDR;
+ mlog_write_ulint(page_hdr, TRX_UNDO_PAGE_HDR + TRX_UNDO_PAGE_HDR_SIZE,
+ MLOG_4BYTES, mtr);
+ mlog_write_ulint(page_hdr + TRX_UNDO_PAGE_FREE,
+ TRX_UNDO_PAGE_HDR + TRX_UNDO_PAGE_HDR_SIZE,
+ MLOG_2BYTES, mtr);
}
/***************************************************************//**