|
| 1 | +3.6.0.0 |
| 2 | +======= |
| 3 | +- @parsonsmatt |
| 4 | + - [#422](https://github.com/bitemyapp/esqueleto/pull/422) |
| 5 | + - The instance of `HasField` for `SqlExpr (Maybe (Entity a))` joins |
| 6 | + `Maybe` values together. This means that if you `leftJoin` a table |
| 7 | + with a `Maybe` column, the result will be a `SqlExpr (Value (Maybe |
| 8 | + typ))`, instead of `SqlExpr (Value (Maybe (Maybe typ)))`. |
| 9 | + - To make this a less breaking change, `joinV` has been given a similar |
| 10 | + behavior. If the input type to `joinV` is `Maybe (Maybe typ)`, then |
| 11 | + the result becomes `Maybe typ`. If the input type is `Maybe typ`, then |
| 12 | + the output is also `Maybe typ`. The `joinV'` function is given as an |
| 13 | + alternative with monomorphic behavior. |
| 14 | + - The `just` function is also modified to avoid nesting `Maybe`. |
| 15 | + Likewise, `just'` is provided to give monomorphic behavior. |
| 16 | + - `subSelect`, `max_`, `min_`, and `coalesce` were all |
| 17 | + given `Nullable` output types as well. This should help to reduce the |
| 18 | + incidence of nested `Maybe`. |
| 19 | + - The operator `??.` was introduced which can do nested `Maybe`. You may |
| 20 | + want this if you have type inference issues with `?.` combining |
| 21 | + `Maybe`. |
| 22 | + - [#420](https://github.com/bitemyapp/esqueleto/pull/420) |
| 23 | + - Add a fixity declaration to `?.` |
| 24 | + - [#412](https://github.com/bitemyapp/esqueleto/pull/412) |
| 25 | + - The `random_` and `rand` functions (deprecated in 2.6.0) have been |
| 26 | + removed. Please refer to the database specific ones (ie |
| 27 | + `Database.Esqueleto.PostgreSQL` etc) |
| 28 | + - The `sub_select` function (deprecated in 3.2.0) has been removed. |
| 29 | + Please use the safer variants like `subSelect`, `subSelectMaybe`, etc. |
| 30 | + - The `ToAliasT` and `ToAliasReferenceT` types has been removed after having been deprecated in 3.4.0.1. |
| 31 | + - The `Union` type (deprecated in 3.4) was removed. Please use `union_` |
| 32 | + instead. |
| 33 | + - The `UnionAll` type (deprecated in 3.4) was removed. Please use |
| 34 | + `unionAll_` instead. |
| 35 | + - The `Except` type (deprecated in 3.4) was removed. Please use |
| 36 | + `except_` instead. |
| 37 | + - The `Intersect` type (deprecated in 3.4) was removed. Please use |
| 38 | + `intersect_` instead. |
| 39 | + - The `SubQuery` type (deprecated in 3.4) was removed. You do not need |
| 40 | + to tag subqueries to use them in `from` clauses. |
| 41 | + - The `SelectQuery` type (deprecated in 3.4) was removed. You do not |
| 42 | + need to tag `SqlQuery` values with `SelectQuery`. |
| 43 | + - [#287](https://github.com/bitemyapp/esqueleto/pull/278) |
| 44 | + - Deprecate `distinctOn` and `distinctOnOrderBy`. Use the variants |
| 45 | + defined in `PostgreSQL` module instead. The signature has changed, but |
| 46 | + the refactor is straightforward: |
| 47 | + ``` |
| 48 | + -- old: |
| 49 | + p <- from $ table |
| 50 | + distinctOn [don x] $ do |
| 51 | + pure p |
| 52 | +
|
| 53 | + -- new: |
| 54 | + p <- from $ table |
| 55 | + distinctOn [don x] |
| 56 | + pure p |
| 57 | + ``` |
| 58 | + - [#301](https://github.com/bitemyapp/esqueleto/pull/301) |
| 59 | + - Postgresql `upsert` and `upsertBy` now require a `NonEmpty` list of |
| 60 | + updates. If you want to provide an empty list of updates, you'll need |
| 61 | + to use `upsertMaybe` and `upsertMaybeBe` instead. Postgres does not |
| 62 | + return rows from the database if no updates are performed. |
| 63 | + - [#413](https://github.com/bitemyapp/esqueleto/pull/413) |
| 64 | + - The ability to `coerce` `SqlExpr` was removed. Instead, use |
| 65 | + `veryUnsafeCoerceSqlExpr`. See the documentation on |
| 66 | + `veryUnsafeCoerceSqlExpr` for safe use example. |
| 67 | + - `unsafeCeorceSqlExpr` is provided as an option when the underlying |
| 68 | + Haskell types are coercible. This is still unsafe, as different |
| 69 | + `PersistFieldSql` instances may be at play. |
| 70 | + - [#420](https://github.com/bitemyapp/esqueleto/pull/421) |
| 71 | + - The `LockingKind` constructors are deprecated, and will be removed |
| 72 | + from non-Internal modules in a future release. Smart constructors |
| 73 | + replace them, and you may need to import them from a different |
| 74 | + database-specific module. |
| 75 | + - [#425](https://github.com/bitemyapp/esqueleto/pull/425) |
| 76 | + - `fromBaseId` is introduced as the inverse of `toBaseId`. |
| 77 | + - `toBaseIdMaybe` and `fromBaseIdMaybe` are introduced. |
| 78 | +
|
1 | 79 | 3.5.14.0 |
2 | 80 | ======== |
3 | 81 | - @parsonsmatt |
|
0 commit comments