opaleye-0.3: An SQL-generating DSL targeting PostgreSQL

Safe HaskellNone
LanguageHaskell98

Opaleye.RunQuery

Synopsis

Documentation

runQuery :: Default QueryRunner columns haskells => Connection -> Query columns -> IO [haskells] Source

Example type specialization:

runQuery :: Query (Column PGInt4, Column PGText) -> IO [(Column Int, Column String)]

Assuming the makeAdaptorAndInstance splice has been run for the product type Foo:

runQuery :: Query (Foo (Column PGInt4) (Column PGText) (Column PGBool)
         -> 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 QueryRunnerColumn coltype haskell Source