MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mtr0log.h File Reference
#include "univ.i"
#include "mtr0mtr.h"
#include "dict0types.h"
#include "mtr0log.ic"
Include dependency graph for mtr0log.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define MLOG_BUF_MARGIN   256

Functions

UNIV_INTERN void mlog_write_ulint (byte *ptr, ulint val, byte type, mtr_t *mtr)
UNIV_INTERN void mlog_write_ull (byte *ptr, ib_uint64_t val, mtr_t *mtr)
UNIV_INTERN void mlog_write_string (byte *ptr, const byte *str, ulint len, mtr_t *mtr)
UNIV_INTERN void mlog_log_string (byte *ptr, ulint len, mtr_t *mtr)
UNIV_INTERN void mlog_write_initial_log_record (const byte *ptr, byte type, mtr_t *mtr)
UNIV_INLINE byte * mlog_write_initial_log_record_for_file_op (ulint type, ulint space_id, ulint page_no, byte *log_ptr, mtr_t *mtr)
UNIV_INLINE void mlog_catenate_ulint (mtr_t *mtr, ulint val, ulint type)
UNIV_INTERN void mlog_catenate_string (mtr_t *mtr, const byte *str, ulint len)
UNIV_INLINE void mlog_catenate_ulint_compressed (mtr_t *mtr, ulint val)
UNIV_INLINE void mlog_catenate_ull_compressed (mtr_t *mtr, ib_uint64_t val)
UNIV_INLINE byte * mlog_open (mtr_t *mtr, ulint size)
UNIV_INLINE void mlog_close (mtr_t *mtr, byte *ptr)
UNIV_INLINE byte * mlog_write_initial_log_record_fast (const byte *ptr, byte type, byte *log_ptr, mtr_t *mtr)
UNIV_INTERN byte * mlog_parse_initial_log_record (byte *ptr, byte *end_ptr, byte *type, ulint *space, ulint *page_no)
UNIV_INTERN byte * mlog_parse_nbytes (ulint type, byte *ptr, byte *end_ptr, byte *page, void *page_zip)
UNIV_INTERN byte * mlog_parse_string (byte *ptr, byte *end_ptr, byte *page, void *page_zip)
UNIV_INTERN byte * mlog_open_and_write_index (mtr_t *mtr, const byte *rec, const dict_index_t *index, byte type, ulint size)
UNIV_INTERN byte * mlog_parse_index (byte *ptr, const byte *end_ptr, ibool comp, dict_index_t **index)

Detailed Description

Mini-transaction logging routines

Created 12/7/1995 Heikki Tuuri

Definition in file mtr0log.h.

Function Documentation

UNIV_INTERN void mlog_catenate_string ( mtr_t mtr,
const byte *  str,
ulint  len 
)

Catenates n bytes to the mtr log. in: string length

Catenates n bytes to the mtr log.

Parameters
mtrin: mtr
strin: string to write
lenin: string length

Definition at line 44 of file mtr0log.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INLINE void mlog_catenate_ulint ( mtr_t mtr,
ulint  val,
ulint  type 
)

Catenates 1 - 4 bytes to the mtr log. in: MLOG_1BYTE, MLOG_2BYTES, MLOG_4BYTES

Parameters
mtrin: mtr
valin: value to write
UNIV_INLINE void mlog_catenate_ulint_compressed ( mtr_t mtr,
ulint  val 
)

Catenates a compressed ulint to mlog. in: value to write

Parameters
mtrin: mtr

Here is the caller graph for this function:

UNIV_INLINE void mlog_catenate_ull_compressed ( mtr_t mtr,
ib_uint64_t  val 
)

Catenates a compressed 64-bit integer to mlog. in: value to write

Parameters
mtrin: mtr
UNIV_INLINE void mlog_close ( mtr_t mtr,
byte *  ptr 
)

Closes a buffer opened to mlog. in: buffer space from ptr up was not used

Parameters
mtrin: mtr

