pg-store-0.1.1: Simple storage interface to PostgreSQL

Copyright(c) Ole Krüger 2015-2016
LicenseBSD3
MaintainerOle Krüger <ole@vprsm.de>
Safe HaskellNone
LanguageHaskell2010

Database.PostgreSQL.Store.Errand

Contents

Description

 

Synopsis

Errand

data ErrandError Source #

Error during errand

Constructors

NoResult

No Result has been returned.

EmptyResult

Result set is empty.

UserError String

A user has thrown an error.

ExecError ExecStatus ErrorCode ByteString ByteString ByteString

Query execution failed.

ResultError ResultError

Result processing failed.

data ExecStatus :: * #

Constructors

EmptyQuery

The string sent to the server was empty.

CommandOk

Successful completion of a command returning no data.

TuplesOk

Successful completion of a command returning data (such as a SELECT or SHOW).

CopyOut

Copy Out (from server) data transfer started.

CopyIn

Copy In (to server) data transfer started.

BadResponse

The server's response was not understood.

NonfatalError

A nonfatal error (a notice or warning) occurred.

FatalError

A fatal error occurred.

SingleTuple

The PGresult contains a single result tuple from the current command. This status occurs only when single-row mode has been selected for the query.

data Errand a Source #

An interaction with the database

Instances

Monad Errand Source # 

Methods

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

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

return :: a -> Errand a #

fail :: String -> Errand a #

Functor Errand Source # 

Methods

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

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

Applicative Errand Source # 

Methods

pure :: a -> Errand a #

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

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

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

MonadIO Errand Source # 

Methods

liftIO :: IO a -> Errand a #

MonadError ErrandError Errand Source # 

runErrand :: Connection -> Errand a -> IO (Either ErrandError a) Source #

Run an errand.

execute :: Query -> Errand Result Source #

Execute a query and return the internal raw result.

query :: Result a => Query -> Errand [a] Source #

Execute a query and process its result set.

query_ :: Query -> Errand () Source #

Execute a query and dismiss its result.

queryWith :: Query -> ResultProcessor a -> Errand [a] Source #

Execute a query and process its result set using the provided result processor.

Result parser

class Result a where Source #

Allows you to implement a custom result parser for your type. mkTable can implement this for your type.

Minimal complete definition

queryResultProcessor

Instances

Column a => Result (Single a) Source # 
Result (Reference a) Source # 
(Result a, Result b) => Result (a, b) Source #

Combine result parsers sequencially.

(Result a, Result b, Result c) => Result (a, b, c) Source # 
(Result a, Result b, Result c, Result d) => Result (a, b, c, d) Source # 
(Result a, Result b, Result c, Result d, Result e) => Result (a, b, c, d, e) Source # 

Methods

queryResultProcessor :: ResultProcessor (a, b, c, d, e) Source #

(Result a, Result b, Result c, Result d, Result e, Result f) => Result (a, b, c, d, e, f) Source # 

Methods

queryResultProcessor :: ResultProcessor (a, b, c, d, e, f) Source #

(Result a, Result b, Result c, Result d, Result e, Result f, Result g) => Result (a, b, c, d, e, f, g) Source # 

Methods

queryResultProcessor :: ResultProcessor (a, b, c, d, e, f, g) Source #

newtype Single a Source #

Helper type to capture an single column.

Constructors

Single 

Fields

Instances

Eq a => Eq (Single a) Source # 

Methods

(==) :: Single a -> Single a -> Bool #

(/=) :: Single a -> Single a -> Bool #

Ord a => Ord (Single a) Source # 

Methods

compare :: Single a -> Single a -> Ordering #

(<) :: Single a -> Single a -> Bool #

(<=) :: Single a -> Single a -> Bool #

(>) :: Single a -> Single a -> Bool #

(>=) :: Single a -> Single a -> Bool #

max :: Single a -> Single a -> Single a #

min :: Single a -> Single a -> Single a #

Show a => Show (Single a) Source # 

Methods

showsPrec :: Int -> Single a -> ShowS #

show :: Single a -> String #

showList :: [Single a] -> ShowS #

Column a => Result (Single a) Source #