Skip to content
This repository was archived by the owner on Jun 4, 2024. It is now read-only.

Repository files navigation

vgdb

Code style: black lint_test_build codecov

A relational database management system (RDBMS) in Python.

demo

Inspiration

Instructions

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 (or poetry shell and then vgdb)
  • Run poetry run vgdb-bench to run a benchmark of INSERT and SELECT performance compared to sqlite (warning: vgdb is crushed)

Project Outline

  • REPL

  • Storage: Some storage scheme. Stores each table in a separate file.

  • Redundancy: Persist on write.

  • Data Types: TEXT and INT 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 with TEXT and INT, no index
    • INSERT
    • SELECT with WHERE, ORDER BY and LIMIT (with OFFSET)
  • Query Parser: Hand-written lexer and parser.

About

a SQL database management system in Python

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages