Each custom data type must have a unique name that can be fully qualified if the type belongs to a specific schema, otherwise the type will be created in the current schema.
Data types are created by means of the CREATE TYPE command, as you will see in detail in the following sections. Each data type belongs to the user that creates it. It is possible to drop a type with the DROP TYPE command, as well as to change the type definition via ALTER TYPE. However, changes are limited to the specific data type (as you will see in detail in the next sections).
Available custom data types can be inspected with the \dT (describe types) psql command. Types are handled in the pg_type system catalog, which provides the basic information about the type (for instance, its name, size, and ownership), while specific implementation details can be handled in separated tables....