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

https://github.com/dee-me-tree-or-love/chai_sql

ChaiSQL - a prototype optional type checker for raw SQL ☕️ 🫖 @ TU/e Database Research Group
https://github.com/dee-me-tree-or-love/chai_sql

sql type-checking types

Last synced: 4 days ago
JSON representation

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

Awesome Lists containing this project

README

          

# ChaiSQL

Internship project adding an optional type system to SQL.

> :building_construction: ChaiSQL is under heavy development.

## Examples

```sql title="ChaiSQL example"
-- @chaisql:check

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

-- @chaisql:newtype PersonView = DbView {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:

- [`./docs`](./docs/) directory
- on the [MkDocs](https://www.mkdocs.org/)-powered website:
[ChaiSQL Documentation](https://dee-me-tree-or-love.github.io/chai_sql/).

## 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.

> :bulb: These packages are aimed to provide same functionality and are
> used to validate the implementation options.

### Python implementation: [`./packages/chai_sql_py/`](./packages/chai_sql_py/)

> :snake:
> Python implementation aims to benefit all Python features and make the
> ChaiSQL tool easily extensible.

### Haskell implementation: [`./packages/chai_sql_hs/`](./packages/chai_sql_hs/)

> :beetle:
> Haskell implementation focuses on the Haskell's type system and powerful
> functional features.