Commit Graph

340 Commits

Author SHA1 Message Date
Shane O'Brien
8957a75bc6
Port to Opaleye lateral branch 2021-06-28 12:16:24 +01:00
tomjaguarpaw
ac2d382e5e
Link directly to Haddock for >$< (#79) 2021-06-28 10:40:28 +01:00
Shane
4aa5ba952c
Remove Labelable type class; we don't really need labels at the type level anymore (#76) 2021-06-24 10:13:03 +00:00
Shane
70ce05d8d1
Fix incorrect >>= implementation for Query (#73) 2021-06-22 22:01:46 +00:00
Shane
f36d7d03dd
Merge pull request #69 from circuithub/exists
Bump Opaleye dependency to 0.7.2.0 to take advantage of new EXISTS support
2021-06-22 12:51:40 +01:00
Shane O'Brien
93da8410ac
Bump Opaleye dependency to 0.7.2.0 to take advantage of new EXISTS support 2021-06-22 12:46:09 +01:00
Shane O'Brien
4cb7797d9e
Rename where{,Not}Exists to present and absent respectively 2021-06-22 12:01:47 +01:00
Shane O'Brien
bac704ce01
Fix catListTable and friends
The implemtation before would produce incorrect results if tried to get the cartesian product of two queries built out of `unnest`. Which makes sense, because Postgres seems to special case products of `unnest` to have a `ZipList` semantics rather than the normal `[]`.

The solution is to use `rebind` (from `Rel8.Query.Evaluate`) to rebind the results of such queries, so there is no `unnest` in the expressions we're `<*>`ing.
2021-06-22 11:54:35 +01:00
Shane O'Brien
d63063940d
Simplify eval to run directly inside the Query monad
@tomjaguarpaw at ZuriHac questioned whether the `Evaluation` monad was really unnecessary.

And yes, it turns out that the `Evaluation` monad wasn't actually really adding any value. The real issue was Postgres's unspecified evaluation order (which in practice behaved like the broken `ListT` from transformers).

We now maintain a stack of bindings from previous subselects in the `Query` monad, which future queries can reference. So for `evalulation`, to ensure that Postgres doesn't try to run a function once where we expect it to be run multiple times, we modify the expression to contain a bunch of superfluous lateral references to the previous queries. This ensures that it gets run every time.
2021-06-22 11:50:34 +01:00
Shane O'Brien
294543e530
alignBy doesn't actually need any Table constraints
We can use the same technique we use in `optional` to get rid of them.
2021-06-21 23:23:47 +01:00
Asad Saeeduddin
e83f356e99
Correct "readabality" typo (#66) 2021-06-21 15:54:19 +01:00
Ollie Charles
c887a7eb99 Release 1.0.0.1 2021-06-21 11:46:16 +01:00
Ollie Charles
b9757426dc Mention the need for DuplicateRecordFields
Fixes #63
2021-06-21 11:40:52 +01:00
Ollie Charles
4e9e90d066 Expand on select needing a connection
Fixes #64 (hopefully!)
2021-06-21 11:38:10 +01:00
Ollie Charles
269974e5cc Expand on #58 2021-06-21 11:35:43 +01:00
Adam Bergmark
92f7c08300
doc: Mention generics when declaring TableSchemas (#58) 2021-06-21 11:34:05 +01:00
Pranay Sashank
137ebeda89
Add homepage, bug-reports, source-repository meta to .cabal (#55) 2021-06-19 16:46:23 +01:00
tomjaguarpaw
22deaf2e50
Use teletype, not italics (#54) 2021-06-19 08:06:42 +01:00
tomjaguarpaw
1183bfbd29
Fix span of teletype section (#53) 2021-06-18 21:56:48 +01:00
tomjaguarpaw
71f5ee60e4
Remove redundant parens (#51) 2021-06-18 21:44:25 +01:00
tomjaguarpaw
2ba99eaca8
Fix inner join example (#50) 2021-06-18 20:56:21 +01:00
Oliver Charles
19ee619a82 Doc fixes 2021-06-18 20:55:25 +01:00
Oliver Charles
7bd2aa5cfd Docs fix 2021-06-18 20:52:58 +01:00
Oliver Charles
6396ea1ceb s/Identity/Result/ in readthedocs 2021-06-18 20:49:30 +01:00
Ollie Charles
2487397a50 Bump copyright year 2021-06-18 18:24:31 +01:00
Ollie Charles
1ad9d4b2d7 Add Changelog and README 2021-06-18 18:23:58 +01:00
Ollie Charles
bc275dccfa Move some exports around 2021-06-18 18:04:03 +01:00
Shane O'Brien
b4a542a85d
Reword Evaluate documentation 2021-06-18 17:21:55 +01:00
Shane O'Brien
421fe3ff76
Remove bind*Table 2021-06-18 17:18:57 +01:00
Shane O'Brien
bff98fedbd
Expand documentation of Rel8.Table.These combinators 2021-06-18 17:13:44 +01:00
Shane O'Brien
760dcd82f8
Don't export fromADT, toADT, fromHKD, toHKD 2021-06-18 17:08:59 +01:00
Ollie Charles
531d21c74d Document name* functions 2021-06-18 16:54:20 +01:00
Ollie Charles
d21213d461 Better documentation for bitraverseEitherTable 2021-06-18 16:42:26 +01:00
Shane O'Brien
b0183859d0
Correct traverseMaybeTable, s/noTable/nothingTable/ 2021-06-18 16:03:21 +01:00
Ollie Charles
3d54aa780b Document listTable and nonEmptyTable 2021-06-18 11:33:24 +01:00
Ollie Charles
1a3c3c139d Document Rel8.Table.These 2021-06-18 11:29:52 +01:00
Ollie Charles
7568c75e03 Document various catList operations 2021-06-18 11:25:59 +01:00
Ollie Charles
4ec1182dc3 Document more of EitherTable 2021-06-18 11:23:04 +01:00
Ollie Charles
4b50256af0 Document HList, HNonEmpty, HMaybe, HThese and HEither 2021-06-18 11:16:33 +01:00
Ollie Charles
da86165828 Document Column 2021-06-18 10:55:36 +01:00
Ollie Charles
9c974cb730 Document KRel8able 2021-06-18 10:54:29 +01:00
Ollie Charles
b86acbdf71 Document Enumable 2021-06-18 10:54:02 +01:00
Ollie Charles
32395d07b0 Document DBEnum 2021-06-18 10:53:04 +01:00
Ollie Charles
7133acedfe Document namesFromLabels and namesFromLabelsWith 2021-06-18 10:47:19 +01:00
Ollie Charles
7f5801f051 Document unsafeLiteral 2021-06-18 10:44:16 +01:00
Ollie Charles
01b569f5f9 Document Recontextualize 2021-06-18 10:42:52 +01:00
Ollie Charles
ae4a78601a Document Labelable 2021-06-18 10:41:43 +01:00
Ollie Charles
9d3480cc28 Document ToExprs and FromExprs 2021-06-18 10:41:31 +01:00
Ollie Charles
00e53a1909 Document Result 2021-06-18 10:37:51 +01:00
Ollie Charles
f998dd7d5b Document Rel8.Type.Composite 2021-06-18 10:36:32 +01:00