Go implementation of SimpleDB from "Database Design and Implementation".
-
SELECT
,INSERT
,DELETE
,UPDATE
(Chapter 8)- multiple-row INSERT
- Join (Chapter 8)
- comma-separated join (ex.
SELECT * FROM A, B WHERE A.x = B.y
) -
JOIN
syntax (ex.SELECT * FROM A JOIN B ON A.x = B.y
) (Exercises 9.10) - index join algorithm (Section 12.6.2)
- hash join algorithm
- there is
HashJoinPlan
but no planner (Exercises 15.17)
- there is
- merge join algorithm
- there is
MergeJoinPlan
but no planner
- there is
- comma-separated join (ex.
- Sorting (Chapter 9)
- there is
SortPlan
but noORDER BY
grammar in parser (Exercises 13.15)
- there is
- Aggregation (Chapter 9)
- there is
GroupByPlan
but noGROUP BY
grammar in parser (Exercises 13.17)
- there is
- Schema (Chapter 6)
-
INT
type -
VARCHAR
type- fixed-length
- variable-length (Exercises 6.9)
-
NULL
(Exercises 6.13) -
CREATE TABLE
-
DROP TABLE
-
ALTER TABLE
-
- Transactions (Chapter 5)
-
COMMIT
,ROLLBACK
- recovery
- concurrency management
- serializable
- multiversion locking (Section 5.4.6)
- read uncommitted, read committed, repeatable read (Section 5.4.7)
-
- Indexes (Chapter 12)
-
CREATE INDEX
- B-Tree index
- Hash index (Section 12.3.2)
-
SELECT
with index -
CREATE TABLE
with index (Exercises 12.23) -
DROP INDEX
(Exercises 12.25)
-
- Views (Section 7.3)
- Client (Chapter 11)
- embedded client
- remote client (Section 11.3)