Skip to content

MiniSQL2021/minisql

Repository files navigation

MiniSQL

A bare-bone SQL implementation.

Project Structure

  • 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 own CMakeLists.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.

Modules

  • API
  • Interpreter
  • Catalog Manager
  • Record Manager
  • Index Manager
  • Buffer Manager

Build

To build the project, run the following commands:

cmake -B build
cd build && make
./app/app  # executable

Unit Test

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

Dependencies

  • 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++

Declaration

This project which serves as a coursework of Database System Principle fully belongs to the team MiniSQL2021.

Contributors

License

GNU GPLv3.

About

A bare-bone SQL implementation

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •  

Languages