| Copyright | (c) Eitan Chatav 2019 |
|---|---|
| Maintainer | eitan@morphism.tech |
| Stability | experimental |
| Safe Haskell | None |
| Language | Haskell2010 |
Squeal.PostgreSQL.Expression.Logic
Description
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)
Arguments
| :: [(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
Arguments
| :: 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