opaleye-0.9.5.1: An SQL-generating DSL targeting PostgreSQL
Safe HaskellSafe-Inferred
LanguageHaskell2010

Opaleye.Internal.Join

Synopsis

Documentation

newtype NullMaker a b Source #

Constructors

NullMaker (a -> b) 

Instances

Instances details
ProductProfunctor NullMaker Source # 
Instance details

Defined in Opaleye.Internal.Join

Methods

purePP :: b -> NullMaker a b #

(****) :: NullMaker a (b -> c) -> NullMaker a b -> NullMaker a c #

empty :: NullMaker () () #

(***!) :: NullMaker a b -> NullMaker a' b' -> NullMaker (a, a') (b, b') #

Profunctor NullMaker Source # 
Instance details

Defined in Opaleye.Internal.Join

Methods

dimap :: (a -> b) -> (c -> d) -> NullMaker b c -> NullMaker a d #

lmap :: (a -> b) -> NullMaker b c -> NullMaker a c #

rmap :: (b -> c) -> NullMaker a b -> NullMaker a c #

(#.) :: forall a b c q. Coercible c b => q b c -> NullMaker a b -> NullMaker a c #

(.#) :: forall a b c q. Coercible b a => NullMaker b c -> q a b -> NullMaker a c #

Default NullMaker (Field a) (FieldNullable a) Source # 
Instance details

Defined in Opaleye.Internal.Join

Methods

def :: NullMaker (Field a) (FieldNullable a) #

Default NullMaker (FieldNullable a) (FieldNullable a) Source # 
Instance details

Defined in Opaleye.Internal.Join

Applicative (NullMaker a) Source # 
Instance details

Defined in Opaleye.Internal.Join

Methods

pure :: a0 -> NullMaker a a0 #

(<*>) :: NullMaker a (a0 -> b) -> NullMaker a a0 -> NullMaker a b #

liftA2 :: (a0 -> b -> c) -> NullMaker a a0 -> NullMaker a b -> NullMaker a c #

(*>) :: NullMaker a a0 -> NullMaker a b -> NullMaker a b #

(<*) :: NullMaker a a0 -> NullMaker a b -> NullMaker a a0 #

Functor (NullMaker a) Source # 
Instance details

Defined in Opaleye.Internal.Join

Methods

fmap :: (a0 -> b) -> NullMaker a a0 -> NullMaker a b #

(<$) :: a0 -> NullMaker a b -> NullMaker a a0 #

toNullable :: NullMaker a b -> a -> b Source #

joinExplicit :: Unpackspec columnsA columnsA -> Unpackspec columnsB columnsB -> (columnsA -> returnedColumnsA) -> (columnsB -> returnedColumnsB) -> JoinType -> Query columnsA -> Query columnsB -> ((columnsA, columnsB) -> Field PGBool) -> Query (returnedColumnsA, returnedColumnsB) Source #

leftJoinAExplicit :: Unpackspec a a -> NullMaker a nullableA -> Query a -> QueryArr (a -> Field PGBool) nullableA Source #

leftJoinInTermsOfOptionalRestrict :: Default Unpackspec fieldsR fieldsR => Select fieldsL -> Select fieldsR -> ((fieldsL, fieldsR) -> Field SqlBool) -> Select (fieldsL, MaybeFields fieldsR) Source #

An example to demonstrate how the functionality of LEFT JOIN can be recovered using optionalRestrict.