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

数据库存储引擎的入口 更多...

#include <default_handler.h>

Public 成员函数

RC init (const char *base_dir, const char *trx_kit_name, const char *log_handler_name, const char *storage_engine)
 初始化存储引擎 更多...
 
void destroy ()
 
RC create_db (const char *dbname)
 创建一个数据库 更多...
 
RC drop_db (const char *dbname)
 删除数据库 更多...
 
RC open_db (const char *dbname)
 打开一个数据库 更多...
 
RC close_db (const char *dbname)
 关闭指定数据库。 更多...
 
RC create_table (const char *dbname, const char *relation_name, span< const AttrInfoSqlNode > attributes)
 在指定的数据库下创建一个表 更多...
 
RC drop_table (const char *dbname, const char *relation_name)
 删除指定数据库下的表 更多...
 
Dbfind_db (const char *dbname) const
 
Tablefind_table (const char *dbname, const char *table_name) const
 
RC sync ()
 

Private 属性

filesystem::path base_dir_
 存储引擎的根目录
 
filesystem::path db_dir_
 数据库文件的根目录
 
string trx_kit_name_
 事务模型的名称
 
string log_handler_name_
 日志处理器的名称
 
map< string, Db * > opened_dbs_
 打开的数据库
 
string storage_engine_
 存储引擎的名称
 

详细描述

数据库存储引擎的入口

参考MySQL,可以抽象handler层,作为SQL层与存储层交互的接口。但是当前还不具备这个条件。

成员函数说明

◆ close_db()

RC DefaultHandler::close_db ( const char *  dbname)

关闭指定数据库。

该操作将关闭当前数据库中打开的所有文件,关闭文件操作将自动使所有相关的缓冲区页面更新到磁盘

◆ create_db()

RC DefaultHandler::create_db ( const char *  dbname)

创建一个数据库

在路径base_dir下创建一个名为dbname的空库,生成相应的系统文件。

参数
dbname数据库名称

◆ create_table()

RC DefaultHandler::create_table ( const char *  dbname,
const char *  relation_name,
span< const AttrInfoSqlNode attributes 
)

在指定的数据库下创建一个表

参数
dbname数据库名称
relation_name表名
attributes属性信息

◆ drop_db()

RC DefaultHandler::drop_db ( const char *  dbname)

删除数据库

当前并没有实现

参数
dbname数据库名称

◆ drop_table()

RC DefaultHandler::drop_table ( const char *  dbname,
const char *  relation_name 
)

删除指定数据库下的表

当前没有实现。需要删除表在内存中和磁盘中的所有资源,包括表的索引文件。

参数
dbname数据库名称
relation_name表名

◆ init()

RC DefaultHandler::init ( const char *  base_dir,
const char *  trx_kit_name,
const char *  log_handler_name,
const char *  storage_engine 
)

初始化存储引擎

参数
base_dir存储引擎的根目录。所有的数据库相关数据文件都放在这个目录下
trx_kit_name使用哪种类型的事务模型
log_handler_name使用哪种类型的日志处理器

◆ open_db()

RC DefaultHandler::open_db ( const char *  dbname)

打开一个数据库

参数
dbname数据库名称

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