hasql-pool-0.7.2.1: A pool of connections for Hasql
Safe HaskellNone
LanguageHaskell2010

Hasql.Pool

Contents

Synopsis

Pool

data Pool Source #

A pool of connections to DB.

acquire :: Int -> Settings -> IO Pool Source #

Given the pool-size and connection settings create a connection-pool.

No connections actually get established by this function. It is delegated to use.

acquireDynamically :: Int -> IO Settings -> IO Pool Source #

Given the pool-size and connection settings constructor action create a connection-pool.

No connections actually get established by this function. It is delegated to use.

In difference to acquire new settings get fetched each time a connection is created. This may be useful for some security models.

release :: Pool -> IO () Source #

Release all the connections in the 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.

Errors

data UsageError Source #

Union over all errors that use can result in.

Constructors

ConnectionUsageError ConnectionError

Attempt to establish a connection failed.

SessionUsageError QueryError

Session execution failed.

PoolIsReleasedUsageError

Attempt to use a pool, which has already been called release upon.

Instances

Instances details
Eq UsageError Source # 
Instance details

Defined in Hasql.Pool

Show UsageError Source # 
Instance details

Defined in Hasql.Pool

Exception UsageError Source # 
Instance details

Defined in Hasql.Pool