role="column_definition">
<structfield>is_grantable</structfield> <type>yes_or_no</type>
</para>
<para>
<literal>YES</literal> if the grantee has the admin option on
the role, <literal>NO</literal> if not
</para></entry>
</row>
</tbody>
</tgroup>
</table>
</sect1>
<sect1 id="infoschema-attributes">
<title><literal>attributes</literal></title>
<para>
The view <literal>attributes</literal> contains information about
the attributes of composite data types defined in the database.
(Note that the view does not give information about table columns,
which are sometimes called attributes in PostgreSQL contexts.)
Only those attributes are shown that the current user has access to (by way
of being the owner of or having some privilege on the type).
</para>
<table>
<title><structname>attributes</structname> Columns</title>
<tgroup cols="1">
<thead>
<row>
<entry role="catalog_table_entry"><para role="column_definition">
Column Type
</para>
<para>
Description
</para></entry>
</row>
</thead>
<tbody>
<row>
<entry role="catalog_table_entry"><para role="column_definition">
<structfield>udt_catalog</structfield> <type>sql_identifier</type>
</para>
<para>
Name of the database containing the data type (always the current database)
</para></entry>
</row>
<row>
<entry role="catalog_table_entry"><para role="column_definition">
<structfield>udt_schema</structfield> <type>sql_identifier</type>
</para>
<para>
Name of the schema containing the data type
</para></entry>
</row>
<row>
<entry role="catalog_table_entry"><para role="column_definition">
<structfield>udt_name</structfield> <type>sql_identifier</type>
</para>
<para>
Name of the data type
</para></entry>
</row>
<row>
<entry role="catalog_table_entry"><para role="column_definition">
<structfield>attribute_name</structfield> <type>sql_identifier</type>
</para>
<para>
Name of the attribute
</para></entry>
</row>
<row>
<entry role="catalog_table_entry"><para role="column_definition">
<structfield>ordinal_position</structfield> <type>cardinal_number</type>
</para>
<para>
Ordinal position of the attribute within the data type (count starts at 1)
</para></entry>
</row>
<row>
<entry role="catalog_table_entry"><para role="column_definition">
<structfield>attribute_default</structfield> <type>character_data</type>
</para>
<para>
Default expression of the attribute
</para></entry>
</row>
<row>
<entry role="catalog_table_entry"><para role="column_definition">
<structfield>is_nullable</structfield> <type>yes_or_no</type>
</para>
<para>
<literal>YES</literal> if the attribute is possibly nullable,
<literal>NO</literal> if it is known not nullable.
</para></entry>
</row>
<row>
<entry role="catalog_table_entry"><para role="column_definition">
<structfield>data_type</structfield> <type>character_data</type>
</para>
<para>
Data type of the attribute, if it is a built-in type, or
<literal>ARRAY</literal> if it is some array (in that case, see
the view <literal>element_types</literal>), else
<literal>USER-DEFINED</literal> (in that case, the type is
identified in <literal>attribute_udt_name</literal> and
associated columns).
</para></entry>
</row>
<row>
<entry role="catalog_table_entry"><para role="column_definition">
<structfield>character_maximum_length</structfield> <type>cardinal_number</type>
</para>
<para>
If <literal>data_type</literal> identifies a character or bit
string type, the declared