I just noticed that this (commit 5a2832465fd8) added a separate catalog to store schemas which are part of a publication, side-by-side with the catalog to store relations which are part of a publication. This seems a strange way to represent publication membership: in order to find out what objects are members of a publication, you have to scan both pg_publication_rel and pg_publication_namespace. Wouldn't it make more sense to have a single catalog for both things, maybe something like
pg_publication_object oid OID -- unique key (for pg_depend) prpubid OID -- of pg_publication prrelid OID -- OID of relation, or 0 if not a relation prnspid OID -- OID of namespace, or 0 if not a namespace which seems more natural to me, and pollutes the system less with weird syscaches, etc. What do you think? -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/