packages feed

esqueleto 3.5.4.1 → 3.5.4.2

raw patch · 4 files changed

+32/−20 lines, 4 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Database.Esqueleto: Entity' :: Key record -> record -> Entity record
- Database.Esqueleto: pattern Entity :: Key rec -> rec -> Entity rec
- Database.Esqueleto.Experimental: Entity' :: Key record -> record -> Entity record
- Database.Esqueleto.Experimental: pattern Entity :: Key rec -> rec -> Entity rec
- Database.Esqueleto.Legacy: Entity' :: Key record -> record -> Entity record
- Database.Esqueleto.Legacy: pattern Entity :: Key rec -> rec -> Entity rec
+ Database.Esqueleto: Entity :: Key record -> record -> Entity record
+ Database.Esqueleto: [entityKey] :: Entity record -> Key record
+ Database.Esqueleto: [entityVal] :: Entity record -> record
+ Database.Esqueleto.Experimental: Entity :: Key record -> record -> Entity record
+ Database.Esqueleto.Experimental: [entityKey] :: Entity record -> Key record
+ Database.Esqueleto.Experimental: [entityVal] :: Entity record -> record
+ Database.Esqueleto.Legacy: Entity :: Key record -> record -> Entity record
+ Database.Esqueleto.Legacy: [entityKey] :: Entity record -> Key record
+ Database.Esqueleto.Legacy: [entityVal] :: Entity record -> record
- Database.Esqueleto: delete :: MonadIO m => SqlQuery () -> SqlWriteT m ()
+ Database.Esqueleto: delete :: (MonadIO m, SqlBackendCanWrite backend) => SqlQuery () -> ReaderT backend m ()
- Database.Esqueleto: deleteCount :: MonadIO m => SqlQuery () -> SqlWriteT m Int64
+ Database.Esqueleto: deleteCount :: (MonadIO m, SqlBackendCanWrite backend) => SqlQuery () -> ReaderT backend m Int64
- Database.Esqueleto: insertSelect :: (MonadIO m, PersistEntity a) => SqlQuery (SqlExpr (Insertion a)) -> SqlWriteT m ()
+ Database.Esqueleto: insertSelect :: (MonadIO m, PersistEntity a, SqlBackendCanWrite backend) => SqlQuery (SqlExpr (Insertion a)) -> ReaderT backend m ()
- Database.Esqueleto: insertSelectCount :: (MonadIO m, PersistEntity a) => SqlQuery (SqlExpr (Insertion a)) -> SqlWriteT m Int64
+ Database.Esqueleto: insertSelectCount :: (MonadIO m, PersistEntity a, SqlBackendCanWrite backend) => SqlQuery (SqlExpr (Insertion a)) -> ReaderT backend m Int64
- Database.Esqueleto: select :: (SqlSelect a r, MonadIO m) => SqlQuery a -> SqlReadT m [r]
+ Database.Esqueleto: select :: (SqlSelect a r, MonadIO m, SqlBackendCanRead backend) => SqlQuery a -> ReaderT backend m [r]
- Database.Esqueleto: selectOne :: (SqlSelect a r, MonadIO m) => SqlQuery a -> SqlReadT m (Maybe r)
+ Database.Esqueleto: selectOne :: (SqlSelect a r, MonadIO m, SqlBackendCanRead backend) => SqlQuery a -> ReaderT backend m (Maybe r)
- Database.Esqueleto: update :: (MonadIO m, PersistEntity val, BackendCompatible SqlBackend (PersistEntityBackend val)) => (SqlExpr (Entity val) -> SqlQuery ()) -> SqlWriteT m ()
+ Database.Esqueleto: update :: (MonadIO m, PersistEntity val, BackendCompatible SqlBackend (PersistEntityBackend val), SqlBackendCanWrite backend) => (SqlExpr (Entity val) -> SqlQuery ()) -> ReaderT backend m ()
- Database.Esqueleto: updateCount :: (MonadIO m, PersistEntity val, BackendCompatible SqlBackend (PersistEntityBackend val)) => (SqlExpr (Entity val) -> SqlQuery ()) -> SqlWriteT m Int64
+ Database.Esqueleto: updateCount :: (MonadIO m, PersistEntity val, BackendCompatible SqlBackend (PersistEntityBackend val), SqlBackendCanWrite backend) => (SqlExpr (Entity val) -> SqlQuery ()) -> ReaderT backend m Int64
- Database.Esqueleto.Experimental: delete :: MonadIO m => SqlQuery () -> SqlWriteT m ()
+ Database.Esqueleto.Experimental: delete :: (MonadIO m, SqlBackendCanWrite backend) => SqlQuery () -> ReaderT backend m ()
- Database.Esqueleto.Experimental: deleteCount :: MonadIO m => SqlQuery () -> SqlWriteT m Int64
+ Database.Esqueleto.Experimental: deleteCount :: (MonadIO m, SqlBackendCanWrite backend) => SqlQuery () -> ReaderT backend m Int64
- Database.Esqueleto.Experimental: insertSelect :: (MonadIO m, PersistEntity a) => SqlQuery (SqlExpr (Insertion a)) -> SqlWriteT m ()
+ Database.Esqueleto.Experimental: insertSelect :: (MonadIO m, PersistEntity a, SqlBackendCanWrite backend) => SqlQuery (SqlExpr (Insertion a)) -> ReaderT backend m ()
- Database.Esqueleto.Experimental: insertSelectCount :: (MonadIO m, PersistEntity a) => SqlQuery (SqlExpr (Insertion a)) -> SqlWriteT m Int64
+ Database.Esqueleto.Experimental: insertSelectCount :: (MonadIO m, PersistEntity a, SqlBackendCanWrite backend) => SqlQuery (SqlExpr (Insertion a)) -> ReaderT backend m Int64
- Database.Esqueleto.Experimental: select :: (SqlSelect a r, MonadIO m) => SqlQuery a -> SqlReadT m [r]
+ Database.Esqueleto.Experimental: select :: (SqlSelect a r, MonadIO m, SqlBackendCanRead backend) => SqlQuery a -> ReaderT backend m [r]
- Database.Esqueleto.Experimental: selectOne :: (SqlSelect a r, MonadIO m) => SqlQuery a -> SqlReadT m (Maybe r)
+ Database.Esqueleto.Experimental: selectOne :: (SqlSelect a r, MonadIO m, SqlBackendCanRead backend) => SqlQuery a -> ReaderT backend m (Maybe r)
- Database.Esqueleto.Experimental: update :: (MonadIO m, PersistEntity val, BackendCompatible SqlBackend (PersistEntityBackend val)) => (SqlExpr (Entity val) -> SqlQuery ()) -> SqlWriteT m ()
+ Database.Esqueleto.Experimental: update :: (MonadIO m, PersistEntity val, BackendCompatible SqlBackend (PersistEntityBackend val), SqlBackendCanWrite backend) => (SqlExpr (Entity val) -> SqlQuery ()) -> ReaderT backend m ()
- Database.Esqueleto.Experimental: updateCount :: (MonadIO m, PersistEntity val, BackendCompatible SqlBackend (PersistEntityBackend val)) => (SqlExpr (Entity val) -> SqlQuery ()) -> SqlWriteT m Int64
+ Database.Esqueleto.Experimental: updateCount :: (MonadIO m, PersistEntity val, BackendCompatible SqlBackend (PersistEntityBackend val), SqlBackendCanWrite backend) => (SqlExpr (Entity val) -> SqlQuery ()) -> ReaderT backend m Int64
- Database.Esqueleto.Internal.Internal: delete :: MonadIO m => SqlQuery () -> SqlWriteT m ()
+ Database.Esqueleto.Internal.Internal: delete :: (MonadIO m, SqlBackendCanWrite backend) => SqlQuery () -> ReaderT backend m ()
- Database.Esqueleto.Internal.Internal: deleteCount :: MonadIO m => SqlQuery () -> SqlWriteT m Int64
+ Database.Esqueleto.Internal.Internal: deleteCount :: (MonadIO m, SqlBackendCanWrite backend) => SqlQuery () -> ReaderT backend m Int64
- Database.Esqueleto.Internal.Internal: insertSelect :: (MonadIO m, PersistEntity a) => SqlQuery (SqlExpr (Insertion a)) -> SqlWriteT m ()
+ Database.Esqueleto.Internal.Internal: insertSelect :: (MonadIO m, PersistEntity a, SqlBackendCanWrite backend) => SqlQuery (SqlExpr (Insertion a)) -> ReaderT backend m ()
- Database.Esqueleto.Internal.Internal: insertSelectCount :: (MonadIO m, PersistEntity a) => SqlQuery (SqlExpr (Insertion a)) -> SqlWriteT m Int64
+ Database.Esqueleto.Internal.Internal: insertSelectCount :: (MonadIO m, PersistEntity a, SqlBackendCanWrite backend) => SqlQuery (SqlExpr (Insertion a)) -> ReaderT backend m Int64
- Database.Esqueleto.Internal.Internal: rawSelectSource :: (SqlSelect a r, MonadIO m1, MonadIO m2) => Mode -> SqlQuery a -> SqlReadT m1 (Acquire (ConduitT () r m2 ()))
+ Database.Esqueleto.Internal.Internal: rawSelectSource :: (SqlSelect a r, MonadIO m1, MonadIO m2, SqlBackendCanRead backend) => Mode -> SqlQuery a -> ReaderT backend m1 (Acquire (ConduitT () r m2 ()))
- Database.Esqueleto.Internal.Internal: select :: (SqlSelect a r, MonadIO m) => SqlQuery a -> SqlReadT m [r]
+ Database.Esqueleto.Internal.Internal: select :: (SqlSelect a r, MonadIO m, SqlBackendCanRead backend) => SqlQuery a -> ReaderT backend m [r]
- Database.Esqueleto.Internal.Internal: selectOne :: (SqlSelect a r, MonadIO m) => SqlQuery a -> SqlReadT m (Maybe r)
+ Database.Esqueleto.Internal.Internal: selectOne :: (SqlSelect a r, MonadIO m, SqlBackendCanRead backend) => SqlQuery a -> ReaderT backend m (Maybe r)
- Database.Esqueleto.Internal.Internal: update :: (MonadIO m, PersistEntity val, BackendCompatible SqlBackend (PersistEntityBackend val)) => (SqlExpr (Entity val) -> SqlQuery ()) -> SqlWriteT m ()
+ Database.Esqueleto.Internal.Internal: update :: (MonadIO m, PersistEntity val, BackendCompatible SqlBackend (PersistEntityBackend val), SqlBackendCanWrite backend) => (SqlExpr (Entity val) -> SqlQuery ()) -> ReaderT backend m ()
- Database.Esqueleto.Internal.Internal: updateCount :: (MonadIO m, PersistEntity val, BackendCompatible SqlBackend (PersistEntityBackend val)) => (SqlExpr (Entity val) -> SqlQuery ()) -> SqlWriteT m Int64
+ Database.Esqueleto.Internal.Internal: updateCount :: (MonadIO m, PersistEntity val, BackendCompatible SqlBackend (PersistEntityBackend val), SqlBackendCanWrite backend) => (SqlExpr (Entity val) -> SqlQuery ()) -> ReaderT backend m Int64
- Database.Esqueleto.Legacy: delete :: MonadIO m => SqlQuery () -> SqlWriteT m ()
+ Database.Esqueleto.Legacy: delete :: (MonadIO m, SqlBackendCanWrite backend) => SqlQuery () -> ReaderT backend m ()
- Database.Esqueleto.Legacy: deleteCount :: MonadIO m => SqlQuery () -> SqlWriteT m Int64
+ Database.Esqueleto.Legacy: deleteCount :: (MonadIO m, SqlBackendCanWrite backend) => SqlQuery () -> ReaderT backend m Int64
- Database.Esqueleto.Legacy: insertSelect :: (MonadIO m, PersistEntity a) => SqlQuery (SqlExpr (Insertion a)) -> SqlWriteT m ()
+ Database.Esqueleto.Legacy: insertSelect :: (MonadIO m, PersistEntity a, SqlBackendCanWrite backend) => SqlQuery (SqlExpr (Insertion a)) -> ReaderT backend m ()
- Database.Esqueleto.Legacy: insertSelectCount :: (MonadIO m, PersistEntity a) => SqlQuery (SqlExpr (Insertion a)) -> SqlWriteT m Int64
+ Database.Esqueleto.Legacy: insertSelectCount :: (MonadIO m, PersistEntity a, SqlBackendCanWrite backend) => SqlQuery (SqlExpr (Insertion a)) -> ReaderT backend m Int64
- Database.Esqueleto.Legacy: select :: (SqlSelect a r, MonadIO m) => SqlQuery a -> SqlReadT m [r]
+ Database.Esqueleto.Legacy: select :: (SqlSelect a r, MonadIO m, SqlBackendCanRead backend) => SqlQuery a -> ReaderT backend m [r]
- Database.Esqueleto.Legacy: selectOne :: (SqlSelect a r, MonadIO m) => SqlQuery a -> SqlReadT m (Maybe r)
+ Database.Esqueleto.Legacy: selectOne :: (SqlSelect a r, MonadIO m, SqlBackendCanRead backend) => SqlQuery a -> ReaderT backend m (Maybe r)
- Database.Esqueleto.Legacy: update :: (MonadIO m, PersistEntity val, BackendCompatible SqlBackend (PersistEntityBackend val)) => (SqlExpr (Entity val) -> SqlQuery ()) -> SqlWriteT m ()
+ Database.Esqueleto.Legacy: update :: (MonadIO m, PersistEntity val, BackendCompatible SqlBackend (PersistEntityBackend val), SqlBackendCanWrite backend) => (SqlExpr (Entity val) -> SqlQuery ()) -> ReaderT backend m ()
- Database.Esqueleto.Legacy: updateCount :: (MonadIO m, PersistEntity val, BackendCompatible SqlBackend (PersistEntityBackend val)) => (SqlExpr (Entity val) -> SqlQuery ()) -> SqlWriteT m Int64
+ Database.Esqueleto.Legacy: updateCount :: (MonadIO m, PersistEntity val, BackendCompatible SqlBackend (PersistEntityBackend val), SqlBackendCanWrite backend) => (SqlExpr (Entity val) -> SqlQuery ()) -> ReaderT backend m Int64
- Database.Esqueleto.PostgreSQL: insertSelectWithConflict :: forall a m val. (FinalResult a, KnowResult a ~ Unique val, MonadIO m, PersistEntity val) => a -> SqlQuery (SqlExpr (Insertion val)) -> (SqlExpr (Entity val) -> SqlExpr (Entity val) -> [SqlExpr (Entity val) -> SqlExpr Update]) -> SqlWriteT m ()
+ Database.Esqueleto.PostgreSQL: insertSelectWithConflict :: forall a m val backend. (FinalResult a, KnowResult a ~ Unique val, MonadIO m, PersistEntity val, SqlBackendCanWrite backend) => a -> SqlQuery (SqlExpr (Insertion val)) -> (SqlExpr (Entity val) -> SqlExpr (Entity val) -> [SqlExpr (Entity val) -> SqlExpr Update]) -> ReaderT backend m ()
- Database.Esqueleto.PostgreSQL: insertSelectWithConflictCount :: forall a val m. (FinalResult a, KnowResult a ~ Unique val, MonadIO m, PersistEntity val) => a -> SqlQuery (SqlExpr (Insertion val)) -> (SqlExpr (Entity val) -> SqlExpr (Entity val) -> [SqlExpr (Entity val) -> SqlExpr Update]) -> SqlWriteT m Int64
+ Database.Esqueleto.PostgreSQL: insertSelectWithConflictCount :: forall a val m backend. (FinalResult a, KnowResult a ~ Unique val, MonadIO m, PersistEntity val, SqlBackendCanWrite backend) => a -> SqlQuery (SqlExpr (Insertion val)) -> (SqlExpr (Entity val) -> SqlExpr (Entity val) -> [SqlExpr (Entity val) -> SqlExpr Update]) -> ReaderT backend m Int64

