Correctly consume connection resources.
This commit is contained in:
parent
7ebb2d87bf
commit
dc6bcda8e4
@ -27,6 +27,7 @@ library
|
|||||||
|
|
||||||
, monad-logger
|
, monad-logger
|
||||||
, conduit
|
, conduit
|
||||||
|
, resourcet
|
||||||
hs-source-dirs: src/
|
hs-source-dirs: src/
|
||||||
ghc-options: -Wall
|
ghc-options: -Wall
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,9 @@ import Control.Applicative (Applicative(..), (<$>))
|
|||||||
import Control.Arrow (first)
|
import Control.Arrow (first)
|
||||||
import Control.Exception (throwIO)
|
import Control.Exception (throwIO)
|
||||||
import Control.Monad (ap)
|
import Control.Monad (ap)
|
||||||
|
import Control.Monad.IO.Class (MonadIO(..))
|
||||||
import Control.Monad.Logger (MonadLogger)
|
import Control.Monad.Logger (MonadLogger)
|
||||||
|
import Control.Monad.Trans.Resource (MonadResourceBase)
|
||||||
import Data.List (intersperse)
|
import Data.List (intersperse)
|
||||||
import Data.Monoid (Monoid(..), (<>))
|
import Data.Monoid (Monoid(..), (<>))
|
||||||
import Database.Persist.EntityDef
|
import Database.Persist.EntityDef
|
||||||
@ -149,10 +151,9 @@ binop _ _ _ = error "Esqueleto/Sql/binop: never here (see GHC #6124)"
|
|||||||
-- | Execute an Esqueleto's 'SqlQuery' inside @persistent@'s
|
-- | Execute an Esqueleto's 'SqlQuery' inside @persistent@'s
|
||||||
-- 'SqlPersist' monad.
|
-- 'SqlPersist' monad.
|
||||||
selectSource :: ( SqlSelect a r
|
selectSource :: ( SqlSelect a r
|
||||||
, C.MonadResource m
|
|
||||||
, MonadLogger m
|
, MonadLogger m
|
||||||
, MonadIO m )
|
, MonadResourceBase m )
|
||||||
=> SqlQuery a -> SqlPersist m (C.Source (SqlPersist m) r)
|
=> SqlQuery a -> SqlPersist m (C.Source (C.ResourceT (SqlPersist m)) r)
|
||||||
selectSource query = src
|
selectSource query = src
|
||||||
where
|
where
|
||||||
src = do
|
src = do
|
||||||
@ -177,13 +178,12 @@ selectSource query = src
|
|||||||
-- | Execute an Esqueleto's 'SqlQuery' inside @persistent@'s
|
-- | Execute an Esqueleto's 'SqlQuery' inside @persistent@'s
|
||||||
-- 'SqlPersist' monad.
|
-- 'SqlPersist' monad.
|
||||||
select :: ( SqlSelect a r
|
select :: ( SqlSelect a r
|
||||||
, C.MonadResource m
|
|
||||||
, MonadLogger m
|
, MonadLogger m
|
||||||
, MonadIO m )
|
, MonadResourceBase m )
|
||||||
=> SqlQuery a -> SqlPersist m [r]
|
=> SqlQuery a -> SqlPersist m [r]
|
||||||
select query = do
|
select query = do
|
||||||
src <- selectSource query
|
src <- selectSource query
|
||||||
src C.$$ CL.consume
|
C.runResourceT $ src C.$$ CL.consume
|
||||||
|
|
||||||
|
|
||||||
-- | Get current database 'Connection'.
|
-- | Get current database 'Connection'.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user