diff --git a/Changelog.md b/Changelog.md index 0e197d00..d3e63272 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,4 +1,42 @@ + +# 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`). + # 1.6.0.0 — 2024-12-13 diff --git a/changelog.d/20250428_030850_shane.obrien_prepared.md b/changelog.d/20250428_030850_shane.obrien_prepared.md deleted file mode 100644 index ebe79450..00000000 --- a/changelog.d/20250428_030850_shane.obrien_prepared.md +++ /dev/null @@ -1,21 +0,0 @@ -### 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`). - -### 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). diff --git a/changelog.d/20250508_145755_kokobd_hasql_1_9.md b/changelog.d/20250508_145755_kokobd_hasql_1_9.md deleted file mode 100644 index 7b31e9cf..00000000 --- a/changelog.d/20250508_145755_kokobd_hasql_1_9.md +++ /dev/null @@ -1,35 +0,0 @@ - - -### Added - -- Support hasql-1.9 - - - - - diff --git a/changelog.d/20250512_114707_shane.obrien_fix_DBEnum.md b/changelog.d/20250512_114707_shane.obrien_fix_DBEnum.md deleted file mode 100644 index f5ae5425..00000000 --- a/changelog.d/20250512_114707_shane.obrien_fix_DBEnum.md +++ /dev/null @@ -1,8 +0,0 @@ -### Changed - -- 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`). diff --git a/changelog.d/20250701_105439_shane.obrien_elem.md b/changelog.d/20250701_105439_shane.obrien_elem.md deleted file mode 100644 index d59d0cf9..00000000 --- a/changelog.d/20250701_105439_shane.obrien_elem.md +++ /dev/null @@ -1,3 +0,0 @@ -### Added - -- Add `elem` and `elem1` to `Rel8.Array` for testing if an element is contained in `[]` and `NonEmpty` `Expr`s.