Copyright | (c) 2013 Leon P Smith |
---|---|
License | BSD3 |
Maintainer | Leon P Smith <leon@melding-monads.com> |
Stability | experimental |
Safe Haskell | None |
Language | Haskell98 |
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 Source #
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.
A structure representing some of the metadata regarding a PostgreSQL
type, mostly taken from the pg_type
table.
Basic | |
| |
Array | |
| |
Range | |
| |
Composite | |
|