The PQregisterUserDefinedTypes() function allows an application to register one or more user-defined
types at runtime. User-defined types are custom types in a backend that implement their own C procedures
for in/out/send/recv.
This function must execute a query against the backend to retrieve type information for each user-defined
type, thus this should not be called from within a transaction. It is recommended to register multiple
types at the same time to avoid round trip overhead.
The types argument is an array containing count user-defined types to register. If any type does not
exist, the register is aborted. Either typput and/or typget must be specified for each type in the types
array.
NOTE: The typname member of the PGregisterType structure can optionally contain the type's schema:
schema.typname.
WARNING: PQparamCreate is only aware of types that have already been registered. If you need to put a
type into a param, make sure it is first registered.
User-definedTypesRegistration
This example registers two user-defined types.
PGregisterTypetypes[]={{"graphics.rgb",rgb_put,rgb_get},{"graphics.digon",digon_put,digon_get}};if(!PQregisterUserDefinedTypes(conn,types,2))fprintf(stderr,"PQregisterUserDefinedTypes:%s\n",PQgeterror());