| Stability | experimental |
|---|---|
| Maintainer | Leon P Smith <leon@melding-monads.com> |
| Safe Haskell | None |
Database.PostgreSQL.Simple.TypeInfo
Description
This module provides convenient and efficient access to parts of the
pg_type metatable. At the moment, this requires PostgreSQL 8.4 if
you need to work with types that do not appear in
Static.
The current scheme could be more efficient, especially for some use
cases. In particular, connection pools that use many user-added
types and connect to a set of servers with identical (or at least
compatible) pg_type and associated tables could share a common
typeinfo cache, thus saving memory and communication between the
client and server.
- getTypeInfo :: Connection -> Oid -> IO TypeInfo
- data TypeInfo
- = Basic {
- typoid :: !Oid
- typcategory :: !Char
- typdelim :: !Char
- typname :: !ByteString
- | Array {
- typoid :: !Oid
- typcategory :: !Char
- typdelim :: !Char
- typname :: !ByteString
- typelem :: !TypeInfo
- | Range {
- typoid :: !Oid
- typcategory :: !Char
- typdelim :: !Char
- typname :: !ByteString
- rngsubtype :: !TypeInfo
- | Composite {
- typoid :: !Oid
- typcategory :: !Char
- typdelim :: !Char
- typname :: !ByteString
- typrelid :: !Oid
- attributes :: !(Vector Attribute)
- = Basic {
- data Attribute = Attribute {
- attname :: !ByteString
- atttype :: !TypeInfo
Documentation
getTypeInfo :: Connection -> Oid -> IO TypeInfo
Returns the metadata of the type with a particular oid. To find
this data, getTypeInfo first consults postgresql-simple's
built-in staticTypeInfo table, then checks the connection's
typeinfo cache. Finally, the database's pg_type table will
be queried only if necessary, and the result will be stored
in the connections's cache.
data TypeInfo
A structure representing some of the metadata regarding a PostgreSQL
type, mostly taken from the pg_type table.
Constructors
| Basic | |
Fields
| |
| Array | |
Fields
| |
| Range | |
Fields
| |
| Composite | |
Fields
| |