diff --git a/src/Database/Esqueleto.hs b/src/Database/Esqueleto.hs index 5c441c1..07db494 100644 --- a/src/Database/Esqueleto.hs +++ b/src/Database/Esqueleto.hs @@ -38,6 +38,7 @@ module Database.Esqueleto -- * SQL backend , SqlQuery , SqlExpr + , SqlEntity , select , selectDistinct , selectSource diff --git a/src/Database/Esqueleto/Internal/Sql.hs b/src/Database/Esqueleto/Internal/Sql.hs index 56c3244..bc40553 100644 --- a/src/Database/Esqueleto/Internal/Sql.hs +++ b/src/Database/Esqueleto/Internal/Sql.hs @@ -14,6 +14,7 @@ module Database.Esqueleto.Internal.Sql ( -- * The pretty face SqlQuery , SqlExpr + , SqlEntity , select , selectSource , selectDistinct @@ -74,6 +75,11 @@ instance Applicative SqlQuery where (<*>) = ap +-- | Constraint synonym for @persistent@ entities whose backend +-- is 'SqlPersist'. +type SqlEntity ent = (PersistEntity ent, PersistEntityBackend ent ~ SqlPersist) + + ---------------------------------------------------------------------- @@ -498,8 +504,7 @@ delete = rawExecute DELETE -- @ update :: ( MonadLogger m , MonadResourceBase m - , PersistEntity val - , PersistEntityBackend val ~ SqlPersist ) + , SqlEntity val ) => (SqlExpr (Entity val) -> SqlQuery ()) -> SqlPersist m () update = rawExecute UPDATE . from