on dev help sign in
sql expressions and queries as functions
commitb0f6083c8a333df7443237f2a9f940f58e00c6da authorEitan Chatav <eitan@EEM109LMBP-1.local> dateMon 2 Sep 2019, 11:56 (7 years ago) parent4a6ab04
1 file changed+10−8
squeal-postgresql/src/Squeal/PostgreSQL/Definition.hs+10−8
squeal-postgresql/src/Squeal/PostgreSQL/Definition.hs+10−8
@@ -19,6 +19,7 @@ Squeal data definition language.
1919 , GADTs
2020 , LambdaCase
2121 , MultiParamTypeClasses
22+ , OverloadedLabels
2223 , OverloadedStrings
2324 , RankNTypes
2425 , ScopedTypeVariables
@@ -61,8 +62,8 @@ module Squeal.PostgreSQL.Definition
6162 , OnDeleteClause (..)
6263 , OnUpdateClause (..)
6364 , FunctionDefinition(..)
64− , languageSql
65− , languageSqlSet
65+ , languageSqlExpr
66+ , languageSqlQuery
6667 -- ** Drop
6768 , dropSchema
6869 , dropTable
@@ -1161,16 +1162,17 @@ createOrReplaceFunction fun args ret fundef = UnsafeDefinition $
11611162 <+> parenthesized (renderCommaSeparated renderSQL args)
11621163 <+> "RETURNS" <+> renderSQL ret <+> renderSQL fundef <> ";"
11631164
1164−languageSql
1165− :: Query '[] '[] schemas args '[col ::: ret]
1165+languageSqlExpr
1166+ :: Expression '[] '[] 'Ungrouped schemas args '[] ret
11661167 -> FunctionDefinition schemas args ('Returns ret)
1167−languageSql qry = UnsafeFunctionDefinition $
1168− "language sql as" <+> "$$" <+> renderSQL qry <+> "$$"
1168+languageSqlExpr expr = UnsafeFunctionDefinition $
1169+ "language sql as"
1170+ <+> "$$" <+> renderSQL (values_ (expr `as` #ret :* Nil)) <+> "$$"
11691171
1170−languageSqlSet
1172+languageSqlQuery
11711173 :: Query '[] '[] schemas args rets
11721174 -> FunctionDefinition schemas args ('ReturnsTable rets)
1173−languageSqlSet qry = UnsafeFunctionDefinition $
1175+languageSqlQuery qry = UnsafeFunctionDefinition $
11741176 "language sql as" <+> "$$" <+> renderSQL qry <+> "$$"
11751177
11761178createSetFunction