3.5.3.0 ======= - @m4dc4p - [#291](https://github.com/bitemyapp/esqueleto/pull/291) - Added `ToAlias` and `ToAliasReference` instaces to the `:&` type, mirroring the tuple instances for the same classes. See [Issue #290](https://github.com/bitemyapp/esqueleto/issues/290) for discussion. - @NikitaRazmakhnin - [#284](https://github.com/bitemyapp/esqueleto/pull/284) - Add PostgreSQL-specific support of VALUES(..) literals 3.5.2.2 ======= - @NikitaRazmakhnin - [#278](https://github.com/bitemyapp/esqueleto/pull/278) - Fix generating of bad sql using nexted expressions with `distinctOnOrderBy`. 3.5.2.1 ======= - @cdparks - [#273](https://github.com/bitemyapp/esqueleto/pull/273) - Avoid generating an empty list as the left operand to `NOT IN`. 3.5.2.0 ======= - @ivanbakel - [#268](https://github.com/bitemyapp/esqueleto/pull/268) - Added `SqlSelect` instance for `(:&)`, allowing it to be returned from queries just like `(,)` tuples. 3.5.1.0 ======= - @ibarrae - [#265](https://github.com/bitemyapp/esqueleto/pull/265) - Added `selectOne` 3.5.0.0 ======= - @belevy - [#228](https://github.com/bitemyapp/esqueleto/pull/228) - Destroy all GADTs; Removes the From GADT and SqlExpr GADT - From GADT is replaced with a From data type and FromRaw - SqlExpr is now all defined in terms of ERaw - Modified ERaw to contain a SqlExprMeta with any extra information that may be needed - Experimental top level is now strictly for documentation and all the implementation details are in Experimental.* modules - @parsonsmatt - [#259](https://github.com/bitemyapp/esqueleto/pull/259) - Create the `Database.Esqueleto.Legacy` module. The `Database.Esqueleto` module now emits a warning, directing users to either import `Database.Esqueleto.Legacy` to keep the old behavior or to import `Database.Esqueleto.Experimental` to opt in to the new behavior. - Deleted the deprecated modules `Database.Esqueleto.Internal.{Language,Sql}`. Please use `Database.Esqueleto.Internal.Internal` instead, or ideally post what you need from the library so we can support you safely. - Support GHC 9 3.4.2.2 ======= - @parsonsmatt - [#255](https://github.com/bitemyapp/esqueleto/pull/255) - Fix a bug where a composite primary key in a `groupBy` clause would break. 3.4.2.1 ======= - @parsonsmatt - [#245](https://github.com/bitemyapp/esqueleto/pull/245) - Support `persistent-2.13` 3.4.2.0 ======= - @parsonsmatt - [#243](https://github.com/bitemyapp/esqueleto/pull/243) - Support `persistent-2.12` 3.4.1.1 ======= - @MaxGabriel - [#240](https://github.com/bitemyapp/esqueleto/pull/240/files) - Improve recommend hlint to avoid doing `x = NULL` SQL queries 3.4.1.0 ======= - @arthurxavierx - [#238](https://github.com/bitemyapp/esqueleto/pull/238) - Fix non-exhaustive patterns in `unsafeSqlAggregateFunction` - @Vlix - [#232](https://github.com/bitemyapp/esqueleto/pull/232) - Export the `ValidOnClauseValue` type family 3.4.0.1 ======= - @arthurxavierx - [#221](https://github.com/bitemyapp/esqueleto/pull/221) - Deprecate `ToAliasT` and `ToAliasReferenceT` - @parsonsmatt - [#226](https://github.com/bitemyapp/esqueleto/pull/226) - Support `persistent-2.11` - @belevy - [#225](https://github.com/bitemyapp/esqueleto/pull/225) - Simplify `ToFromT` extracting the overlapping and type error instances - Make `ToFromT` and associated type family of `ToFrom` 3.4.0.0 ======= - @belevy, @charukiewicz - [#215](https://github.com/bitemyapp/esqueleto/pull/215) - Added support for common table expressions (`with`, `withRecursive`) - Added support for lateral JOINs with updated example (Example #6) - Deprecated `SelectQuery`, removing the neccessity to tag `SqlQuery` values - Deprecated use of data constructors for SQL set operations (replaced with functions) - Refactored module structure to fix haddock build (fixes build from `3.3.4.0`) 3.3.4.1 ======= - @maxgabriel - [#214](https://github.com/bitemyapp/esqueleto/pull/214) - Add suggested hlint rules for proper `isNothing` usage 3.3.4.0 ======= - @parsonsmatt - [#205](https://github.com/bitemyapp/esqueleto/pull/205) - More documentation on the `Experimental` module - `Database.Esqueleto.Experimental` now reexports `Database.Esqueleto`, so the new "approved" import syntax is less verbose. Before, you'd write: ```haskell import Database.Esqueleto hiding (from, on) import Database.Esqueleto.Experimental ``` Now you can merely write: ```haskell import Database.Esqueleto.Experimental ``` Users will get 'redundant import' warnings if they followed the original syntax, the solution is evident from the error message provided. 3.3.3.3 ======= - @belevy - [#191](https://github.com/bitemyapp/esqueleto/pull/191) - Bugfix rollup: Fix issue with extra characters in generated SQL; Fix ToAliasReference for already referenced values; Fix Alias/Reference for Maybe Entity - @maxgabriel - [#203](https://github.com/bitemyapp/esqueleto/pull/203) Document `isNothing` - @sestrella - [#198](https://github.com/bitemyapp/esqueleto/pull/198) - Allow PostgreSQL aggregate functions to take a filter clause 3.3.3.2 ======== - @maxgabriel - [#190](https://github.com/bitemyapp/esqueleto/pull/190) Further document and test `ToBaseId` 3.3.3.1 ======== - @belevy - [#189](https://github.com/bitemyapp/esqueleto/pull/189) - Fix bug in function calls with aliased values introduced by SubQuery joins. 3.3.3.0 ======== - @belevy - [#172](https://github.com/bitemyapp/esqueleto/pull/172) - Introduce new experimental module for joins, set operations (eg UNION), and safer queries from outer joins. 3.3.2 ======== - @belevy - [#177](https://github.com/bitemyapp/esqueleto/pull/177) Fix natural key handling in (^.) 3.3.1.1 ======== - @parsonsmatt - [#170](https://github.com/bitemyapp/esqueleto/pull/170) Add documentation to `groupBy` to explain tuple nesting. 3.3.1 ======== - @charukiewicz, @belevy, @joemalin95 - [#167](https://github.com/bitemyapp/esqueleto/pull/167): Exposed functions that were added in `3.3.0` 3.3.0 ======== - @charukiewicz, @belevy, @joemalin95 - [#166](https://github.com/bitemyapp/esqueleto/pull/166): Add several common SQL string functions: `upper_`, `trim_`, `ltrim_`, `rtrim_`, `length_`, `left_`, `right_` 3.2.3 ======== - @hdgarrood - [#163](https://github.com/bitemyapp/esqueleto/pull/163): Allow `unsafeSqlFunction` to take up to 10 arguments without needing to nest tuples. 3.2.2 ======== - @parsonsmatt - [#161](https://github.com/bitemyapp/esqueleto/pull/161/): Fix an issue where nested joins didn't get the right on clause. 3.2.1 ======== - @parsonsmatt - [#159](https://github.com/bitemyapp/esqueleto/pull/159): Add an instance of `UnsafeSqlFunction ()` for 0-argument SQL functions. 3.2.0 ======== - @parsonsmatt - [#153](https://github.com/bitemyapp/esqueleto/pull/153): Deprecate `sub_select` and introduce `subSelect`, `subSelectMaybe`, and `subSelectUnsafe`. - @parsonsmatt - [#156](https://github.com/bitemyapp/esqueleto/pull/156): Remove the restriction that `on` clauses must appear in reverse order to the joining tables. 3.1.3 ======== - @JoseD92 - [#155](https://github.com/bitemyapp/esqueleto/pull/149): Added `insertSelectWithConflict` postgres function. 3.1.2 ======== - @tippenein - [#149](https://github.com/bitemyapp/esqueleto/pull/157): Added `associateJoin` query helpers. 3.1.1 ======= - @JoseD92 - [#149](https://github.com/bitemyapp/esqueleto/pull/149): Added `upsert` support. - @parsonsmatt - [#133](https://github.com/bitemyapp/esqueleto/pull/133): Added `renderQueryToText` and related functions. 3.1.0 ======= - @Vlix - [#128](https://github.com/bitemyapp/esqueleto/pull/128): Added `Database.Esqueleto.PostgreSQL.JSON` module with JSON operators and `JSONB` data type. - @ibarrae - [#127](https://github.com/bitemyapp/esqueleto/pull/127): Added `between` and support for composite keys in `unsafeSqlBinOp`. 3.0.0 ======= - @parsonsmatt - [#122](https://github.com/bitemyapp/esqueleto/pull/122): Support `persistent-2.10.0`. This is a breaking change due to the removal of deprecated exports from the `persistent` library. - [#113](https://github.com/bitemyapp/esqueleto/pull/113): Remove the `esqueleto` type class. To migrate here, use `SqlExpr`, `SqlQuery`, and `SqlBackend` instead of using the polymorphic `Esqueleto sqlExpr sqlQuery sqlBackend => ...` types. 2.7.0 ======= - @parsonsmatt - [#117](https://github.com/bitemyapp/esqueleto/pull/117): Removed `sqlQQ` and `executeQQ` functions from export, fixing doc build and building with `persistent` >= 2.9 2.6.1 ======= - @ChrisCoffey - [#114](https://github.com/bitemyapp/esqueleto/pull/114): Fix Haddock by working around an upstream bug. 2.6.0 ======== - @bitemyapp - Reorganized dependencies, decided to break compatibility for Conduit 1.3, Persistent 2.8, and `unliftio`. - Moved tests for `random()` into database-specific test suites. - Deprecated Language `random_`, split it into database-specific modules. - @parsonsmatt - Added support for `PersistQueryRead`/`PersistQueryWrite`, enabling type-safe differentation of read and write capabilities. - https://github.com/bitemyapp/esqueleto/pull/66 - @sestrella - Added support for `arrayAggDistinct` and `arrayRemove`. - https://github.com/bitemyapp/esqueleto/pull/65 - https://github.com/bitemyapp/esqueleto/pull/66 - @mheinzel - Fixed JOIN syntax in the documentation https://github.com/bitemyapp/esqueleto/pull/60 - @illmade - Added instructions for running database specific tests - https://github.com/bitemyapp/esqueleto/pull/64 - @FintanH - Removed CPP from the test suite, split the database-specific tests into their own respective modules. - https://github.com/bitemyapp/esqueleto/pull/48 - Added support for PostgreSQL's `now()` - https://github.com/bitemyapp/esqueleto/pull/46 - Added a comprehensive examples project to make practical application of Esqueleto easier. - https://github.com/bitemyapp/esqueleto/pull/40 - @EdwardBetts - Fixed a spelling error - https://github.com/bitemyapp/esqueleto/pull/52