|
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 | 事务编号 |