hasql-1.3.0.2: An efficient PostgreSQL driver and a flexible mapping API

Safe HaskellNone
LanguageHaskell2010

Hasql.Session

Contents

Synopsis

Documentation

data Session a #

A batch of actions to be executed in the context of a database connection.

Instances
Monad Session # 
Instance details

Defined in Hasql.Private.Session

Methods

(>>=) :: Session a -> (a -> Session b) -> Session b #

(>>) :: Session a -> Session b -> Session b #

return :: a -> Session a #

fail :: String -> Session a #

Functor Session # 
Instance details

Defined in Hasql.Private.Session

Methods

fmap :: (a -> b) -> Session a -> Session b #

(<$) :: a -> Session b -> Session a #

Applicative Session # 
Instance details

Defined in Hasql.Private.Session

Methods

pure :: a -> Session a #

(<*>) :: Session (a -> b) -> Session a -> Session b #

liftA2 :: (a -> b -> c) -> Session a -> Session b -> Session c #

(*>) :: Session a -> Session b -> Session b #

(<*) :: Session a -> Session b -> Session a #

MonadIO Session # 
Instance details

Defined in Hasql.Private.Session

Methods

liftIO :: IO a -> Session a #

MonadError QueryError Session # 
Instance details

Defined in Hasql.Private.Session

sql :: ByteString -> Session () #

Possibly a multi-statement query, which however cannot be parameterized or prepared, nor can any results of it be collected.

statement :: params -> Statement params result -> Session result #

Parameters and a specification of a parametric single-statement query to apply them to.

Execution

run :: Session a -> Connection -> IO (Either QueryError a) #

Executes a bunch of commands on the provided connection.

Errors

data QueryError #

An error during the execution of a query. Comes packed with the query template and a textual representation of the provided params.

Instances
Eq QueryError # 
Instance details

Defined in Hasql.Private.Errors

Show QueryError # 
Instance details

Defined in Hasql.Private.Errors

MonadError QueryError Session # 
Instance details

Defined in Hasql.Private.Session

data CommandError #

An error of some command in the session.

Constructors

ClientError (Maybe ByteString)

An error on the client-side, with a message generated by the "libpq" library. Usually indicates problems with connection.

ResultError ResultError

Some error with a command result.

Instances
Eq CommandError # 
Instance details

Defined in Hasql.Private.Errors

Show CommandError # 
Instance details

Defined in Hasql.Private.Errors

data ResultError #

An error with a command result.

Constructors

ServerError ByteString ByteString (Maybe ByteString) (Maybe ByteString)

An error reported by the DB. Consists of the following: Code, message, details, hint.

  • Code. The SQLSTATE code for the error. It's recommended to use the "postgresql-error-codes" package to work with those.
  • Message. The primary human-readable error message (typically one line). Always present.
  • Details. An optional secondary error message carrying more detail about the problem. Might run to multiple lines.
  • Hint. An optional suggestion on what to do about the problem. This is intended to differ from detail in that it offers advice (potentially inappropriate) rather than hard facts. Might run to multiple lines.
UnexpectedResult Text

The database returned an unexpected result. Indicates an improper statement or a schema mismatch.

RowError Int RowError

An error of the row reader, preceded by the index of the row.

UnexpectedAmountOfRows Int

An unexpected amount of rows.

Instances
Eq ResultError # 
Instance details

Defined in Hasql.Private.Errors

Show ResultError # 
Instance details

Defined in Hasql.Private.Errors

data RowError #

An error during the decoding of a specific row.

Constructors

EndOfInput

Appears on the attempt to parse more columns than there are in the result.

UnexpectedNull

Appears on the attempt to parse a NULL as some value.

ValueError Text

Appears when a wrong value parser is used. Comes with the error details.

Instances
Eq RowError # 
Instance details

Defined in Hasql.Private.Errors

Show RowError # 
Instance details

Defined in Hasql.Private.Errors