Re: Added schema level support for publication.

Amit Kapila <amit.kapila16@gmail.com>

From: Amit Kapila <amit.kapila16@gmail.com>
To: vignesh C <vignesh21@gmail.com>
Cc: Masahiko Sawada <sawada.mshk@gmail.com>, "tanghy.fnst@fujitsu.com" <tanghy.fnst@fujitsu.com>, Greg Nancarrow <gregn4422@gmail.com>, Ajin Cherian <itsajin@gmail.com>, "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>, Rahila Syed <rahilasyed90@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Date: 2021-08-10T11:24:12Z
Lists: pgsql-hackers
On Mon, Aug 9, 2021 at 11:31 AM vignesh C <vignesh21@gmail.com> wrote:
>
> On Fri, Aug 6, 2021 at 2:00 PM Masahiko Sawada <sawada.mshk@gmail.com> wrote:
> >
> > ---
> > Suppose that a parent table and its child table are defined in
> > different schemas, there is a publication for the schema where only
> > the parent table is defined, and the subscriber subscribes to the
> > publication, should changes for its child table be replicated to the
> > subscriber?
>
> I felt that in this case only the table data that is present in the
> publish schema should be sent to the subscriber. Since the child table
> schema is not part of the publication, I felt this child table data
> should not be replicated.
>

But, as point out by Sawada-San, the same is true for FOR TABLE case.
I think we should be consistent here and should publish the data for
the child table if the parent table's schema is published.

> I have kept the above same behavior in the case of publication created
> using PUBLISH_VIA_PARTITION_ROOT option i.e the child table data will
> not be sent.  But now I'm feeling we should send the child table data
> since it is being sent through the parent table which is part of the
> publication. Also this way users can use this option if the user has
> the table having partitions designed across the schemas.
>

This sounds fine to me.

-- 
With Regards,
Amit Kapila.



Commits

  1. Include schema/table publications even with exclude options in dump.

  2. Rename some enums to use TABLE instead of REL.

  3. Add tap tests for the schema publications.

  4. Allow publishing the tables of schema.

  5. In pg_dump, use simplehash.h to look up dumpable objects by OID.