{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE TypeFamilies #-}
module Opaleye.RunSelect
(module Opaleye.RunSelect,
IRQ.Cursor,
IRQ.FromFields,
IRQ.FromField) where
import Control.Applicative (pure, (<$>))
import qualified Database.PostgreSQL.Simple as PGS
import qualified Database.PostgreSQL.Simple.Cursor as PGSC
import qualified Database.PostgreSQL.Simple.FromRow as FR
import qualified Data.String as String
import Opaleye.Column (Column)
import qualified Opaleye.Select as S
import qualified Opaleye.RunQuery as RQ
import qualified Opaleye.Sql as S
import Opaleye.Internal.RunQuery (FromFields)
import qualified Opaleye.Internal.RunQuery as IRQ
import qualified Opaleye.Internal.QueryArr as Q
import qualified Data.Profunctor as P
import qualified Data.Profunctor.Product.Default as D
runSelect :: D.Default FromFields fields haskells
=> PGS.Connection
-> S.Select fields
-> IO [haskells]
runSelect = 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