release key
This commit is contained in:
parent
0c6bba7026
commit
2fa9760d51
@ -53,10 +53,10 @@ module Database.Esqueleto.Internal.Sql
|
|||||||
|
|
||||||
import Control.Arrow ((***), first)
|
import Control.Arrow ((***), first)
|
||||||
import Control.Exception (throw, throwIO)
|
import Control.Exception (throw, throwIO)
|
||||||
import Control.Monad (ap, MonadPlus(..), join, void)
|
import Control.Monad (ap, MonadPlus(..), void)
|
||||||
import Control.Monad.IO.Class (MonadIO(..))
|
import Control.Monad.IO.Class (MonadIO(..))
|
||||||
import Control.Monad.Trans.Class (lift)
|
import Control.Monad.Trans.Class (lift)
|
||||||
import Control.Monad.Trans.Resource (MonadResource)
|
import Control.Monad.Trans.Resource (MonadResource, release)
|
||||||
import Data.Acquire (with, allocateAcquire, Acquire)
|
import Data.Acquire (with, allocateAcquire, Acquire)
|
||||||
import Data.Int (Int64)
|
import Data.Int (Int64)
|
||||||
import Data.List (intersperse)
|
import Data.List (intersperse)
|
||||||
@ -782,9 +782,11 @@ selectSource :: ( SqlSelect a r
|
|||||||
, MonadResource m )
|
, MonadResource m )
|
||||||
=> SqlQuery a
|
=> SqlQuery a
|
||||||
-> C.Source (SqlPersistT m) r
|
-> C.Source (SqlPersistT m) r
|
||||||
selectSource query = join . lift $ do
|
selectSource query = do
|
||||||
res <- rawSelectSource SELECT query
|
res <- lift $ rawSelectSource SELECT query
|
||||||
snd <$> allocateAcquire res
|
(key, src) <- lift $ allocateAcquire res
|
||||||
|
src
|
||||||
|
lift $ release key
|
||||||
|
|
||||||
-- | Execute an @esqueleto@ @SELECT@ query inside @persistent@'s
|
-- | Execute an @esqueleto@ @SELECT@ query inside @persistent@'s
|
||||||
-- 'SqlPersistT' monad and return a list of rows.
|
-- 'SqlPersistT' monad and return a list of rows.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user