An open API service indexing awesome lists of open source software.

https://github.com/cappe987/dbms-hs

A small DBMS written in Haskell. Abandoned and incomplete project.
https://github.com/cappe987/dbms-hs

Last synced: 30 days ago
JSON representation

A small DBMS written in Haskell. Abandoned and incomplete project.

Awesome Lists containing this project

README

          

# DBMS
**This is an abandoned project, possibly forever.**

A small DBMS written in Haskell as a hobby project.
There are no plans to use this in any other real-world project.

# To-do

## Short term
- [X] Reorganize insert data to match schema
- [X] Implement schema checking and filling in NULL/default values.
- [X] Implement hash table
- [ ] Implement main db file for storing schemas.
- [X] Check if PK exists when inserting row.
- [X] Handle NULL values
- [ ] Maybe use a shared type (schema vs row) for the name/type of columns.
- [ ] Complete type refactoring.

## Long term
- [ ] Add rehashing to hashtables
- [ ] Escape characters
- [ ] Remove the limit of `INT32_MAX` on block amount
- [ ] Handle schemas with size larger than one block
- [ ] Rewrite DBMS.Storage modules to directly manipulate bytestrings. https://wiki.haskell.org/Performance/Strings
- [ ] Handle UTF-8. Use `Data.ByteString.Conversion`. Right now it only handles ASCII strings.
- [ ] Make hashtable schema independent of the schema encoder/decoders.
- [ ] Make EDSL for query language. Use a monad to accumulate the query
requirements and then execute it.
- [ ] Replace Maybe's with Either for displaying error messages.