Skip to content

ChaiSQL - a prototype optional type checker for raw SQL ☕️ 🫖 @ TU/e Database Research Group

License

Notifications You must be signed in to change notification settings

dee-me-tree-or-love/chai_sql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChaiSQL

Internship project adding an optional type system to SQL.

🏗️ ChaiSQL is under heavy development.

Examples

-- @chaisql:check

-- @chaisql:newtype Name = String
-- @chaisql:newtype Age = Number

-- @chaisql:newtype PersonView = DbView <bag> {name: Name, age: Age}

-- @chaisql:returns PersonView
SELECT
    -- @chaisql:returns Name
    p.name,
    -- @chaisql:returns Age
    p.age
FROM people AS p;

Documentation

Information about ChaiSQL is available in:

Installation

Coming soon!

Supported features

Coming soon!

Development

The implementation of ChaiSQL is currently in progress and is at an early stage.

The solutions may change and different experimental implementations (all WIP) are mentioned below.

💡 These packages are aimed to provide same functionality and are used to validate the implementation options.

Python implementation: ./packages/chai_sql_py/

🐍 Python implementation aims to benefit all Python features and make the ChaiSQL tool easily extensible.

Haskell implementation: ./packages/chai_sql_hs/

🪲 Haskell implementation focuses on the Haskell's type system and powerful functional features.

About

ChaiSQL - a prototype optional type checker for raw SQL ☕️ 🫖 @ TU/e Database Research Group

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published