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

一个DB实例负责管理一批表 更多...

#include <db.h>

Public 成员函数

RC init (const char *name, const char *dbpath)
 初始化一个数据库实例 更多...
 
RC create_table (const char *table_name, int attribute_count, const AttrInfoSqlNode *attributes)
 
Tablefind_table (const char *table_name) const
 
Tablefind_table (int32_t table_id) const
 
const char * name () const
 
void all_tables (std::vector< std::string > &table_names) const
 
RC sync ()
 
RC recover ()
 
CLogManagerclog_manager ()
 

Private 成员函数

RC open_all_tables ()
 

Private 属性

std::string name_
 
std::string path_
 
std::unordered_map< std::string, Table * > opened_tables_
 
std::unique_ptr< CLogManagerclog_manager_
 
int32_t next_table_id_ = 0
 给每个table都分配一个ID,用来记录日志。这里假设所有的DDL都不会并发操作,所以相关的数据都不上锁
 

详细描述

一个DB实例负责管理一批表

当前DB的存储模式很简单,一个DB对应一个目录,所有的表和数据都放置在这个目录下。 启动时,从指定的目录下加载所有的表和元数据。

成员函数说明

◆ init()

RC Db::init ( const char *  name,
const char *  dbpath 
)

初始化一个数据库实例

从指定的目录下加载指定名称的数据库。这里就会加载dbpath目录下的数据。

参数
name数据库名称
dbpath当前数据库放在哪个目录下
注解
数据库不是放在dbpath/name下,是直接使用dbpath目录

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