The Postgres documentation frequently uses the term "object". For instance, the descriptions of various \d
commands at https://www.postgresql.org/docs/current/app-psql.html (like \dt
for listing tables or \da
for listing aggregate functions) use a phrase like:
By default, only user-created objects are shown; supply a pattern or the
S
modifier to include system objects.
From this, I can infer that at least the specific things listed by each of those commands - like aggregate functions, tables, character set encodings, schemas, and a whole bunch of other stuff - are "objects" in Postgres's nomenclature. I can also make a decent guess that some of the things that can be listed with \d
commands, like roles, are not objects, given that in their descriptions the word "object" has been avoided.
But what exactly does that mean? Presently I wouldn't be able to tell whether any particular thing (like a table row, or a table column, or a role) is properly considered to be an "object" except by happening across a spot in the Postgres documentation in which it's referred to as such. What's the underlying definition that the docs are using?
CREATE ...
as "an object".