Instructor's DB Relation Manager project for CPSC5300/4300 at Seattle U, Spring 2022
Usage (argument is database directory):
$ ./sql5300 ~/cpsc5300/data
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 inSQLExec.cpp
labeled withFIXME
.Milestone4_prep
has the instructor-provided files for Milestone 4. The students' work is inSQLExec.cpp
labeled withFIXME
.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.
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/*
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.