esqueleto/changelog.md
Ben Levy a319d13bee
[Experimental] More powerful queries (#215)
* Initial attempt at Lateral joins

* Fix lateral queries for Inner and Left joins. Remove for Full and Right as this is apparently illegal(who knew). Add TypeError on Full and Right joins. Update on clause to use a custom constraint instead of relying on ToFrom.

* Fix typo leading to erroneous ToFrom instance

* Implement non-recursive CTE's

* add withRecursive; cleanup whitespace

* Fix multiple recursive CTEs. Apparently the spec just wants RECURSIVE if any of the queries are recursive.

* Add test to verify that a CTE can reference a previously defined CTE

* Update with/Recursive to return an element of a from clause to allow for joins against CTEs

* Modify set operations to use a custom data type + typeclass + typefamily to allow direct use of SqlQuery a in set operation and to allow recursive cte's to unify syntax with SqlSetOperation. Added lowercase names for set operations. If we can migrate off the constructor names we may be able to simplify the implementation.

* Fixed haddock documentation issue from v3.3.4.0 and added documentation
for new features introduced by v3.4.0.0

* fixed comments that were changed while debugging haddock build

* Cleanup formatting in From per PR. Cleanup ValidOnClause, added documentation and reduced the number of instances

* Update src/Database/Esqueleto/Experimental.hs

Co-authored-by: charukiewicz <charukiewicz@protonmail.com>
Co-authored-by: Matt Parsons <parsonsmatt@gmail.com>
2020-10-28 21:37:17 -06:00

6.7 KiB

3.4.0.0

  • @belevy, @charukiewicz
    • #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
      • Add suggested hlint rules for proper isNothing usage

3.3.4.0

  • @parsonsmatt
    • #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:

        import Database.Esqueleto hiding (from, on)
        import Database.Esqueleto.Experimental
        

        Now you can merely write:

        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 - Bugfix rollup: Fix issue with extra characters in generated SQL; Fix ToAliasReference for already referenced values; Fix Alias/Reference for Maybe Entity
  • @maxgabriel
    • #203 Document isNothing
  • @sestrella
    • #198 - Allow PostgreSQL aggregate functions to take a filter clause

3.3.3.2

  • @maxgabriel
    • #190 Further document and test ToBaseId

3.3.3.1

  • @belevy
    • #189 - Fix bug in function calls with aliased values introduced by SubQuery joins.

3.3.3.0

  • @belevy
    • #172 - Introduce new experimental module for joins, set operations (eg UNION), and safer queries from outer joins.

3.3.2

  • @belevy
    • #177 Fix natural key handling in (^.)

3.3.1.1

  • @parsonsmatt
    • #170 Add documentation to groupBy to explain tuple nesting.

3.3.1

  • @charukiewicz, @belevy, @joemalin95
    • #167: Exposed functions that were added in 3.3.0

3.3.0

  • @charukiewicz, @belevy, @joemalin95
    • #166: Add several common SQL string functions: upper_, trim_, ltrim_, rtrim_, length_, left_, right_

3.2.3

  • @hdgarrood
    • #163: Allow unsafeSqlFunction to take up to 10 arguments without needing to nest tuples.

3.2.2

  • @parsonsmatt
    • #161: Fix an issue where nested joins didn't get the right on clause.

3.2.1

  • @parsonsmatt
    • #159: Add an instance of UnsafeSqlFunction () for 0-argument SQL functions.

3.2.0

  • @parsonsmatt
    • #153: Deprecate sub_select and introduce subSelect, subSelectMaybe, and subSelectUnsafe.
  • @parsonsmatt
    • #156: Remove the restriction that on clauses must appear in reverse order to the joining tables.

3.1.3

  • @JoseD92
    • #155: Added insertSelectWithConflict postgres function.

3.1.2

  • @tippenein
    • #149: Added associateJoin query helpers.

3.1.1

  • @JoseD92

    • #149: Added upsert support.
  • @parsonsmatt

    • #133: Added renderQueryToText and related functions.

3.1.0

  • @Vlix
    • #128: Added Database.Esqueleto.PostgreSQL.JSON module with JSON operators and JSONB data type.
  • @ibarrae
    • #127: Added between and support for composite keys in unsafeSqlBinOp.

3.0.0

  • @parsonsmatt
    • #122: Support persistent-2.10.0. This is a breaking change due to the removal of deprecated exports from the persistent library.
    • #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: Removed sqlQQ and executeQQ functions from export, fixing doc build and building with persistent >= 2.9

2.6.1

  • @ChrisCoffey
    • #114: Fix Haddock by working around an upstream bug.

2.6.0