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

Opaleye.ToFields

Synopsis

Creating Fields from Haskell values

toFields :: Default ToFields haskells fields => haskells -> fields Source #

toFields provides a convenient typeclass wrapper around the Field_ creation functions in Opaleye.SqlTypes. Besides convenience it doesn't provide any additional functionality.

It can be used with functions like runInsert to insert custom Haskell types into the database. The following is an example of a function for inserting custom types.

  customInsert
     :: ( Default ToFields haskells fields )
     => Connection
     -> Table fields fields'
     -> [haskells]
     -> IO Int64
  customInsert conn table haskells = runInsert_ conn Insert {
        iTable      = table
      , iRows       = map toFields haskells
      , iReturning  = rCount
      , iOnConflict = Nothing
    }

In order to use this function with your custom types, you need to define an instance of Default ToFields for your custom types.

toFieldsI :: Default (Inferrable ToFields) haskells fields => haskells -> fields Source #

Version of toFields with better type inference

Creating ToFields

toToFields :: (haskells -> fields) -> ToFields haskells fields Source #

Explicit versions

toFieldsExplicit :: ToFields haskells fields -> haskells -> fields Source #

Adaptor

data ToFields haskells fields Source #

A way of turning Haskell values of type haskells into SQL fields. Use it with toFields.

Instances

Instances details
ProductProfunctor ToFields Source # 
Instance details

Defined in Opaleye.Internal.Constant

Methods

purePP :: b -> ToFields a b #

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

empty :: ToFields () () #

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

SumProfunctor ToFields Source # 
Instance details

Defined in Opaleye.Internal.Constant

Methods

(+++!) :: ToFields a b -> ToFields a' b' -> ToFields (Either a a') (Either b b') #

Profunctor ToFields Source # 
Instance details

Defined in Opaleye.Internal.Constant

Methods

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

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

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

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

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

Default ToFields Value (Field SqlJson) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields Value (Field SqlJsonb) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields Int32 (Field SqlInt4) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields Int64 (Field SqlInt8) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields ByteString (Field SqlBytea) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields ByteString (Field SqlJson) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields ByteString (Field SqlJsonb) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields ByteString (Field SqlBytea) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields ByteString (Field SqlJson) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields ByteString (Field SqlJsonb) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields Scientific (Field SqlNumeric) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields Text (Field SqlText) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields Text (Field SqlVarcharN) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields Text (Field SqlText) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields Text (Field SqlVarcharN) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields Day (Field SqlDate) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields UTCTime (Field SqlTimestamptz) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields CalendarDiffTime (Field SqlInterval) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields LocalTime (Field SqlTimestamp) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields TimeOfDay (Field SqlTime) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields ZonedTime (Field SqlTimestamptz) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields UUID (Field SqlUuid) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields String (Field SqlText) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields String (Field SqlVarcharN) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields Bool (Field SqlBool) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields Double (Field SqlFloat8) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields Int (Field SqlInt4) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields (CI Text) (Field SqlCitext) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields (CI Text) (Field SqlCitext) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields (Field a) (Field a) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Methods

def :: ToFields (Field a) (Field a) #

ToJSON a => Default ToFields (Aeson a) (Field SqlJson) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Methods

def :: ToFields (Aeson a) (Field SqlJson) #

ToJSON a => Default ToFields (Aeson a) (Field SqlJsonb) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Methods

def :: ToFields (Aeson a) (Field SqlJsonb) #

Default ToFields (PGRange Int64) (Field (SqlRange SqlInt8)) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields (PGRange Scientific) (Field (SqlRange SqlNumeric)) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields (PGRange Day) (Field (SqlRange SqlDate)) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields (PGRange UTCTime) (Field (SqlRange SqlTimestamptz)) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields (PGRange LocalTime) (Field (SqlRange SqlTimestamp)) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Default ToFields (PGRange Int) (Field (SqlRange SqlInt4)) Source # 
Instance details

Defined in Opaleye.Internal.Constant

(Default ToFields a b, Default Nullspec a b) => Default ToFields (Maybe a) (MaybeFields b) Source # 
Instance details

Defined in Opaleye.Internal.MaybeFields

Methods

def :: ToFields (Maybe a) (MaybeFields b) #

Default ToFields haskell (Field sql) => Default ToFields (Maybe haskell) (FieldNullable sql) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Methods

def :: ToFields (Maybe haskell) (FieldNullable sql) #

Default ToFields haskell (Field_ n sql) => Default ToFields (Maybe haskell) (Maybe (Field_ n sql)) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Methods

def :: ToFields (Maybe haskell) (Maybe (Field_ n sql)) #

(Default ToFields a (Field_ n b), IsSqlType b) => Default ToFields [a] (Field (SqlArray_ n b)) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Methods

def :: ToFields [a] (Field (SqlArray_ n b)) #

Applicative (ToFields a) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Methods

pure :: a0 -> ToFields a a0 #

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

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

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

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

Functor (ToFields a) Source # 
Instance details

Defined in Opaleye.Internal.Constant

Methods

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

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

Field SqlInt4 ~ cSqlInt4 => Default (Inferrable ToFields) Int32 cSqlInt4 Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields Int32 cSqlInt4 #

Field SqlInt8 ~ cSqlInt8 => Default (Inferrable ToFields) Int64 cSqlInt8 Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields Int64 cSqlInt8 #

Field SqlBytea ~ cSqlBytea => Default (Inferrable ToFields) ByteString cSqlBytea Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields ByteString cSqlBytea #

Field SqlBytea ~ cSqlBytea => Default (Inferrable ToFields) ByteString cSqlBytea Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields ByteString cSqlBytea #

Field SqlNumeric ~ cSqlNumeric => Default (Inferrable ToFields) Scientific cSqlNumeric Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields Scientific cSqlNumeric #

Field SqlText ~ cSqlText => Default (Inferrable ToFields) Text cSqlText Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields Text cSqlText #

Field SqlText ~ cSqlText => Default (Inferrable ToFields) Text cSqlText Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields Text cSqlText #

Field SqlDate ~ cSqlDate => Default (Inferrable ToFields) Day cSqlDate Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields Day cSqlDate #

Field SqlTimestamptz ~ cSqlTimestamptz => Default (Inferrable ToFields) UTCTime cSqlTimestamptz Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields UTCTime cSqlTimestamptz #

Field SqlInterval ~ cSqlInterval => Default (Inferrable ToFields) CalendarDiffTime cSqlInterval Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields CalendarDiffTime cSqlInterval #

Field SqlTime ~ cSqlTime => Default (Inferrable ToFields) TimeOfDay cSqlTime Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields TimeOfDay cSqlTime #

Field SqlTimestamptz ~ cSqlTimestamptz => Default (Inferrable ToFields) ZonedTime cSqlTimestamptz Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields ZonedTime cSqlTimestamptz #

Field SqlUuid ~ cSqlUuid => Default (Inferrable ToFields) UUID cSqlUuid Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields UUID cSqlUuid #

Field SqlText ~ cSqlText => Default (Inferrable ToFields) String cSqlText Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields String cSqlText #

Field SqlBool ~ cSqlBool => Default (Inferrable ToFields) Bool cSqlBool Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields Bool cSqlBool #

Field SqlFloat8 ~ cSqlFloat8 => Default (Inferrable ToFields) Double cSqlFloat8 Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields Double cSqlFloat8 #

Field SqlInt4 ~ cSqlInt4 => Default (Inferrable ToFields) Int cSqlInt4 Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields Int cSqlInt4 #

Field SqlCitext ~ cSqlCitext => Default (Inferrable ToFields) (CI Text) cSqlCitext Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields (CI Text) cSqlCitext #

Field SqlCitext ~ cSqlCitext => Default (Inferrable ToFields) (CI Text) cSqlCitext Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields (CI Text) cSqlCitext #

Field a ~ fieldA => Default (Inferrable ToFields) (Field a) fieldA Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields (Field a) fieldA #

Field (SqlRange SqlInt8) ~ cRangeInt8 => Default (Inferrable ToFields) (PGRange Int64) cRangeInt8 Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields (PGRange Int64) cRangeInt8 #

Field (SqlRange SqlNumeric) ~ cRangeScientific => Default (Inferrable ToFields) (PGRange Scientific) cRangeScientific Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields (PGRange Scientific) cRangeScientific #

Field (SqlRange SqlDate) ~ cRangeDate => Default (Inferrable ToFields) (PGRange Day) cRangeDate Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields (PGRange Day) cRangeDate #

Field (SqlRange SqlTimestamptz) ~ cRangeTimestamptz => Default (Inferrable ToFields) (PGRange UTCTime) cRangeTimestamptz Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields (PGRange UTCTime) cRangeTimestamptz #

Field (SqlRange SqlTimestamp) ~ cRangeTimestamp => Default (Inferrable ToFields) (PGRange LocalTime) cRangeTimestamp Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields (PGRange LocalTime) cRangeTimestamp #

Field (SqlRange SqlInt4) ~ cRangeInt4 => Default (Inferrable ToFields) (PGRange Int) cRangeInt4 Source # 
Instance details

Defined in Opaleye.Internal.Inferrable

Methods

def :: Inferrable ToFields (PGRange Int) cRangeInt4 #

(Default (Inferrable ToFields) a b, Default Nullspec a b, MaybeFields b ~ maybeFields_b) => Default (Inferrable ToFields) (Maybe a) maybeFields_b Source # 
Instance details

Defined in Opaleye.Internal.MaybeFields

Methods

def :: Inferrable ToFields (Maybe a) maybeFields_b #