计64 范轩玮、计64刘佳阳
在IndexModule下的相关文件是本阶段工作的新增模块,包括B+树的实现以及管理索引的类IndexHandle。
引入GitHub上B+树的开源模块,其包括了B+树的核心功能,在其基础上实现对索引的相关操作。包括:
- 根据Column创建索引
- 根据Column删除索引
- 插入Record时,对于存在索引的行,在对应的索引文件里插入记录节点。
- 删除Record时,对于存在索引的行,在对应的索引文件里移除记录节点。
- 开启索引文件,建立B+树。
- 程序结束时,将B+树从内存写回文件。
目前尚未实现的功能包括给定条件查询返回相应的记录,现在我们仅支持打印全部记录以及顺序遍历,基于索引的查找待实现。
修改并补完了记录模块缺失的一些功能,例如显示全部记录、更新记录等,并新增了一些在索引模块中需要的接口。相关修改文件在RecordModule下。
以CMake取代原先的MakeFile作为编译工具,并借此重构了项目结构使其更为明晰,得到了更好的跨平台支持。编译方式同一般CMake方法,示例如下(以下操作基于库目录):
mkdir build
cd build
cmake ..
make
./main
当前代码中,当database目录下不存在相应的索引文件或数据库文件时不会动态创建文件,导致错误。我在本机上的丑陋调试方法是先手动建立好相应的文件,显然这不太合适,计划尽早修复。
本功能在此阶段并未调试完成,尽快修复。
- 原先应该在下个阶段完成的任务
- 修复上述问题
- 开始集成SQL语句解析器,期望支持使用SQL语句调试而非硬编码。