|
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 | 数据库名称 |