Commit Graph

702 Commits

Author SHA1 Message Date
parsonsmatt
303c65f187 i hate this 2021-03-29 14:39:37 -06:00
parsonsmatt
6a6a63cb97 stylish haskell 2021-03-29 14:04:51 -06:00
parsonsmatt
7bc4fdd3d4 come on pls 2021-03-29 13:39:27 -06:00
parsonsmatt
8748923faa sigh 2021-03-29 13:20:03 -06:00
parsonsmatt
086dfb1f1e i miss file-watch 2021-03-29 13:14:50 -06:00
parsonsmatt
2ed58e3659 ok no really 2021-03-29 13:14:27 -06:00
parsonsmatt
d2d52566bb i think that should do it 2021-03-29 13:12:29 -06:00
parsonsmatt
cf7a6e50ae uh 2021-03-29 12:54:48 -06:00
parsonsmatt
776d15a8fb ci nonsense 2021-03-29 12:54:25 -06:00
parsonsmatt
56e0d7afe7 it passed? 2021-03-29 09:46:20 -06:00
parsonsmatt
4388cccbce merge 2021-03-29 09:25:21 -06:00
parsonsmatt
c8bfd619e9 no persistent-template dependency please 2021-03-29 09:25:02 -06:00
Matt Parsons
651380fc80
Merge branch 'master' into matt/persistent-2.12 2021-03-29 09:16:15 -06:00
parsonsmatt
3fdf631404 k 2021-03-26 17:28:57 -06:00
Maximilian Tagher
c4ec95874f
Improve recommended hlints for catching x = NULL SQL (#240)
* Improve recommended hlints for catching `x = NULL` SQL

The current hints work fine for unqualified imports, but I realized they don't work with qualified ones, such as `import qualified Database.Esqueleto as E`.

I tested on our codebase that these with the `Database.Esqueleto.` addition to `hlint.yaml`, this now works in unqualified and qualified code

* Update changelog.md
2021-03-26 17:24:14 -06:00
parsonsmatt
053420d3de fix gha 2021-03-26 17:23:27 -06:00
parsonsmatt
3292b7a7a0 minor bump 2021-03-26 16:58:11 -06:00
parsonsmatt
7bd4a524fd make the example work 2021-03-26 16:42:06 -06:00
parsonsmatt
2b5da6ab6f tests pass locally 2021-03-26 16:38:32 -06:00
parsonsmatt
4a546d2698 stuff 2021-03-26 16:03:24 -06:00
parsonsmatt
9ac73d93dc uhhh why are you like this 2021-03-26 14:55:00 -06:00
parsonsmatt
c8916cb493 run mysql tests 2021-03-26 14:40:57 -06:00
Arthur Xavier
a61f5527e8
Fix non-exhaustive patterns in 'unsafeSqlAggregateFunction' (#238)
* Fix non-exhaustive patterns in 'unsafeSqlAggregateFunction'

* Update changelog

* Abstract 'UnexpectedValueError' in 'valueToRawSqlParens'

Co-authored-by: Matt Parsons <parsonsmatt@gmail.com>
2021-02-21 13:50:03 -06:00
Felix Paulusma
8fb9a1fe24
Also export ValidOnClauseValue (#232)
* Also export ValidOnClauseValue

This is a constraint on `on`, but not exported, so you have to go into the source to see what it does. Exporting makes this easier.

* add to ChangeLog and bumped version
2021-02-05 14:41:40 -07:00
Matt Parsons
da72f428d1
fix ci (#233) 2020-12-04 10:51:14 -07:00
parsonsmatt
305b11e58e esqueleto-3.4.0.1 2020-11-04 14:01:49 -07: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
eb034458de
Simplify ToFromT (#225)
* Simplify ToFromT. Converted most closed type families to be associated type families with the exception of IsLateral, Nullable and the two new FromOnClause and FromCrossJoin type families that handle the overlaps instead of ToFromT
2020-11-04 11:15:17 -06:00
Georgi Lyubenov
eb91208e94
Use type families instead of empty classes (#220)
* Use type families instead of empty classes

* It's not possible to expand a closed type family.

Co-authored-by: Matt Parsons <parsonsmatt@gmail.com>

Co-authored-by: Matt Parsons <parsonsmatt@gmail.com>
2020-10-29 18:04:28 -06:00
Matt Parsons
b35713c09f
Autoformatting + Stylish Haskell Config (#218)
* Add stylish-haskell.yaml, update spacing to 4 in configs

* update travis

* lol

* major formatting stuff

* fix parse error

* fix

* warnings, more tidying up

* Add style guide [ci skip]

* faster build perhaps

* cabbal

* sigh
2020-10-29 16:20:52 -06:00
Arthur Xavier
4f6b02298c
Deprecate ToAliasT and ToAliasReferenceT (#221)
* Make ToAliasT and ToAliasReferenceT associated types of the corresponding classes

* Update changelog

* Remove ToAliasT and ToAliasReferenceT

* Update changelog and deprecate type families instead of deleting them

* Apply suggestions from code review

Co-authored-by: Ben Levy <benjaminlevy007@gmail.com>

Co-authored-by: Ben Levy <benjaminlevy007@gmail.com>
2020-10-29 15:35:18 -06:00
Matt Parsons
4ea3d5da59
Github Actions (#223)
* Create haskell.yml
2020-10-29 15:10:54 -06:00
Georgi Lyubenov
d2925e227c Remove a double adverb usage 2020-10-29 07:16:56 -06: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
Maximilian Tagher
8adab239df
Add recommended hlint rules for proper isNothing usage (#214)
* Add recommended hlint rules for proper isNothing usage

* Update changelog.md
2020-10-28 10:42:35 -06:00
Matt Parsons
56d1e348c3
update nightly resolver (#208)
* update nightly resolver

* hmm
2020-10-28 10:40:22 -06:00
Matt Parsons
4887bc19fe
add GHC 8.8 to testing (#206) 2020-09-17 15:47:54 -06:00
Matt Parsons
583167adb0
Make the Experimental module more prominent (#205)
* update README

* add comments

* update cabal

* update changelog
2020-09-17 14:52:38 -06:00
Ben Levy
f9a8088170
Bugfix rollup: Fix issue with extra characters in generated SQL; Fix ToAliasReference for already referenced values; Fix Alias/Reference for Maybe Entity (#191)
* Fix issue with extra characters. Extra parens in valueList caused issues in mysql. Extra backticks in value reference names

* update changelog and bump version number

* Fix issue caused by toAliasReference failing to reindex an alias reference by its new alias source

* Add support for SqlExpr (Maybe (Entity a))) to aliasing in Experimental. Fix #193

* Update changelog with new PR name. Fix name shadowing in test.

* Fix binary operations(i.e. ==.) on aliased values.

* no need for version bump since 3.3.3.3 hasnt been released yet

Co-authored-by: Matt Parsons <parsonsmatt@gmail.com>
2020-08-30 13:16:37 -06:00
Ben Levy
2b5b561f6e
Add new SetOperation constructor for parenthesized query (#195)
* Add new SetOperation constructor for parenthesized query. Automatically detect when parentheses are needed on SelectQuery usage (only works for MySQL).

* Add Parens to SelectQueryP and create a pattern synonym for SelectQuery. SelectQueryP is hidden as end users should only be using SelectQuery.
2020-08-30 13:15:11 -06:00
Maximilian Tagher
dd16400d64
Document isNothing (#203)
* Document isNothing

I have two goals with this documentation:

1. Surface how to do `IS NOT NULL`. This PR makes a search for that string turn up a result, and directs you to combine `isNothing` with `not_`.
2. Documents a major gotcha where behavior between Persistent and Esqueleto is different. I haven't tested this in awhile, but we run into this gotcha occassionally, so I'm pretty confident it's still an issue.

* ..

* ..

Co-authored-by: Matt Parsons <parsonsmatt@gmail.com>
2020-08-26 12:36:41 -06:00
tim
1de1ee9e6e Removes irrelevant copy pasta from some haddocks 2020-08-26 11:35:19 -06:00
Sebastián Estrella
29eb443fac Remove whitespaces from Database.Esqueleto.Internal.Internal 2020-08-26 11:34:48 -06:00
Sebastián Estrella
91ab01d76f [#197] Allow PostgreSQL aggregate functions to take a filter clause 2020-08-26 11:34:25 -06:00
Maximilian Tagher
4dbd5339ad
Test and further document ToBaseId (#190)
* Test and further document ToBaseId

My coworker Lev was adding this typeclass to our codebase and we hadn't used it before. I added a little more documentation that I think would help clarify things, particularly what the point of the witness function was. More importantly I added a test for this typeclass.

* 3.3.3.2
2020-06-22 09:43:17 -06:00
Ben Levy
7f769cc673
Add test for calling sql functions on aliased values; Fixed unsafeSql… (#189)
* Add test for calling sql functions on aliased values; Fixed unsafeSqlFunction to handle aliaed values properly

* version bump and changelog
2020-06-21 10:00:12 -06:00
Mitchell Vitez
9a4813d422
Remove old note about ON clause ordering (#186)
#156 fixed the issue
2020-05-26 14:28:19 -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