anamendes23 / relation_manager

A relation manager is part of a full DBMS and is the core of the system.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

5300-Instructor

Instructor's DB Relation Manager project for CPSC5300/4300 at Seattle U, Spring 2022

Usage (argument is database directory):

$ ./sql5300 ~/cpsc5300/data

Tags

  • Milestone1 is playing around with the AST returned by the HyLine parser and general setup of the command loop.
  • Milestone2h has the intructor-provided files for Milestone2. (Note that heap_storage.cpp is just a stub.)
  • Milestone2 is the instructor's attempt to complete the Milestone 2 assignment.
  • Milestone3_prep has the instructor-provided files for Milestone 3. The students' work is in SQLExec.cpp labeled with FIXME.
  • Milestone4_prep has the instructor-provided files for Milestone 4. The students' work is in SQLExec.cpp labeled with FIXME.
  • Milestone4 has the instructor's attempt to complete both the Milestone 3 and Milestone 4 assignments.
  • Milestone5_prep has the instructor-provided files for Milestone5.
  • Milestone6_prep has the instructor-provided files for Milestone6.

Unit Tests

There are some tests for SlottedPage and HeapTable. They can be invoked from the SQL prompt:

SQL> test

Be aware that failed tests may leave garbage Berkeley DB files lingering in your data directory. If you don't care about any data in there, you are advised to just delete them all after a failed test.

$ rm -f data/*

Valgrind (Linux)

To run valgrind (files must be compiled with -ggdb):

$ valgrind --leak-check=full --suppressions=valgrind.supp ./sql5300 data

Note that we've added suppression for the known issues with the Berkeley DB library vis-à-vis valgrind.

About

A relation manager is part of a full DBMS and is the core of the system.

License:MIT License


Languages

Language:C++ 98.7%Language:Makefile 1.1%Language:C 0.2%