{-# LANGUAGE
OverloadedStrings
, RankNTypes
, TypeInType
, TypeOperators
#-}
module Squeal.PostgreSQL.Expression.Comparison
(
(.==)
, (./=)
, (.>=)
, (.<)
, (.<=)
, (.>)
, greatest
, least
, BetweenExpr
, between
, notBetween
, betweenSymmetric
, notBetweenSymmetric
, isDistinctFrom
, isNotDistinctFrom
, isTrue
, isNotTrue
, isFalse
, isNotFalse
, isUnknown
, isNotUnknown
) where
import Data.ByteString
import Squeal.PostgreSQL.Expression
import Squeal.PostgreSQL.Expression.Logic
import Squeal.PostgreSQL.Render
import Squeal.PostgreSQL.Type.Schema
(.==) :: Operator (null0 ty) (null1 ty) ('Null 'PGbool)
.== :: forall {k} (null0 :: k -> NullType) (ty :: k)
(null1 :: k -> NullType).
Operator (null0 ty) (null1 ty) ('Null 'PGbool)
(.==) = forall (ty0 :: NullType) (ty1 :: NullType) (ty2 :: NullType).
ByteString -> Operator ty0 ty1 ty2
unsafeBinaryOp ByteString
"="
infix 4 .==
(./=) :: Operator (null0 ty) (null1 ty) ('Null 'PGbool)
./= :: forall {k} (null0 :: k -> NullType) (ty :: k)
(null1 :: k -> NullType).
Operator (null0 ty) (null1 ty) ('Null 'PGbool)
(./=) = forall (ty0 :: NullType) (ty1 :: NullType) (ty2 :: NullType).
ByteString -> Operator ty0 ty1 ty2
unsafeBinaryOp ByteString
"<>"
infix 4 ./=
(.>=) :: Operator (null0 ty) (null1 ty) ('Null 'PGbool)
.>= :: forall {k} (null0 :: k -> NullType) (ty :: k)
(null1 :: k -> NullType).
Operator (null0 ty) (null1 ty) ('Null 'PGbool)
(.>=) = forall (ty0 :: NullType) (ty1 :: NullType) (ty2 :: NullType).
ByteString -> Operator ty0 ty1 ty2
unsafeBinaryOp ByteString
">="
infix 4 .>=
(.<) :: Operator (null0 ty) (null1 ty) ('Null 'PGbool)
.< :: forall {k} (null0 :: k -> NullType) (ty :: k)
(null1 :: k -> NullType).
Operator (null0 ty) (null1 ty) ('Null 'PGbool)
(.<) = forall (ty0 :: NullType) (ty1 :: NullType) (ty2 :: NullType).
ByteString -> Operator ty0 ty1 ty2
unsafeBinaryOp ByteString
"<"
infix 4 .<
(.<=) :: Operator (null0 ty) (null1 ty) ('Null 'PGbool)
.<= :: forall {k} (null0 :: k -> NullType) (ty :: k)
(null1 :: k -> NullType).
Operator (null0 ty) (null1 ty) ('Null 'PGbool)
(.<=) = forall (ty0 :: NullType) (ty1 :: NullType) (ty2 :: NullType).
ByteString -> Operator ty0 ty1 ty2
unsafeBinaryOp ByteString
"<="
infix 4 .<=
(.>) :: Operator (null0 ty) (null1 ty) ('Null 'PGbool)
.> :: forall {k} (null0 :: k -> NullType) (ty :: k)
(null1 :: k -> NullType).
Operator (null0 ty) (null1 ty) ('Null 'PGbool)
(.>) = forall (ty0 :: NullType) (ty1 :: NullType) (ty2 :: NullType).
ByteString -> Operator ty0 ty1 ty2
unsafeBinaryOp ByteString
">"
infix 4 .>
greatest :: FunctionVar ty ty ty
greatest :: forall (ty :: NullType). FunctionVar ty ty ty
greatest = forall (x0 :: NullType) (x1 :: NullType) (y :: NullType).
ByteString -> FunctionVar x0 x1 y
unsafeFunctionVar ByteString
"GREATEST"
least :: FunctionVar ty ty ty
least :: forall (ty :: NullType). FunctionVar ty ty ty
least = forall (x0 :: NullType) (x1 :: NullType) (y :: NullType).
ByteString -> FunctionVar x0 x1 y
unsafeFunctionVar ByteString
"LEAST"
type BetweenExpr
= forall grp lat with db params from ty
. Expression grp lat with db params from ty
-> ( Expression grp lat with db params from ty
, Expression grp lat with db params from ty )
-> Condition grp lat with db params from
unsafeBetweenExpr :: ByteString -> BetweenExpr
unsafeBetweenExpr :: ByteString -> BetweenExpr
unsafeBetweenExpr ByteString
fun Expression grp lat with db params from ty
a (Expression grp lat with db params from ty
x,Expression grp lat with db params from ty
y) = forall (grp :: Grouping) (lat :: FromType) (with :: FromType)
(db :: SchemasType) (params :: [NullType]) (from :: FromType)
(ty :: NullType).
ByteString -> Expression grp lat with db params from ty
UnsafeExpression forall a b. (a -> b) -> a -> b
$
forall sql. RenderSQL sql => sql -> ByteString
renderSQL Expression grp lat with db params from ty
a ByteString -> ByteString -> ByteString
<+> ByteString
fun ByteString -> ByteString -> ByteString
<+> forall sql. RenderSQL sql => sql -> ByteString
renderSQL Expression grp lat with db params from ty
x ByteString -> ByteString -> ByteString
<+> ByteString
"AND" ByteString -> ByteString -> ByteString
<+> forall sql. RenderSQL sql => sql -> ByteString
renderSQL Expression grp lat with db params from ty
y
between :: BetweenExpr
between :: BetweenExpr
between = ByteString -> BetweenExpr
unsafeBetweenExpr ByteString
"BETWEEN"
notBetween :: BetweenExpr
notBetween :: BetweenExpr
notBetween = ByteString -> BetweenExpr
unsafeBetweenExpr ByteString
"NOT BETWEEN"
betweenSymmetric :: BetweenExpr
betweenSymmetric :: BetweenExpr
betweenSymmetric = ByteString -> BetweenExpr
unsafeBetweenExpr ByteString
"BETWEEN SYMMETRIC"
notBetweenSymmetric :: BetweenExpr
notBetweenSymmetric :: BetweenExpr
notBetweenSymmetric = ByteString -> BetweenExpr
unsafeBetweenExpr ByteString
"NOT BETWEEN SYMMETRIC"
isDistinctFrom :: Operator (null0 ty) (null1 ty) (null 'PGbool)
isDistinctFrom :: forall {k} (null0 :: k -> NullType) (ty :: k)
(null1 :: k -> NullType) (null :: PGType -> NullType).
Operator (null0 ty) (null1 ty) (null 'PGbool)
isDistinctFrom = forall (ty0 :: NullType) (ty1 :: NullType) (ty2 :: NullType).
ByteString -> Operator ty0 ty1 ty2
unsafeBinaryOp ByteString
"IS DISTINCT FROM"
isNotDistinctFrom :: Operator (null0 ty) (null1 ty) (null 'PGbool)
isNotDistinctFrom :: forall {k} (null0 :: k -> NullType) (ty :: k)
(null1 :: k -> NullType) (null :: PGType -> NullType).
Operator (null0 ty) (null1 ty) (null 'PGbool)
isNotDistinctFrom = forall (ty0 :: NullType) (ty1 :: NullType) (ty2 :: NullType).
ByteString -> Operator ty0 ty1 ty2
unsafeBinaryOp ByteString
"IS NOT DISTINCT FROM"
isTrue :: null0 'PGbool --> null1 'PGbool
isTrue :: forall (null0 :: PGType -> NullType) (null1 :: PGType -> NullType).
null0 'PGbool --> null1 'PGbool
isTrue = forall (x :: NullType) (y :: NullType). ByteString -> x --> y
unsafeRightOp ByteString
"IS TRUE"
isNotTrue :: null0 'PGbool --> null1 'PGbool
isNotTrue :: forall (null0 :: PGType -> NullType) (null1 :: PGType -> NullType).
null0 'PGbool --> null1 'PGbool
isNotTrue = forall (x :: NullType) (y :: NullType). ByteString -> x --> y
unsafeRightOp ByteString
"IS NOT TRUE"
isFalse :: null0 'PGbool --> null1 'PGbool
isFalse :: forall (null0 :: PGType -> NullType) (null1 :: PGType -> NullType).
null0 'PGbool --> null1 'PGbool
isFalse = forall (x :: NullType) (y :: NullType). ByteString -> x --> y
unsafeRightOp ByteString
"IS FALSE"
isNotFalse :: null0 'PGbool --> null1 'PGbool
isNotFalse :: forall (null0 :: PGType -> NullType) (null1 :: PGType -> NullType).
null0 'PGbool --> null1 'PGbool
isNotFalse = forall (x :: NullType) (y :: NullType). ByteString -> x --> y
unsafeRightOp ByteString
"IS NOT FALSE"
isUnknown :: null0 'PGbool --> null1 'PGbool
isUnknown :: forall (null0 :: PGType -> NullType) (null1 :: PGType -> NullType).
null0 'PGbool --> null1 'PGbool
isUnknown = forall (x :: NullType) (y :: NullType). ByteString -> x --> y
unsafeRightOp ByteString
"IS UNKNOWN"
isNotUnknown :: null0 'PGbool --> null1 'PGbool
isNotUnknown :: forall (null0 :: PGType -> NullType) (null1 :: PGType -> NullType).
null0 'PGbool --> null1 'PGbool
isNotUnknown = forall (x :: NullType) (y :: NullType). ByteString -> x --> y
unsafeRightOp ByteString
"IS NOT UNKNOWN"