September 26, 2024: PostgreSQL 17 Released!
Supported Versions: Current (17) / 16 / 15 / 14 / 13 / 12
Development Versions: devel
Unsupported versions: 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the current version, or one of the other supported versions listed above instead.

34.57. user_defined_types

The view user_defined_types currently contains all composite types defined in the current database. Only those types are shown that the current user has access to (by way of being the owner or having some privilege).

SQL knows about two kinds of user-defined types: structured types (also known as composite types in PostgreSQL) and distinct types (not implemented in PostgreSQL). To be future-proof, use the column user_defined_type_category to differentiate between these. Other user-defined types such as base types and enums, which are PostgreSQL extensions, are not shown here. For domains, see Section 34.22 instead.

Table 34-55. user_defined_types Columns

Name Data Type Description
user_defined_type_catalog sql_identifier Name of the database that contains the type (always the current database)
user_defined_type_schema sql_identifier Name of the schema that contains the type
user_defined_type_name sql_identifier Name of the type
user_defined_type_category character_data Currently always STRUCTURED
is_instantiable yes_or_no Applies to a feature not available in PostgreSQL
is_final yes_or_no Applies to a feature not available in PostgreSQL
ordering_form character_data Applies to a feature not available in PostgreSQL
ordering_category character_data Applies to a feature not available in PostgreSQL
ordering_routine_catalog sql_identifier Applies to a feature not available in PostgreSQL
ordering_routine_schema sql_identifier Applies to a feature not available in PostgreSQL
ordering_routine_name sql_identifier Applies to a feature not available in PostgreSQL
reference_type character_data Applies to a feature not available in PostgreSQL
data_type character_data Applies to a feature not available in PostgreSQL
character_maximum_length cardinal_number Applies to a feature not available in PostgreSQL
character_octet_length cardinal_number Applies to a feature not available in PostgreSQL
character_set_catalog sql_identifier Applies to a feature not available in PostgreSQL
character_set_schema sql_identifier Applies to a feature not available in PostgreSQL
character_set_name sql_identifier Applies to a feature not available in PostgreSQL
collation_catalog sql_identifier Applies to a feature not available in PostgreSQL
collation_schema sql_identifier Applies to a feature not available in PostgreSQL
collation_name sql_identifier Applies to a feature not available in PostgreSQL
numeric_precision cardinal_number Applies to a feature not available in PostgreSQL
numeric_precision_radix cardinal_number Applies to a feature not available in PostgreSQL
numeric_scale cardinal_number Applies to a feature not available in PostgreSQL
datetime_precision cardinal_number Applies to a feature not available in PostgreSQL
interval_type character_data Applies to a feature not available in PostgreSQL
interval_precision cardinal_number Applies to a feature not available in PostgreSQL
source_dtd_identifier sql_identifier Applies to a feature not available in PostgreSQL
ref_dtd_identifier sql_identifier Applies to a feature not available in PostgreSQL