17#include "storage/table/table_meta.h"
18#include "storage/table/table_engine.h"
19#include "common/types.h"
20#include "common/lang/span.h"
21#include "common/lang/functional.h"
59 RC
create(
Db *db, int32_t table_id,
const char *path,
const char *name,
const char *base_dir,
60 span<const AttrInfoSqlNode> attributes, StorageFormat storage_format, StorageEngine storage_engine);
67 RC
open(
Db *db,
const char *meta_file,
const char *base_dir);
84 RC delete_record(
const Record &record);
85 RC get_record(
const RID &rid,
Record &record);
88 RC create_index(
Trx *trx,
const FieldMeta *field_meta,
const char *index_name);
90 RC get_record_scanner(
RecordScanner *&scanner,
Trx *trx, ReadWriteMode mode);
104 int32_t table_id()
const {
return table_meta_.table_id(); }
105 const char *name()
const;
107 Db *db()
const {
return db_; }
114 RC set_value_to_record(
char *record_data,
const Value &value,
const FieldMeta *field);
120 Index *find_index(
const char *index_name)
const;
121 Index *find_index_by_field(
const char *field_name)
const;
129 unique_ptr<TableEngine> engine_ =
nullptr;
遍历某个文件中所有记录,每次返回一个 Chunk
Definition: record_manager.h:425
Definition: condition_filter.h:31
一个DB实例负责管理一批表
Definition: db.h:46
Definition: condition_filter.h:44
BufferPool的实现
Definition: disk_buffer_pool.h:189
table engine
Definition: heap_table_engine.h:23
索引扫描器
Definition: index.h:104
索引基类
Definition: index.h:38
管理整个文件中记录的增删改查
Definition: record_manager.h:358
遍历某个表中所有记录
Definition: record_scanner.h:21
表示一个记录
Definition: record.h:101
table engine
Definition: table_engine.h:35
RC visit_record(const RID &rid, function< bool(Record &)> visitor)
可以在页面锁保护的情况下访问记录
Definition: table.cpp:183
RC make_record(int value_num, const Value *values, Record &record)
根据给定的字段生成一个记录/行
Definition: table.cpp:197
RC create(Db *db, int32_t table_id, const char *path, const char *name, const char *base_dir, span< const AttrInfoSqlNode > attributes, StorageFormat storage_format, StorageEngine storage_engine)
Definition: table.cpp:42
RC insert_record(Record &record)
在当前的表中插入一条记录
Definition: table.cpp:178
RC open(Db *db, const char *meta_file, const char *base_dir)
Definition: table.cpp:131
事务接口
Definition: trx.h:141
属性的值
Definition: value.h:30
标识一个记录的位置 一个记录是放在某个文件的某个页面的某个槽位。这里不记录文件信息,记录页面和槽位信息
Definition: record.h:35