MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mtr0log.cc File Reference
#include "mtr0log.h"
#include "buf0buf.h"
#include "dict0dict.h"
#include "log0recv.h"
#include "page0page.h"
#include "dict0boot.h"
Include dependency graph for mtr0log.cc:

Go to the source code of this file.

Functions

UNIV_INTERN void mlog_catenate_string (mtr_t *mtr, const byte *str, ulint len)
UNIV_INTERN void mlog_write_initial_log_record (const byte *ptr, byte type, 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 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 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 log routines

Created 12/7/1995 Heikki Tuuri

Definition in file mtr0log.cc.

Function Documentation

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

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_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.

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_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.

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
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
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 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
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 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_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.

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.

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

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: