A bare-bone SQL implementation.
include
folder contains header files of all modules. These header files are meant to be shared across modules.src
folder contains source files of modules. Each module is placed in a subfolder and targets a library, with its ownCMakeLists.txt
.app
folder contains source files of main executable.test
folder contains source files of tests.cmake
folder contains CMake config for building external packages.script
folder contains utility scripts.
- API
- Interpreter
- Catalog Manager
- Record Manager
- Index Manager
- Buffer Manager
To build the project, run the following commands:
cmake -B build
cd build && make
./app/app # executable
This project uses Catch2 as its testing framework. Target catch-test
will build
an executable for testing. After build (as described in the previous section), you can run the following command to
test:
./test/catch-test
- Catch2: A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD
- ANTLR4: ANother Tool for Language Recognition
- Tabulate: Table Maker for Modern C++
This project which serves as a coursework of Database System Principle fully belongs to the team MiniSQL2021.
GNU GPLv3.