Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,42 @@

<a id='changelog-1.7.0.0'></a>
# 1.7.0.0 — 2025-07-31

## Removed

- Removed support for `network-ip`. We still support `iproute`.

## Added

- Add support for prepared statements. To use prepared statements, simply use `prepare run` instead of `run` with a function that passes the parameters to your statement.

- Added new `Encoder` type with three members: `binary`, which is the Hasql binary encoder, `text` which encodes a type in PostgreSQL's text format (needed for nested arrays) and `quote`, which is the does the thing that the function we previously called `encode` does (i.e., `a -> Opaleye.PrimExpr`).

- Support hasql-1.9

- Add `elem` and `elem1` to `Rel8.Array` for testing if an element is contained in `[]` and `NonEmpty` `Expr`s.

## Changed

- Several changes to `TypeInformation`:

* Changed the `encode` field of `TypeInformation` to be `Encoder a` instead of `a -> Opaleye.PrimExpr`.

* Moved the `delimiter` field of `Decoder` into the top level of `TypeInformation`, as it's not "decoding" specific, it's also used when "encoding".

* Renamed the `parser` field of `Decoder` to `text`, to mirror the `text` field of the new `Encoder` type.

All of this will break any downstream code that uses a completely custom `DBType` implementation, but anything that uses `ReadShow`, `Enum`, `Composite`, `JSONBEncoded` or `parseTypeInformation` will continue working as before (which should cover all common cases).

- Stop exporting `Decoder` and `Encoder` from the `Rel8` module. These can now be found in `Rel8.Decoder` and `Rel8.Encoder`.

- Some changes were made to the `DBEnum` type class:

* `Enumable` was removed as a superclass constraint. It is still used to provide the default implementation of the `DBEnum` class.
* A new method, `enumerate`, was added to the `DBEnum` class (with the default implementation provided by `Enumable`).

This is unlikely to break any existing `DBEnum` instances, it just allows some instances that weren't possible before (e.g., for types that are not `Generic`).

<a id='changelog-1.6.0.0'></a>
# 1.6.0.0 — 2024-12-13

Expand Down
21 changes: 0 additions & 21 deletions changelog.d/20250428_030850_shane.obrien_prepared.md

This file was deleted.

35 changes: 0 additions & 35 deletions changelog.d/20250508_145755_kokobd_hasql_1_9.md

This file was deleted.

8 changes: 0 additions & 8 deletions changelog.d/20250512_114707_shane.obrien_fix_DBEnum.md

This file was deleted.

3 changes: 0 additions & 3 deletions changelog.d/20250701_105439_shane.obrien_elem.md

This file was deleted.