1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
module Database.Persist.Sql
( module Database.Persist.Sql.Types
, module Database.Persist.Sql.Class
, module Database.Persist.Sql.Run
, module Database.Persist.Sql.Migration
, module Database.Persist
, rawQuery
, rawExecute
, rawExecuteCount
, rawSql
, deleteWhereCount
, updateWhereCount
, transactionSave
, transactionUndo
, getStmtConn
-- * Internal
, module Database.Persist.Sql.Internal
, decorateSQLWithLimitOffset
) where
import Database.Persist
import Database.Persist.Sql.Types
import Database.Persist.Sql.Class
import Database.Persist.Sql.Run hiding (withResourceTimeout)
import Database.Persist.Sql.Raw
import Database.Persist.Sql.Migration
import Database.Persist.Sql.Internal
import Database.Persist.Sql.Orphan.PersistQuery
import Database.Persist.Sql.Orphan.PersistStore ()
import Database.Persist.Sql.Orphan.PersistUnique ()
import Control.Monad.IO.Class
-- | Commit the current transaction and begin a new one.
--
-- Since 1.2.0
transactionSave :: MonadSqlPersist m => m ()
transactionSave = do
conn <- askSqlConn
let getter = getStmtConn conn
liftIO $ connCommit conn getter >> connBegin conn getter
-- | Roll back the current transaction and begin a new one.
--
-- Since 1.2.0
transactionUndo :: MonadSqlPersist m => m ()
transactionUndo = do
conn <- askSqlConn
let getter = getStmtConn conn
liftIO $ connRollback conn getter >> connBegin conn getter
|