Adjust for upcoming split db changes

This commit is contained in:
Eric Easley 2016-04-01 12:28:43 -07:00
parent ab275c599d
commit 5d56abd698
4 changed files with 29 additions and 20 deletions

View File

@ -430,8 +430,9 @@ valJ = val . unValue
-- | 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

View File

@ -10,4 +10,4 @@ import Database.Persist.Sql hiding
, selectKeysList, deleteCascadeWhere, (=.), (+=.), (-=.), (*=.), (/=.)
, (==.), (!=.), (<.), (>.), (<=.), (>=.), (<-.), (/<-.), (||.)
, listToJSON, mapToJSON, getPersistMap, limitOffsetOrder, selectSource
, update )
, update , count )

View File

@ -754,10 +754,10 @@ rawSelectSource :: ( SqlSelect a r
, 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 +833,7 @@ selectSource query = do
-- @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 +863,8 @@ selectDistinct = select . distinct
-- | (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 +873,12 @@ runSource src = src C.$$ CL.consume
-- | (Internal) Execute an @esqueleto@ statement inside
-- @persistent@'s 'SqlPersistT' monad.
rawEsqueleto :: ( MonadIO m, SqlSelect a r )
rawEsqueleto :: ( MonadIO m, SqlSelect a r, IsPersistBackend backend, BaseBackend backend ~ SqlBackend)
=> 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 +908,14 @@ rawEsqueleto mode query = do
-- @
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
@ -934,7 +934,7 @@ deleteCount = rawEsqueleto DELETE
update :: ( MonadIO m
, SqlEntity val )
=> (SqlExpr (Entity val) -> SqlQuery ())
-> SqlPersistT m ()
-> SqlWriteT m ()
update = liftM (const ()) . updateCount
@ -942,7 +942,7 @@ update = liftM (const ()) . updateCount
updateCount :: ( MonadIO m
, SqlEntity val )
=> (SqlExpr (Entity val) -> SqlQuery ())
-> SqlPersistT m Int64
-> SqlWriteT m Int64
updateCount = rawEsqueleto UPDATE . from
@ -961,7 +961,9 @@ builderToText = TL.toStrict . TLB.toLazyTextWith defaultChunkSize
-- @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
:: (IsPersistBackend backend, BaseBackend backend ~ SqlBackend, 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 +982,7 @@ toRawSql mode (conn, firstIdentState) query =
-- 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 +1747,17 @@ to16 ((a,b),(c,d),(e,f),(g,h),(i,j),(k,l),(m,n),(o,p)) = (a,b,c,d,e,f,g,h,i,j,k,
--
-- /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'." #-}

View File

@ -1 +1,7 @@
resolver: lts-5.1
packages:
- location:
git: git@github.com:pseudonom/persistent
commit: 041eb7346cf5b597d8d6c67dc86dfc55d76acce3
subdirs:
- persistent