RE: Added schema level support for publication.

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

From: "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>
To: Amit Kapila <amit.kapila16@gmail.com>, "tanghy.fnst@fujitsu.com" <tanghy.fnst@fujitsu.com>
Cc: vignesh C <vignesh21@gmail.com>, Masahiko Sawada <sawada.mshk@gmail.com>, Peter Eisentraut <peter.eisentraut@enterprisedb.com>, Tom Lane <tgl@sss.pgh.pa.us>, Peter Smith <smithpb2250@gmail.com>, Greg Nancarrow <gregn4422@gmail.com>, Ajin Cherian <itsajin@gmail.com>, Rahila Syed <rahilasyed90@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Date: 2021-09-14T05:08:40Z
Lists: pgsql-hackers
From Tue, Sept 14, 2021 11:53 AM Amit Kapila <amit.kapila16@gmail.com> wrote:
> On Mon, Sep 13, 2021 at 7:06 PM tanghy.fnst@fujitsu.com <tanghy.fnst@fujitsu.com> wrote:
> >
> > 6.
> > I think if I use 'ALTER PUBLICATION ... SET', both the list of tables
> > and the list of all tables in schemas should be reset. The publication
> > should only contain the tables and all tables in schemas which user
> > specified. If user only specified all tables in schema, and didn't
> > specify tables, the tables which used to be part of the publication
> > should be dropped, too. But currently, if I didn't specify tables, the list of
> tables wouldn't be set to empty. Thoughts?
> >
> 
> I think we can go either way here but it seems like we should drop the tables in
> the case you mentioned. The idea is that the SET variant in ALTER PUBLICATION
> should replace the set of tables and schemas for the publication which seems
> to be in line with the current behavior where we replace the set of tables.
> 
> Anyone else wants to weigh in on this?

I agree that the one SET variant should replaces both the list-of-tables and the list-of-schemas.

Best regards,
Hou zj

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.