mirror of
https://github.com/ilyakooo0/squeal.git
synced 2024-09-11 13:57:29 +03:00
sql expressions and queries as functions
This commit is contained in:
parent
4a6ab0481c
commit
b0f6083c8a
@ -19,6 +19,7 @@ Squeal data definition language.
|
||||
, GADTs
|
||||
, LambdaCase
|
||||
, MultiParamTypeClasses
|
||||
, OverloadedLabels
|
||||
, OverloadedStrings
|
||||
, RankNTypes
|
||||
, ScopedTypeVariables
|
||||
@ -61,8 +62,8 @@ module Squeal.PostgreSQL.Definition
|
||||
, OnDeleteClause (..)
|
||||
, OnUpdateClause (..)
|
||||
, FunctionDefinition(..)
|
||||
, languageSql
|
||||
, languageSqlSet
|
||||
, languageSqlExpr
|
||||
, languageSqlQuery
|
||||
-- ** Drop
|
||||
, dropSchema
|
||||
, dropTable
|
||||
@ -1161,16 +1162,17 @@ createOrReplaceFunction fun args ret fundef = UnsafeDefinition $
|
||||
<+> parenthesized (renderCommaSeparated renderSQL args)
|
||||
<+> "RETURNS" <+> renderSQL ret <+> renderSQL fundef <> ";"
|
||||
|
||||
languageSql
|
||||
:: Query '[] '[] schemas args '[col ::: ret]
|
||||
languageSqlExpr
|
||||
:: Expression '[] '[] 'Ungrouped schemas args '[] ret
|
||||
-> FunctionDefinition schemas args ('Returns ret)
|
||||
languageSql qry = UnsafeFunctionDefinition $
|
||||
"language sql as" <+> "$$" <+> renderSQL qry <+> "$$"
|
||||
languageSqlExpr expr = UnsafeFunctionDefinition $
|
||||
"language sql as"
|
||||
<+> "$$" <+> renderSQL (values_ (expr `as` #ret :* Nil)) <+> "$$"
|
||||
|
||||
languageSqlSet
|
||||
languageSqlQuery
|
||||
:: Query '[] '[] schemas args rets
|
||||
-> FunctionDefinition schemas args ('ReturnsTable rets)
|
||||
languageSqlSet qry = UnsafeFunctionDefinition $
|
||||
languageSqlQuery qry = UnsafeFunctionDefinition $
|
||||
"language sql as" <+> "$$" <+> renderSQL qry <+> "$$"
|
||||
|
||||
createSetFunction
|
||||
|
Loading…
Reference in New Issue
Block a user