Here is the caller graph for this function:

UNIV_INTERN void mlog_log_string ( byte *  ptr,
ulint  len,
mtr_t mtr 
)

Logs a write of a string to a file page buffered in the buffer pool. Writes the corresponding log record to the mini-transaction log. in: mini-transaction handle

Logs a write of a string to a file page buffered in the buffer pool. Writes the corresponding log record to the mini-transaction log.

Parameters
ptrin: pointer written to
lenin: string length
mtrin: mini-transaction handle

Definition at line 346 of file mtr0log.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INLINE byte* mlog_open ( mtr_t mtr,
ulint  size 
)

Opens a buffer to mlog. It must be closed with mlog_close.

Returns
buffer, NULL if log mode MTR_LOG_NONE in: buffer size in bytes; MUST be smaller than DYN_ARRAY_DATA_SIZE!
Parameters
mtrin: mtr

Here is the caller graph for this function:

UNIV_INTERN byte* mlog_open_and_write_index ( mtr_t mtr,
const byte *  rec,
const dict_index_t index,
byte  type,
ulint  size 
)

Opens a buffer for mlog, writes the initial log record and, if needed, the field lengths of an index. Reserves space for further log entries. The log entry must be closed with mtr_close().

Returns
buffer, NULL if log mode MTR_LOG_NONE in: requested buffer size in bytes (if 0, calls mlog_close() and returns NULL)

Opens a buffer for mlog, writes the initial log record and, if needed, the field lengths of an index.

Returns
buffer, NULL if log mode MTR_LOG_NONE
Parameters
mtrin: mtr
recin: index record or page
indexin: record descriptor
typein: log item type
sizein: requested buffer size in bytes (if 0, calls mlog_close() and returns NULL)

Definition at line 436 of file mtr0log.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INTERN byte* mlog_parse_index ( byte *  ptr,
const byte *  end_ptr,
ibool  comp,
dict_index_t **  index 
)

Parses a log record written by mlog_open_and_write_index.

Returns
parsed record end, NULL if not a complete record out, own: dummy index

Parses a log record written by mlog_open_and_write_index.

Returns
parsed record end, NULL if not a complete record
Parameters
ptrin: buffer
end_ptrin: buffer end
compin: TRUE=compact row format
indexout, own: dummy index

Definition at line 534 of file mtr0log.cc.

Here is the call graph for this function:

UNIV_INTERN byte* mlog_parse_initial_log_record ( byte *  ptr,
byte *  end_ptr,
byte *  type,
ulint *  space,
ulint *  page_no 
)

Parses an initial log record written by mlog_write_initial_log_record.

Returns
parsed record end, NULL if not a complete record out: page number

Parses an initial log record written by mlog_write_initial_log_record.

Returns
parsed record end, NULL if not a complete record
Parameters
ptrin: buffer
end_ptrin: buffer end
typeout: log record type: MLOG_1BYTE, ...
spaceout: space id
page_noout: page number

Definition at line 100 of file mtr0log.cc.

Here is the call graph for this function:

UNIV_INTERN byte* mlog_parse_nbytes ( ulint  type,
byte *  ptr,
byte *  end_ptr,
byte *  page,
void *  page_zip 
)

Parses a log record written by mlog_write_ulint or mlog_write_ull.

Returns
parsed record end, NULL if not a complete record in/out: compressed page, or NULL

Parses a log record written by mlog_write_ulint or mlog_write_ull.

Returns
parsed record end, NULL if not a complete record or a corrupt record
Parameters
typein: log record type: MLOG_1BYTE, ...
ptrin: buffer
end_ptrin: buffer end
pagein: page where to apply the log record, or NULL
page_zipin/out: compressed page, or NULL

Definition at line 140 of file mtr0log.cc.

Here is the call graph for this function:

UNIV_INTERN byte* mlog_parse_string ( byte *  ptr,
byte *  end_ptr,
byte *  page,
void *  page_zip 
)

