MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
|
数据库存储引擎的入口 更多...
#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) |
删除指定数据库下的表 更多... | |
Db * | find_db (const char *dbname) const |
Table * | find_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层与存储层交互的接口。但是当前还不具备这个条件。
RC DefaultHandler::close_db | ( | const char * | dbname | ) |
关闭指定数据库。
该操作将关闭当前数据库中打开的所有文件,关闭文件操作将自动使所有相关的缓冲区页面更新到磁盘
RC DefaultHandler::create_db | ( | const char * | dbname | ) |
创建一个数据库
在路径base_dir下创建一个名为dbname的空库,生成相应的系统文件。
dbname | 数据库名称 |
RC DefaultHandler::create_table | ( | const char * | dbname, |
const char * | relation_name, | ||
span< const AttrInfoSqlNode > | attributes | ||
) |
在指定的数据库下创建一个表
dbname | 数据库名称 |
relation_name | 表名 |
attributes | 属性信息 |
RC DefaultHandler::drop_db | ( | const char * | dbname | ) |
删除数据库
当前并没有实现
dbname | 数据库名称 |
RC DefaultHandler::drop_table | ( | const char * | dbname, |
const char * | relation_name | ||
) |
删除指定数据库下的表
当前没有实现。需要删除表在内存中和磁盘中的所有资源,包括表的索引文件。
dbname | 数据库名称 |
relation_name | 表名 |
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 | 使用哪种类型的日志处理器 |
RC DefaultHandler::open_db | ( | const char * | dbname | ) |
打开一个数据库
dbname | 数据库名称 |