8681 lines
277 KiB
Plaintext
8681 lines
277 KiB
Plaintext
<!-- doc/src/sgml/information_schema.sgml -->
|
|
|
|
<chapter id="information-schema">
|
|
<title>The Information Schema</title>
|
|
|
|
<indexterm zone="information-schema">
|
|
<primary>information schema</primary>
|
|
</indexterm>
|
|
|
|
<para>
|
|
The information schema consists of a set of views that contain
|
|
information about the objects defined in the current database. The
|
|
information schema is defined in the SQL standard and can therefore
|
|
be expected to be portable and remain stable — unlike the system
|
|
catalogs, which are specific to
|
|
<productname>PostgreSQL</productname> and are modeled after
|
|
implementation concerns. The information schema views do not,
|
|
however, contain information about
|
|
<productname>PostgreSQL</productname>-specific features; to inquire
|
|
about those you need to query the system catalogs or other
|
|
<productname>PostgreSQL</productname>-specific views.
|
|
</para>
|
|
|
|
<note>
|
|
<para>
|
|
When querying the database for constraint information, it is possible
|
|
for a standard-compliant query that expects to return one row to
|
|
return several. This is because the SQL standard requires constraint
|
|
names to be unique within a schema, but
|
|
<productname>PostgreSQL</productname> does not enforce this
|
|
restriction. <productname>PostgreSQL</productname>
|
|
automatically-generated constraint names avoid duplicates in the
|
|
same schema, but users can specify such duplicate names.
|
|
</para>
|
|
|
|
<para>
|
|
This problem can appear when querying information schema views such
|
|
as <literal>check_constraint_routine_usage</literal>,
|
|
<literal>check_constraints</literal>, <literal>domain_constraints</literal>, and
|
|
<literal>referential_constraints</literal>. Some other views have similar
|
|
issues but contain the table name to help distinguish duplicate
|
|
rows, e.g., <literal>constraint_column_usage</literal>,
|
|
<literal>constraint_table_usage</literal>, <literal>table_constraints</literal>.
|
|
</para>
|
|
</note>
|
|
|
|
|
|
<sect1 id="infoschema-schema">
|
|
<title>The Schema</title>
|
|
|
|
<para>
|
|
The information schema itself is a schema named
|
|
<literal>information_schema</literal>. This schema automatically
|
|
exists in all databases. The owner of this schema is the initial
|
|
database user in the cluster, and that user naturally has all the
|
|
privileges on this schema, including the ability to drop it (but
|
|
the space savings achieved by that are minuscule).
|
|
</para>
|
|
|
|
<para>
|
|
By default, the information schema is not in the schema search
|
|
path, so you need to access all objects in it through qualified
|
|
names. Since the names of some of the objects in the information
|
|
schema are generic names that might occur in user applications, you
|
|
should be careful if you want to put the information schema in the
|
|
path.
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-datatypes">
|
|
<title>Data Types</title>
|
|
|
|
<para>
|
|
The columns of the information schema views use special data types
|
|
that are defined in the information schema. These are defined as
|
|
simple domains over ordinary built-in types. You should not use
|
|
these types for work outside the information schema, but your
|
|
applications must be prepared for them if they select from the
|
|
information schema.
|
|
</para>
|
|
|
|
<para>
|
|
These types are:
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><type>cardinal_number</type></term>
|
|
<listitem>
|
|
<para>
|
|
A nonnegative integer.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><type>character_data</type></term>
|
|
<listitem>
|
|
<para>
|
|
A character string (without specific maximum length).
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><type>sql_identifier</type></term>
|
|
<listitem>
|
|
<para>
|
|
A character string. This type is used for SQL identifiers, the
|
|
type <type>character_data</type> is used for any other kind of
|
|
text data.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><type>time_stamp</type></term>
|
|
<listitem>
|
|
<para>
|
|
A domain over the type <type>timestamp with time zone</type>
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><type>yes_or_no</type></term>
|
|
<listitem>
|
|
<para>
|
|
A character string domain that contains
|
|
either <literal>YES</literal> or <literal>NO</literal>. This
|
|
is used to represent Boolean (true/false) data in the
|
|
information schema. (The information schema was invented
|
|
before the type <type>boolean</type> was added to the SQL
|
|
standard, so this convention is necessary to keep the
|
|
information schema backward compatible.)
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
Every column in the information schema has one of these five types.
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-information-schema-catalog-name">
|
|
<title><literal>information_schema_catalog_name</literal></title>
|
|
|
|
<para>
|
|
<literal>information_schema_catalog_name</literal> is a table that
|
|
always contains one row and one column containing the name of the
|
|
current database (current catalog, in SQL terminology).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>information_schema_catalog_name</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>catalog_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains this information schema
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-administrable-role-authorizations">
|
|
<title><literal>administrable_role_&zwsp;authorizations</literal></title>
|
|
|
|
<para>
|
|
The view <literal>administrable_role_authorizations</literal>
|
|
identifies all roles that the current user has the admin option
|
|
for.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>administrable_role_authorizations</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>grantee</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the role to which this role membership was granted (can
|
|
be the current user, or a different role in case of nested role
|
|
memberships)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>role_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of a role
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_grantable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
Always <literal>YES</literal>
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-applicable-roles">
|
|
<title><literal>applicable_roles</literal></title>
|
|
|
|
<para>
|
|
The view <literal>applicable_roles</literal> identifies all roles
|
|
whose privileges the current user can use. This means there is
|
|
some chain of role grants from the current user to the role in
|
|
question. The current user itself is also an applicable role. The
|
|
set of applicable roles is generally used for permission checking.
|
|
<indexterm><primary>applicable role</primary></indexterm>
|
|
<indexterm><primary>role</primary><secondary>applicable</secondary></indexterm>
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>applicable_roles</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>grantee</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the role to which this role membership was granted (can
|
|
be the current user, or a different role in case of nested role
|
|
memberships)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>role_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of a role
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para 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 maximum length; null for all other
|
|
data types or if no maximum length was declared.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_octet_length</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
If <literal>data_type</literal> identifies a character type,
|
|
the maximum possible length in octets (bytes) of a datum; null
|
|
for all other data types. The maximum octet length depends on
|
|
the declared character maximum length (see above) and the
|
|
server encoding.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the collation of the attribute
|
|
(always the current database), null if default or the data type
|
|
of the attribute is not collatable
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the collation of the attribute,
|
|
null if default or the data type of the attribute is not
|
|
collatable
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the collation of the attribute, null if default or the
|
|
data type of the attribute is not collatable
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
If <literal>data_type</literal> identifies a numeric type, this
|
|
column contains the (declared or implicit) precision of the
|
|
type for this attribute. The precision indicates the number of
|
|
significant digits. It can be expressed in decimal (base 10)
|
|
or binary (base 2) terms, as specified in the column
|
|
<literal>numeric_precision_radix</literal>. For all other data
|
|
types, this column is null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_precision_radix</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
If <literal>data_type</literal> identifies a numeric type, this
|
|
column indicates in which base the values in the columns
|
|
<literal>numeric_precision</literal> and
|
|
<literal>numeric_scale</literal> are expressed. The value is
|
|
either 2 or 10. For all other data types, this column is null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_scale</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
If <literal>data_type</literal> identifies an exact numeric
|
|
type, this column contains the (declared or implicit) scale of
|
|
the type for this attribute. The scale indicates the number of
|
|
significant digits to the right of the decimal point. It can
|
|
be expressed in decimal (base 10) or binary (base 2) terms, as
|
|
specified in the column
|
|
<literal>numeric_precision_radix</literal>. For all other data
|
|
types, this column is null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>datetime_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
If <literal>data_type</literal> identifies a date, time,
|
|
timestamp, or interval type, this column contains the (declared
|
|
or implicit) fractional seconds precision of the type for this
|
|
attribute, that is, the number of decimal digits maintained
|
|
following the decimal point in the seconds value. For all
|
|
other data types, this column is null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>interval_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
If <literal>data_type</literal> identifies an interval type,
|
|
this column contains the specification which fields the
|
|
intervals include for this attribute, e.g., <literal>YEAR TO
|
|
MONTH</literal>, <literal>DAY TO SECOND</literal>, etc. If no
|
|
field restrictions were specified (that is, the interval
|
|
accepts all fields), and for all other data types, this field
|
|
is null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>interval_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available
|
|
in <productname>PostgreSQL</productname>
|
|
(see <literal>datetime_precision</literal> for the fractional
|
|
seconds precision of interval type attributes)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>attribute_udt_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that the attribute data type is defined in
|
|
(always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>attribute_udt_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that the attribute data type is defined in
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>attribute_udt_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the attribute data type
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>scope_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>scope_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>scope_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>maximum_cardinality</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, because arrays always have unlimited maximum cardinality in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>dtd_identifier</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
An identifier of the data type descriptor of the column, unique
|
|
among the data type descriptors pertaining to the table. This
|
|
is mainly useful for joining with other instances of such
|
|
identifiers. (The specific format of the identifier is not
|
|
defined and not guaranteed to remain the same in future
|
|
versions.)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_derived_reference_attribute</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>
|
|
See also under <xref linkend="infoschema-columns"/>, a similarly
|
|
structured view, for further information on some of the columns.
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-character-sets">
|
|
<title><literal>character_sets</literal></title>
|
|
|
|
<para>
|
|
The view <literal>character_sets</literal> identifies the character
|
|
sets available in the current database. Since PostgreSQL does not
|
|
support multiple character sets within one database, this view only
|
|
shows one, which is the database encoding.
|
|
</para>
|
|
|
|
<para>
|
|
Take note of how the following terms are used in the SQL standard:
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>character repertoire</term>
|
|
<listitem>
|
|
<para>
|
|
An abstract collection of characters, for
|
|
example <literal>UNICODE</literal>, <literal>UCS</literal>, or
|
|
<literal>LATIN1</literal>. Not exposed as an SQL object, but
|
|
visible in this view.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>character encoding form</term>
|
|
<listitem>
|
|
<para>
|
|
An encoding of some character repertoire. Most older character
|
|
repertoires only use one encoding form, and so there are no
|
|
separate names for them (e.g., <literal>LATIN1</literal> is an
|
|
encoding form applicable to the <literal>LATIN1</literal>
|
|
repertoire). But for example Unicode has the encoding forms
|
|
<literal>UTF8</literal>, <literal>UTF16</literal>, etc. (not
|
|
all supported by PostgreSQL). Encoding forms are not exposed
|
|
as an SQL object, but are visible in this view.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>character set</term>
|
|
<listitem>
|
|
<para>
|
|
A named SQL object that identifies a character repertoire, a
|
|
character encoding, and a default collation. A predefined
|
|
character set would typically have the same name as an encoding
|
|
form, but users could define other names. For example, the
|
|
character set <literal>UTF8</literal> would typically identify
|
|
the character repertoire <literal>UCS</literal>, encoding
|
|
form <literal>UTF8</literal>, and some default collation.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
You can think of an <quote>encoding</quote> in PostgreSQL either as
|
|
a character set or a character encoding form. They will have the
|
|
same name, and there can only be one in one database.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>character_sets</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>character_set_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Character sets are currently not implemented as schema objects, so this column is null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Character sets are currently not implemented as schema objects, so this column is null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the character set, currently implemented as showing the name of the database encoding
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_repertoire</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Character repertoire, showing <literal>UCS</literal> if the encoding is <literal>UTF8</literal>, else just the encoding name
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>form_of_use</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Character encoding form, same as the database encoding
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>default_collate_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the default collation (always the current database, if any collation is identified)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>default_collate_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the default collation
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>default_collate_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the default collation. The default collation is
|
|
identified as the collation that matches
|
|
the <literal>COLLATE</literal> and <literal>CTYPE</literal>
|
|
settings of the current database. If there is no such
|
|
collation, then this column and the associated schema and
|
|
catalog columns are null.
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-check-constraint-routine-usage">
|
|
<title><literal>check_constraint_routine_usage</literal></title>
|
|
|
|
<para>
|
|
The view <literal>check_constraint_routine_usage</literal>
|
|
identifies routines (functions and procedures) that are used by a
|
|
check constraint. Only those routines are shown that are owned by
|
|
a currently enabled role.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>check_constraint_routine_usage</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>constraint_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the constraint (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The <quote>specific name</quote> of the function. See <xref linkend="infoschema-routines"/> for more information.
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-check-constraints">
|
|
<title><literal>check_constraints</literal></title>
|
|
|
|
<para>
|
|
The view <literal>check_constraints</literal> contains all check
|
|
constraints, either defined on a table or on a domain, that are
|
|
owned by a currently enabled role. (The owner of the table or
|
|
domain is the owner of the constraint.)
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>check_constraints</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>constraint_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the constraint (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>check_clause</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
The check expression of the check constraint
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-collations">
|
|
<title><literal>collations</literal></title>
|
|
|
|
<para>
|
|
The view <literal>collations</literal> contains the collations
|
|
available in the current database.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>collations</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>collation_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the collation (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the collation
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the default collation
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>pad_attribute</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Always <literal>NO PAD</literal> (The alternative <literal>PAD
|
|
SPACE</literal> is not supported by PostgreSQL.)
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-collation-character-set-applicab"> <!-- max 44 characters -->
|
|
<title><literal>collation_character_set_&zwsp;applicability</literal></title>
|
|
|
|
<para>
|
|
The view <literal>collation_character_set_applicability</literal>
|
|
identifies which character set the available collations are
|
|
applicable to. In PostgreSQL, there is only one character set per
|
|
database (see explanation
|
|
in <xref linkend="infoschema-character-sets"/>), so this view does
|
|
not provide much useful information.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>collation_character_set_applicability</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>collation_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the collation (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the collation
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the default collation
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Character sets are currently not implemented as schema objects, so this column is null
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Character sets are currently not implemented as schema objects, so this column is null
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the character set
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-column-column-usage">
|
|
<title><literal>column_column_usage</literal></title>
|
|
|
|
<para>
|
|
The view <literal>column_column_usage</literal> identifies all generated
|
|
columns that depend on another base column in the same table. Only tables
|
|
owned by a currently enabled role are included.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>column_column_usage</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>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the table (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>column_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the base column that a generated column depends on
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>dependent_column</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the generated column
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-column-domain-usage">
|
|
<title><literal>column_domain_usage</literal></title>
|
|
|
|
<para>
|
|
The view <literal>column_domain_usage</literal> identifies all
|
|
columns (of a table or a view) that make use of some domain defined
|
|
in the current database and owned by a currently enabled role.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>column_domain_usage</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>domain_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the domain (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>domain_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the domain
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>domain_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the domain
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the table (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>column_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the column
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-column-options">
|
|
<title><literal>column_options</literal></title>
|
|
|
|
<para>
|
|
The view <literal>column_options</literal> contains all the
|
|
options defined for foreign table columns in the current database. Only
|
|
those foreign table columns are shown that the current user has access to
|
|
(by way of being the owner or having some privilege).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>column_options</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>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the foreign table (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the foreign table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the foreign table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>column_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the column
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>option_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of an option
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>option_value</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Value of the option
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-column-privileges">
|
|
<title><literal>column_privileges</literal></title>
|
|
|
|
<para>
|
|
The view <literal>column_privileges</literal> identifies all
|
|
privileges granted on columns to a currently enabled role or by a
|
|
currently enabled role. There is one row for each combination of
|
|
column, grantor, and grantee.
|
|
</para>
|
|
|
|
<para>
|
|
If a privilege has been granted on an entire table, it will show up in
|
|
this view as a grant for each column, but only for the
|
|
privilege types where column granularity is possible:
|
|
<literal>SELECT</literal>, <literal>INSERT</literal>,
|
|
<literal>UPDATE</literal>, <literal>REFERENCES</literal>.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>column_privileges</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>grantor</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the role that granted the privilege
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>grantee</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the role that the privilege was granted to
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the table that contains the column (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the table that contains the column
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table that contains the column
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>column_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the column
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>privilege_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Type of the privilege: <literal>SELECT</literal>,
|
|
<literal>INSERT</literal>, <literal>UPDATE</literal>, or
|
|
<literal>REFERENCES</literal>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_grantable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the privilege is grantable, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-column-udt-usage">
|
|
<title><literal>column_udt_usage</literal></title>
|
|
|
|
<para>
|
|
The view <literal>column_udt_usage</literal> identifies all columns
|
|
that use data types owned by a currently enabled role. Note that in
|
|
<productname>PostgreSQL</productname>, built-in data types behave
|
|
like user-defined types, so they are included here as well. See
|
|
also <xref linkend="infoschema-columns"/> for details.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>column_udt_usage</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 that the column data type (the underlying
|
|
type of the domain, if applicable) is defined in (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 that the column data type (the underlying
|
|
type of the domain, if applicable) is defined in
|
|
</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 column data type (the underlying type of the
|
|
domain, if applicable)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the table (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>column_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the column
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-columns">
|
|
<title><literal>columns</literal></title>
|
|
|
|
<para>
|
|
The view <literal>columns</literal> contains information about all
|
|
table columns (or view columns) in the database. System columns
|
|
(<literal>ctid</literal>, etc.) are not included. Only those columns are
|
|
shown that the current user has access to (by way of being the
|
|
owner or having some privilege).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>columns</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>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the table (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>column_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the column
|
|
</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 column within the table (count starts at 1)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>column_default</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Default expression of the column
|
|
</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 column is possibly nullable,
|
|
<literal>NO</literal> if it is known not nullable. A not-null
|
|
constraint is one way a column can be known not nullable, but
|
|
there can be others.
|
|
</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 column, 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>udt_name</literal> and associated
|
|
columns). If the column is based on a domain, this column
|
|
refers to the type underlying the domain (and the domain is
|
|
identified in <literal>domain_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 maximum length; null for all other
|
|
data types or if no maximum length was declared.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_octet_length</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
If <literal>data_type</literal> identifies a character type,
|
|
the maximum possible length in octets (bytes) of a datum; null
|
|
for all other data types. The maximum octet length depends on
|
|
the declared character maximum length (see above) and the
|
|
server encoding.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
If <literal>data_type</literal> identifies a numeric type, this
|
|
column contains the (declared or implicit) precision of the
|
|
type for this column. The precision indicates the number of
|
|
significant digits. It can be expressed in decimal (base 10)
|
|
or binary (base 2) terms, as specified in the column
|
|
<literal>numeric_precision_radix</literal>. For all other data
|
|
types, this column is null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_precision_radix</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
If <literal>data_type</literal> identifies a numeric type, this
|
|
column indicates in which base the values in the columns
|
|
<literal>numeric_precision</literal> and
|
|
<literal>numeric_scale</literal> are expressed. The value is
|
|
either 2 or 10. For all other data types, this column is null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_scale</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
If <literal>data_type</literal> identifies an exact numeric
|
|
type, this column contains the (declared or implicit) scale of
|
|
the type for this column. The scale indicates the number of
|
|
significant digits to the right of the decimal point. It can
|
|
be expressed in decimal (base 10) or binary (base 2) terms, as
|
|
specified in the column
|
|
<literal>numeric_precision_radix</literal>. For all other data
|
|
types, this column is null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>datetime_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
If <literal>data_type</literal> identifies a date, time,
|
|
timestamp, or interval type, this column contains the (declared
|
|
or implicit) fractional seconds precision of the type for this
|
|
column, that is, the number of decimal digits maintained
|
|
following the decimal point in the seconds value. For all
|
|
other data types, this column is null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>interval_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
If <literal>data_type</literal> identifies an interval type,
|
|
this column contains the specification which fields the
|
|
intervals include for this column, e.g., <literal>YEAR TO
|
|
MONTH</literal>, <literal>DAY TO SECOND</literal>, etc. If no
|
|
field restrictions were specified (that is, the interval
|
|
accepts all fields), and for all other data types, this field
|
|
is null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>interval_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available
|
|
in <productname>PostgreSQL</productname>
|
|
(see <literal>datetime_precision</literal> for the fractional
|
|
seconds precision of interval type columns)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the collation of the column
|
|
(always the current database), null if default or the data type
|
|
of the column is not collatable
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the collation of the column, null
|
|
if default or the data type of the column is not collatable
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the collation of the column, null if default or the
|
|
data type of the column is not collatable
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>domain_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
If the column has a domain type, the name of the database that
|
|
the domain is defined in (always the current database), else
|
|
null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>domain_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
If the column has a domain type, the name of the schema that
|
|
the domain is defined in, else null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>domain_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
If the column has a domain type, the name of the domain, else null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>udt_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that the column data type (the underlying
|
|
type of the domain, if applicable) is defined in (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 that the column data type (the underlying
|
|
type of the domain, if applicable) is defined in
|
|
</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 column data type (the underlying type of the
|
|
domain, if applicable)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>scope_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>scope_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>scope_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>maximum_cardinality</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, because arrays always have unlimited maximum cardinality in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>dtd_identifier</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
An identifier of the data type descriptor of the column, unique
|
|
among the data type descriptors pertaining to the table. This
|
|
is mainly useful for joining with other instances of such
|
|
identifiers. (The specific format of the identifier is not
|
|
defined and not guaranteed to remain the same in future
|
|
versions.)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_self_referencing</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_identity</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
If the column is an identity column, then <literal>YES</literal>,
|
|
else <literal>NO</literal>.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>identity_generation</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
If the column is an identity column, then <literal>ALWAYS</literal>
|
|
or <literal>BY DEFAULT</literal>, reflecting the definition of the
|
|
column.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>identity_start</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
If the column is an identity column, then the start value of the
|
|
internal sequence, else null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>identity_increment</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
If the column is an identity column, then the increment of the internal
|
|
sequence, else null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>identity_maximum</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
If the column is an identity column, then the maximum value of the
|
|
internal sequence, else null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>identity_minimum</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
If the column is an identity column, then the minimum value of the
|
|
internal sequence, else null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>identity_cycle</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
If the column is an identity column, then <literal>YES</literal> if the
|
|
internal sequence cycles or <literal>NO</literal> if it does not;
|
|
otherwise null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_generated</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
If the column is a generated column, then <literal>ALWAYS</literal>,
|
|
else <literal>NEVER</literal>.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>generation_expression</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
If the column is a generated column, then the generation expression,
|
|
else null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_updatable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the column is updatable,
|
|
<literal>NO</literal> if not (Columns in base tables are always
|
|
updatable, columns in views not necessarily)
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>
|
|
Since data types can be defined in a variety of ways in SQL, and
|
|
<productname>PostgreSQL</productname> contains additional ways to
|
|
define data types, their representation in the information schema
|
|
can be somewhat difficult. The column <literal>data_type</literal>
|
|
is supposed to identify the underlying built-in type of the column.
|
|
In <productname>PostgreSQL</productname>, this means that the type
|
|
is defined in the system catalog schema
|
|
<literal>pg_catalog</literal>. This column might be useful if the
|
|
application can handle the well-known built-in types specially (for
|
|
example, format the numeric types differently or use the data in
|
|
the precision columns). The columns <literal>udt_name</literal>,
|
|
<literal>udt_schema</literal>, and <literal>udt_catalog</literal>
|
|
always identify the underlying data type of the column, even if the
|
|
column is based on a domain. (Since
|
|
<productname>PostgreSQL</productname> treats built-in types like
|
|
user-defined types, built-in types appear here as well. This is an
|
|
extension of the SQL standard.) These columns should be used if an
|
|
application wants to process data differently according to the
|
|
type, because in that case it wouldn't matter if the column is
|
|
really based on a domain. If the column is based on a domain, the
|
|
identity of the domain is stored in the columns
|
|
<literal>domain_name</literal>, <literal>domain_schema</literal>,
|
|
and <literal>domain_catalog</literal>. If you want to pair up
|
|
columns with their associated data types and treat domains as
|
|
separate types, you could write <literal>coalesce(domain_name,
|
|
udt_name)</literal>, etc.
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-constraint-column-usage">
|
|
<title><literal>constraint_column_usage</literal></title>
|
|
|
|
<para>
|
|
The view <literal>constraint_column_usage</literal> identifies all
|
|
columns in the current database that are used by some constraint.
|
|
Only those columns are shown that are contained in a table owned by
|
|
a currently enabled role. For a check constraint, this view
|
|
identifies the columns that are used in the check expression. For
|
|
a foreign key constraint, this view identifies the columns that the
|
|
foreign key references. For a unique or primary key constraint,
|
|
this view identifies the constrained columns.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>constraint_column_usage</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>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the table that contains the
|
|
column that is used by some constraint (always the current
|
|
database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the table that contains the
|
|
column that is used by some constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table that contains the column that is used by some
|
|
constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>column_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the column that is used by some constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the constraint (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the constraint
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-constraint-table-usage">
|
|
<title><literal>constraint_table_usage</literal></title>
|
|
|
|
<para>
|
|
The view <literal>constraint_table_usage</literal> identifies all
|
|
tables in the current database that are used by some constraint and
|
|
are owned by a currently enabled role. (This is different from the
|
|
view <literal>table_constraints</literal>, which identifies all
|
|
table constraints along with the table they are defined on.) For a
|
|
foreign key constraint, this view identifies the table that the
|
|
foreign key references. For a unique or primary key constraint,
|
|
this view simply identifies the table the constraint belongs to.
|
|
Check constraints and not-null constraints are not included in this
|
|
view.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>constraint_table_usage</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>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the table that is used by
|
|
some constraint (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the table that is used by some
|
|
constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table that is used by some constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the constraint (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the constraint
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-data-type-privileges">
|
|
<title><literal>data_type_privileges</literal></title>
|
|
|
|
<para>
|
|
The view <literal>data_type_privileges</literal> identifies all
|
|
data type descriptors that the current user has access to, by way
|
|
of being the owner of the described object or having some privilege
|
|
for it. A data type descriptor is generated whenever a data type
|
|
is used in the definition of a table column, a domain, or a
|
|
function (as parameter or return type) and stores some information
|
|
about how the data type is used in that instance (for example, the
|
|
declared maximum length, if applicable). Each data type
|
|
descriptor is assigned an arbitrary identifier that is unique
|
|
among the data type descriptor identifiers assigned for one object
|
|
(table, domain, function). This view is probably not useful for
|
|
applications, but it is used to define some other views in the
|
|
information schema.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>data_type_privileges</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>object_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the described object (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>object_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the described object
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>object_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the described object
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>object_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
The type of the described object: one of
|
|
<literal>TABLE</literal> (the data type descriptor pertains to
|
|
a column of that table), <literal>DOMAIN</literal> (the data
|
|
type descriptors pertains to that domain),
|
|
<literal>ROUTINE</literal> (the data type descriptor pertains
|
|
to a parameter or the return data type of that function).
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>dtd_identifier</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The identifier of the data type descriptor, which is unique
|
|
among the data type descriptors for that same object.
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-domain-constraints">
|
|
<title><literal>domain_constraints</literal></title>
|
|
|
|
<para>
|
|
The view <literal>domain_constraints</literal> contains all constraints
|
|
belonging to domains defined in the current database. Only those domains
|
|
are shown that the current user has access to (by way of being the owner or
|
|
having some privilege).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>domain_constraints</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>constraint_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the constraint (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>domain_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the domain (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>domain_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the domain
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>domain_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the domain
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_deferrable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the constraint is deferrable, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>initially_deferred</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the constraint is deferrable and initially deferred, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-domain-udt-usage">
|
|
<title><literal>domain_udt_usage</literal></title>
|
|
|
|
<para>
|
|
The view <literal>domain_udt_usage</literal> identifies all domains
|
|
that are based on data types owned by a currently enabled role.
|
|
Note that in <productname>PostgreSQL</productname>, built-in data
|
|
types behave like user-defined types, so they are included here as
|
|
well.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>domain_udt_usage</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 that the domain data type is defined in (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 that the domain data type is defined in
|
|
</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 domain data type
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>domain_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the domain (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>domain_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the domain
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>domain_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the domain
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-domains">
|
|
<title><literal>domains</literal></title>
|
|
|
|
<para>
|
|
The view <literal>domains</literal> contains all
|
|
<glossterm linkend="glossary-domain">domains</glossterm> defined in the
|
|
current database. Only those domains are shown that the current user has
|
|
access to (by way of being the owner or having some privilege).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>domains</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>domain_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the domain (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>domain_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the domain
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>domain_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the domain
|
|
</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 domain, 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>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 the domain has a character or bit string type, the declared
|
|
maximum length; null for all other data types or if no maximum
|
|
length was declared.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_octet_length</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
If the domain has a character type, the maximum possible length
|
|
in octets (bytes) of a datum; null for all other data types.
|
|
The maximum octet length depends on the declared character
|
|
maximum length (see above) and the server encoding.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the collation of the domain
|
|
(always the current database), null if default or the data type
|
|
of the domain is not collatable
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the collation of the domain, null
|
|
if default or the data type of the domain is not collatable
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the collation of the domain, null if default or the
|
|
data type of the domain is not collatable
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
If the domain has a numeric type, this column contains the
|
|
(declared or implicit) precision of the type for this domain.
|
|
The precision indicates the number of significant digits. It
|
|
can be expressed in decimal (base 10) or binary (base 2) terms,
|
|
as specified in the column
|
|
<literal>numeric_precision_radix</literal>. For all other data
|
|
types, this column is null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_precision_radix</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
If the domain has a numeric type, this column indicates in
|
|
which base the values in the columns
|
|
<literal>numeric_precision</literal> and
|
|
<literal>numeric_scale</literal> are expressed. The value is
|
|
either 2 or 10. For all other data types, this column is null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_scale</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
If the domain has an exact numeric type, this column contains
|
|
the (declared or implicit) scale of the type for this domain.
|
|
The scale indicates the number of significant digits to the
|
|
right of the decimal point. It can be expressed in decimal
|
|
(base 10) or binary (base 2) terms, as specified in the column
|
|
<literal>numeric_precision_radix</literal>. For all other data
|
|
types, this column is null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>datetime_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
If <literal>data_type</literal> identifies a date, time,
|
|
timestamp, or interval type, this column contains the (declared
|
|
or implicit) fractional seconds precision of the type for this
|
|
domain, that is, the number of decimal digits maintained
|
|
following the decimal point in the seconds value. For all
|
|
other data types, this column is null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>interval_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
If <literal>data_type</literal> identifies an interval type,
|
|
this column contains the specification which fields the
|
|
intervals include for this domain, e.g., <literal>YEAR TO
|
|
MONTH</literal>, <literal>DAY TO SECOND</literal>, etc. If no
|
|
field restrictions were specified (that is, the interval
|
|
accepts all fields), and for all other data types, this field
|
|
is null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>interval_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available
|
|
in <productname>PostgreSQL</productname>
|
|
(see <literal>datetime_precision</literal> for the fractional
|
|
seconds precision of interval type domains)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>domain_default</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Default expression of the domain
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>udt_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that the domain data type is defined in (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 that the domain data type is defined in
|
|
</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 domain data type
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>scope_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>scope_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>scope_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>maximum_cardinality</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, because arrays always have unlimited maximum cardinality in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>dtd_identifier</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
An identifier of the data type descriptor of the domain, unique
|
|
among the data type descriptors pertaining to the domain (which
|
|
is trivial, because a domain only contains one data type
|
|
descriptor). This is mainly useful for joining with other
|
|
instances of such identifiers. (The specific format of the
|
|
identifier is not defined and not guaranteed to remain the same
|
|
in future versions.)
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-element-types">
|
|
<title><literal>element_types</literal></title>
|
|
|
|
<para>
|
|
The view <literal>element_types</literal> contains the data type
|
|
descriptors of the elements of arrays. When a table column, composite-type attribute,
|
|
domain, function parameter, or function return value is defined to
|
|
be of an array type, the respective information schema view only
|
|
contains <literal>ARRAY</literal> in the column
|
|
<literal>data_type</literal>. To obtain information on the element
|
|
type of the array, you can join the respective view with this view.
|
|
For example, to show the columns of a table with data types and
|
|
array element types, if applicable, you could do:
|
|
<programlisting>
|
|
SELECT c.column_name, c.data_type, e.data_type AS element_type
|
|
FROM information_schema.columns c LEFT JOIN information_schema.element_types e
|
|
ON ((c.table_catalog, c.table_schema, c.table_name, 'TABLE', c.dtd_identifier)
|
|
= (e.object_catalog, e.object_schema, e.object_name, e.object_type, e.collection_type_identifier))
|
|
WHERE c.table_schema = '...' AND c.table_name = '...'
|
|
ORDER BY c.ordinal_position;
|
|
</programlisting>
|
|
This view only includes objects that the current user has access
|
|
to, by way of being the owner or having some privilege.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>element_types</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>object_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the object that uses the
|
|
array being described (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>object_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the object that uses the array
|
|
being described
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>object_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the object that uses the array being described
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>object_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
The type of the object that uses the array being described: one
|
|
of <literal>TABLE</literal> (the array is used by a column of
|
|
that table), <literal>USER-DEFINED TYPE</literal> (the array is
|
|
used by an attribute of that composite type),
|
|
<literal>DOMAIN</literal> (the array is used by that domain),
|
|
<literal>ROUTINE</literal> (the array is used by a parameter or
|
|
the return data type of that function).
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collection_type_identifier</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The identifier of the data type descriptor of the array being
|
|
described. Use this to join with the
|
|
<literal>dtd_identifier</literal> columns of other information
|
|
schema views.
|
|
</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 array elements, if it is a built-in type, else
|
|
<literal>USER-DEFINED</literal> (in that case, the type is
|
|
identified in <literal>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>
|
|
Always null, since this information is not applied to array element data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_octet_length</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to array element data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the collation of the element
|
|
type (always the current database), null if default or the data
|
|
type of the element is not collatable
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the collation of the element
|
|
type, null if default or the data type of the element is not
|
|
collatable
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the collation of the element type, null if default or
|
|
the data type of the element is not collatable
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to array element data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_precision_radix</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to array element data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_scale</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to array element data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>datetime_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to array element data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>interval_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to array element data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>interval_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to array element data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>domain_default</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Not yet implemented
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>udt_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that the data type of the elements is
|
|
defined in (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 that the data type of the elements is
|
|
defined in
|
|
</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 of the elements
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>scope_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>scope_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>scope_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>maximum_cardinality</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, because arrays always have unlimited maximum cardinality in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>dtd_identifier</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
An identifier of the data type descriptor of the element. This
|
|
is currently not useful.
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-enabled-roles">
|
|
<title><literal>enabled_roles</literal></title>
|
|
|
|
<para>
|
|
The view <literal>enabled_roles</literal> identifies the currently
|
|
<quote>enabled roles</quote>. The enabled roles are recursively
|
|
defined as the current user together with all roles that have been
|
|
granted to the enabled roles with automatic inheritance. In other
|
|
words, these are all roles that the current user has direct or
|
|
indirect, automatically inheriting membership in.
|
|
<indexterm><primary>enabled role</primary></indexterm>
|
|
<indexterm><primary>role</primary><secondary>enabled</secondary></indexterm>
|
|
</para>
|
|
|
|
<para>
|
|
For permission checking, the set of <quote>applicable roles</quote>
|
|
is applied, which can be broader than the set of enabled roles. So
|
|
generally, it is better to use the view
|
|
<literal>applicable_roles</literal> instead of this one; See
|
|
<xref linkend="infoschema-applicable-roles"/> for details on
|
|
<literal>applicable_roles</literal> view.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>enabled_roles</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>role_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of a role
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-foreign-data-wrapper-options">
|
|
<title><literal>foreign_data_wrapper_options</literal></title>
|
|
|
|
<para>
|
|
The view <literal>foreign_data_wrapper_options</literal> contains
|
|
all the options defined for foreign-data wrappers in the current
|
|
database. Only those foreign-data wrappers are shown that the
|
|
current user has access to (by way of being the owner or having
|
|
some privilege).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>foreign_data_wrapper_options</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>foreign_data_wrapper_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that the foreign-data wrapper is defined in (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_data_wrapper_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the foreign-data wrapper
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>option_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of an option
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>option_value</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Value of the option
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-foreign-data-wrappers">
|
|
<title><literal>foreign_data_wrappers</literal></title>
|
|
|
|
<para>
|
|
The view <literal>foreign_data_wrappers</literal> contains all
|
|
foreign-data wrappers defined in the current database. Only those
|
|
foreign-data wrappers are shown that the current user has access to
|
|
(by way of being the owner or having some privilege).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>foreign_data_wrappers</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>foreign_data_wrapper_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the foreign-data
|
|
wrapper (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_data_wrapper_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the foreign-data wrapper
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>authorization_identifier</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the owner of the foreign server
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>library_name</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
File name of the library that implementing this foreign-data wrapper
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_data_wrapper_language</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Language used to implement this foreign-data wrapper
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-foreign-server-options">
|
|
<title><literal>foreign_server_options</literal></title>
|
|
|
|
<para>
|
|
The view <literal>foreign_server_options</literal> contains all the
|
|
options defined for foreign servers in the current database. Only
|
|
those foreign servers are shown that the current user has access to
|
|
(by way of being the owner or having some privilege).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>foreign_server_options</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>foreign_server_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that the foreign server is defined in (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_server_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the foreign server
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>option_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of an option
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>option_value</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Value of the option
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-foreign-servers">
|
|
<title><literal>foreign_servers</literal></title>
|
|
|
|
<para>
|
|
The view <literal>foreign_servers</literal> contains all foreign
|
|
servers defined in the current database. Only those foreign
|
|
servers are shown that the current user has access to (by way of
|
|
being the owner or having some privilege).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>foreign_servers</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>foreign_server_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that the foreign server is defined in (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_server_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the foreign server
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_data_wrapper_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the foreign-data
|
|
wrapper used by the foreign server (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_data_wrapper_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the foreign-data wrapper used by the foreign server
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_server_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Foreign server type information, if specified upon creation
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_server_version</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Foreign server version information, if specified upon creation
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>authorization_identifier</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the owner of the foreign server
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-foreign-table-options">
|
|
<title><literal>foreign_table_options</literal></title>
|
|
|
|
<para>
|
|
The view <literal>foreign_table_options</literal> contains all the
|
|
options defined for foreign tables in the current database. Only
|
|
those foreign tables are shown that the current user has access to
|
|
(by way of being the owner or having some privilege).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>foreign_table_options</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>foreign_table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the foreign table (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the foreign table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the foreign table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>option_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of an option
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>option_value</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Value of the option
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-foreign-tables">
|
|
<title><literal>foreign_tables</literal></title>
|
|
|
|
<para>
|
|
The view <literal>foreign_tables</literal> contains all foreign
|
|
tables defined in the current database. Only those foreign
|
|
tables are shown that the current user has access to (by way of
|
|
being the owner or having some privilege).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>foreign_tables</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>foreign_table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that the foreign table is defined in (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the foreign table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the foreign table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_server_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that the foreign server is defined in (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_server_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the foreign server
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-key-column-usage">
|
|
<title><literal>key_column_usage</literal></title>
|
|
|
|
<para>
|
|
The view <literal>key_column_usage</literal> identifies all columns
|
|
in the current database that are restricted by some unique, primary
|
|
key, or foreign key constraint. Check constraints are not included
|
|
in this view. Only those columns are shown that the current user
|
|
has access to, by way of being the owner or having some privilege.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>key_column_usage</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>constraint_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the constraint (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the table that contains the
|
|
column that is restricted by this constraint (always the
|
|
current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the table that contains the
|
|
column that is restricted by this constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table that contains the column that is restricted
|
|
by this constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>column_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the column that is restricted by this constraint
|
|
</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 column within the constraint key (count
|
|
starts at 1)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>position_in_unique_constraint</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
For a foreign-key constraint, ordinal position of the referenced
|
|
column within its unique constraint (count starts at 1);
|
|
otherwise null
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-parameters">
|
|
<title><literal>parameters</literal></title>
|
|
|
|
<para>
|
|
The view <literal>parameters</literal> contains information about
|
|
the parameters (arguments) of all functions in the current database.
|
|
Only those functions are shown that the current user has access to
|
|
(by way of being the owner or having some privilege).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>parameters</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>specific_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The <quote>specific name</quote> of the function. See <xref linkend="infoschema-routines"/> for more information.
|
|
</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 parameter in the argument list of the
|
|
function (count starts at 1)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>parameter_mode</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
<literal>IN</literal> for input parameter,
|
|
<literal>OUT</literal> for output parameter,
|
|
and <literal>INOUT</literal> for input/output parameter.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_result</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>as_locator</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>parameter_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the parameter, or null if the parameter has no name
|
|
</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 parameter, 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>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>
|
|
Always null, since this information is not applied to parameter data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_octet_length</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to parameter data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to parameter data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to parameter data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to parameter data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to parameter data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_precision_radix</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to parameter data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_scale</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to parameter data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>datetime_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to parameter data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>interval_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to parameter data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>interval_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to parameter data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>udt_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that the data type of the parameter is
|
|
defined in (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 that the data type of the parameter is
|
|
defined in
|
|
</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 of the parameter
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>scope_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>scope_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>scope_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>maximum_cardinality</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, because arrays always have unlimited maximum cardinality in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>dtd_identifier</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
An identifier of the data type descriptor of the parameter,
|
|
unique among the data type descriptors pertaining to the
|
|
function. This is mainly useful for joining with other
|
|
instances of such identifiers. (The specific format of the
|
|
identifier is not defined and not guaranteed to remain the same
|
|
in future versions.)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>parameter_default</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
The default expression of the parameter, or null if none or if the
|
|
function is not owned by a currently enabled role.
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-referential-constraints">
|
|
<title><literal>referential_constraints</literal></title>
|
|
|
|
<para>
|
|
The view <literal>referential_constraints</literal> contains all
|
|
referential (foreign key) constraints in the current database.
|
|
Only those constraints are shown for which the current user has
|
|
write access to the referencing table (by way of being the
|
|
owner or having some privilege other than <literal>SELECT</literal>).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>referential_constraints</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>constraint_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the constraint (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>unique_constraint_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the unique or primary key
|
|
constraint that the foreign key constraint references (always
|
|
the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>unique_constraint_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the unique or primary key
|
|
constraint that the foreign key constraint references
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>unique_constraint_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the unique or primary key constraint that the foreign
|
|
key constraint references
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>match_option</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Match option of the foreign key constraint:
|
|
<literal>FULL</literal>, <literal>PARTIAL</literal>, or
|
|
<literal>NONE</literal>.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>update_rule</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Update rule of the foreign key constraint:
|
|
<literal>CASCADE</literal>, <literal>SET NULL</literal>,
|
|
<literal>SET DEFAULT</literal>, <literal>RESTRICT</literal>, or
|
|
<literal>NO ACTION</literal>.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>delete_rule</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Delete rule of the foreign key constraint:
|
|
<literal>CASCADE</literal>, <literal>SET NULL</literal>,
|
|
<literal>SET DEFAULT</literal>, <literal>RESTRICT</literal>, or
|
|
<literal>NO ACTION</literal>.
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-role-column-grants">
|
|
<title><literal>role_column_grants</literal></title>
|
|
|
|
<para>
|
|
The view <literal>role_column_grants</literal> identifies all
|
|
privileges granted on columns where the grantor or grantee is a
|
|
currently enabled role. Further information can be found under
|
|
<literal>column_privileges</literal>. The only effective
|
|
difference between this view
|
|
and <literal>column_privileges</literal> is that this view omits
|
|
columns that have been made accessible to the current user by way
|
|
of a grant to <literal>PUBLIC</literal>.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>role_column_grants</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>grantor</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the role that granted the privilege
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>grantee</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the role that the privilege was granted to
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the table that contains the column (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the table that contains the column
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table that contains the column
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>column_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the column
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>privilege_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Type of the privilege: <literal>SELECT</literal>,
|
|
<literal>INSERT</literal>, <literal>UPDATE</literal>, or
|
|
<literal>REFERENCES</literal>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_grantable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the privilege is grantable, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-role-routine-grants">
|
|
<title><literal>role_routine_grants</literal></title>
|
|
|
|
<para>
|
|
The view <literal>role_routine_grants</literal> identifies all
|
|
privileges granted on functions where the grantor or grantee is a
|
|
currently enabled role. Further information can be found under
|
|
<literal>routine_privileges</literal>. The only effective
|
|
difference between this view
|
|
and <literal>routine_privileges</literal> is that this view omits
|
|
functions that have been made accessible to the current user by way
|
|
of a grant to <literal>PUBLIC</literal>.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>role_routine_grants</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>grantor</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the role that granted the privilege
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>grantee</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the role that the privilege was granted to
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The <quote>specific name</quote> of the function. See <xref linkend="infoschema-routines"/> for more information.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the function (might be duplicated in case of overloading)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>privilege_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Always <literal>EXECUTE</literal> (the only privilege type for functions)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_grantable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the privilege is grantable, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-role-table-grants">
|
|
<title><literal>role_table_grants</literal></title>
|
|
|
|
<para>
|
|
The view <literal>role_table_grants</literal> identifies all
|
|
privileges granted on tables or views where the grantor or grantee
|
|
is a currently enabled role. Further information can be found
|
|
under <literal>table_privileges</literal>. The only effective
|
|
difference between this view
|
|
and <literal>table_privileges</literal> is that this view omits
|
|
tables that have been made accessible to the current user by way of
|
|
a grant to <literal>PUBLIC</literal>.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>role_table_grants</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>grantor</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the role that granted the privilege
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>grantee</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the role that the privilege was granted to
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the table (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>privilege_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Type of the privilege: <literal>SELECT</literal>,
|
|
<literal>INSERT</literal>, <literal>UPDATE</literal>,
|
|
<literal>DELETE</literal>, <literal>TRUNCATE</literal>,
|
|
<literal>REFERENCES</literal>, or <literal>TRIGGER</literal>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_grantable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the privilege is grantable, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>with_hierarchy</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
In the SQL standard, <literal>WITH HIERARCHY OPTION</literal>
|
|
is a separate (sub-)privilege allowing certain operations on
|
|
table inheritance hierarchies. In PostgreSQL, this is included
|
|
in the <literal>SELECT</literal> privilege, so this column
|
|
shows <literal>YES</literal> if the privilege
|
|
is <literal>SELECT</literal>, else <literal>NO</literal>.
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-role-udt-grants">
|
|
<title><literal>role_udt_grants</literal></title>
|
|
|
|
<para>
|
|
The view <literal>role_udt_grants</literal> is intended to identify
|
|
<literal>USAGE</literal> privileges granted on user-defined types
|
|
where the grantor or grantee is a currently enabled role. Further
|
|
information can be found under
|
|
<literal>udt_privileges</literal>. The only effective difference
|
|
between this view and <literal>udt_privileges</literal> is that
|
|
this view omits objects that have been made accessible to the
|
|
current user by way of a grant to <literal>PUBLIC</literal>. Since
|
|
data types do not have real privileges in PostgreSQL, but only an
|
|
implicit grant to <literal>PUBLIC</literal>, this view is empty.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>role_udt_grants</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>grantor</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The name of the role that granted the privilege
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>grantee</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The name of the role that the privilege was granted to
|
|
</para></entry>
|
|
</row>
|
|
|
|
<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 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 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 type
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>privilege_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Always <literal>TYPE USAGE</literal>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_grantable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the privilege is grantable, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-role-usage-grants">
|
|
<title><literal>role_usage_grants</literal></title>
|
|
|
|
<para>
|
|
The view <literal>role_usage_grants</literal> identifies
|
|
<literal>USAGE</literal> privileges granted on various kinds of
|
|
objects where the grantor or grantee is a currently enabled role.
|
|
Further information can be found under
|
|
<literal>usage_privileges</literal>. The only effective difference
|
|
between this view and <literal>usage_privileges</literal> is that
|
|
this view omits objects that have been made accessible to the
|
|
current user by way of a grant to <literal>PUBLIC</literal>.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>role_usage_grants</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>grantor</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The name of the role that granted the privilege
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>grantee</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The name of the role that the privilege was granted to
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>object_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the object (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>object_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the object, if applicable,
|
|
else an empty string
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>object_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the object
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>object_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
<literal>COLLATION</literal> or <literal>DOMAIN</literal> or <literal>FOREIGN DATA WRAPPER</literal> or <literal>FOREIGN SERVER</literal> or <literal>SEQUENCE</literal>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>privilege_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Always <literal>USAGE</literal>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_grantable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the privilege is grantable, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-routine-column-usage">
|
|
<title><literal>routine_column_usage</literal></title>
|
|
|
|
<para>
|
|
The view <literal>routine_column_usage</literal> is meant to identify all
|
|
columns that are used by a function or procedure. This information is
|
|
currently not tracked by <productname>PostgreSQL</productname>.
|
|
</para>
|
|
|
|
<table>
|
|
<title><literal>routine_column_usage</literal> 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>specific_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The <quote>specific name</quote> of the function. See <xref linkend="infoschema-routines"/> for more information.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the function (might be duplicated in case of overloading)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the table that is used by the
|
|
function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the table that is used by the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table that is used by the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>column_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the column that is used by the function
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-routine-privileges">
|
|
<title><literal>routine_privileges</literal></title>
|
|
|
|
<para>
|
|
The view <literal>routine_privileges</literal> identifies all
|
|
privileges granted on functions to a currently enabled role or by a
|
|
currently enabled role. There is one row for each combination of function,
|
|
grantor, and grantee.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>routine_privileges</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>grantor</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the role that granted the privilege
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>grantee</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the role that the privilege was granted to
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The <quote>specific name</quote> of the function. See <xref linkend="infoschema-routines"/> for more information.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the function (might be duplicated in case of overloading)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>privilege_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Always <literal>EXECUTE</literal> (the only privilege type for functions)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_grantable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the privilege is grantable, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-routine-routine-usage">
|
|
<title><literal>routine_routine_usage</literal></title>
|
|
|
|
<para>
|
|
The view <literal>routine_routine_usage</literal> is meant to identify all
|
|
functions or procedures that are used by another (or the same) function or
|
|
procedure, either in the body or in parameter default expressions.
|
|
Currently, only functions used in parameter default expressions are
|
|
tracked. An entry is included here only if the used function is owned by a
|
|
currently enabled role. (There is no such restriction on the using
|
|
function.)
|
|
</para>
|
|
|
|
<para>
|
|
Note that the entries for both functions in the view refer to the
|
|
<quote>specific</quote> name of the routine, even though the column names
|
|
are used in a way that is inconsistent with other information schema views
|
|
about routines. This is per SQL standard, although it is arguably a
|
|
misdesign. See <xref linkend="infoschema-routines"/> for more information
|
|
about specific names.
|
|
</para>
|
|
|
|
<table>
|
|
<title><literal>routine_routine_usage</literal> 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>specific_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the using function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the using function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The <quote>specific name</quote> of the using function.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the function that is used by the
|
|
first function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the function that is used by the first
|
|
function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The <quote>specific name</quote> of the function that is used by the
|
|
first function.
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-routine-sequence-usage">
|
|
<title><literal>routine_sequence_usage</literal></title>
|
|
|
|
<para>
|
|
The view <literal>routine_sequence_usage</literal> is meant to identify all
|
|
sequences that are used by a function or procedure, either in the body or
|
|
in parameter default expressions. Currently, only sequences used in
|
|
parameter default expressions are tracked. A sequence is only included if
|
|
that sequence is owned by a currently enabled role.
|
|
</para>
|
|
|
|
<table>
|
|
<title><literal>routine_sequence_usage</literal> 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>specific_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The <quote>specific name</quote> of the function. See <xref linkend="infoschema-routines"/> for more information.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the function (might be duplicated in case of overloading)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>schema_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the sequence that is used by the
|
|
function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>sequence_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the sequence that is used by the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>sequence_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the sequence that is used by the function
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-routine-table-usage">
|
|
<title><literal>routine_table_usage</literal></title>
|
|
|
|
<para>
|
|
The view <literal>routine_table_usage</literal> is meant to identify all
|
|
tables that are used by a function or procedure. This information is
|
|
currently not tracked by <productname>PostgreSQL</productname>.
|
|
</para>
|
|
|
|
<table>
|
|
<title><literal>routine_table_usage</literal> 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>specific_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The <quote>specific name</quote> of the function. See <xref linkend="infoschema-routines"/> for more information.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the function (might be duplicated in case of overloading)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the table that is used by the
|
|
function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the table that is used by the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table that is used by the function
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-routines">
|
|
<title><literal>routines</literal></title>
|
|
|
|
<para>
|
|
The view <literal>routines</literal> contains all functions and procedures in the
|
|
current database. Only those functions and procedures are shown that the current
|
|
user has access to (by way of being the owner or having some
|
|
privilege).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>routines</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>specific_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The <quote>specific name</quote> of the function. This is a
|
|
name that uniquely identifies the function in the schema, even
|
|
if the real name of the function is overloaded. The format of
|
|
the specific name is not defined, it should only be used to
|
|
compare it to other instances of specific routine names.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the function (might be duplicated in case of overloading)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
<literal>FUNCTION</literal> for a
|
|
function, <literal>PROCEDURE</literal> for a procedure
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>module_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>module_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>module_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>udt_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>udt_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>udt_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>data_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Return data type of the function, 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>type_udt_name</literal> and associated
|
|
columns). Null for a procedure.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_maximum_length</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to return data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_octet_length</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to return data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to return data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to return data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to return data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to return data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_precision_radix</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to return data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_scale</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to return data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>datetime_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to return data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>interval_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to return data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>interval_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, since this information is not applied to return data types in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>type_udt_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that the return data type of the function
|
|
is defined in (always the current database). Null for a procedure.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>type_udt_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that the return data type of the function is
|
|
defined in. Null for a procedure.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>type_udt_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the return data type of the function. Null for a procedure.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>scope_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>scope_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>scope_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>maximum_cardinality</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Always null, because arrays always have unlimited maximum cardinality in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>dtd_identifier</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
An identifier of the data type descriptor of the return data
|
|
type of this function, unique among the data type descriptors
|
|
pertaining to the function. This is mainly useful for joining
|
|
with other instances of such identifiers. (The specific format
|
|
of the identifier is not defined and not guaranteed to remain
|
|
the same in future versions.)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_body</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
If the function is an SQL function, then
|
|
<literal>SQL</literal>, else <literal>EXTERNAL</literal>.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>routine_definition</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
The source text of the function (null if the function is not
|
|
owned by a currently enabled role). (According to the SQL
|
|
standard, this column is only applicable if
|
|
<literal>routine_body</literal> is <literal>SQL</literal>, but
|
|
in <productname>PostgreSQL</productname> it will contain
|
|
whatever source text was specified when the function was
|
|
created.)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>external_name</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
If this function is a C function, then the external name (link
|
|
symbol) of the function; else null. (This works out to be the
|
|
same value that is shown in
|
|
<literal>routine_definition</literal>.)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>external_language</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
The language the function is written in
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>parameter_style</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Always <literal>GENERAL</literal> (The SQL standard defines
|
|
other parameter styles, which are not available in <productname>PostgreSQL</productname>.)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_deterministic</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
If the function is declared immutable (called deterministic in
|
|
the SQL standard), then <literal>YES</literal>, else
|
|
<literal>NO</literal>. (You cannot query the other volatility
|
|
levels available in <productname>PostgreSQL</productname> through the information schema.)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>sql_data_access</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Always <literal>MODIFIES</literal>, meaning that the function
|
|
possibly modifies SQL data. This information is not useful for
|
|
<productname>PostgreSQL</productname>.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_null_call</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
If the function automatically returns null if any of its
|
|
arguments are null, then <literal>YES</literal>, else
|
|
<literal>NO</literal>. Null for a procedure.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>sql_path</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>schema_level_routine</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
Always <literal>YES</literal> (The opposite would be a method
|
|
of a user-defined type, which is a feature not available in
|
|
<productname>PostgreSQL</productname>.)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>max_dynamic_result_sets</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_user_defined_cast</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_implicitly_invocable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>security_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
If the function runs with the privileges of the current user,
|
|
then <literal>INVOKER</literal>, if the function runs with the
|
|
privileges of the user who defined it, then
|
|
<literal>DEFINER</literal>.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>to_sql_specific_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>to_sql_specific_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>to_sql_specific_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>as_locator</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>created</structfield> <type>time_stamp</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>last_altered</structfield> <type>time_stamp</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>new_savepoint_level</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_udt_dependent</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
Currently always <literal>NO</literal>. The alternative
|
|
<literal>YES</literal> applies to a feature not available in
|
|
<productname>PostgreSQL</productname>.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_from_data_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_as_locator</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_char_max_length</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_char_octet_length</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_char_set_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_char_set_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_char_set_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_collation_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_collation_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_collation_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_numeric_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_numeric_precision_radix</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_numeric_scale</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_datetime_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_interval_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_interval_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_type_udt_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_type_udt_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_type_udt_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_scope_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_scope_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_scope_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_maximum_cardinality</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>result_cast_dtd_identifier</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-schemata">
|
|
<title><literal>schemata</literal></title>
|
|
|
|
<para>
|
|
The view <literal>schemata</literal> contains all schemas in the current
|
|
database that the current user has access to (by way of being the owner or
|
|
having some privilege).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>schemata</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>catalog_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that the schema is contained in (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>schema_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>schema_owner</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the owner of the schema
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>default_character_set_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>default_character_set_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>default_character_set_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>sql_path</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-sequences">
|
|
<title><literal>sequences</literal></title>
|
|
|
|
<para>
|
|
The view <literal>sequences</literal> contains all sequences
|
|
defined in the current database. Only those sequences are shown
|
|
that the current user has access to (by way of being the owner or
|
|
having some privilege).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>sequences</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>sequence_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the sequence (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>sequence_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the sequence
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>sequence_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the sequence
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>data_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
The data type of the sequence.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
This column contains the (declared or implicit) precision of
|
|
the sequence data type (see above). The precision indicates
|
|
the number of significant digits. It can be expressed in
|
|
decimal (base 10) or binary (base 2) terms, as specified in the
|
|
column <literal>numeric_precision_radix</literal>.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_precision_radix</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
This column indicates in which base the values in the columns
|
|
<literal>numeric_precision</literal> and
|
|
<literal>numeric_scale</literal> are expressed. The value is
|
|
either 2 or 10.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_scale</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
This column contains the (declared or implicit) scale of the
|
|
sequence data type (see above). The scale indicates the number
|
|
of significant digits to the right of the decimal point. It
|
|
can be expressed in decimal (base 10) or binary (base 2) terms,
|
|
as specified in the column
|
|
<literal>numeric_precision_radix</literal>.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>start_value</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
The start value of the sequence
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>minimum_value</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
The minimum value of the sequence
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>maximum_value</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
The maximum value of the sequence
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>increment</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
The increment of the sequence
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>cycle_option</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the sequence cycles, else <literal>NO</literal>
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>
|
|
Note that in accordance with the SQL standard, the start, minimum,
|
|
maximum, and increment values are returned as character strings.
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-sql-features">
|
|
<title><literal>sql_features</literal></title>
|
|
|
|
<para>
|
|
The table <literal>sql_features</literal> contains information
|
|
about which formal features defined in the SQL standard are
|
|
supported by <productname>PostgreSQL</productname>. This is the
|
|
same information that is presented in <xref linkend="features"/>.
|
|
There you can also find some additional background information.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>sql_features</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>feature_id</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Identifier string of the feature
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>feature_name</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Descriptive name of the feature
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>sub_feature_id</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Identifier string of the subfeature, or a zero-length string if not a subfeature
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>sub_feature_name</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Descriptive name of the subfeature, or a zero-length string if not a subfeature
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_supported</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the feature is fully supported by the
|
|
current version of <productname>PostgreSQL</productname>, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_verified_by</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Always null, since the <productname>PostgreSQL</productname> development group does not
|
|
perform formal testing of feature conformance
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>comments</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Possibly a comment about the supported status of the feature
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-sql-implementation-info">
|
|
<title><literal>sql_implementation_info</literal></title>
|
|
|
|
<para>
|
|
The table <literal>sql_implementation_info</literal> contains
|
|
information about various aspects that are left
|
|
implementation-defined by the SQL standard. This information is
|
|
primarily intended for use in the context of the ODBC interface;
|
|
users of other interfaces will probably find this information to be
|
|
of little use. For this reason, the individual implementation
|
|
information items are not described here; you will find them in the
|
|
description of the ODBC interface.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>sql_implementation_info</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>implementation_info_id</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Identifier string of the implementation information item
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>implementation_info_name</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Descriptive name of the implementation information item
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>integer_value</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Value of the implementation information item, or null if the
|
|
value is contained in the column
|
|
<literal>character_value</literal>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_value</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Value of the implementation information item, or null if the
|
|
value is contained in the column
|
|
<literal>integer_value</literal>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>comments</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Possibly a comment pertaining to the implementation information item
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-sql-parts">
|
|
<title><literal>sql_parts</literal></title>
|
|
|
|
<para>
|
|
The table <literal>sql_parts</literal> contains information about
|
|
which of the several parts of the SQL standard are supported by
|
|
<productname>PostgreSQL</productname>.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>sql_parts</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>feature_id</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
An identifier string containing the number of the part
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>feature_name</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Descriptive name of the part
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_supported</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the part is fully supported by the
|
|
current version of <productname>PostgreSQL</productname>,
|
|
<literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_verified_by</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Always null, since the <productname>PostgreSQL</productname> development group does not
|
|
perform formal testing of feature conformance
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>comments</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Possibly a comment about the supported status of the part
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-sql-sizing">
|
|
<title><literal>sql_sizing</literal></title>
|
|
|
|
<para>
|
|
The table <literal>sql_sizing</literal> contains information about
|
|
various size limits and maximum values in
|
|
<productname>PostgreSQL</productname>. This information is
|
|
primarily intended for use in the context of the ODBC interface;
|
|
users of other interfaces will probably find this information to be
|
|
of little use. For this reason, the individual sizing items are
|
|
not described here; you will find them in the description of the
|
|
ODBC interface.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>sql_sizing</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>sizing_id</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Identifier of the sizing item
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>sizing_name</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Descriptive name of the sizing item
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>supported_value</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Value of the sizing item, or 0 if the size is unlimited or
|
|
cannot be determined, or null if the features for which the
|
|
sizing item is applicable are not supported
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>comments</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Possibly a comment pertaining to the sizing item
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-table-constraints">
|
|
<title><literal>table_constraints</literal></title>
|
|
|
|
<para>
|
|
The view <literal>table_constraints</literal> contains all
|
|
constraints belonging to tables that the current user owns or has
|
|
some privilege other than <literal>SELECT</literal> on.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>table_constraints</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>constraint_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the constraint (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the constraint
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the table (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>constraint_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Type of the constraint: <literal>CHECK</literal>,
|
|
<literal>FOREIGN KEY</literal>, <literal>PRIMARY KEY</literal>,
|
|
or <literal>UNIQUE</literal>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_deferrable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the constraint is deferrable, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>initially_deferred</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the constraint is deferrable and initially deferred, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>enforced</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in
|
|
<productname>PostgreSQL</productname> (currently always
|
|
<literal>YES</literal>)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>nulls_distinct</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
If the constraint is a unique constraint, then <literal>YES</literal>
|
|
if the constraint treats nulls as distinct or <literal>NO</literal> if
|
|
it treats nulls as not distinct, otherwise null for other types of
|
|
constraints.
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-table-privileges">
|
|
<title><literal>table_privileges</literal></title>
|
|
|
|
<para>
|
|
The view <literal>table_privileges</literal> identifies all
|
|
privileges granted on tables or views to a currently enabled role
|
|
or by a currently enabled role. There is one row for each
|
|
combination of table, grantor, and grantee.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>table_privileges</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>grantor</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the role that granted the privilege
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>grantee</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the role that the privilege was granted to
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the table (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>privilege_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Type of the privilege: <literal>SELECT</literal>,
|
|
<literal>INSERT</literal>, <literal>UPDATE</literal>,
|
|
<literal>DELETE</literal>, <literal>TRUNCATE</literal>,
|
|
<literal>REFERENCES</literal>, or <literal>TRIGGER</literal>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_grantable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the privilege is grantable, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>with_hierarchy</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
In the SQL standard, <literal>WITH HIERARCHY OPTION</literal>
|
|
is a separate (sub-)privilege allowing certain operations on
|
|
table inheritance hierarchies. In PostgreSQL, this is included
|
|
in the <literal>SELECT</literal> privilege, so this column
|
|
shows <literal>YES</literal> if the privilege
|
|
is <literal>SELECT</literal>, else <literal>NO</literal>.
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-tables">
|
|
<title><literal>tables</literal></title>
|
|
|
|
<para>
|
|
The view <literal>tables</literal> contains all tables and views
|
|
defined in the current database. Only those tables and views are
|
|
shown that the current user has access to (by way of being the
|
|
owner or having some privilege).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>tables</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>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the table (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Type of the table: <literal>BASE TABLE</literal> for a
|
|
persistent base table (the normal table type),
|
|
<literal>VIEW</literal> for a view, <literal>FOREIGN</literal>
|
|
for a foreign table, or
|
|
<literal>LOCAL TEMPORARY</literal> for a temporary table
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>self_referencing_column_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>reference_generation</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>user_defined_type_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
If the table is a typed table, the name of the database that
|
|
contains the underlying data type (always the current
|
|
database), else null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>user_defined_type_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
If the table is a typed table, the name of the schema that
|
|
contains the underlying data type, else null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>user_defined_type_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
If the table is a typed table, the name of the underlying data
|
|
type, else null.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_insertable_into</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the table is insertable into,
|
|
<literal>NO</literal> if not (Base tables are always insertable
|
|
into, views not necessarily.)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_typed</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the table is a typed table, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>commit_action</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Not yet implemented
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-transforms">
|
|
<title><literal>transforms</literal></title>
|
|
|
|
<para>
|
|
The view <literal>transforms</literal> contains information about the
|
|
transforms defined in the current database. More precisely, it contains a
|
|
row for each function contained in a transform (the <quote>from SQL</quote>
|
|
or <quote>to SQL</quote> function).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>transforms</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 that contains the type the transform is for (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 that contains the type the transform is for
|
|
</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 type the transform is for
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The <quote>specific name</quote> of the function. See <xref linkend="infoschema-routines"/> for more information.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>group_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The SQL standard allows defining transforms in <quote>groups</quote>,
|
|
and selecting a group at run time. PostgreSQL does not support this.
|
|
Instead, transforms are specific to a language. As a compromise, this
|
|
field contains the language the transform is for.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>transform_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
<literal>FROM SQL</literal> or <literal>TO SQL</literal>
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-triggered-update-columns">
|
|
<title><literal>triggered_update_columns</literal></title>
|
|
|
|
<para>
|
|
For triggers in the current database that specify a column list
|
|
(like <literal>UPDATE OF column1, column2</literal>), the
|
|
view <literal>triggered_update_columns</literal> identifies these
|
|
columns. Triggers that do not specify a column list are not
|
|
included in this view. Only those columns are shown that the
|
|
current user owns or has some privilege other than
|
|
<literal>SELECT</literal> on.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>triggered_update_columns</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>trigger_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the trigger (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>trigger_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the trigger
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>trigger_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the trigger
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>event_object_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the table that the trigger
|
|
is defined on (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>event_object_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the table that the trigger is defined on
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>event_object_table</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table that the trigger is defined on
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>event_object_column</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the column that the trigger is defined on
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-triggers">
|
|
<title><literal>triggers</literal></title>
|
|
|
|
<para>
|
|
The view <literal>triggers</literal> contains all triggers defined
|
|
in the current database on tables and views that the current user owns
|
|
or has some privilege other than <literal>SELECT</literal> on.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>triggers</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>trigger_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the trigger (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>trigger_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the trigger
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>trigger_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the trigger
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>event_manipulation</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Event that fires the trigger (<literal>INSERT</literal>,
|
|
<literal>UPDATE</literal>, or <literal>DELETE</literal>)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>event_object_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the table that the trigger
|
|
is defined on (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>event_object_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the table that the trigger is defined on
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>event_object_table</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table that the trigger is defined on
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>action_order</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Firing order among triggers on the same table having the same
|
|
<literal>event_manipulation</literal>,
|
|
<literal>action_timing</literal>, and
|
|
<literal>action_orientation</literal>. In
|
|
<productname>PostgreSQL</productname>, triggers are fired in name
|
|
order, so this column reflects that.
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>action_condition</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
<literal>WHEN</literal> condition of the trigger, null if none
|
|
(also null if the table is not owned by a currently enabled
|
|
role)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>action_statement</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Statement that is executed by the trigger (currently always
|
|
<literal>EXECUTE FUNCTION
|
|
<replaceable>function</replaceable>(...)</literal>)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>action_orientation</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Identifies whether the trigger fires once for each processed
|
|
row or once for each statement (<literal>ROW</literal> or
|
|
<literal>STATEMENT</literal>)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>action_timing</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Time at which the trigger fires (<literal>BEFORE</literal>,
|
|
<literal>AFTER</literal>, or <literal>INSTEAD OF</literal>)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>action_reference_old_table</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the <quote>old</quote> transition table, or null if none
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>action_reference_new_table</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the <quote>new</quote> transition table, or null if none
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>action_reference_old_row</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>action_reference_new_row</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>created</structfield> <type>time_stamp</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>
|
|
Triggers in <productname>PostgreSQL</productname> have two
|
|
incompatibilities with the SQL standard that affect the
|
|
representation in the information schema. First, trigger names are
|
|
local to each table in <productname>PostgreSQL</productname>, rather
|
|
than being independent schema objects. Therefore there can be duplicate
|
|
trigger names defined in one schema, so long as they belong to
|
|
different tables. (<literal>trigger_catalog</literal> and
|
|
<literal>trigger_schema</literal> are really the values pertaining
|
|
to the table that the trigger is defined on.) Second, triggers can
|
|
be defined to fire on multiple events in
|
|
<productname>PostgreSQL</productname> (e.g., <literal>ON INSERT OR
|
|
UPDATE</literal>), whereas the SQL standard only allows one. If a
|
|
trigger is defined to fire on multiple events, it is represented as
|
|
multiple rows in the information schema, one for each type of
|
|
event. As a consequence of these two issues, the primary key of
|
|
the view <literal>triggers</literal> is really
|
|
<literal>(trigger_catalog, trigger_schema, event_object_table,
|
|
trigger_name, event_manipulation)</literal> instead of
|
|
<literal>(trigger_catalog, trigger_schema, trigger_name)</literal>,
|
|
which is what the SQL standard specifies. Nonetheless, if you
|
|
define your triggers in a manner that conforms with the SQL
|
|
standard (trigger names unique in the schema and only one event
|
|
type per trigger), this will not affect you.
|
|
</para>
|
|
|
|
<note>
|
|
<para>
|
|
Prior to <productname>PostgreSQL</productname> 9.1, this view's columns
|
|
<structfield>action_timing</structfield>,
|
|
<structfield>action_reference_old_table</structfield>,
|
|
<structfield>action_reference_new_table</structfield>,
|
|
<structfield>action_reference_old_row</structfield>, and
|
|
<structfield>action_reference_new_row</structfield>
|
|
were named
|
|
<structfield>condition_timing</structfield>,
|
|
<structfield>condition_reference_old_table</structfield>,
|
|
<structfield>condition_reference_new_table</structfield>,
|
|
<structfield>condition_reference_old_row</structfield>, and
|
|
<structfield>condition_reference_new_row</structfield>
|
|
respectively.
|
|
That was how they were named in the SQL:1999 standard.
|
|
The new naming conforms to SQL:2003 and later.
|
|
</para>
|
|
</note>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-udt-privileges">
|
|
<title><literal>udt_privileges</literal></title>
|
|
|
|
<para>
|
|
The view <literal>udt_privileges</literal> identifies
|
|
<literal>USAGE</literal> privileges granted on user-defined types to a
|
|
currently enabled role or by a currently enabled role. There is one row for
|
|
each combination of type, grantor, and grantee. This view shows only
|
|
composite types (see under <xref linkend="infoschema-user-defined-types"/>
|
|
for why); see
|
|
<xref linkend="infoschema-usage-privileges"/> for domain privileges.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>udt_privileges</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>grantor</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the role that granted the privilege
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>grantee</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the role that the privilege was granted to
|
|
</para></entry>
|
|
</row>
|
|
|
|
<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 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 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 type
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>privilege_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Always <literal>TYPE USAGE</literal>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_grantable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the privilege is grantable, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-usage-privileges">
|
|
<title><literal>usage_privileges</literal></title>
|
|
|
|
<para>
|
|
The view <literal>usage_privileges</literal> identifies
|
|
<literal>USAGE</literal> privileges granted on various kinds of
|
|
objects to a currently enabled role or by a currently enabled role.
|
|
In <productname>PostgreSQL</productname>, this currently applies to
|
|
collations, domains, foreign-data wrappers, foreign servers, and sequences. There is one
|
|
row for each combination of object, grantor, and grantee.
|
|
</para>
|
|
|
|
<para>
|
|
Since collations do not have real privileges
|
|
in <productname>PostgreSQL</productname>, this view shows implicit
|
|
non-grantable <literal>USAGE</literal> privileges granted by the
|
|
owner to <literal>PUBLIC</literal> for all collations. The other
|
|
object types, however, show real privileges.
|
|
</para>
|
|
|
|
<para>
|
|
In PostgreSQL, sequences also support <literal>SELECT</literal>
|
|
and <literal>UPDATE</literal> privileges in addition to
|
|
the <literal>USAGE</literal> privilege. These are nonstandard and therefore
|
|
not visible in the information schema.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>usage_privileges</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>grantor</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the role that granted the privilege
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>grantee</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the role that the privilege was granted to
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>object_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the object (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>object_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the object, if applicable,
|
|
else an empty string
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>object_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the object
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>object_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
<literal>COLLATION</literal> or <literal>DOMAIN</literal> or <literal>FOREIGN DATA WRAPPER</literal> or <literal>FOREIGN SERVER</literal> or <literal>SEQUENCE</literal>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>privilege_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Always <literal>USAGE</literal>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_grantable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the privilege is grantable, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-user-defined-types">
|
|
<title><literal>user_defined_types</literal></title>
|
|
|
|
<para>
|
|
The view <literal>user_defined_types</literal> 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).
|
|
</para>
|
|
|
|
<para>
|
|
SQL knows about two kinds of user-defined types: structured types
|
|
(also known as composite types
|
|
in <productname>PostgreSQL</productname>) and distinct types (not
|
|
implemented in <productname>PostgreSQL</productname>). To be
|
|
future-proof, use the
|
|
column <literal>user_defined_type_category</literal> to
|
|
differentiate between these. Other user-defined types such as base
|
|
types and enums, which are <productname>PostgreSQL</productname>
|
|
extensions, are not shown here. For domains,
|
|
see <xref linkend="infoschema-domains"/> instead.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>user_defined_types</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>user_defined_type_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the type (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>user_defined_type_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the type
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>user_defined_type_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the type
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>user_defined_type_category</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Currently always <literal>STRUCTURED</literal>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_instantiable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_final</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>ordering_form</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>ordering_category</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>ordering_routine_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>ordering_routine_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>ordering_routine_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>reference_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>data_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_maximum_length</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_octet_length</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>character_set_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>collation_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_precision_radix</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>numeric_scale</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>datetime_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>interval_type</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>interval_precision</structfield> <type>cardinal_number</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>source_dtd_identifier</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>ref_dtd_identifier</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Applies to a feature not available in <productname>PostgreSQL</productname>
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-user-mapping-options">
|
|
<title><literal>user_mapping_options</literal></title>
|
|
|
|
<para>
|
|
The view <literal>user_mapping_options</literal> contains all the
|
|
options defined for user mappings in the current database. Only
|
|
those user mappings are shown where the current user has access to
|
|
the corresponding foreign server (by way of being the owner or
|
|
having some privilege).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>user_mapping_options</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>authorization_identifier</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the user being mapped,
|
|
or <literal>PUBLIC</literal> if the mapping is public
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_server_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that the foreign server used by this
|
|
mapping is defined in (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_server_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the foreign server used by this mapping
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>option_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of an option
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>option_value</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Value of the option. This column will show as null
|
|
unless the current user is the user being mapped, or the mapping
|
|
is for <literal>PUBLIC</literal> and the current user is the
|
|
server owner, or the current user is a superuser. The intent is
|
|
to protect password information stored as user mapping
|
|
option.
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-user-mappings">
|
|
<title><literal>user_mappings</literal></title>
|
|
|
|
<para>
|
|
The view <literal>user_mappings</literal> contains all user
|
|
mappings defined in the current database. Only those user mappings
|
|
are shown where the current user has access to the corresponding
|
|
foreign server (by way of being the owner or having some
|
|
privilege).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>user_mappings</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>authorization_identifier</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the user being mapped,
|
|
or <literal>PUBLIC</literal> if the mapping is public
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_server_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that the foreign server used by this
|
|
mapping is defined in (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>foreign_server_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the foreign server used by this mapping
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-view-column-usage">
|
|
<title><literal>view_column_usage</literal></title>
|
|
|
|
<para>
|
|
The view <literal>view_column_usage</literal> identifies all
|
|
columns that are used in the query expression of a view (the
|
|
<command>SELECT</command> statement that defines the view). A
|
|
column is only included if the table that contains the column is
|
|
owned by a currently enabled role.
|
|
</para>
|
|
|
|
<note>
|
|
<para>
|
|
Columns of system tables are not included. This should be fixed
|
|
sometime.
|
|
</para>
|
|
</note>
|
|
|
|
<table>
|
|
<title><structname>view_column_usage</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>view_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the view (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>view_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the view
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>view_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the view
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the table that contains the
|
|
column that is used by the view (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the table that contains the
|
|
column that is used by the view
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table that contains the column that is used by the
|
|
view
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>column_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the column that is used by the view
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-view-routine-usage">
|
|
<title><literal>view_routine_usage</literal></title>
|
|
|
|
<para>
|
|
The view <literal>view_routine_usage</literal> identifies all
|
|
routines (functions and procedures) that are used in the query
|
|
expression of a view (the <command>SELECT</command> statement that
|
|
defines the view). A routine is only included if that routine is
|
|
owned by a currently enabled role.
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>view_routine_usage</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>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the view (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the view
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the view
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database containing the function (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema containing the function
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>specific_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
The <quote>specific name</quote> of the function. See <xref linkend="infoschema-routines"/> for more information.
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-view-table-usage">
|
|
<title><literal>view_table_usage</literal></title>
|
|
|
|
<para>
|
|
The view <literal>view_table_usage</literal> identifies all tables
|
|
that are used in the query expression of a view (the
|
|
<command>SELECT</command> statement that defines the view). A
|
|
table is only included if that table is owned by a currently
|
|
enabled role.
|
|
</para>
|
|
|
|
<note>
|
|
<para>
|
|
System tables are not included. This should be fixed sometime.
|
|
</para>
|
|
</note>
|
|
|
|
<table>
|
|
<title><structname>view_table_usage</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>view_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the view (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>view_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the view
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>view_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the view
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the table that is
|
|
used by the view (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the table that is used by the
|
|
view
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the table that is used by the view
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
<sect1 id="infoschema-views">
|
|
<title><literal>views</literal></title>
|
|
|
|
<para>
|
|
The view <literal>views</literal> contains all views defined in the
|
|
current database. Only those views are shown that the current user
|
|
has access to (by way of being the owner or having some privilege).
|
|
</para>
|
|
|
|
<table>
|
|
<title><structname>views</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>table_catalog</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the database that contains the view (always the current database)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_schema</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the schema that contains the view
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>table_name</structfield> <type>sql_identifier</type>
|
|
</para>
|
|
<para>
|
|
Name of the view
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>view_definition</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
Query expression defining the view (null if the view is not
|
|
owned by a currently enabled role)
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>check_option</structfield> <type>character_data</type>
|
|
</para>
|
|
<para>
|
|
<literal>CASCADED</literal> or <literal>LOCAL</literal> if the view
|
|
has a <literal>CHECK OPTION</literal> defined on it,
|
|
<literal>NONE</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_updatable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the view is updatable (allows
|
|
<command>UPDATE</command> and <command>DELETE</command>),
|
|
<literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_insertable_into</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the view is insertable into (allows
|
|
<command>INSERT</command>), <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_trigger_updatable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the view has an <literal>INSTEAD OF</literal>
|
|
<command>UPDATE</command> trigger defined on it, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_trigger_deletable</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the view has an <literal>INSTEAD OF</literal>
|
|
<command>DELETE</command> trigger defined on it, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry role="catalog_table_entry"><para role="column_definition">
|
|
<structfield>is_trigger_insertable_into</structfield> <type>yes_or_no</type>
|
|
</para>
|
|
<para>
|
|
<literal>YES</literal> if the view has an <literal>INSTEAD OF</literal>
|
|
<command>INSERT</command> trigger defined on it, <literal>NO</literal> if not
|
|
</para></entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
|
|
</chapter>
|