Parses a log record written by mlog_write_string.

Returns
parsed record end, NULL if not a complete record in/out: compressed page, or NULL

Parses a log record written by mlog_write_string.

Returns
parsed record end, NULL if not a complete record
Parameters
ptrin: buffer
end_ptrin: buffer end
pagein: page where to apply the log record, or NULL
page_zipin/out: compressed page, or NULL

Definition at line 384 of file mtr0log.cc.

Here is the call graph for this function:

UNIV_INTERN void mlog_write_initial_log_record ( const byte *  ptr,
byte  type,
mtr_t mtr 
)

Writes initial part of a log record consisting of one-byte item type and four-byte space and page numbers. in: mini-transaction handle

Writes the initial part of a log record consisting of one-byte item type and four-byte space and page numbers. Also pushes info to the mtr memo that a buffer page has been modified.

Parameters
ptrin: pointer to (inside) a buffer frame holding the file page where modification is made
typein: log item type: MLOG_1BYTE, ...
mtrin: mini-transaction handle

Definition at line 68 of file mtr0log.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INLINE byte* mlog_write_initial_log_record_fast ( const byte *  ptr,
byte  type,
byte *  log_ptr,
mtr_t mtr 
)

Writes the initial part of a log record (3..11 bytes). If the implementation of this function is changed, all size parameters to mlog_open() should be adjusted accordingly!

Returns
new value of log_ptr in: mtr
Parameters
ptrin: pointer to (inside) a buffer frame holding the file page where modification is made
typein: log item type: MLOG_1BYTE, ...
log_ptrin: pointer to mtr log which has been opened

Here is the caller graph for this function:

UNIV_INLINE byte* mlog_write_initial_log_record_for_file_op ( ulint  type,
ulint  space_id,
ulint  page_no,
byte *  log_ptr,
mtr_t mtr 
)

Writes a log record about an .ibd file create/delete/rename.

Returns
new value of log_ptr in: mtr
Parameters
typein: MLOG_FILE_CREATE, MLOG_FILE_DELETE, or MLOG_FILE_RENAME
space_idin: space id, if applicable
page_noin: page number (not relevant currently)
log_ptrin: pointer to mtr log which has been opened
UNIV_INTERN void mlog_write_string ( byte *  ptr,
const byte *  str,
ulint  len,
mtr_t mtr 
)

Writes a string to a file page buffered in the buffer pool. Writes the corresponding log record to the mini-transaction log. in: mini-transaction handle

Writes a string to a file page buffered in the buffer pool. Writes the corresponding log record to the mini-transaction log.

Parameters
ptrin: pointer where to write
strin: string to write
lenin: string length
mtrin: mini-transaction handle

Definition at line 326 of file mtr0log.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INTERN void mlog_write_ulint ( byte *  ptr,
ulint  val,
byte  type,
mtr_t mtr 
)

Writes 1, 2 or 4 bytes to a file page. Writes the corresponding log record to the mini-transaction log if mtr is not NULL. in: mini-transaction handle

Writes 1, 2 or 4 bytes to a file page. Writes the corresponding log record to the mini-transaction log if mtr is not NULL.

Parameters
ptrin: pointer where to write
valin: value to write
typein: MLOG_1BYTE, MLOG_2BYTES, MLOG_4BYTES
mtrin: mini-transaction handle

Definition at line 247 of file mtr0log.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

UNIV_INTERN void mlog_write_ull ( byte *  ptr,
ib_uint64_t  val,
mtr_t mtr 
)

Writes 8 bytes to a file page. Writes the corresponding log record to the mini-transaction log, only if mtr is not NULL in: mini-transaction handle

Writes 8 bytes to a file page. Writes the corresponding log record to the mini-transaction log, only if mtr is not NULL

Parameters
ptrin: pointer where to write
valin: value to write
mtrin: mini-transaction handle

Definition at line 293 of file mtr0log.cc.

Here is the call graph for this function:

Here is the caller graph for this function: