| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Opaleye.RunQuery
- runQuery :: Default QueryRunner columns haskells => Connection -> Query columns -> IO [haskells]
- runQueryExplicit :: QueryRunner columns haskells -> Connection -> Query columns -> IO [haskells]
- queryRunnerColumn :: (Column a' -> Column a) -> (b -> b') -> QueryRunnerColumn a b -> QueryRunnerColumn a' b'
- data QueryRunner columns haskells
- data QueryRunnerColumn pgType haskellType
- class QueryRunnerColumnDefault pgType haskellType where
- queryRunnerColumnDefault :: QueryRunnerColumn pgType haskellType
- fieldQueryRunnerColumn :: FromField haskell => QueryRunnerColumn coltype haskell
Documentation
runQuery :: Default QueryRunner columns haskells => Connection -> Query columns -> IO [haskells] Source
runQuery's use of the Default typeclass means that the
compiler will have trouble inferring types. It is strongly
recommended that you provide full type signatures when using
runQuery.
Example type specialization:
runQuery :: Query (ColumnPGInt4, ColumnPGText) -> IO [(Column Int, Column String)]
Assuming the makeAdaptorAndInstance splice has been run for the product type Foo:
runQuery :: Query (Foo (ColumnPGInt4) (ColumnPGText) (ColumnPGBool) -> IO [(Foo (Column Int) (Column String) (Column Bool)]
Opaleye types are converted to Haskell types based on instances of
the QueryRunnerColumnDefault typeclass.
runQueryExplicit :: QueryRunner columns haskells -> Connection -> Query columns -> IO [haskells] Source
queryRunnerColumn :: (Column a' -> Column a) -> (b -> b') -> QueryRunnerColumn a b -> QueryRunnerColumn a' b' Source
Use queryRunnerColumn to make an instance to allow you to run queries on
your own datatypes. For example:
newtype Foo = Foo Int
instance Default QueryRunnerColumn Foo Foo where
def = queryRunnerColumn (unsafeCoerce :: Column Foo -> Column PGInt4) Foo def
data QueryRunner columns haskells Source
Instances
data QueryRunnerColumn pgType haskellType Source
A QueryRunnerColumn pgType haskellType encodes how to turn
a value of Postgres type pgType into a value of Haskell type
haskellType. For example a value of type QueryRunnerColumn
PGText String encodes how to turn a PGText result from the
database into a Haskell String.
class QueryRunnerColumnDefault pgType haskellType where Source
A QueryRunnerColumnDefault pgType haskellType represents
the default way to turn a pgType result from the database into a
Haskell value of type haskelType.
Methods
queryRunnerColumnDefault :: QueryRunnerColumn pgType haskellType Source
Instances
fieldQueryRunnerColumn :: FromField haskell => QueryRunnerColumn coltype haskell Source