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