Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data Pool
- type Settings = (PoolSize, ResidenceTimeout, Settings)
- data UsageError
- type ConnectionGetter = IO (Either ConnectionError Connection)
- data Stats = Stats {
- currentUsage :: !Int
- available :: !Int
- stats :: Pool -> IO Stats
- getPoolUsageStat :: Pool -> IO PoolSize
- acquire :: Settings -> IO Pool
- acquireWith :: ConnectionGetter -> Settings -> IO Pool
- release :: Pool -> IO ()
- use :: Pool -> Session a -> IO (Either UsageError a)
- useWithObserver :: Maybe ObserverAction -> Pool -> Session a -> IO (Either UsageError a)
- withResourceOnEither :: Pool resource -> (resource -> IO (Either failure success)) -> IO (Either failure success)
Documentation
type Settings = (PoolSize, ResidenceTimeout, Settings) Source #
Settings of the connection pool. Consist of:
- Pool-size.
- Timeout. An amount of time for which an unused resource is kept open. The smallest acceptable value is 0.5 seconds.
- Connection settings.
data UsageError Source #
A union over the connection establishment error and the session error.
Instances
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 # |
type ConnectionGetter = IO (Either ConnectionError Connection) Source #
Connection getter action that allows for obtaining Postgres connection settings via external resources such as AWS tokens etc.
Stats | |
|
getPoolUsageStat :: Pool -> IO PoolSize Source #
acquire :: Settings -> IO Pool Source #
Given the pool-size, timeout and connection settings create a connection-pool.
acquireWith :: ConnectionGetter -> Settings -> IO Pool Source #
Similar to acquire
, allows for finer configuration.
release :: Pool -> IO () Source #
Release the connection-pool by closing and removing all connections.
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.
useWithObserver :: Maybe ObserverAction -> Pool -> Session a -> IO (Either UsageError a) Source #
Same as use
but allows for a custom observer action. You can use it for gathering latency metrics.