Files

changelog.md view
@@ -1,3 +1,10 @@+3.5.4.2+=======+- @parsonsmatt+    - [#318](https://github.com/bitemyapp/esqueleto/pull/318)+        - Remove use of `SqlReadT` and `SqlWriteT` type alias so that Simplified+          Subsumption doesn't bite end users+ 3.5.4.1 ======= - @parsonsmatt
esqueleto.cabal view
@@ -1,7 +1,7 @@ cabal-version: 1.12  name:           esqueleto-version:        3.5.4.1+version:        3.5.4.2 synopsis:       Type-safe EDSL for SQL queries on persistent backends. description:    @esqueleto@ is a bare bones, type-safe EDSL for SQL queries that works with unmodified @persistent@ SQL backends.  Its language closely resembles SQL, so you don't have to learn new concepts, just new syntax, and it's fairly easy to predict the generated SQL and optimize it for your backend. Most kinds of errors committed when writing SQL are caught as compile-time errors---although it is possible to write type-checked @esqueleto@ queries that fail at runtime.                 .
src/Database/Esqueleto/Internal/Internal.hs view
@@ -2536,10 +2536,11 @@     ( SqlSelect a r     , MonadIO m1     , MonadIO m2+    , SqlBackendCanRead backend     )     => Mode     -> SqlQuery a-    -> SqlReadT m1 (Acquire (C.ConduitT () r m2 ()))+    -> R.ReaderT backend m1 (Acquire (C.ConduitT () r m2 ())) rawSelectSource mode query = do     conn <- projectBackend <$> R.ask     let _ = conn :: SqlBackend@@ -2622,9 +2623,10 @@     ::     ( SqlSelect a r     , MonadIO m+    , SqlBackendCanRead backend     )     => SqlQuery a-    -> SqlReadT m [r]+    -> R.ReaderT backend m [r] select query = do     res <- rawSelectSource SELECT query     conn <- R.ask@@ -2656,7 +2658,7 @@ --      return person -- @ -selectOne :: (SqlSelect a r, MonadIO m) => SqlQuery a -> SqlReadT m (Maybe r)+selectOne :: (SqlSelect a r, MonadIO m, SqlBackendCanRead backend) => SqlQuery a -> R.ReaderT backend m (Maybe r) selectOne query = fmap Maybe.listToMaybe $ select $ limit 1 >> query  -- | (Internal) Run a 'C.Source' of rows.@@ -2711,16 +2713,16 @@ -- @ -- delete-    :: (MonadIO m)+    :: (MonadIO m, SqlBackendCanWrite backend)     => SqlQuery ()-    -> SqlWriteT m ()+    -> R.ReaderT backend m () delete a = void $ deleteCount a  -- | Same as 'delete', but returns the number of rows affected. deleteCount-    :: (MonadIO m)+    :: (MonadIO m, SqlBackendCanWrite backend)     => SqlQuery ()-    -> SqlWriteT m Int64+    -> R.ReaderT backend m Int64 deleteCount a = rawEsqueleto DELETE a  -- | Execute an @esqueleto@ @UPDATE@ query inside @persistent@'s@@ -2739,9 +2741,10 @@     ::     ( MonadIO m, PersistEntity val     , BackendCompatible SqlBackend (PersistEntityBackend val)+    , SqlBackendCanWrite backend     )     => (SqlExpr (Entity val) -> SqlQuery ())-    -> SqlWriteT m ()+    -> R.ReaderT backend m () update a = void $ updateCount a  -- | Same as 'update', but returns the number of rows affected.@@ -2749,9 +2752,10 @@     ::     ( MonadIO m, PersistEntity val     , BackendCompatible SqlBackend (PersistEntityBackend val)+    , SqlBackendCanWrite backend     )     => (SqlExpr (Entity val) -> SqlQuery ())-    -> SqlWriteT m Int64+    -> R.ReaderT backend m Int64 updateCount a = rawEsqueleto UPDATE $ from a  builderToText :: TLB.Builder -> T.Text@@ -3689,16 +3693,16 @@ -- -- @since 2.4.2 insertSelect-    :: (MonadIO m, PersistEntity a)+    :: (MonadIO m, PersistEntity a, SqlBackendCanWrite backend)     => SqlQuery (SqlExpr (Insertion a))-    -> SqlWriteT m ()+    -> R.ReaderT backend m () insertSelect a = void $ insertSelectCount a  -- | Insert a 'PersistField' for every selected value, return the count afterward insertSelectCount-    :: (MonadIO m, PersistEntity a)+    :: (MonadIO m, PersistEntity a, SqlBackendCanWrite backend)     => SqlQuery (SqlExpr (Insertion a))-    -> SqlWriteT m Int64+    -> R.ReaderT backend m Int64 insertSelectCount a = rawEsqueleto INSERT_INTO a  -- | Renders an expression into 'Text'. Only useful for creating a textual
src/Database/Esqueleto/PostgreSQL.hs view
@@ -276,8 +276,8 @@ -- -- @since 3.1.3 insertSelectWithConflict-    :: forall a m val-     . (FinalResult a, KnowResult a ~ Unique val, MonadIO m, PersistEntity val)+    :: forall a m val backend+     . (FinalResult a, KnowResult a ~ Unique val, MonadIO m, PersistEntity val, SqlBackendCanWrite backend)     => a     -- ^ Unique constructor or a unique, this is used just to get the name of     -- the postgres constraint, the value(s) is(are) never used, so if you have@@ -288,7 +288,7 @@     -- ^ A list of updates to be applied in case of the constraint being     -- violated. The expression takes the current and excluded value to produce     -- the updates.-    -> SqlWriteT m ()+    -> R.ReaderT backend m () insertSelectWithConflict unique query a =     void $ insertSelectWithConflictCount unique query a @@ -296,12 +296,13 @@ -- -- @since 3.1.3 insertSelectWithConflictCount-    :: forall a val m-     . (FinalResult a, KnowResult a ~ Unique val, MonadIO m, PersistEntity val)+    :: forall a val m backend+     . (FinalResult a, KnowResult a ~ Unique val, MonadIO m, PersistEntity val,+     SqlBackendCanWrite backend)     => a     -> SqlQuery (SqlExpr (Insertion val))     -> (SqlExpr (Entity val) -> SqlExpr (Entity val) -> [SqlExpr (Entity val) -> SqlExpr Update])-    -> SqlWriteT m Int64+    -> R.ReaderT backend m Int64 insertSelectWithConflictCount unique query conflictQuery = do     conn <- R.ask     uncurry rawExecuteCount $