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

遍历某个文件中所有记录 更多...

#include <heap_record_scanner.h>

类 HeapRecordScanner 继承关系图:
RecordScanner

Public 成员函数

 HeapRecordScanner (Table *table, DiskBufferPool &buffer_pool, Trx *trx, LogHandler &log_handler, ReadWriteMode mode, ConditionFilter *condition_filter)
 
RC open_scan () override
 打开一个文件扫描。 更多...
 
RC close_scan () override
 关闭一个文件扫描,释放相应的资源 更多...
 
RC next (Record &record) override
 获取下一条记录 更多...
 
virtual RC open_scan ()=0
 打开 RecordScanner 更多...
 
virtual RC close_scan ()=0
 关闭 RecordScanner,释放相应的资源 更多...
 
virtual RC next (Record &record)=0
 获取下一条记录 更多...
 

Private 成员函数

RC fetch_next_record ()
 获取该文件中的下一条记录 更多...
 
RC fetch_next_record_in_page ()
 获取一个页面内的下一条记录 更多...
 

Private 属性

Tabletable_ = nullptr
 当前遍历的是哪张表。这个字段仅供事务函数使用,如果设计合适,可以去掉
 
DiskBufferPooldisk_buffer_pool_ = nullptr
 当前访问的文件
 
Trxtrx_ = nullptr
 当前是哪个事务在遍历
 
LogHandlerlog_handler_ = nullptr
 
ReadWriteMode rw_mode_ = ReadWriteMode::READ_WRITE
 遍历出来的数据,是否可能对它做修改
 
BufferPoolIterator bp_iterator_
 遍历buffer pool的所有页面
 
ConditionFiltercondition_filter_ = nullptr
 过滤record
 
RecordPageHandlerrecord_page_handler_ = nullptr
 处理文件某页面的记录
 
RecordPageIterator record_page_iterator_
 遍历某个页面上的所有record
 
Record next_record_
 获取的记录放在这里缓存起来
 

详细描述

遍历某个文件中所有记录

遍历所有的页面,同时访问这些页面中所有的记录

成员函数说明

◆ close_scan()

RC HeapRecordScanner::close_scan ( )
overridevirtual

关闭一个文件扫描,释放相应的资源

实现了 RecordScanner.

◆ fetch_next_record()

RC HeapRecordScanner::fetch_next_record ( )
private

获取该文件中的下一条记录

从当前位置开始找到下一条有效的记录

如果当前页面还有记录没有访问,就遍历当前的页面。 当前页面遍历完了,就遍历下一个页面,然后找到有效的记录

◆ fetch_next_record_in_page()

RC HeapRecordScanner::fetch_next_record_in_page ( )
private

获取一个页面内的下一条记录

遍历当前页面,尝试找到一条有效的记录

◆ next()

RC HeapRecordScanner::next ( Record record)
overridevirtual

获取下一条记录

参数
record返回的下一条记录

实现了 RecordScanner.

◆ open_scan()

RC HeapRecordScanner::open_scan ( )
overridevirtual

打开一个文件扫描。

实现了 RecordScanner.


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