DB Relation Manager project for CPSC5300/4300 at Seattle U, Spring 2020;
Jietao Zhan and Thomas Ficca
Functions for CREATE TABLE, DROP TABLE, SHOW TABLE and SHOW COLUMNS have been added, we need to resolve some compiler issues before we can complete testing.
Functions for CREATE INDEX, SHOW INDEX, and DROP INDEX have been added, Milestone 3 works perfectly now, unfortunately problems with CREATE INDEX kept us from fully testing Milestone 4
create table goober (x integer, y integer, z integer)
insert into goober (z,y,x) VALUES (9,8,7)
select * from goober
Implementation of B+ Tree Index -- just insert and lookup.
#Handover video for Milestone4 https://seattleu.instructuremedia.com/embed/f63a4267-6299-4ac7-be2c-9195aab7b987
Milestone1
is playing around with the AST returned by the HyLine parser and general setup of the command loop.Milestone2h
has the instructor-provided files for Milestone 2. (Note thatheap_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.Milestone4_prep
has the instructor-provided files for Milestone 4.Milestone6
implemented the b-tree index.
The students' work is in
SQLExec.cpp
labeled with FIXME
.
Program is started by ./sql5300 ../data
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.