For new base types, a user can define operators, functions and aggregates using the appropriate facilities described in this section. These functions operate on arrays of any existing Postgres type. If you need a larger type you must create a Large Object type. The interface for these types is discussed at length in The PostgreSQL Programmer's Guide . This is because Postgres silently creates an array type for each base type with a name consisting of the base type's name prepended with an underscore.
Notes Refer to DROP TYPE to remove an existing type.