MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
|
表示一条日志记录 更多...
#include <clog.h>
Public 成员函数 | |
CLogRecord ()=default | |
默认构造函数。 更多... | |
CLogType | log_type () const |
int32_t | trx_id () const |
int32_t | logrec_len () const |
CLogRecordHeader & | header () |
CLogRecordCommitData & | commit_record () |
CLogRecordData & | data_record () |
const CLogRecordHeader & | header () const |
const CLogRecordCommitData & | commit_record () const |
const CLogRecordData & | data_record () const |
std::string | to_string () const |
静态 Public 成员函数 | |
static CLogRecord * | build_mtr_record (CLogType type, int32_t trx_id) |
创建一个事务相关的日志对象 更多... | |
static CLogRecord * | build_commit_record (int32_t trx_id, int32_t commit_xid) |
创建一个表示提交事务的日志对象 更多... | |
static CLogRecord * | build_data_record (CLogType type, int32_t trx_id, int32_t table_id, const RID &rid, int32_t data_len, int32_t data_offset, const char *data) |
创建一个表示数据操作的日志对象 更多... | |
static CLogRecord * | build (const CLogRecordHeader &header, char *data) |
根据二进制数据创建日志对象 更多... | |
Protected 属性 | |
CLogRecordHeader | header_ |
日志头信息 | |
CLogRecordData | data_record_ |
如果日志操作的是数据,此结构生效 | |
CLogRecordCommitData | commit_record_ |
如果是事务提交日志,此结构生效 | |
表示一条日志记录
一条日志记录由一个日志头和具体的数据构成。 具体的数据根据日志类型不同,也是不同的类型。
|
default |
默认构造函数。
通常不需要直接调用这个函数来创建一条日志,而是调用 build_xxx
创建对象。
|
static |
根据二进制数据创建日志对象
通常是从日志文件中读取数据,然后调用此函数创建日志对象
header | 日志头信息 |
data | 读取的剩余数据信息,长度是header.logrec_len_ |
当前日志拥有数据,但是不是COMMIT,就认为是普通的修改数据的日志,简单粗暴
|
static |
创建一个表示提交事务的日志对象
trx_id | 事务编号 |
commit_xid | 事务提交时使用的编号 |
|
static |
创建一个表示数据操作的日志对象
type | 类型 |
trx_id | 事务编号 |
table_id | 操作的表 |
rid | 操作的哪条记录 |
data_len | 数据的长度 |
data_offset | 偏移量,参考 CLogRecordData::data_offset_ |
data | 具体的数据 |
|
static |
创建一个事务相关的日志对象
除了MTR_COMMIT的日志(请参考 build_commit_record)。
type | 日志类型 |
trx_id | 事务编号 |