MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
载入中...
搜索中...
未找到
Public 成员函数 | 静态 Public 成员函数 | Protected 属性 | 所有成员列表
CLogRecord类 参考

表示一条日志记录 更多...

#include <clog.h>

Public 成员函数

 CLogRecord ()=default
 默认构造函数。 更多...
 
CLogType log_type () const
 
int32_t trx_id () const
 
int32_t logrec_len () const
 
CLogRecordHeaderheader ()
 
CLogRecordCommitDatacommit_record ()
 
CLogRecordDatadata_record ()
 
const CLogRecordHeaderheader () const
 
const CLogRecordCommitDatacommit_record () const
 
const CLogRecordDatadata_record () const
 
std::string to_string () const
 

静态 Public 成员函数

static CLogRecordbuild_mtr_record (CLogType type, int32_t trx_id)
 创建一个事务相关的日志对象 更多...
 
static CLogRecordbuild_commit_record (int32_t trx_id, int32_t commit_xid)
 创建一个表示提交事务的日志对象 更多...
 
static CLogRecordbuild_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 CLogRecordbuild (const CLogRecordHeader &header, char *data)
 根据二进制数据创建日志对象 更多...
 

Protected 属性

CLogRecordHeader header_
 日志头信息
 
CLogRecordData data_record_
 如果日志操作的是数据,此结构生效
 
CLogRecordCommitData commit_record_
 如果是事务提交日志,此结构生效
 

详细描述

表示一条日志记录

一条日志记录由一个日志头和具体的数据构成。 具体的数据根据日志类型不同,也是不同的类型。

构造及析构函数说明

◆ CLogRecord()

CLogRecord::CLogRecord ( )
default

默认构造函数。

通常不需要直接调用这个函数来创建一条日志,而是调用 build_xxx创建对象。

成员函数说明

◆ build()

CLogRecord * CLogRecord::build ( const CLogRecordHeader header,
char *  data 
)
static

根据二进制数据创建日志对象

通常是从日志文件中读取数据,然后调用此函数创建日志对象

参数
header日志头信息
data读取的剩余数据信息,长度是header.logrec_len_

当前日志拥有数据,但是不是COMMIT,就认为是普通的修改数据的日志,简单粗暴

◆ build_commit_record()

CLogRecord * CLogRecord::build_commit_record ( int32_t  trx_id,
int32_t  commit_xid 
)
static

创建一个表示提交事务的日志对象

参数
trx_id事务编号
commit_xid事务提交时使用的编号

◆ build_data_record()

CLogRecord * 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

创建一个表示数据操作的日志对象

参数
type类型
trx_id事务编号
table_id操作的表
rid操作的哪条记录
data_len数据的长度
data_offset偏移量,参考 CLogRecordData::data_offset_
data具体的数据

◆ build_mtr_record()

CLogRecord * CLogRecord::build_mtr_record ( CLogType  type,
int32_t  trx_id 
)
static

创建一个事务相关的日志对象

除了MTR_COMMIT的日志(请参考 build_commit_record)。

参数
type日志类型
trx_id事务编号

该类的文档由以下文件生成: