20#include "common/sys/rc.h"
21#include "storage/field/field_meta.h"
22#include "storage/index/index_meta.h"
23#include "storage/record/record_manager.h"
41 virtual ~Index() =
default;
43 virtual RC create(
Table *table,
const char *file_name,
const IndexMeta &index_meta,
const FieldMeta &field_meta)
45 return RC::UNSUPPORTED;
49 return RC::UNSUPPORTED;
52 virtual bool is_vector_index() {
return false; }
83 int right_len,
bool right_inclusive) = 0;
114 virtual RC destroy() = 0;
索引扫描器
Definition: index.h:104
virtual RC next_entry(RID *rid)=0
索引基类
Definition: index.h:38
virtual RC sync()=0
同步索引数据到磁盘
virtual IndexScanner * create_scanner(const char *left_key, int left_len, bool left_inclusive, const char *right_key, int right_len, bool right_inclusive)=0
创建一个索引数据的扫描器
virtual RC delete_entry(const char *record, const RID *rid)=0
删除一条数据
virtual RC insert_entry(const char *record, const RID *rid)=0
插入一条数据
FieldMeta field_meta_
当前实现仅考虑一个字段的索引
Definition: index.h:96
IndexMeta index_meta_
索引的元数据
Definition: index.h:95
标识一个记录的位置 一个记录是放在某个文件的某个页面的某个槽位。这里不记录文件信息,记录页面和槽位信息
Definition: record.h:35