The statement that names of schema objects are unique isn't /strictly/ true, just /mostly/ true. Take the case of a unique constraints.

Concerning CONSTRAINTS you are right. Constraints seems to be an exception:

 * Their name belongs to a schema, but are not necessarily unique
   within this context:
   https://www.postgresql.org/docs/current/catalog-pg-constraint.html.
 * There is a UNIQUE index within the system catalog pg_constraints:
   "pg_constraint_conrelid_contypid_conname_index" UNIQUE, btree
   (conrelid, contypid, conname), which expresses that names are unique
   within the context of a table/constraint-type. Nevertheless tests
   have shown that some stronger restrictions exists across
   table-boarders (,which seems to be implemented in CREATE statements
   - or as a consequence of your mentioned correlation between
   constraint and index ?).

I hope that there are no more such exception to the global rule 'object names in a schema are unique': https://www.postgresql.org/docs/current/sql-createschema.html

This facts must be mentioned as a short note in glossary and in more detail in the later patch about the architecture.

J. Purtz


Reply via email to