From d621f382bfee5ec1da866b17f72c659560108452 Mon Sep 17 00:00:00 2001 From: Matt Parsons Date: Wed, 13 Sep 2017 17:14:14 -0600 Subject: [PATCH] abstract --- src/Database/Esqueleto/Internal/Sql.hs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Database/Esqueleto/Internal/Sql.hs b/src/Database/Esqueleto/Internal/Sql.hs index 0d99f3b..4d272b5 100644 --- a/src/Database/Esqueleto/Internal/Sql.hs +++ b/src/Database/Esqueleto/Internal/Sql.hs @@ -781,17 +781,20 @@ veryUnsafeCoerceSqlExprValueList EEmptyList = throw (UnexpectedCaseErr EmptySqlE ---------------------------------------------------------------------- +type SqlReadT' m a + = forall backend + . (BackendCompatible SqlBackend backend, SqlBackendCanRead backend) + => R.ReaderT backend m a -- | (Internal) Execute an @esqueleto@ @SELECT@ 'SqlQuery' inside -- @persistent@'s 'SqlPersistT' monad. rawSelectSource :: ( SqlSelect a r , MonadIO m1 , MonadIO m2 - , SqlBackendCanRead backend - , BackendCompatible SqlBackend backend) + ) => Mode -> SqlQuery a - -> R.ReaderT backend m1 (Acquire (C.Source m2 r)) + -> SqlReadT' m1 (Acquire (C.Source m2 r)) rawSelectSource mode query = do conn <- projectBackend <$> R.ask @@ -870,10 +873,8 @@ selectSource query = do -- @SqlExpr (Entity Person)@. select :: ( SqlSelect a r , MonadIO m - , SqlBackendCanRead backend - , BackendCompatible SqlBackend backend ) - => SqlQuery a -> R.ReaderT backend m [r] + => SqlQuery a -> SqlReadT' m [r] select query = do res <- rawSelectSource SELECT query conn <- R.ask