-- | -- Models of supported data structures according to the serialisation format. module PostgreSQL.Binary.Data where import PostgreSQL.Binary.Prelude -- | -- A representation of a data serializable to the PostgreSQL array binary format. -- -- Consists of a vector of dimensions, a vector of encoded elements, -- a flag specifying, whether it contains any nulls, and an oid. type Array = (Vector ArrayDimension, Vector Content, Bool, OID) -- | -- A width and a lower bound. -- -- Currently the lower bound is only allowed to have a value of @1@. type ArrayDimension = (Word32, Word32) -- | -- An encoded value. 'Nothing' if it represents a @NULL@. type Content = Maybe ByteString -- | -- A Postgres OID of a type. type OID = Word32 -- | -- A representation of a composite Postgres data (Record or Row). type Composite = Vector (OID, Content) -- | -- HStore. type HStore = Vector (ByteString, Content) -- | -- The four components of UUID. type UUID = (Word32, Word32, Word32, Word32) -- | -- Representation of the PostgreSQL Numeric encoding. -- -- Consists of the following components: -- -- * Point index -- * Sign code -- * Components -- type Numeric = (Int16, Word16, Vector Int16)