MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
|
IndexNode 仅作为数据在内存或磁盘中的表示IndexNodeHandler 负责对IndexNode做各种操作。 作为一个类来说,虚函数会影响“结构体”真实的内存布局,所以将数据存储与操作分开 更多...
#include <bplus_tree.h>
Public 成员函数 | |
IndexNodeHandler (BplusTreeMiniTransaction &mtr, const IndexFileHeader &header, Frame *frame) | |
void | init_empty (bool leaf) |
初始化一个新的页面 更多... | |
bool | is_leaf () const |
是否叶子节点 | |
virtual int | key_size () const |
存储的键值大小 | |
virtual int | value_size () const |
存储的值的大小。内部节点和叶子节点是不一样的,但是这里返回的是叶子节点存储的大小 更多... | |
virtual int | item_size () const |
存储的键值对的大小。值是指叶子节点中存放的数据 更多... | |
void | increase_size (int n) |
int | size () const |
int | max_size () const |
int | min_size () const |
RC | set_parent_page_num (PageNum page_num) |
PageNum | parent_page_num () const |
PageNum | page_num () const |
bool | is_safe (BplusTreeOperationType op, bool is_root_node) |
判断对指定的操作,是否安全的 更多... | |
bool | validate () const |
验证当前节点是否有问题 | |
Frame * | frame () const |
RC | recover_insert_items (int index, const char *items, int num) |
RC | recover_remove_items (int index, int num) |
Protected 成员函数 | |
virtual char * | __item_at (int index) const |
获取指定元素的开始内存位置 更多... | |
char * | __key_at (int index) const |
char * | __value_at (int index) const |
Protected 属性 | |
BplusTreeMiniTransaction & | mtr_ |
const IndexFileHeader & | header_ |
Frame * | frame_ = nullptr |
IndexNode * | node_ = nullptr |
友元 | |
string | to_string (const IndexNodeHandler &handler) |
IndexNode 仅作为数据在内存或磁盘中的表示
IndexNodeHandler 负责对IndexNode做各种操作。 作为一个类来说,虚函数会影响“结构体”真实的内存布局,所以将数据存储与操作分开
|
inlineprotectedvirtual |
获取指定元素的开始内存位置
被 LeafIndexNodeHandler , 以及 InternalIndexNodeHandler 重载.
void IndexNodeHandler::init_empty | ( | bool | leaf | ) |
初始化一个新的页面
leaf | 是否叶子节点 |
bool IndexNodeHandler::is_safe | ( | BplusTreeOperationType | op, |
bool | is_root_node | ||
) |
判断对指定的操作,是否安全的
安全是指在操作执行后,节点不需要调整,比如分裂、合并或重新分配
op | 将要执行的操作 |
is_root_node | 是否根节点 |
检查一个节点经过插入或删除操作后是否需要分裂或合并操作
|
virtual |
存储的键值对的大小。值是指叶子节点中存放的数据
被 InternalIndexNodeHandler 重载.
|
virtual |
存储的值的大小。内部节点和叶子节点是不一样的,但是这里返回的是叶子节点存储的大小
被 InternalIndexNodeHandler 重载.