hasql-transaction-1.2.1: library/Hasql/Transaction/Sessions.hs
module Hasql.Transaction.Sessions
( transaction,
transactionNoRetry,
-- * Transaction settings
C.Mode (..),
C.IsolationLevel (..),
)
where
import Hasql.Session qualified as B
import Hasql.Transaction.Config qualified as C
import Hasql.Transaction.Private.Prelude
import Hasql.Transaction.Private.Transaction qualified as A
-- |
-- Execute the transaction using the provided isolation level and mode.
{-# INLINE transaction #-}
transaction :: C.IsolationLevel -> C.Mode -> A.Transaction a -> B.Session a
transaction isolation mode transaction =
A.run transaction isolation mode True
-- |
-- Execute the transaction but do not retry it on errors.
{-# INLINE transactionNoRetry #-}
transactionNoRetry :: C.IsolationLevel -> C.Mode -> A.Transaction a -> B.Session a
transactionNoRetry isolation mode transaction =
A.run transaction isolation mode False