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
- Host: GitHub
- URL: https://github.com/dee-me-tree-or-love/chai_sql
- Owner: dee-me-tree-or-love
- License: mit
- Created: 2022-09-15T14:05:24.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-07-28T10:40:36.000Z (about 2 years ago)
- Last Synced: 2025-03-27T01:46:34.715Z (7 months ago)
- Topics: sql, type-checking, types
- Language: Haskell
- Homepage: https://dee-me-tree-or-love.github.io/chai_sql/
- Size: 944 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
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.