<para>
A database contains one or more named <firstterm>schemas</firstterm>, which
in turn contain tables. Schemas also contain other kinds of named
- objects, including data types, functions, and operators. The same
+ objects, including data types, functions, and operators. Within one
+ schema, two objects of the same type cannot have the same name.
+ Furthermore, tables, sequences, indexes, views, materialized views, and
+ foreign tables share the same namespace, so that, for example, an index and
+ a table must have different names if they are in the same schema. The same
object name can be used in different schemas without conflict; for
example, both <literal>schema1</literal> and <literal>myschema</literal> can
contain tables named <literal>mytable</literal>. Unlike databases,
Adding a unique constraint will automatically create a unique B-tree
index on the column or group of columns used in the constraint. But if
the constraint includes a <literal>WITHOUT OVERLAPS</literal> clause, it
- will use a GiST index.
+ will use a GiST index. The created index has the same name as the unique
+ constraint.
</para>
<para>
<literal>PRIMARY KEY</literal> constraint will automatically create a
unique B-tree index, or GiST if <literal>WITHOUT OVERLAPS</literal> was
specified, on the column or group of columns used in the constraint.
+ That index has the same name as the primary key constraint.
</para>
<para>
<para>
Exclusion constraints are implemented using
- an index, so each specified operator must be associated with an
- appropriate operator class
+ an index that has the same name as the constraint, so each specified
+ operator must be associated with an appropriate operator class
(see <xref linkend="indexes-opclass"/>) for the index access
method <replaceable>index_method</replaceable>.
The operators are required to be commutative.