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