squeal-postgresql-0.9.0.0: Squeal PostgreSQL Library
Copyright(c) Eitan Chatav 2019
Maintainereitan@morphism.tech
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Squeal.PostgreSQL.Expression.Logic

Description

logical expressions and operators

Synopsis

Condition

type Condition grp lat with db params from = Expression grp lat with db 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.

true :: Expr (null 'PGbool) Source #

>>> printSQL true
TRUE

false :: Expr (null 'PGbool) Source #

>>> printSQL false
FALSE

Logic

not_ :: null 'PGbool --> null 'PGbool Source #

>>> printSQL $ not_ true
(NOT TRUE)

(.&&) :: 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)

Conditional

caseWhenThenElse Source #

Arguments

:: [(Condition grp lat with db params from, Expression grp lat with db params from ty)]

whens and thens

-> Expression grp lat with db params from ty

else

-> Expression grp lat with db params from ty 
>>> :{
let
  expression :: Expression grp lat with db params from (null 'PGint2)
  expression = caseWhenThenElse [(true, 1), (false, 2)] 3
in printSQL expression
:}
CASE WHEN TRUE THEN (1 :: int2) WHEN FALSE THEN (2 :: int2) ELSE (3 :: int2) END

ifThenElse Source #

Arguments

:: Condition grp lat with db params from 
-> Expression grp lat with db params from ty

then

-> Expression grp lat with db params from ty

else

-> Expression grp lat with db params from ty 
>>> :{
let
  expression :: Expression grp lat with db params from (null 'PGint2)
  expression = ifThenElse true 1 0
in printSQL expression
:}
CASE WHEN TRUE THEN (1 :: int2) ELSE (0 :: int2) END