<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >user_defined_types</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 9.6.17 Documentation" HREF="index.html"><LINK REL="UP" TITLE="The Information Schema" HREF="information-schema.html"><LINK REL="PREVIOUS" TITLE="usage_privileges" HREF="infoschema-usage-privileges.html"><LINK REL="NEXT" TITLE="user_mapping_options" HREF="infoschema-user-mapping-options.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2020-02-15T12:30:38"></HEAD ><BODY CLASS="SECT1" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="4" ALIGN="center" VALIGN="bottom" ><A HREF="index.html" >PostgreSQL 9.6.17 Documentation</A ></TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A TITLE="usage_privileges" HREF="infoschema-usage-privileges.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="information-schema.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" >Chapter 35. The Information Schema</TD ><TD WIDTH="20%" ALIGN="right" VALIGN="top" ><A TITLE="user_mapping_options" HREF="infoschema-user-mapping-options.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="INFOSCHEMA-USER-DEFINED-TYPES" >35.58. <TT CLASS="LITERAL" >user_defined_types</TT ></A ></H1 ><P > The view <TT CLASS="LITERAL" >user_defined_types</TT > 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). </P ><P > SQL knows about two kinds of user-defined types: structured types (also known as composite types in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN >) and distinct types (not implemented in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN >). To be future-proof, use the column <TT CLASS="LITERAL" >user_defined_type_category</TT > to differentiate between these. Other user-defined types such as base types and enums, which are <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > extensions, are not shown here. For domains, see <A HREF="infoschema-domains.html" >Section 35.22</A > instead. </P ><DIV CLASS="TABLE" ><A NAME="AEN59182" ></A ><P ><B >Table 35-56. <TT CLASS="LITERAL" >user_defined_types</TT > Columns</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL><COL><COL><THEAD ><TR ><TH >Name</TH ><TH >Data Type</TH ><TH >Description</TH ></TR ></THEAD ><TBODY ><TR ><TD ><TT CLASS="LITERAL" >user_defined_type_catalog</TT ></TD ><TD ><TT CLASS="TYPE" >sql_identifier</TT ></TD ><TD >Name of the database that contains the type (always the current database)</TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >user_defined_type_schema</TT ></TD ><TD ><TT CLASS="TYPE" >sql_identifier</TT ></TD ><TD >Name of the schema that contains the type</TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >user_defined_type_name</TT ></TD ><TD ><TT CLASS="TYPE" >sql_identifier</TT ></TD ><TD >Name of the type</TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >user_defined_type_category</TT ></TD ><TD ><TT CLASS="TYPE" >character_data</TT ></TD ><TD > Currently always <TT CLASS="LITERAL" >STRUCTURED</TT > </TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >is_instantiable</TT ></TD ><TD ><TT CLASS="TYPE" >yes_or_no</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >is_final</TT ></TD ><TD ><TT CLASS="TYPE" >yes_or_no</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >ordering_form</TT ></TD ><TD ><TT CLASS="TYPE" >character_data</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >ordering_category</TT ></TD ><TD ><TT CLASS="TYPE" >character_data</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >ordering_routine_catalog</TT ></TD ><TD ><TT CLASS="TYPE" >sql_identifier</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >ordering_routine_schema</TT ></TD ><TD ><TT CLASS="TYPE" >sql_identifier</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >ordering_routine_name</TT ></TD ><TD ><TT CLASS="TYPE" >sql_identifier</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >reference_type</TT ></TD ><TD ><TT CLASS="TYPE" >character_data</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >data_type</TT ></TD ><TD ><TT CLASS="TYPE" >character_data</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >character_maximum_length</TT ></TD ><TD ><TT CLASS="TYPE" >cardinal_number</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >character_octet_length</TT ></TD ><TD ><TT CLASS="TYPE" >cardinal_number</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >character_set_catalog</TT ></TD ><TD ><TT CLASS="TYPE" >sql_identifier</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >character_set_schema</TT ></TD ><TD ><TT CLASS="TYPE" >sql_identifier</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >character_set_name</TT ></TD ><TD ><TT CLASS="TYPE" >sql_identifier</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >collation_catalog</TT ></TD ><TD ><TT CLASS="TYPE" >sql_identifier</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >collation_schema</TT ></TD ><TD ><TT CLASS="TYPE" >sql_identifier</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >collation_name</TT ></TD ><TD ><TT CLASS="TYPE" >sql_identifier</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >numeric_precision</TT ></TD ><TD ><TT CLASS="TYPE" >cardinal_number</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >numeric_precision_radix</TT ></TD ><TD ><TT CLASS="TYPE" >cardinal_number</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >numeric_scale</TT ></TD ><TD ><TT CLASS="TYPE" >cardinal_number</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >datetime_precision</TT ></TD ><TD ><TT CLASS="TYPE" >cardinal_number</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >interval_type</TT ></TD ><TD ><TT CLASS="TYPE" >character_data</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >interval_precision</TT ></TD ><TD ><TT CLASS="TYPE" >cardinal_number</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >source_dtd_identifier</TT ></TD ><TD ><TT CLASS="TYPE" >sql_identifier</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ><TR ><TD ><TT CLASS="LITERAL" >ref_dtd_identifier</TT ></TD ><TD ><TT CLASS="TYPE" >sql_identifier</TT ></TD ><TD >Applies to a feature not available in <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN ></TD ></TR ></TBODY ></TABLE ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="infoschema-usage-privileges.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="infoschema-user-mapping-options.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><TT CLASS="LITERAL" >usage_privileges</TT ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="information-schema.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><TT CLASS="LITERAL" >user_mapping_options</TT ></TD ></TR ></TABLE ></DIV ></BODY ></HTML >