Re: Added schema level support for publication.

vignesh C <vignesh21@gmail.com>

From: vignesh C <vignesh21@gmail.com>
To: Greg Nancarrow <gregn4422@gmail.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, "tanghy.fnst@fujitsu.com" <tanghy.fnst@fujitsu.com>, "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.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>, 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-11T06:16:58Z
Lists: pgsql-hackers

Attachments

On Thu, Oct 7, 2021 at 12:51 PM Greg Nancarrow <gregn4422@gmail.com> wrote:
>
> On Wed, Oct 6, 2021 at 4:42 PM vignesh C <vignesh21@gmail.com> wrote:
> >
> > Attached v37 patch has the changes for the same.
> >
>
> A small issue I noticed is that using "\dS" in PSQL shows UNLOGGED
> tables as belonging to a publication, if the table belongs to a schema
> that was added to the publication using ALL TABLES IN SCHEMA (yet
> doesn't show as part of an ALL TABLES publication).
> Since publication of UNLOGGED tables is silently skipped in the case
> of ALL TABLES and ALL TABLES IN SCHEMA, it shouldn't show as belonging
> to the publication, right?
>
> test=# \dRp+ pub2
>                             Publication pub2
>  Owner | All tables | Inserts | Updates | Deletes | Truncates | Via root
> -------+------------+---------+---------+---------+-----------+----------
>  gregn | t          | t       | t       | t       | t         | f
> (1 row)
>
> test=# \dRp+ pub
>                              Publication pub
>  Owner | All tables | Inserts | Updates | Deletes | Truncates | Via root
> -------+------------+---------+---------+---------+-----------+----------
>  gregn | f          | t       | t       | t       | t         | t
> Tables from schemas:
>     "sch1"
>
> test=# \dS sch1.test2
>             Unlogged table "sch1.test2"
>  Column |  Type   | Collation | Nullable | Default
> --------+---------+-----------+----------+---------
>  i      | integer |           |          |
> Publications:
>     "pub"

Thanks for reporting the issue. The attached patch has the fix for the issue.

Regards,
Vignesh

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.