Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Pool
use :: Pool -> Session a -> IO (Either UsageError a) Source #
Use a connection from the pool to run a session and return the connection to the pool, when finished.
Session failing with a ClientError
gets interpreted as a loss of
connection. In such case the connection does not get returned to the pool
and a slot gets freed up for a new connection to be established the next
time one is needed. The error still gets returned from this function.
Warning: Due to the mechanism mentioned above you should avoid intercepting this error type from within sessions.
release :: Pool -> IO () Source #
Release all the idle connections in the pool, and mark the in-use connections to be released after use. Any connections acquired after the call will be freshly established.
The pool remains usable after this action. So you can use this function to reset the connections in the pool. Naturally, you can also use it to release the resources.
Errors
data UsageError Source #
Union over all errors that use
can result in.
ConnectionUsageError ConnectionError | Attempt to establish a connection failed. |
SessionUsageError QueryError | Session execution failed. |
AcquisitionTimeoutUsageError | Timeout acquiring a connection. |
Instances
Exception UsageError Source # | |
Defined in Hasql.Pool toException :: UsageError -> SomeException # fromException :: SomeException -> Maybe UsageError # displayException :: UsageError -> String # | |
Show UsageError Source # | |
Defined in Hasql.Pool showsPrec :: Int -> UsageError -> ShowS # show :: UsageError -> String # showList :: [UsageError] -> ShowS # | |
Eq UsageError Source # | |
Defined in Hasql.Pool (==) :: UsageError -> UsageError -> Bool # (/=) :: UsageError -> UsageError -> Bool # |