RE: Functions 'is_publishable_class' and 'is_publishable_relation' should stay together.

Zhijie Hou (Fujitsu) <houzj.fnst@fujitsu.com>

From: "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: Peter Smith <smithpb2250@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: 2022-07-30T13:29:20Z
Lists: pgsql-hackers
On Saturday, July 30, 2022 7:25 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
> 
> On Fri, Jul 29, 2022 at 3:55 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
> >
> > On Fri, Jul 29, 2022 at 3:29 PM Alvaro Herrera <alvherre@alvh.no-ip.org>
> wrote:
> > >
> > > Well, I checked the commit and the functions I was talking about
> > > look OK now.  However, looking again, pg_relation_is_publishable is
> > > in the wrong place (should be right below is_publishable_relaton),
> > > and I wonder why aren't get_publication_oid and get_publication_name in
> lsyscache.c.
> > >
> >
> > Right, both these suggestions make sense to me. Similarly, I think
> > functions get_subscription_name and get_subscription_oid should also
> > be moved to lsyscache.c.
> >
> 
> Attached, find a patch to address the above comments.
> 
> Note that (a) I didn't change the comment atop pg_relation_is_publishable to
> refer to the actual function name instead of 'above' as it seems it can be an SQL
> variant for both the above functions. (b) didn't need to include pg_publication.h
> in lsyscache.c even after moving code to that file as the code is compiled even
> without that.

The patch LGTM. I also ran the headerscheck and didn't find any problem.

Best regards,
Hou Zhijie

Commits

  1. Move common catalog cache access routines to lsyscache.c

  2. Move related functions next to each other in pg_publication.c.

  3. Allow publishing the tables of schema.

  4. Allow GRANT on pg_log_backend_memory_contexts().