The current hierarchy of object types is like this:
database
access method
event trigger
extension
foreign data wrapper
foreign server
language
publication
schema
aggregate
collation
conversion
domain
function/procedure
index
operator
operator class
operator family
sequence
statistics
table/view
policy
rule
trigger
text search configuration
text search dictionary
text search parser
text search template
type
subscription
role
tablespace
special:
- cast
- transform
- user mapping
How does one decide whether something should be in a schema or not? The
current state feels intuitively correct, but I can't determine any firm
way to decide.
Over in the column encryption thread, the patch proposes to add various
key types as new object types. For simplicity, I just stuck them
directly under database, but I don't know whether that is correct.
Thoughts?