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: Tom Lane <tgl@sss.pgh.pa.us>, Amit Kapila <amit.kapila16@gmail.com>, Peter Smith <smithpb2250@gmail.com>, Peter Eisentraut <peter.eisentraut@enterprisedb.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>, Masahiko Sawada <sawada.mshk@gmail.com>
Date: 2021-09-06T01:26:18Z
Lists: pgsql-hackers
From Thur, Sep 2, 2021 2:33 PM vignesh C <vignesh21@gmail.com> wrote:
> On Wed, Sep 1, 2021 at 6:58 AM houzj.fnst@fujitsu.com <houzj.fnst@fujitsu.com> wrote:
> >
> > Here are some other comments for v23-000x patches.
> > 3)
> >
> > +                                                         .description =
> "PUBLICATION SCHEMA",
> > +                                                         .section =
> SECTION_POST_DATA,
> > +                                                         .createStmt
> > + = query->data));
> >
> > Is it better to use something like 'PUBLICATION TABLES IN SCHEMA' to
> > describe the schema level table publication ? Because there could be
> > some other type publication such as 'ALL SEQUENCES IN SCHEMA' in the
> > future, it will be better to make it clear that we only publish table in schema in
> this patch.
> 
> Modified

Thanks for updating the patch.

I think we might also need to mention the publication object 'table' in the
following types:

1)
+	/* OCLASS_PUBLICATION_SCHEMA */
+	{
+		"publication schema", OBJECT_PUBLICATION_SCHEMA
+	},

2)
+	PUBLICATIONOBJ_SCHEMA,		/* Schema type */
+	PUBLICATIONOBJ_UNKNOWN		/* Unknown type */
+} PublicationObjSpecType;

3)
+	DO_PUBLICATION_SCHEMA,

I think it might be to change the typename like XX_REL_IN_SCHEMA,
and adjust the comments.

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.