Re: Added schema level support for publication.

Amit Kapila <amit.kapila16@gmail.com>

From: Amit Kapila <amit.kapila16@gmail.com>
To: Greg Nancarrow <gregn4422@gmail.com>
Cc: vignesh C <vignesh21@gmail.com>, Masahiko Sawada <sawada.mshk@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, Peter Smith <smithpb2250@gmail.com>, Peter Eisentraut <peter.eisentraut@enterprisedb.com>, "tanghy.fnst@fujitsu.com" <tanghy.fnst@fujitsu.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-09-03T10:36:20Z
Lists: pgsql-hackers
On Wed, Sep 1, 2021 at 12:05 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
>
> On Wed, Sep 1, 2021 at 8:52 AM Greg Nancarrow <gregn4422@gmail.com> wrote:
> >
>
> > I'd expect a lot of users to naturally think that "ALTER PUBLICATION
> > pub1 DROP ALL TABLES IN SCHEMA sc1;" would drop from the publication
> > all tables that are in schema "sc1", which is not what it is currently
> > doing.
> > Since the syntax was changed to specifically refer to FOR ALL TABLES
> > IN SCHEMA rather than FOR SCHEMA, then now it's clear we're referring
> > to tables only, when specifying "... FOR ALL TABLES in sc1, TABLE
> > sc1.test", so IMHO it's reasonable to remove duplicates here, rather
> > than treating these as somehow separate ways of referencing the same
> > table.
> >
>
> I see your point and if we decide to go this path then it is better to
> give an error than silently removing duplicates.
>

Today, I have thought about this point again and it seems better to
give an error in this case and let the user take the action rather
than silently removing such tables to avoid any confusion.

-- 
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.