{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeFamilies #-}
module Opaleye.RunSelect
(module Opaleye.RunSelect,
IRQ.Cursor,
IRQ.FromFields,
IRQ.FromField) where
import qualified Database.PostgreSQL.Simple as PGS
import qualified Opaleye.Select as S
import qualified Opaleye.RunQuery as RQ
import qualified Opaleye.Sql as S
import qualified Opaleye.TypeFamilies as TF
import Opaleye.Internal.RunQuery (FromFields)
import qualified Opaleye.Internal.RunQuery as IRQ
import qualified Data.Profunctor.Product.Default as D
runSelect :: D.Default FromFields fields haskells
=> PGS.Connection
-> S.Select fields
-> IO [haskells]
runSelect = RQ.runQuery
runSelectTF :: D.Default FromFields (rec TF.O) (rec TF.H)
=> PGS.Connection
-> S.Select (rec TF.O)
-> IO [rec TF.H]
runSelectTF = RQ.runQuery
runSelectFold
:: D.Default FromFields fields haskells
=> PGS.Connection
-> S.Select fields
-> b
-> (b -> haskells -> IO b)
-> IO b
runSelectFold = RQ.runQueryFold
declareCursor
:: D.Default FromFields fields haskells
=> PGS.Connection
-> S.Select fields
-> IO (IRQ.Cursor haskells)
declareCursor = RQ.declareCursor
closeCursor :: IRQ.Cursor fields -> IO ()
closeCursor = RQ.closeCursor
foldForward
:: IRQ.Cursor haskells
-> Int
-> (a -> haskells -> IO a)
-> a
-> IO (Either a a)
foldForward = RQ.foldForward
runSelectExplicit :: FromFields fields haskells
-> PGS.Connection
-> S.Select fields
-> IO [haskells]
runSelectExplicit = RQ.runQueryExplicit
runSelectFoldExplicit
:: FromFields fields haskells
-> PGS.Connection
-> S.Select fields
-> b
-> (b -> haskells -> IO b)
-> IO b
runSelectFoldExplicit = RQ.runQueryFoldExplicit
declareCursorExplicit
:: FromFields fields haskells
-> PGS.Connection
-> S.Select fields
-> IO (IRQ.Cursor haskells)
declareCursorExplicit = RQ.declareCursorExplicit