Stability | experimental |
---|---|
Maintainer | Leon P Smith <leon@melding-monads.com> |
Safe Haskell | None |
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 = Field {}
- type TypeInfoCache = IntMap TypeInfo
- data Connection = Connection {}
- data SqlError = SqlError {}
- fatalError :: ByteString -> SqlError
- data QueryError = QueryError {}
- data ConnectInfo = ConnectInfo {}
- defaultConnectInfo :: ConnectInfo
- connect :: ConnectInfo -> IO Connection
- connectPostgreSQL :: ByteString -> IO Connection
- postgreSQLConnectionString :: ConnectInfo -> ByteString
- oid2int :: Oid -> Int
- exec :: Connection -> ByteString -> IO Result
- execute_ :: Connection -> Query -> IO Int64
- finishExecute :: Connection -> Query -> Result -> IO Int64
- throwResultError :: ByteString -> Result -> ExecStatus -> IO a
- disconnectedError :: SqlError
- withConnection :: Connection -> (Connection -> IO a) -> IO a
- close :: Connection -> IO ()
- newNullConnection :: IO Connection
- data Row = Row {}
- newtype RowParser a = RP {}
- liftRowParser :: IO a -> RowParser a
- newtype Conversion a = Conversion {
- runConversion :: Connection -> IO (Ok a)
- liftConversion :: IO a -> Conversion a
- conversionMap :: (Ok a -> Ok b) -> Conversion a -> Conversion b
- conversionError :: Exception err => err -> Conversion a
- newTempName :: Connection -> IO Query
- fdError :: ByteString -> IOError
Documentation
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
type TypeInfoCache = IntMap TypeInfoSource
data Connection Source
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.
data ConnectInfo Source
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 = "db.example.com" }
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 http://www.postgresql.org/docs/9.1/static/libpq-connect.html for more information.
postgreSQLConnectionString :: ConnectInfo -> ByteStringSource
Turns a ConnectInfo
data structure into a libpq connection string.
exec :: Connection -> ByteString -> IO ResultSource
execute_ :: Connection -> Query -> IO Int64Source
A version of execute
that does not perform query substitution.
finishExecute :: Connection -> Query -> Result -> IO Int64Source
throwResultError :: ByteString -> Result -> ExecStatus -> IO aSource
withConnection :: Connection -> (Connection -> IO a) -> IO aSource
Atomically perform an action with the database handle, if there is one.
close :: Connection -> IO ()Source
liftRowParser :: IO a -> RowParser aSource
newtype Conversion a Source
Conversion | |
|
liftConversion :: IO a -> Conversion aSource
conversionMap :: (Ok a -> Ok b) -> Conversion a -> Conversion bSource
conversionError :: Exception err => err -> Conversion aSource
newTempName :: Connection -> IO QuerySource
fdError :: ByteString -> IOErrorSource