Commit Graph

59 Commits

Author SHA1 Message Date
Felipe Lessa
b0329b05dc Use a bigger default chunk size when constructing the query.
The default is 112 bytes, or 56 characters.  With this commit we
start using 992 bytes, or 496 characters, which should be enough
to fit most queries without needing reallocations or memory copies.
2012-09-06 14:18:42 -03:00
Felipe Lessa
a5b93ff329 Typo. 2012-09-06 10:58:13 -03:00
Felipe Lessa
e2d73b49d9 Typo.
As always, found just after a Hackage release.
2012-09-06 10:54:33 -03:00
Felipe Lessa
326b2d45bf Silly typo. 2012-09-06 10:43:34 -03:00
Felipe Lessa
da6a669366 Add warning about unsupported JOINs to from's docs. 2012-09-06 10:40:39 -03:00
Felipe Lessa
4822172a42 Haddock fix. 2012-09-06 10:37:20 -03:00
Felipe Lessa
25f632398d Better top-level docs for internal modules. 2012-09-06 10:35:55 -03:00
Felipe Lessa
1286dc79b8 Better 'select' and 'delete' documentation. 2012-09-06 10:29:37 -03:00
Felipe Lessa
3b995ba46f Better documentation of Sql's internals. 2012-09-06 10:00:23 -03:00
Felipe Lessa
17a2cb65a9 Haddock fixes. 2012-09-06 09:49:14 -03:00
Felipe Lessa
1cb5c19288 Better 'from' documentation. 2012-09-06 09:46:08 -03:00
Felipe Lessa
271b5410da Typo. 2012-09-06 01:49:09 -03:00
Felipe Lessa
029aff837c Typo. 2012-09-06 01:48:25 -03:00
Felipe Lessa
f718be86da Instead of using rawSql's Single, use a new data type Value.
First of all, Value is a nicer name than Single.

However the main reason is to avoid error calls and to get better
feedback about the code from GHC.  Because of the GHC bug #6124,
we had many calls to 'error' just to avoid spurious warnings.  By
using data (instead of newtype) for Value we're able to avoid
them.  This commit removes *19* error calls from Sql.hs that GHC
is now able to prove that are unreachable.
2012-09-06 01:40:52 -03:00
Felipe Lessa
cc72ee9811 Misleading fixity declaration. 2012-09-06 01:28:06 -03:00
Felipe Lessa
077458ad56 Typos. 2012-09-06 01:27:34 -03:00
Felipe Lessa
bc21bac9ca A lot more docs. 2012-09-06 01:06:37 -03:00
Felipe Lessa
df63cd864b COUNT(*). 2012-09-05 23:18:56 -03:00
Felipe Lessa
0f677e9246 Add UPDATE support. 2012-09-05 23:09:02 -03:00
Felipe Lessa
f5c046775a Generalize types of numerical operations.
Persistent doesn't ask for Num and everything has
worked very well so far.  Not having a Num constraint
also allows those operations to work on Maybes.
2012-09-05 22:57:16 -03:00
Felipe Lessa
3e242d7b03 Use the table name as a base for a fresh identifier. 2012-09-05 20:54:38 -03:00
Felipe Lessa
3f2f1fdea7 Avoid a lot of redundant parenthesis.
Although this commit should not change the behaviour of any code,
it does make the resulting SQL a lot more pleasant to the eye.
2012-09-05 20:45:35 -03:00
Felipe Lessa
a29183028b New DELETE support. 2012-09-05 20:34:24 -03:00
Felipe Lessa
b67fcedfeb Allow queries to return (). 2012-09-05 20:34:03 -03:00
Felipe Lessa
c41a7dd464 Avoid using AS as much as possible. 2012-09-05 20:33:32 -03:00
Felipe Lessa
f84304deb8 Inline getConnection. 2012-09-05 19:19:28 -03:00
Felipe Lessa
dad271a75a Prettify LANGUAGE pragmas. 2012-09-05 19:16:28 -03:00
Felipe Lessa
9a24c7774c Allow SELECT DISTINCT queries as well. 2012-09-05 19:14:03 -03:00
Felipe Lessa
0c694e92a5 On collectOnClauses, match from clauses in the correct order.
Previously it tried matching on the right branch just after
matching on the current node, which means that on the default
right fixity everything was reversed.

Note: SQLite didn't give any error messages for this bug!
2012-09-05 16:53:55 -03:00
Felipe Lessa
c0f5993be7 Correctly parenthesize and put ON clauses. 2012-09-05 16:47:33 -03:00
Felipe Lessa
8973d650a4 Allow ON clauses on sub-JOINs. 2012-09-05 16:47:15 -03:00
Felipe Lessa
7bb68cc233 Allow any parenthesization of JOINs. 2012-09-05 15:55:59 -03:00
Felipe Lessa
1e19d8625b Implement JOIN and ON clauses. Also add (?.). 2012-09-05 15:38:14 -03:00
Felipe Lessa
80d60bb9b6 Avoid using capitalized "Esqueleto" when referring to the library. 2012-09-04 18:37:02 -03:00
Felipe Lessa
31b4b0669f orderBy, asc, desc. 2012-09-04 18:12:40 -03:00
Felipe Lessa
c601613162 isNothing, just, nothing. 2012-09-04 18:12:25 -03:00
Felipe Lessa
df8279b306 Re-export all of GenericSql from Esqueleto. 2012-09-04 01:01:56 -03:00
Felipe Lessa
bb7775b672 Create a separate sqlSelectColCount. 2012-09-04 00:45:16 -03:00
Felipe Lessa
57c3b403d5 Avoid undefined. 2012-09-04 00:29:39 -03:00
Felipe Lessa
dc6bcda8e4 Correctly consume connection resources. 2012-09-04 00:27:47 -03:00
Felipe Lessa
7ebb2d87bf Throw PersistMarshalError instead of using fail. 2012-09-04 00:27:18 -03:00
Felipe Lessa
fdf9985142 Fix parens (silly bug). 2012-09-03 23:13:51 -03:00
Felipe Lessa
979ea1c6d1 Write FROM on the queries. 2012-09-03 23:13:40 -03:00
Felipe Lessa
670eebbc96 fromSingle is internal. 2012-09-03 23:13:19 -03:00
Felipe Lessa
1230245749 Manually avoid spurious warnings.
http://hackage.haskell.org/trac/ghc/ticket/6124
2012-09-03 21:40:28 -03:00
Felipe Lessa
ea4a58a970 Do not export internal functions from Database.Esqueleto. 2012-09-03 21:33:35 -03:00
Felipe Lessa
e1118c7676 Better re-exports (and improved docs). 2012-09-03 18:52:10 -03:00
Felipe Lessa
217b03d22e Export selectSource. 2012-09-03 18:45:20 -03:00
Felipe Lessa
531ca905fd Steal code from rawSql and stop using it.
Unfortunately we can't use rawSql, since we need explicit control
of the SELECT (i.e. we can't use "??").
2012-09-03 18:43:17 -03:00
Felipe Lessa
2986d0996e Nicer 'from' interface.
Instead of

  select $ do
    (x,y,z) <- from
    where_ (z^.f ==. y^.f)
    return (x, y^.f, z)

now you may write

  select $
  from $ \(x,y,z) -> do
    where_ (z^.f ==. y^.f)
    return (x, y^.f, z)

Now the only difference in reading order wrt. SQL is the return
on the bottom of the expression. =)

Note that this does not change at all the expressivity of the
language since

  oldFrom = from return
2012-09-03 17:03:07 -03:00