| 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.