Copyright | (c) Eitan Chatav 2019 |
---|---|
Maintainer | [email protected] |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
Squeal.PostgreSQL.Expression.Composite
Contents
Description
composite functions
Synopsis
- row :: SListI row => NP (Aliased (Expression grp lat with db params from)) row -> Expression grp lat with db params from (null (PGcomposite row))
- rowStar :: Has tab from row => Alias tab -> Expression grp lat with db params from (null (PGcomposite row))
- field :: (Has sch db schema, Has tydef schema (Typedef (PGcomposite row)), Has field row ty) => QualifiedAlias sch tydef -> Alias field -> Expression grp lat with db params from (NotNull (PGcomposite row)) -> Expression grp lat with db params from ty
Composite Functions
Arguments
:: SListI row | |
=> NP (Aliased (Expression grp lat with db params from)) row | zero or more expressions for the row field values |
-> Expression grp lat with db params from (null (PGcomposite row)) |
A row constructor is an expression that builds a row value (also called a composite value) using values for its member fields.
>>>
:{
type Complex = 'PGcomposite '[ "real" ::: 'NotNull 'PGfloat8 , "imaginary" ::: 'NotNull 'PGfloat8 ] :}
>>>
let i = row (0 `as` #real :* 1 `as` #imaginary) :: Expression grp lat with db params from ('NotNull Complex)
>>>
printSQL i
ROW((0.0 :: float8), (1.0 :: float8))
rowStar :: Has tab from row => Alias tab -> Expression grp lat with db params from (null (PGcomposite row)) Source #
A row constructor on all columns in a table expression.
Arguments
:: (Has sch db schema, Has tydef schema (Typedef (PGcomposite row)), Has field row ty) | |
=> QualifiedAlias sch tydef | row type |
-> Alias field | field name |
-> Expression grp lat with db params from (NotNull (PGcomposite row)) | |
-> Expression grp lat with db params from ty |
>>>
:{
type Complex = 'PGcomposite '[ "real" ::: 'NotNull 'PGfloat8 , "imaginary" ::: 'NotNull 'PGfloat8 ] type Schema = '["complex" ::: 'Typedef Complex] :}
>>>
let i = row (0 `as` #real :* 1 `as` #imaginary) :: Expression lat '[] grp (Public Schema) from params ('NotNull Complex)
>>>
printSQL $ i & field #complex #imaginary
(ROW((0.0 :: float8), (1.0 :: float8))::"complex")."imaginary"