Hi folks!
We’re happy to announce the release of Rel8 1.6 ! Rel8 is a Haskell library for interacting with PostgreSQL databases, built on top of the fantastic Opaleye library.
The main objectives of Rel8 are:
- Conciseness: Users using Rel8 should not need to write boiler-plate code. By using expressive types, we can provide sufficient information for the compiler to infer code whenever possible.
- Inferrable: Despite using a lot of type level magic, Rel8 aims to have excellent and predictable type inference.
- Familiar: writing Rel8 queries should feel like normal Haskell programming.
If you encounter any issues please let us know.
Here’s the full changelog for this release:
Removed
- Remove
Table Expr b
constraint frommaterialize
. (#334)
Added
-
Support GHC-9.10. (#340)
-
Support hasql-1.8 (#345)
-
Add
aggregateJustTable
,aggregateJustTable
aggregator functions. These provide another way to do aggregation ofMaybeTable
s than the existingaggregateMaybeTable
function. (#333) -
Add
aggregateLeftTable
,aggregateLeftTable1
,aggregateRightTable
andaggregateRightTable1
aggregator functions. These provide another way to do aggregation ofEitherTable
s than the existingaggregateEitherTable
function. (#333) -
Add
aggregateThisTable
,aggregateThisTable1
,aggregateThatTable
,aggregateThatTable1
,aggregateThoseTable
,aggregateThoseTable1
,aggregateHereTable
,aggregateHereTable1
,aggregateThereTable
andaggregateThereTable1
aggregation functions. These provide another way to do aggregation ofTheseTable
s than the existingaggregateTheseTable
function. (#333) -
Add
rawFunction
,rawBinaryOperator
,rawAggregateFunction
,unsafeCoerceExpr
,unsafePrimExpr
,unsafeSubscript
,unsafeSubscripts
— these give more options for generating SQL expressions that Rel8 does not support natively. (#331) -
Expose
unsafeUnnullify
andunsafeUnnullifyTable
fromRel8
. (#343) -
Expose
listOf
andnonEmptyOf
. (#330) -
Add
NOINLINE
pragmas toGeneric
derived default methods ofRel8able
. This should speed up
compilation times. If users wish for these methods to beINLINE
d, they can override with a
pragma in their own code. (#346)