Safe Haskell | None |
---|---|
Language | Haskell2010 |
Database.PostgreSQL.Tx.Squeal.Internal
Contents
Synopsis
- newtype SquealConnection = UnsafeSquealConnection {}
- newtype SquealTxM' (db :: SchemasType) r a = SquealTxM {
- fromSquealTxM :: TxM r a
- type SquealTxM (db :: SchemasType) a = forall r. SquealEnv r => SquealTxM' db r a
- type SquealM a = forall r. SquealEnv r => TxM r a
- type SquealEnv r = TxEnv SquealConnection r :: Constraint
- mkSquealConnection :: Connection -> SquealConnection
- fromSquealException :: SquealException -> TxException
- unsafeSquealIOTxM :: PQ db db IO a -> SquealTxM db a
- unsafeSquealIOTxM1 :: (x1 -> PQ db db IO a) -> x1 -> SquealTxM db a
- unsafeSquealIOTxM2 :: (x1 -> x2 -> PQ db db IO a) -> x1 -> x2 -> SquealTxM db a
- unsafeSquealIOTxM3 :: (x1 -> x2 -> x3 -> PQ db db IO a) -> x1 -> x2 -> x3 -> SquealTxM db a
- unsafeRunSquealTransaction :: forall r a. SquealEnv r => (forall db. PQ db db IO a -> PQ db db IO a) -> r -> TxM r a -> IO a
- transactionallyRetry' :: (MonadUnliftIO m, MonadPQ db m, Exception e) => TransactionMode -> (e -> Bool) -> m a -> m a
Disclaimer
Changes to this module will not be reflected in the library's version updates.
Internals
newtype SquealConnection Source #
Used in the SquealEnv
to specify the Connection
to use.
Should produce the same Connection
if called multiple times
in the same transaction. Usually you will want to use mkSquealConnection
to get one.
Since: 0.2.0.0
Constructors
UnsafeSquealConnection | |
Fields |
newtype SquealTxM' (db :: SchemasType) r a Source #
A newtype wrapper around TxM
which includes the squeal
SchemasType
parameter db
. This is used only as type information.
You can easily convert TxM
to and from SquealTxM'
by using the
SquealTxM'
constructor and fromSquealTxM
function, respectively.
In practice, you will likely prefer to use the SquealTxM
type alias
as it includes the SquealEnv
constraint on r
.
Since: 0.2.0.0
Constructors
SquealTxM | |
Fields
|
Instances
Monad (SquealTxM' db r) Source # | |
Defined in Database.PostgreSQL.Tx.Squeal.Internal Methods (>>=) :: SquealTxM' db r a -> (a -> SquealTxM' db r b) -> SquealTxM' db r b # (>>) :: SquealTxM' db r a -> SquealTxM' db r b -> SquealTxM' db r b # return :: a -> SquealTxM' db r a # | |
Functor (SquealTxM' db r) Source # | |
Defined in Database.PostgreSQL.Tx.Squeal.Internal Methods fmap :: (a -> b) -> SquealTxM' db r a -> SquealTxM' db r b # (<$) :: a -> SquealTxM' db r b -> SquealTxM' db r a # | |
Applicative (SquealTxM' db r) Source # | |
Defined in Database.PostgreSQL.Tx.Squeal.Internal Methods pure :: a -> SquealTxM' db r a # (<*>) :: SquealTxM' db r (a -> b) -> SquealTxM' db r a -> SquealTxM' db r b # liftA2 :: (a -> b -> c) -> SquealTxM' db r a -> SquealTxM' db r b -> SquealTxM' db r c # (*>) :: SquealTxM' db r a -> SquealTxM' db r b -> SquealTxM' db r b # (<*) :: SquealTxM' db r a -> SquealTxM' db r b -> SquealTxM' db r a # | |
(TypeError ('Text "MonadIO is banned in SquealTxM'; use 'SquealTxM . unsafeRunIOInTxM' if you are sure this is safe IO") :: Constraint) => MonadIO (SquealTxM' db r) Source # | The Note that we specialize this instance for Since: 0.2.0.0 |
Defined in Database.PostgreSQL.Tx.Squeal.Internal Methods liftIO :: IO a -> SquealTxM' db r a # |
type SquealTxM (db :: SchemasType) a = forall r. SquealEnv r => SquealTxM' db r a Source #
Alias for SquealTxM'
but has the SquealEnv
constraint applied to r
.
Since: 0.2.0.0
type SquealM a = forall r. SquealEnv r => TxM r a Source #
Monad type alias for running squeal-postgresql
via postgresql-tx
.
Since: 0.2.0.0
type SquealEnv r = TxEnv SquealConnection r :: Constraint Source #
Runtime environment needed to run squeal-postgresql
via postgresql-tx
.
Since: 0.2.0.0
mkSquealConnection :: Connection -> SquealConnection Source #
Construct a SquealConnection
from a Connection
.
Since: 0.2.0.0
unsafeSquealIOTxM3 :: (x1 -> x2 -> x3 -> PQ db db IO a) -> x1 -> x2 -> x3 -> SquealTxM db a Source #
unsafeRunSquealTransaction :: forall r a. SquealEnv r => (forall db. PQ db db IO a -> PQ db db IO a) -> r -> TxM r a -> IO a Source #
transactionallyRetry' :: (MonadUnliftIO m, MonadPQ db m, Exception e) => TransactionMode -> (e -> Bool) -> m a -> m a Source #
A variant of transactionallyRetry
which takes a predicate
for determining when to retry instead of only doing so on
serialization_failure
.