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: Greg Nancarrow <gregn4422@gmail.com>, Masahiko Sawada <sawada.mshk@gmail.com>, "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>, "tanghy.fnst@fujitsu.com" <tanghy.fnst@fujitsu.com>, Peter Eisentraut <peter.eisentraut@enterprisedb.com>, Tom Lane <tgl@sss.pgh.pa.us>, Peter Smith <smithpb2250@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-10-29T04:35:01Z
Lists: pgsql-hackers
On Thu, Oct 28, 2021 at 9:55 AM vignesh C <vignesh21@gmail.com> wrote:
>
> Thanks for committing the patch, please find the remaining patches attached.
> Thanks Hou Zhijie and Greg Nancarrow for sharing a few comments
> offline, I have fixed those in the attached patch.
>

Pushed the first test case patch. About
v48-0002-Add-new-pg_publication_objects-view-to-display-T, I think it
doesn't display anything for "for all tables" publication. Instead of
selecting from pg_publication_rel, you can use the existing view
pg_publication_tables to solve that problem.

Having said that, I am not completely sure about the value of this new
view pg_publication_objects which displays all objects of
publications. I see that users might want to see all the objects that
the publication publishes and when we include other objects like
sequences it might be more helpful.

Sawada-San, others, what do you think? Is it really useful to have such a view?

One point to think is if we introduce such a view then how it should
behave for schema objects? Do we need to display only schemas or
additionally all the tables in the schema as well? If you follow the
above suggestion of mine then I think it will display both schemas
published and tables in that schema that will be considered for
publishing.

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