RE: Added schema level support for publication.

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

From: "houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>
To: vignesh C <vignesh21@gmail.com>
Cc: Amit Kapila <amit.kapila16@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>, "tanghy.fnst@fujitsu.com" <tanghy.fnst@fujitsu.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-14T01:01:46Z
Lists: pgsql-hackers

Attachments

From Sun, Sept 12, 2021 11:13 PM vignesh C <vignesh21@gmail.com> wrote:
> On Fri, Sep 10, 2021 at 11:21 AM Hou Zhijie <houzj.fnst@fujitsu.com> wrote:
> > Attach the without-flag version and add comments about the pubobj_name.
> 
> Thanks for the changes, the suggested changes make the parsing code simpler.
> I have merged the changes to the main patch. Attached v27 patch has the
> changes for the same.

Hi,

I have some suggestions for the documents and comments of the new syntax.

IMO, the document could be clearer in the following format.
------
Synopsis
CREATE PUBLICATION name
    [ FOR ALL TABLES 
      | FOR publication object [, ... ] ]
    [ WITH ( publication_parameter [= value] [, ... ] ) ]

where publication object is one of:

    TABLE [ ONLY ] table_name [ * ] [, ... ]
    ALL TABLES IN SCHEMA { schema_name | CURRENT_SCHEMA } [, ... ]
------

Attach a diff(based on v27-*) which change the doc and comments like the
following.

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.