Commit Graph

25 Commits

Author SHA1 Message Date
belevy
6b12edbd8c fix postgres tests 2021-02-13 19:59:21 -06:00
belevy
8aff51b4d8 Modify SqlSelect to remove the backwards FunDep. Remove the need for the Value newtype 2021-02-13 19:55:41 -06:00
Matt Parsons
521ac01488
Support persistent-2.11 (#226)
* Support persistent-2.11

* sigh

* woop woop

* use hackage

* cpp so we don't have to tighten bounds

* add changelog entry

* lmao timing attacks

* no
2020-11-04 14:01:23 -07:00
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
Sebastián Estrella
91ab01d76f [#197] Allow PostgreSQL aggregate functions to take a filter clause 2020-08-26 11:34:25 -06:00
parsonsmatt
2cd6460260 travis pls 2020-03-30 13:37:22 -06:00
Matt Parsons
9e643acb3d
27 date trunc postgres (#181)
* write test case

* weird

* better error message

* rename, fix
2020-03-30 12:55:19 -06:00
Matt Parsons
b6279ca9f2
Postgresql Date Truncation (#180)
* write test case

* weird

* better error message
2020-03-30 12:11:27 -06:00
Matt Parsons
951bb21c1b
remove upper bounds (#171)
* remove upper bounds

* work with stackage nightly

* Add nightly build
2020-01-24 13:23:26 -07:00
Matt Parsons
096a251c39
Add instance of UnsafeSqlFunctionArgument () (#159)
* Add instance of UnsafeSqlFunctionArgument ()

* Use now, clean a warn
2019-10-29 10:03:42 -06:00
Matt Parsons
91fa258193
Fix the On Clause Ordering issue (#156)
* Add failing test

* Refactor newIdentFor to not have an error case

* annotation for warning

* refactoring

* Expression parser

* holy shit it works

* Add a shitload of tests

* cross join

* Find a failing case

* Account for that one case

* works

* Composability test

* okay now it tests something

* Documentation updates

* Add since, changelog

* fix
2019-10-28 14:06:01 -06:00
Jose Duran
40f7a0ca97 Insert Select With Conflict for postgres (#155)
* add insertSelectWithConflict to allow insert with conflict resolution

* insertSelectWithConflictCount does nothing when no updates given and add tests

* no longer require undefined for insertSelectWithConflict

* Update src/Database/Esqueleto/PostgreSQL.hs

Co-Authored-By: Matt Parsons <parsonsmatt@gmail.com>

* Update src/Database/Esqueleto/PostgreSQL.hs

Co-Authored-By: Matt Parsons <parsonsmatt@gmail.com>

* Update src/Database/Esqueleto/PostgreSQL.hs

Co-Authored-By: Matt Parsons <parsonsmatt@gmail.com>

* Update src/Database/Esqueleto/PostgreSQL.hs

Co-Authored-By: Matt Parsons <parsonsmatt@gmail.com>

* Move non postgres related functions out of postgres module to internal.

* add entry to changelog
2019-10-28 11:56:34 -06:00
Jose Duran
ba650748f0 add upsert postgres test 2019-09-30 15:12:15 -05:00
Jose Duran
6acb8f0732 add unique postgres tests 2019-09-30 14:10:41 -05:00
Jose Duran
3fcd094c55 change postgres port 2019-09-19 20:23:32 -05:00
Felix Paulusma
a452946f58 PostgreSQL JSON Operators (#128)
* added PostgreSQL.JSON module

* finished adding all JSON operators

* cleanup

* half way through writing tests

* final tweaks to comments

* finished with JSON tests

* upped persistent dependency to 2.10.0 because of PersistArray data constructor addition needed for JSON operators

* noticed the minus operator with text[] as right operand was only added in PSQL v10, added function and adjusted types/tests

* adjusted yaml configs for updated dependencies and PSQL v10 in Travis

* try to get PostgreSQL 10 running

* use @since notation

* removed postgresql from 'services' field

* and one more time, with FEELING! (and postgresql-10)

* foo

* PSQL 10 runs on 5433, it seems? reverting .travis.yml changes and setting test conn to port 5433

* of course I forget to add the PORT env > .<

* doop-dee-doo

* herp-a-derp

* last commit (hopefully)

* also have more recent dependencies in the 'compiler should error' tests

* why does it feel like this'll go on for a while still?

* copied some extra-deps from the persistent ymls

* aaaaand we're done... right?

* added persistent-postgresql to the dependencies and used its instances for Aeson.Value

* small comment fix

* moved the instances to their own module, this way they're optional to use if you don't use persistent-postgresql

* use port 5432, like a normal PostgreSQL!

* added JSONB newtype with instances, instead of orphaning Aeson.Value

* reworked everything to use the JSONB newtype. And adjusted most comments to reflect the change

* fixed all the tests (just making it compile again)

* that's right, Travis' PSQL v10 NEEEEDS it to be port 5433... for some reason

* update on the haddockumentation

* added JSONAccessor data type for easier usage of certain operators

* Also add to changelog.md

* JSONExpr -> JSONBExpr

* this damn PGPORT is really irritating
2019-08-04 22:10:31 -06:00
parsonsmatt
c0d2d67f74 Removed from tests 2019-02-01 16:52:40 -07:00
Philipp Balzarek
b2c01b1286 Fix Postgres aggregate function types (#68)
Aggregate functions like array_agg and string_agg will return NULL instead of
empty arrays and empty strings resp. when run on zero rows. This change reflects
that in the haskell types. It also adds a "maybeArray" function that
coalesces NULL into an empty array, because currently there is no way to write
an empty array literal (`val []` does not work)
2018-03-08 15:23:41 +01:00
Philipp Balzarek
381e50494a Generalize postgresql aggregate functions 2018-03-08 14:08:43 +01:00
Philipp Balzarek
b9d02ff8be Add arrayRemoveNull function (Postgresql) 2018-03-07 15:39:25 +01:00
Chris Allen
391aa86464 Changelog, bifurcating random_ 2018-02-27 18:19:46 -06:00
Chris Allen
0acb568445 Updating for UnliftIO, Conduit 1.3, Persistent 2.8 2018-02-27 17:45:25 -06:00
Fintan Halpenny
1a88bd85e3 Fixed up some mysql kinks and split out test function. Added new test format to travis yaml. 2017-08-10 21:21:26 +01:00
Fintan Halpenny
6b0028ed69 Cleaning up code 2017-08-09 22:49:18 +01:00
Fintan Halpenny
1262c3fef9 Split into multiple testing stanzas and modules for backends
Common/Test.hs holds all common tests and functionality for the backends
2017-08-09 22:44:30 +01:00