esqueleto 1.3.12 → 1.4
raw patch · 2 files changed
+44/−46 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Database.Esqueleto: delete :: (MonadLogger m, MonadResourceBase m) => SqlQuery () -> SqlPersistT m ()
+ Database.Esqueleto: delete :: (MonadResource m, MonadSqlPersist m) => SqlQuery () -> m ()
- Database.Esqueleto: deleteCount :: (MonadLogger m, MonadResourceBase m) => SqlQuery () -> SqlPersistT m Int64
+ Database.Esqueleto: deleteCount :: (MonadResource m, MonadSqlPersist m) => SqlQuery () -> m Int64
- Database.Esqueleto: insertSelect :: (MonadLogger m, MonadResourceBase m, PersistEntity a) => SqlQuery (SqlExpr (Insertion a)) -> SqlPersistT m ()
+ Database.Esqueleto: insertSelect :: (MonadResource m, MonadSqlPersist m, PersistEntity a) => SqlQuery (SqlExpr (Insertion a)) -> m ()
- Database.Esqueleto: insertSelectDistinct :: (MonadLogger m, MonadResourceBase m, PersistEntity a) => SqlQuery (SqlExpr (Insertion a)) -> SqlPersistT m ()
+ Database.Esqueleto: insertSelectDistinct :: (MonadResource m, MonadSqlPersist m, PersistEntity a) => SqlQuery (SqlExpr (Insertion a)) -> m ()
- Database.Esqueleto: select :: (SqlSelect a r, MonadLogger m, MonadResourceBase m) => SqlQuery a -> SqlPersistT m [r]
+ Database.Esqueleto: select :: (SqlSelect a r, MonadResource m, MonadSqlPersist m) => SqlQuery a -> m [r]
- Database.Esqueleto: selectDistinct :: (SqlSelect a r, MonadLogger m, MonadResourceBase m) => SqlQuery a -> SqlPersistT m [r]
+ Database.Esqueleto: selectDistinct :: (SqlSelect a r, MonadResource m, MonadSqlPersist m) => SqlQuery a -> m [r]
- Database.Esqueleto: selectDistinctSource :: (SqlSelect a r, MonadLogger m, MonadResourceBase m) => SqlQuery a -> SqlPersistT m (Source (ResourceT (SqlPersistT m)) r)
+ Database.Esqueleto: selectDistinctSource :: (SqlSelect a r, MonadResource m, MonadSqlPersist m) => SqlQuery a -> m (Source m r)
- Database.Esqueleto: selectSource :: (SqlSelect a r, MonadLogger m, MonadResourceBase m) => SqlQuery a -> SqlPersistT m (Source (ResourceT (SqlPersistT m)) r)
+ Database.Esqueleto: selectSource :: (SqlSelect a r, MonadResource m, MonadSqlPersist m) => SqlQuery a -> m (Source m r)
- Database.Esqueleto: update :: (MonadLogger m, MonadResourceBase m, SqlEntity val) => (SqlExpr (Entity val) -> SqlQuery ()) -> SqlPersistT m ()
+ Database.Esqueleto: update :: (MonadResource m, MonadSqlPersist m, SqlEntity val) => (SqlExpr (Entity val) -> SqlQuery ()) -> m ()
- Database.Esqueleto: updateCount :: (MonadLogger m, MonadResourceBase m, SqlEntity val) => (SqlExpr (Entity val) -> SqlQuery ()) -> SqlPersistT m Int64
+ Database.Esqueleto: updateCount :: (MonadResource m, MonadSqlPersist m, SqlEntity val) => (SqlExpr (Entity val) -> SqlQuery ()) -> m Int64
- Database.Esqueleto.Internal.Sql: delete :: (MonadLogger m, MonadResourceBase m) => SqlQuery () -> SqlPersistT m ()
+ Database.Esqueleto.Internal.Sql: delete :: (MonadResource m, MonadSqlPersist m) => SqlQuery () -> m ()
- Database.Esqueleto.Internal.Sql: deleteCount :: (MonadLogger m, MonadResourceBase m) => SqlQuery () -> SqlPersistT m Int64
+ Database.Esqueleto.Internal.Sql: deleteCount :: (MonadResource m, MonadSqlPersist m) => SqlQuery () -> m Int64
- Database.Esqueleto.Internal.Sql: insertSelect :: (MonadLogger m, MonadResourceBase m, PersistEntity a) => SqlQuery (SqlExpr (Insertion a)) -> SqlPersistT m ()
+ Database.Esqueleto.Internal.Sql: insertSelect :: (MonadResource m, MonadSqlPersist m, PersistEntity a) => SqlQuery (SqlExpr (Insertion a)) -> m ()
- Database.Esqueleto.Internal.Sql: insertSelectDistinct :: (MonadLogger m, MonadResourceBase m, PersistEntity a) => SqlQuery (SqlExpr (Insertion a)) -> SqlPersistT m ()
+ Database.Esqueleto.Internal.Sql: insertSelectDistinct :: (MonadResource m, MonadSqlPersist m, PersistEntity a) => SqlQuery (SqlExpr (Insertion a)) -> m ()
- Database.Esqueleto.Internal.Sql: rawEsqueleto :: (MonadLogger m, MonadResourceBase m, SqlSelect a r) => Mode -> SqlQuery a -> SqlPersistT m Int64
+ Database.Esqueleto.Internal.Sql: rawEsqueleto :: (MonadResource m, MonadSqlPersist m, SqlSelect a r) => Mode -> SqlQuery a -> m Int64
- Database.Esqueleto.Internal.Sql: rawSelectSource :: (SqlSelect a r, MonadLogger m, MonadResourceBase m) => Mode -> SqlQuery a -> SqlPersistT m (Source (ResourceT (SqlPersistT m)) r)
+ Database.Esqueleto.Internal.Sql: rawSelectSource :: (SqlSelect a r, MonadResource m, MonadSqlPersist m) => Mode -> SqlQuery a -> m (Source m r)
- Database.Esqueleto.Internal.Sql: runSource :: MonadResourceBase m => Source (ResourceT (SqlPersistT m)) r -> SqlPersistT m [r]
+ Database.Esqueleto.Internal.Sql: runSource :: MonadResource m => Source m r -> m [r]
- Database.Esqueleto.Internal.Sql: select :: (SqlSelect a r, MonadLogger m, MonadResourceBase m) => SqlQuery a -> SqlPersistT m [r]
+ Database.Esqueleto.Internal.Sql: select :: (SqlSelect a r, MonadResource m, MonadSqlPersist m) => SqlQuery a -> m [r]
- Database.Esqueleto.Internal.Sql: selectDistinct :: (SqlSelect a r, MonadLogger m, MonadResourceBase m) => SqlQuery a -> SqlPersistT m [r]
+ Database.Esqueleto.Internal.Sql: selectDistinct :: (SqlSelect a r, MonadResource m, MonadSqlPersist m) => SqlQuery a -> m [r]
- Database.Esqueleto.Internal.Sql: selectDistinctSource :: (SqlSelect a r, MonadLogger m, MonadResourceBase m) => SqlQuery a -> SqlPersistT m (Source (ResourceT (SqlPersistT m)) r)
+ Database.Esqueleto.Internal.Sql: selectDistinctSource :: (SqlSelect a r, MonadResource m, MonadSqlPersist m) => SqlQuery a -> m (Source m r)
- Database.Esqueleto.Internal.Sql: selectSource :: (SqlSelect a r, MonadLogger m, MonadResourceBase m) => SqlQuery a -> SqlPersistT m (Source (ResourceT (SqlPersistT m)) r)
+ Database.Esqueleto.Internal.Sql: selectSource :: (SqlSelect a r, MonadResource m, MonadSqlPersist m) => SqlQuery a -> m (Source m r)
- Database.Esqueleto.Internal.Sql: update :: (MonadLogger m, MonadResourceBase m, SqlEntity val) => (SqlExpr (Entity val) -> SqlQuery ()) -> SqlPersistT m ()
+ Database.Esqueleto.Internal.Sql: update :: (MonadResource m, MonadSqlPersist m, SqlEntity val) => (SqlExpr (Entity val) -> SqlQuery ()) -> m ()
- Database.Esqueleto.Internal.Sql: updateCount :: (MonadLogger m, MonadResourceBase m, SqlEntity val) => (SqlExpr (Entity val) -> SqlQuery ()) -> SqlPersistT m Int64
+ Database.Esqueleto.Internal.Sql: updateCount :: (MonadResource m, MonadSqlPersist m, SqlEntity val) => (SqlExpr (Entity val) -> SqlQuery ()) -> m Int64
Files
- esqueleto.cabal +1/−1
- src/Database/Esqueleto/Internal/Sql.hs +43/−45
esqueleto.cabal view
@@ -1,5 +1,5 @@ name: esqueleto-version: 1.3.12+version: 1.4 synopsis: Bare bones, type-safe EDSL for SQL queries on persistent backends. homepage: https://github.com/meteficha/esqueleto license: BSD3
src/Database/Esqueleto/Internal/Sql.hs view
@@ -50,15 +50,13 @@ import Control.Exception (throw, throwIO) import Control.Monad ((>=>), ap, void, MonadPlus(..)) import Control.Monad.IO.Class (MonadIO(..))-import Control.Monad.Logger (MonadLogger) import Control.Monad.Trans.Class (lift)-import Control.Monad.Trans.Resource (runResourceT, ResourceT, MonadResourceBase)+import Control.Monad.Trans.Resource (MonadResource) import Data.Int (Int64) import Data.List (intersperse) import Data.Monoid (Monoid(..), (<>)) import Data.Proxy (Proxy(..)) import Database.Esqueleto.Internal.PersistentImport-import qualified Control.Monad.Trans.Reader as R import qualified Control.Monad.Trans.State as S import qualified Control.Monad.Trans.Writer as W import qualified Data.Conduit as C@@ -543,15 +541,15 @@ -- | (Internal) Execute an @esqueleto@ @SELECT@ 'SqlQuery' inside -- @persistent@'s 'SqlPersistT' monad. rawSelectSource :: ( SqlSelect a r- , MonadLogger m- , MonadResourceBase m )+ , MonadResource m+ , MonadSqlPersist m ) => Mode -> SqlQuery a- -> SqlPersistT m (C.Source (ResourceT (SqlPersistT m)) r)+ -> m (C.Source m r) rawSelectSource mode query = src where src = do- conn <- SqlPersistT R.ask+ conn <- askSqlConn return $ run conn C.$= massage run conn =@@ -572,10 +570,10 @@ -- | Execute an @esqueleto@ @SELECT@ query inside @persistent@'s -- 'SqlPersistT' monad and return a 'C.Source' of rows. selectSource :: ( SqlSelect a r- , MonadLogger m- , MonadResourceBase m )+ , MonadResource m+ , MonadSqlPersist m ) => SqlQuery a- -> SqlPersistT m (C.Source (ResourceT (SqlPersistT m)) r)+ -> m (C.Source m r) selectSource = rawSelectSource SELECT @@ -621,9 +619,9 @@ -- function composition that the @p@ inside the query is of type -- @SqlExpr (Entity Person)@. select :: ( SqlSelect a r- , MonadLogger m- , MonadResourceBase m )- => SqlQuery a -> SqlPersistT m [r]+ , MonadResource m+ , MonadSqlPersist m )+ => SqlQuery a -> m [r] select = selectSource >=> runSource @@ -632,27 +630,27 @@ -- rows. selectDistinctSource :: ( SqlSelect a r- , MonadLogger m- , MonadResourceBase m )+ , MonadResource m+ , MonadSqlPersist m ) => SqlQuery a- -> SqlPersistT m (C.Source (ResourceT (SqlPersistT m)) r)+ -> m (C.Source m r) selectDistinctSource = rawSelectSource SELECT_DISTINCT -- | Execute an @esqueleto@ @SELECT DISTINCT@ query inside -- @persistent@'s 'SqlPersistT' monad and return a list of rows. selectDistinct :: ( SqlSelect a r- , MonadLogger m- , MonadResourceBase m )- => SqlQuery a -> SqlPersistT m [r]+ , MonadResource m+ , MonadSqlPersist m )+ => SqlQuery a -> m [r] selectDistinct = selectDistinctSource >=> runSource -- | (Internal) Run a 'C.Source' of rows.-runSource :: MonadResourceBase m =>- C.Source (ResourceT (SqlPersistT m)) r- -> SqlPersistT m [r]-runSource src = runResourceT $ src C.$$ CL.consume+runSource :: MonadResource m =>+ C.Source m r+ -> m [r]+runSource src = src C.$$ CL.consume ----------------------------------------------------------------------@@ -660,14 +658,14 @@ -- | (Internal) Execute an @esqueleto@ statement inside -- @persistent@'s 'SqlPersistT' monad.-rawEsqueleto :: ( MonadLogger m- , MonadResourceBase m+rawEsqueleto :: ( MonadResource m+ , MonadSqlPersist m , SqlSelect a r ) => Mode -> SqlQuery a- -> SqlPersistT m Int64+ -> m Int64 rawEsqueleto mode query = do- conn <- SqlPersistT R.ask+ conn <- askSqlConn uncurry rawExecuteCount $ first builderToText $ toRawSql mode (conn, initialIdentState) query@@ -695,18 +693,18 @@ -- from $ \\(appointment :: SqlExpr (Entity Appointment)) -> -- return () -- @-delete :: ( MonadLogger m- , MonadResourceBase m )+delete :: ( MonadResource m+ , MonadSqlPersist m ) => SqlQuery ()- -> SqlPersistT m ()+ -> m () delete = void . deleteCount -- | Same as 'delete', but returns the number of rows affected.-deleteCount :: ( MonadLogger m- , MonadResourceBase m )+deleteCount :: ( MonadResource m+ , MonadSqlPersist m ) => SqlQuery ()- -> SqlPersistT m Int64+ -> m Int64 deleteCount = rawEsqueleto DELETE @@ -722,38 +720,38 @@ -- set p [ PersonAge =. just (val thisYear) -. p ^. PersonBorn ] -- where_ $ isNull (p ^. PersonAge) -- @-update :: ( MonadLogger m- , MonadResourceBase m+update :: ( MonadResource m+ , MonadSqlPersist m , SqlEntity val ) => (SqlExpr (Entity val) -> SqlQuery ())- -> SqlPersistT m ()+ -> m () update = void . updateCount -- | Same as 'update', but returns the number of rows affected.-updateCount :: ( MonadLogger m- , MonadResourceBase m+updateCount :: ( MonadResource m+ , MonadSqlPersist m , SqlEntity val ) => (SqlExpr (Entity val) -> SqlQuery ())- -> SqlPersistT m Int64+ -> m Int64 updateCount = rawEsqueleto UPDATE . from -- | Insert a 'PersistField' for every selected value.-insertSelect :: ( MonadLogger m- , MonadResourceBase m+insertSelect :: ( MonadResource m+ , MonadSqlPersist m , PersistEntity a )- => SqlQuery (SqlExpr (Insertion a)) -> SqlPersistT m ()+ => SqlQuery (SqlExpr (Insertion a)) -> m () insertSelect = void . rawEsqueleto (INSERT_INTO SELECT) . fmap EInsertFinal -- | Insert a 'PersistField' for every unique selected value. insertSelectDistinct- :: ( MonadLogger m- , MonadResourceBase m+ :: ( MonadResource m+ , MonadSqlPersist m , PersistEntity a )- => SqlQuery (SqlExpr (Insertion a)) -> SqlPersistT m ()+ => SqlQuery (SqlExpr (Insertion a)) -> m () insertSelectDistinct = void . rawEsqueleto (INSERT_INTO SELECT_DISTINCT) . fmap EInsertFinal