Are Cataloge and relation cache in PostgreSQL per connection or global to the server? I am trying to figure out if Postgres' relation and catalog cache are per connection or per server? I did find that plan caches are per connection. It would make sense for the cache to exist for as long as the server is running, but I can't find any documentation on it.
Those caches are per connection.  They are not held in shared memory.