postgresql-simple- Mid-Level PostgreSQL client library

MaintainerLeon P Smith <>
Safe HaskellNone



Internal bits. This interface is less stable and can change at any time. In particular this means that while the rest of the postgresql-simple package endeavors to follow the package versioning policy, this module does not. Also, at the moment there are things in here that aren't particularly internal and are exported elsewhere; these will eventually disappear from this module.



data Field Source

A Field represents metadata about a particular field

You don't particularly want to retain these structures for a long period of time, as they will retain the entire query result, not just the field metadata




result :: !Result
column :: !Column
typeOid :: !Oid

This returns the type oid associated with the column. Analogous to libpq's PQftype.

data QueryError Source

Exception thrown if query is used to perform an INSERT-like operation, or execute is used to perform a SELECT-like operation.




qeMessage :: String
qeQuery :: Query

defaultConnectInfo :: ConnectInfoSource

Default information for setting up a connection.

Defaults are as follows:

  • Server on localhost
  • Port on 5432
  • User postgres
  • No password
  • Database postgres

Use as in the following example:

 connect defaultConnectInfo { connectHost = "" }

connect :: ConnectInfo -> IO ConnectionSource

Connect with the given username to the given database. Will throw an exception if it cannot connect.

connectPostgreSQL :: ByteString -> IO ConnectionSource

Attempt to make a connection based on a libpq connection string. See for more information.

postgreSQLConnectionString :: ConnectInfo -> ByteStringSource

Turns a ConnectInfo data structure into a libpq connection string.

execute_ :: Connection -> Query -> IO Int64Source

A version of execute that does not perform query substitution.

withConnection :: Connection -> (Connection -> IO a) -> IO aSource

Atomically perform an action with the database handle, if there is one.

data Row Source




row :: !Row
rowresult :: !Result