Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

213ae/MINISQL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

35 Commits

Repository files navigation

MiniSQL

本框架参考CMU-15445 BusTub框架进行改写,在保留了缓冲池、索引、记录模块的一些核心设计理念的基础上,做了一些修改和扩展,使之兼容于原MiniSQL实验指导的要求。 以下列出了改动/扩展较大的几个地方:

  • 对Disk Manager模块进行改动,扩展了位图页、磁盘文件元数据页用于支持持久化数据页分配回收状态;
  • 在Record Manager, Index Manager, Catalog Manager等模块中,通过对内存对象的序列化和反序列化来持久化数据;
  • 对Record Manager层的一些数据结构(RowFieldSchemaColumn等)和实现进行重构;
  • 对Catalog Manager层进行重构,支持持久化并为Executor层提供接口调用;
  • 扩展了Parser层,Parser层支持输出语法树供Executor层调用;

此外还涉及到很多零碎的改动,包括源代码中部分模块代码的调整,测试代码的修改,性能上的优化等,在此不做赘述。

注意:为了避免代码抄袭,请不要将自己的代码发布到任何公共平台中。

编译&开发环境

  • Apple clang version: 11.0+ (MacOS),使用gcc --versiong++ --version查看
  • gcc & g++ : 8.0+ (Linux),使用gcc --versiong++ --version查看
  • cmake: 3.20+ (Both),使用cmake --version查看
  • gdb: 7.0+ (Optional),使用gdb --version查看
  • flex & bison (暂时不需要安装,但如果需要对SQL编译器的语法进行修改,需要安装)
  • llvm-symbolizer (暂时不需要安装)

构建

Windows

目前该代码暂不支持在Windows平台上的编译。但在Win10及以上的系统中,可以通过安装WSL(Windows的Linux子系统)来进行 开发和构建。WSL请选择Ubuntu子系统(推荐Ubuntu20及以上)。如果你使用Clion作为IDE,可以在Clion中配置WSL从而进行调试,具体请参考 Clion with WSL

MacOS & Linux & WSL

基本构建命令

mkdir build
cd build
cmake ..
make -j

若不涉及到CMakeLists相关文件的变动且没有新增或删除.cpp代码(通俗来说,就是只是对现有代码做了修改) 则无需重新执行cmake..命令,直接执行make -j编译即可。

默认以debug模式进行编译,如果你需要使用release模式进行编译:

cmake -DCMAKE_BUILD_TYPE=Release ..

测试

在构建后,默认会在build/test目录下生成minisql_test的可执行文件,通过./minisql_test即可运行所有测试。

如果需要运行单个测试,例如,想要运行lru_replacer_test.cpp对应的测试文件,可以通过make lru_replacer_test 命令进行构建。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /