A relational database management system (RDBMS) in Python.
You should not actually use this, you should use sqlite instead! But if you want to try it,
- make sure poetry and Python >= 3.7 is installed.
- Run
poetry install
to install - Run
poetry run vgdb
to launch a command line REPL (orpoetry shell
and thenvgdb
) - Run
poetry run vgdb-bench
to run a benchmark ofINSERT
andSELECT
performance compared to sqlite (warning: vgdb is crushed)
-
REPL
-
Storage: Some storage scheme. Stores each table in a separate file.
-
Redundancy: Persist on write.
-
Data Types:
TEXT
andINT
for now. -
Schemas Compulsory singular primary keys, unique and foreign key constraints, indexes.
-
Transactions
-
Query Engine: Query execution engine.
-
Query Language: Support for SQL statements:
CREATE TABLE
withTEXT
andINT
, no indexINSERT
SELECT
withWHERE
,ORDER BY
andLIMIT
(withOFFSET
)
-
Query Parser: Hand-written lexer and parser.