a) Don't forget: constraint, function, procedure, trigger.
b) The hint applies to each of such objects: CREATE [TABLE|VIEW|FUNCTION|...]. To avoid such redundancy we could extend and clarify the definition of 'SQL object / local object / global object' within the glossary and refer to it.
c) In general we have 3 levels (namespaces) where object names are unique across the same or different types.
- cluster-level: database name, tablespace, replication origin, subscription for logical replication, role, ...?
- database-level: schema, extension, collation, data type cast, ...?
- schema-level: table, index, view, materialized view, foreign table, sequence, constraint, function, procedure, trigger, operator, ...?
--
Jürgen Purtz