@@ -99,9 +99,9 @@ let
9999 '[]
100100 '["col" ::: 'Null 'PGint4]
101101 query = selectStar (from (table #tab))
102−in renderQuery query
102+in printSQL query
103103:}
104−"SELECT * FROM \"tab\" AS \"tab\""
104+SELECT * FROM "tab" AS "tab"
105105
106106restricted query:
107107
@@ -120,9 +120,9 @@ let
120120 ( from (table #tab)
121121 & where_ (#col1 .> #col2)
122122 & where_ (#col2 .> 0) )
123−in renderQuery query
123+in printSQL query
124124:}
125−"SELECT (\"col1\" + \"col2\") AS \"sum\", \"col1\" AS \"col1\" FROM \"tab\" AS \"tab\" WHERE ((\"col1\" > \"col2\") AND (\"col2\" > 0))"
125+SELECT ("col1" + "col2") AS "sum", "col1" AS "col1" FROM "tab" AS "tab" WHERE (("col1" > "col2") AND ("col2" > 0))
126126
127127subquery:
128128
@@ -135,9 +135,9 @@ let
135135 query =
136136 selectStar
137137 (from (subquery (selectStar (from (table #tab)) `As` #sub)))
138−in renderQuery query
138+in printSQL query
139139:}
140−"SELECT * FROM (SELECT * FROM \"tab\" AS \"tab\") AS \"sub\""
140+SELECT * FROM (SELECT * FROM "tab" AS "tab") AS "sub"
141141
142142limits and offsets:
143143
@@ -149,9 +149,9 @@ let
149149 '["col" ::: 'Null 'PGint4]
150150 query = selectStar
151151 (from (table #tab) & limit 100 & offset 2 & limit 50 & offset 2)
152−in renderQuery query
152+in printSQL query
153153:}
154−"SELECT * FROM \"tab\" AS \"tab\" LIMIT 50 OFFSET 4"
154+SELECT * FROM "tab" AS "tab" LIMIT 50 OFFSET 4
155155
156156parameterized query:
157157
@@ -163,9 +163,9 @@ let
163163 '["col" ::: 'NotNull 'PGfloat8]
164164 query = selectStar
165165 (from (table #tab) & where_ (#col .> param @1))
166−in renderQuery query
166+in printSQL query
167167:}
168−"SELECT * FROM \"tab\" AS \"tab\" WHERE (\"col\" > ($1 :: float8))"
168+SELECT * FROM "tab" AS "tab" WHERE ("col" > ($1 :: float8))
169169
170170aggregation query:
171171
@@ -183,9 +183,9 @@ let
183183 ( from (table (#tab `As` #table1))
184184 & group (By #col1 :* Nil)
185185 & having (#col1 + sum_ #col2 .> 1) )
186−in renderQuery query
186+in printSQL query
187187:}
188−"SELECT sum(\"col2\") AS \"sum\", \"col1\" AS \"col1\" FROM \"tab\" AS \"table1\" GROUP BY \"col1\" HAVING ((\"col1\" + sum(\"col2\")) > 1)"
188+SELECT sum("col2") AS "sum", "col1" AS "col1" FROM "tab" AS "table1" GROUP BY "col1" HAVING (("col1" + sum("col2")) > 1)
189189
190190sorted query:
191191
@@ -197,9 +197,9 @@ let
197197 '["col" ::: 'Null 'PGint4]
198198 query = selectStar
199199 (from (table #tab) & orderBy [#col & AscNullsFirst])
200−in renderQuery query
200+in printSQL query
201201:}
202−"SELECT * FROM \"tab\" AS \"tab\" ORDER BY \"col\" ASC NULLS FIRST"
202+SELECT * FROM "tab" AS "tab" ORDER BY "col" ASC NULLS FIRST
203203
204204joins:
205205
@@ -241,9 +241,9 @@ let
241241 (#o ! #customer_id .== #c ! #id)
242242 & innerJoin (table (#shippers `As` #s))
243243 (#o ! #shipper_id .== #s ! #id)) )
244−in renderQuery query
244+in printSQL query
245245:}
246−"SELECT \"o\".\"price\" AS \"order_price\", \"c\".\"name\" AS \"customer_name\", \"s\".\"name\" AS \"shipper_name\" FROM \"orders\" AS \"o\" INNER JOIN \"customers\" AS \"c\" ON (\"o\".\"customer_id\" = \"c\".\"id\") INNER JOIN \"shippers\" AS \"s\" ON (\"o\".\"shipper_id\" = \"s\".\"id\")"
246+SELECT "o"."price" AS "order_price", "c"."name" AS "customer_name", "s"."name" AS "shipper_name" FROM "orders" AS "o" INNER JOIN "customers" AS "c" ON ("o"."customer_id" = "c"."id") INNER JOIN "shippers" AS "s" ON ("o"."shipper_id" = "s"."id")
247247
248248self-join:
249249
@@ -255,9 +255,9 @@ let
255255 '["col" ::: 'Null 'PGint4]
256256 query = selectDotStar #t1
257257 (from (table (#tab `As` #t1) & crossJoin (table (#tab `As` #t2))))
258−in renderQuery query
258+in printSQL query
259259:}
260−"SELECT \"t1\".* FROM \"tab\" AS \"t1\" CROSS JOIN \"tab\" AS \"t2\""
260+SELECT "t1".* FROM "tab" AS "t1" CROSS JOIN "tab" AS "t2"
261261
262262set operations:
263263
@@ -271,9 +271,9 @@ let
271271 selectStar (from (table #tab))
272272 `unionAll`
273273 selectStar (from (table #tab))
274−in renderQuery query
274+in printSQL query
275275:}
276−"(SELECT * FROM \"tab\" AS \"tab\") UNION ALL (SELECT * FROM \"tab\" AS \"tab\")"
276+(SELECT * FROM "tab" AS "tab") UNION ALL (SELECT * FROM "tab" AS "tab")
277277-}
278278newtype Query
279279 (schema :: SchemaType)
@@ -281,6 +281,7 @@ newtype Query
281281 (columns :: RelationType)
282282 = UnsafeQuery { renderQuery :: ByteString }
283283 deriving (GHC.Generic,Show,Eq,Ord,NFData)
284+instance RenderSQL (Query schema params columns) where renderSQL = renderQuery
284285
285286-- | The results of two queries can be combined using the set operation
286287-- `union`. Duplicate rows are eliminated.
@@ -434,8 +435,8 @@ selectDistinctDotStar rel relations = UnsafeQuery $
434435--
435436-- >>> type Row = '["a" ::: 'NotNull 'PGint4, "b" ::: 'NotNull 'PGtext]
436437-- >>> let query = values (1 `As` #a :* "one" `As` #b :* Nil) [] :: Query '[] '[] Row
437−-- >>> renderQuery query
438−-- "SELECT * FROM (VALUES (1, E'one')) AS t (\"a\", \"b\")"
438+-- >>> printSQL query
439+-- SELECT * FROM (VALUES (1, E'one')) AS t ("a", "b")
439440values
440441 :: SListI cols
441442 => NP (Aliased (Expression schema '[] 'Ungrouped params)) cols