Copyright | (c) Eitan Chatav 2019 |
---|---|
Maintainer | eitan@morphism.tech |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
Logical expressions and operators
Synopsis
- type Condition outer commons grp schemas params from = Expression outer commons grp schemas params from (Null PGbool)
- true :: Expr (null PGbool)
- false :: Expr (null PGbool)
- not_ :: null PGbool :--> null PGbool
- (.&&) :: Operator (null PGbool) (null PGbool) (null PGbool)
- (.||) :: Operator (null PGbool) (null PGbool) (null PGbool)
- caseWhenThenElse :: [(Condition outer commons grp schemas params from, Expression outer commons grp schemas params from ty)] -> Expression outer commons grp schemas params from ty -> Expression outer commons grp schemas params from ty
- ifThenElse :: Condition outer commons grp schemas params from -> Expression outer commons grp schemas params from ty -> Expression outer commons grp schemas params from ty -> Expression outer commons grp schemas params from ty
Documentation
type Condition outer commons grp schemas params from = Expression outer commons grp schemas params from (Null PGbool) Source #
A Condition
is an Expression
, which can evaluate
to true
, false
or null_
. This is because SQL uses
a three valued logic.
(.&&) :: Operator (null PGbool) (null PGbool) (null PGbool) infixr 3 Source #
>>>
printSQL $ true .&& false
(TRUE AND FALSE)
(.||) :: Operator (null PGbool) (null PGbool) (null PGbool) infixr 2 Source #
>>>
printSQL $ true .|| false
(TRUE OR FALSE)
:: [(Condition outer commons grp schemas params from, Expression outer commons grp schemas params from ty)] | whens and thens |
-> Expression outer commons grp schemas params from ty | else |
-> Expression outer commons grp schemas params from ty |
>>>
:{
let expression :: Expression outer commons grp schemas params from (null 'PGint2) expression = caseWhenThenElse [(true, 1), (false, 2)] 3 in printSQL expression :} CASE WHEN TRUE THEN 1 WHEN FALSE THEN 2 ELSE 3 END
:: Condition outer commons grp schemas params from | |
-> Expression outer commons grp schemas params from ty | then |
-> Expression outer commons grp schemas params from ty | else |
-> Expression outer commons grp schemas params from ty |
>>>
:{
let expression :: Expression outer commons grp schemas params from (null 'PGint2) expression = ifThenElse true 1 0 in printSQL expression :} CASE WHEN TRUE THEN 1 ELSE 0 END