on dev help sign in
simplify withRecursive
commit51afec42674e65d448feceb8ad68d2798b1ac8fe authorEitan Chatav <eitan@Eitans-MacBook-Pro.local> dateMon 15 Apr 2019, 09:36 (8 years ago) parent151df34
2 files changed+2−12
squeal-postgresql/src/Squeal/PostgreSQL/Alias.hs−8 squeal-postgresql/src/Squeal/PostgreSQL/Query.hs+2−4
squeal-postgresql/src/Squeal/PostgreSQL/Alias.hs−8
@@ -40,7 +40,6 @@ module Squeal.PostgreSQL.Alias
4040 , Aliased (As)
4141 , Aliasable (as)
4242 , renderAliased
43− , RenderFields (..)
4443 , Has
4544 , HasUnique
4645 , HasAll
@@ -167,13 +166,6 @@ renderAliased
167166renderAliased render (expression `As` alias) =
168167 render expression <> " AS " <> renderSQL alias
169168
170−class RenderFields (row :: [(Symbol, ty)]) where
171− renderFields :: p row -> [ByteString]
172−instance RenderFields '[] where renderFields _ = []
173−instance (KnownSymbol col, RenderFields row)
174− => RenderFields (col ::: ty ': row) where
175− renderFields _ = renderSQL (Alias @col) : renderFields (SOP.Proxy @row)
176−
177169-- | @HasUnique alias fields field@ is a constraint that proves that
178170-- @fields@ is a singleton of @alias ::: field@.
179171type HasUnique alias fields field = fields ~ '[alias ::: field]
squeal-postgresql/src/Squeal/PostgreSQL/Query.hs+2−4
@@ -986,12 +986,10 @@ instance With (Query outer) where
986986WITH RECURSIVE "t"("n") AS ((SELECT * FROM (VALUES (1)) AS t ("n")) UNION ALL (SELECT ("n" + 1) AS "n" FROM "t" AS "t" WHERE ("n" < 100))) SELECT sum(ALL "n") AS "getSum" FROM "t" AS "t"
987987-}
988988withRecursive
989− :: RenderFields recursive
990− => Aliased (Query outer (cte ::: recursive ': commons) schemas params) (cte ::: recursive)
991− -> Query outer (cte ::: recursive ': commons) schemas params row
989+ :: Aliased (Query outer (recursive ': commons) schemas params) recursive
990+ -> Query outer (recursive ': commons) schemas params row
992991 -> Query outer commons schemas params row
993992withRecursive (recursive `As` cte) query = UnsafeQuery $
994993 "WITH RECURSIVE" <+> renderSQL cte
995− <> parenthesized (commaSeparated (renderFields recursive))
996994 <+> "AS" <+> parenthesized (renderSQL recursive)
997995 <+> renderSQL query