esqueleto 2.4.3 → 2.5.0
raw patch · 6 files changed
+34/−29 lines, 6 filesdep ~basedep ~blaze-htmldep ~bytestringnew-uploader
Dependency ranges changed: base, blaze-html, bytestring, conduit, monad-logger, persistent, resourcet, tagged, transformers, unordered-containers
Files
- esqueleto.cabal +5/−5
- src/Database/Esqueleto.hs +3/−2
- src/Database/Esqueleto/Internal/Language.hs +1/−1
- src/Database/Esqueleto/Internal/PersistentImport.hs +1/−1
- src/Database/Esqueleto/Internal/Sql.hs +21/−18
- test/Test.hs +3/−2
esqueleto.cabal view
@@ -1,12 +1,12 @@ name: esqueleto-version: 2.4.3+version: 2.5.0 synopsis: Type-safe EDSL for SQL queries on persistent backends.-homepage: https://github.com/prowdsponsor/esqueleto+homepage: https://github.com/bitemyapp/esqueleto license: BSD3 license-file: LICENSE author: Felipe Lessa-maintainer: felipe.lessa@gmail.com-copyright: (c) 2012-2015 Felipe Almeida Lessa+maintainer: cma@bitemyapp.com+copyright: (c) 2012-2016 Felipe Almeida Lessa category: Database build-type: Simple cabal-version: >=1.8@@ -66,7 +66,7 @@ base >= 4.5 && < 4.9 , bytestring , text >= 0.11 && < 1.3- , persistent >= 2.1.1.7 && < 2.3+ , persistent >= 2.5 && < 2.6 , transformers >= 0.2 , unordered-containers >= 0.2 , tagged >= 0.2
src/Database/Esqueleto.hs view
@@ -430,8 +430,9 @@ -- | Synonym for 'Database.Persist.Store.delete' that does not -- clash with @esqueleto@'s 'delete'.-deleteKey :: ( PersistStore (PersistEntityBackend val)+deleteKey :: ( PersistStore backend+ , BaseBackend backend ~ PersistEntityBackend val , MonadIO m , PersistEntity val )- => Key val -> ReaderT (PersistEntityBackend val) m ()+ => Key val -> ReaderT backend m () deleteKey = Database.Persist.delete
src/Database/Esqueleto/Internal/Language.hs view
@@ -471,7 +471,7 @@ -- @ -- select $ -- 'from' $ \\person -> do- -- 'where_' $ person '^.' PersonId `in_` 'valList' personIds+ -- 'where_' $ person '^.' PersonId ``in_'` 'valList' personIds -- return person -- @ --
src/Database/Esqueleto/Internal/PersistentImport.hs view
@@ -10,4 +10,4 @@ , selectKeysList, deleteCascadeWhere, (=.), (+=.), (-=.), (*=.), (/=.) , (==.), (!=.), (<.), (>.), (<=.), (>=.), (<-.), (/<-.), (||.) , listToJSON, mapToJSON, getPersistMap, limitOffsetOrder, selectSource- , update )+ , update , count )
src/Database/Esqueleto/Internal/Sql.hs view
@@ -9,6 +9,7 @@ , UndecidableInstances , ScopedTypeVariables , InstanceSigs+ , Rank2Types #-} -- | This is an internal module, anything exported by this module -- may change without a major version bump. Please use only@@ -754,10 +755,10 @@ , MonadIO m2 ) => Mode -> SqlQuery a- -> SqlPersistT m1 (Acquire (C.Source m2 r))+ -> SqlReadT m1 (Acquire (C.Source m2 r)) rawSelectSource mode query = do- conn <- R.ask+ conn <- persistBackend <$> R.ask res <- run conn return $ (C.$= massage) `fmap` res where@@ -833,7 +834,7 @@ -- @SqlExpr (Entity Person)@. select :: ( SqlSelect a r , MonadIO m )- => SqlQuery a -> SqlPersistT m [r]+ => SqlQuery a -> SqlReadT m [r] select query = do res <- rawSelectSource SELECT query conn <- R.ask@@ -863,8 +864,8 @@ -- | (Internal) Run a 'C.Source' of rows. runSource :: Monad m =>- C.Source (SqlPersistT m) r- -> SqlPersistT m [r]+ C.Source (R.ReaderT backend m) r+ -> R.ReaderT backend m [r] runSource src = src C.$$ CL.consume @@ -873,12 +874,12 @@ -- | (Internal) Execute an @esqueleto@ statement inside -- @persistent@'s 'SqlPersistT' monad.-rawEsqueleto :: ( MonadIO m, SqlSelect a r )+rawEsqueleto :: ( MonadIO m, SqlSelect a r, IsSqlBackend backend) => Mode -> SqlQuery a- -> SqlPersistT m Int64+ -> R.ReaderT backend m Int64 rawEsqueleto mode query = do- conn <- R.ask+ conn <- persistBackend <$> R.ask uncurry rawExecuteCount $ first builderToText $ toRawSql mode (conn, initialIdentState) query@@ -908,14 +909,14 @@ -- @ delete :: ( MonadIO m ) => SqlQuery ()- -> SqlPersistT m ()+ -> SqlWriteT m () delete = liftM (const ()) . deleteCount -- | Same as 'delete', but returns the number of rows affected. deleteCount :: ( MonadIO m ) => SqlQuery ()- -> SqlPersistT m Int64+ -> SqlWriteT m Int64 deleteCount = rawEsqueleto DELETE @@ -927,14 +928,14 @@ -- Example of usage: -- -- @--- 'update' $ \p -> do+-- 'update' $ \\p -> do -- 'set' p [ PersonAge '=.' 'just' ('val' thisYear) -. p '^.' PersonBorn ] -- 'where_' $ isNothing (p '^.' PersonAge) -- @ update :: ( MonadIO m , SqlEntity val ) => (SqlExpr (Entity val) -> SqlQuery ())- -> SqlPersistT m ()+ -> SqlWriteT m () update = liftM (const ()) . updateCount @@ -942,7 +943,7 @@ updateCount :: ( MonadIO m , SqlEntity val ) => (SqlExpr (Entity val) -> SqlQuery ())- -> SqlPersistT m Int64+ -> SqlWriteT m Int64 updateCount = rawEsqueleto UPDATE . from @@ -961,7 +962,9 @@ -- @esqueleto@, instead of manually using this function (which is -- possible but tedious), you may just turn on query logging of -- @persistent@.-toRawSql :: SqlSelect a r => Mode -> IdentInfo -> SqlQuery a -> (TLB.Builder, [PersistValue])+toRawSql+ :: (IsSqlBackend backend, SqlSelect a r)+ => Mode -> (backend, IdentState) -> SqlQuery a -> (TLB.Builder, [PersistValue]) toRawSql mode (conn, firstIdentState) query = let ((ret, sd), finalIdentState) = flip S.runState firstIdentState $@@ -980,7 +983,7 @@ -- that were used) to the subsequent calls. This ensures -- that no name clashes will occur on subqueries that may -- appear on the expressions below.- info = (conn, finalIdentState)+ info = (persistBackend conn, finalIdentState) in mconcat [ makeInsertInto info mode ret , makeSelect info mode distinctClause ret@@ -1745,17 +1748,17 @@ -- -- /Since: 2.4.2/ insertSelect :: (MonadIO m, PersistEntity a) =>- SqlQuery (SqlExpr (Insertion a)) -> SqlPersistT m ()+ SqlQuery (SqlExpr (Insertion a)) -> SqlWriteT m () insertSelect = liftM (const ()) . insertSelectCount -- | Insert a 'PersistField' for every selected value, return the count afterward insertSelectCount :: (MonadIO m, PersistEntity a) =>- SqlQuery (SqlExpr (Insertion a)) -> SqlPersistT m Int64+ SqlQuery (SqlExpr (Insertion a)) -> SqlWriteT m Int64 insertSelectCount = rawEsqueleto INSERT_INTO . fmap EInsertFinal -- | Insert a 'PersistField' for every unique selected value. insertSelectDistinct :: (MonadIO m, PersistEntity a) =>- SqlQuery (SqlExpr (Insertion a)) -> SqlPersistT m ()+ SqlQuery (SqlExpr (Insertion a)) -> SqlWriteT m () insertSelectDistinct = insertSelect . distinct {-# DEPRECATED insertSelectDistinct "Since 2.2.4: use 'insertSelect' and 'distinct'." #-}
test/Test.hs view
@@ -1396,10 +1396,11 @@ insert' :: ( Functor m- , PersistStore (PersistEntityBackend val)+ , BaseBackend backend ~ PersistEntityBackend val+ , PersistStore backend , MonadIO m , PersistEntity val )- => val -> ReaderT (PersistEntityBackend val) m (Entity val)+ => val -> ReaderT backend m (Entity val) insert' v = flip Entity v <$> insert v