https://github.com/jacoby6000/sqlz
Pure Functional SQL generation.
https://github.com/jacoby6000/sqlz
scala sql sql-builder sql-dsl
Last synced: about 1 month ago
JSON representation
Pure Functional SQL generation.
- Host: GitHub
- URL: https://github.com/jacoby6000/sqlz
- Owner: Jacoby6000
- License: mit
- Created: 2016-02-02T14:23:55.000Z (over 9 years ago)
- Default Branch: series/0.4.x
- Last Pushed: 2018-10-05T17:43:06.000Z (over 6 years ago)
- Last Synced: 2025-04-18T18:33:15.723Z (about 1 month ago)
- Topics: scala, sql, sql-builder, sql-dsl
- Language: Scala
- Homepage:
- Size: 1.32 MB
- Stars: 40
- Watchers: 5
- Forks: 4
- Open Issues: 6
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# Abandoned
I am no longer working on this. Master is currently very broken, and probably does not have good architecture. It is a partial implementation of SQL using tagless algebras...
I am giving up, because the way to correctly do this would be with a mutually recursive AST. I had implemented this in an old version of dotty (see the dotty branch) where it _appeared_ to work, but there were some issues when evaluating the recursive parts of the algebra for the paramorphism. Also, I should've been using `histoM` instead of `paraM` looking back... Anyway, it doesn't matter. Scala doesn't support GADTs and what I had working with Dotty no longer compiles for reasons I don't understand (though, admittedly, I didn't try that hard).
This should be correctly doable using tagless algebras as well, however I am not really a fan of that approach for this particular problem. Modelling SQL using a mutually recursive AST felt right... Tagless doesn't. That's just my opinion though. Feel free to pick this up if you want.
------------------
[](https://maven-badges.herokuapp.com/maven-central/com.github.jacoby6000/scoobie-core_2.12)
[](https://gitter.im/Jacoby6000/Scala-SQL-AST?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[](https://travis-ci.org/Jacoby6000/scoobie)
[](https://codecov.io/gh/Jacoby6000/scoobie)