On Tues, Sep 28, 2021 10:46 PM vignesh C <vignes...@gmail.com> wrote:
> Attached v34 patch has the changes for the same.

Thanks for updating the patch.
Here are a few comments.

1)
+ *             ALL TABLES IN SCHEMA schema [[, ...]

[[ -> [

2)
+       /* ALTER PUBLICATION ... ADD/DROP TABLE/ALL TABLES IN SCHEMA parameters 
*/

The two '/' seems a bit unclear and it doesn't mention the SET case.
Maybe we can write like:

/* parameters used for ALTER PUBLICATION ... ADD/DROP/SET publication objects */

3)
+       /*
+        * Check if setting the relation to a different schema will result in 
the
+        * publication having schema and same schema's table in the publication.
+        */
+       if (stmt->objectType == OBJECT_TABLE)
+       {
+               ListCell   *lc;
+               List       *schemaPubids = GetSchemaPublications(nspOid);
+               foreach(lc, schemaPubids)
+               {
+                       Oid             pubid = lfirst_oid(lc);
+                       if (list_member_oid(GetPublicationRelations(pubid, 
PUBLICATION_PART_ALL),
+                                                               relid))
+                               ereport(ERROR,

How about we check this case like the following ?

List       *schemaPubids = GetSchemaPublications(nspOid);
List       *relPubids = GetRelationPublications(RelationGetRelid(rel));
if (list_intersection(schemaPubids, relPubids))
        ereport(ERROR, ...

Best regards,
Hou zj

Reply via email to