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

管理整个文件中记录的增删改查 更多...

#include <record_manager.h>

Public 成员函数

 RecordFileHandler (StorageFormat storage_format)
 
RC init (DiskBufferPool &buffer_pool, LogHandler &log_handler, TableMeta *table_meta)
 初始化 更多...
 
void close ()
 关闭,做一些资源清理的工作
 
RC delete_record (const RID *rid)
 从指定文件中删除指定槽位的记录 更多...
 
RC insert_record (const char *data, int record_size, RID *rid)
 插入一个新的记录到指定文件中,并返回该记录的标识符 更多...
 
RC recover_insert_record (const char *data, int record_size, const RID &rid)
 数据库恢复时,在指定文件指定位置插入数据 更多...
 
RC get_record (const RID &rid, Record &record)
 
RC visit_record (const RID &rid, function< bool(Record &)> updater)
 

Private 成员函数

RC init_free_pages ()
 初始化当前没有填满记录的页面,初始化free_pages_成员
 

Private 属性

DiskBufferPooldisk_buffer_pool_ = nullptr
 
LogHandlerlog_handler_ = nullptr
 记录日志的处理器
 
unordered_set< PageNum > free_pages_
 没有填充满的页面集合
 
common::Mutex lock_
 当编译时增加-DCONCURRENCY=ON 选项时,才会真正的支持并发
 
StorageFormat storage_format_
 
TableMetatable_meta_
 

详细描述

管理整个文件中记录的增删改查

整个文件的组织格式请参考该文件中最前面的注释

成员函数说明

◆ delete_record()

RC RecordFileHandler::delete_record ( const RID rid)

从指定文件中删除指定槽位的记录

参数
rid待删除记录的标识符

◆ init()

RC RecordFileHandler::init ( DiskBufferPool buffer_pool,
LogHandler log_handler,
TableMeta table_meta 
)

初始化

参数
buffer_pool当前操作的是哪个文件

◆ insert_record()

RC RecordFileHandler::insert_record ( const char *  data,
int  record_size,
RID rid 
)

插入一个新的记录到指定文件中,并返回该记录的标识符

参数
data纪录内容
record_size记录大小
rid返回该记录的标识符

◆ recover_insert_record()

RC RecordFileHandler::recover_insert_record ( const char *  data,
int  record_size,
const RID rid 
)

数据库恢复时,在指定文件指定位置插入数据

参数
data记录内容
record_size记录大小
rid要插入记录的指定标识符

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