From 5b3c45f8e7c32d3bf3e53b9874d0c12a4fdc9ac2 Mon Sep 17 00:00:00 2001 From: Peter Smith Date: Fri, 16 Jul 2021 12:23:39 +1000 Subject: [PATCH v19] PS - tmp - OpenTableList IsA logic Since all elements of the list must be same kind only really need to check the initial element kind, not every element. --- src/backend/commands/publicationcmds.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/backend/commands/publicationcmds.c b/src/backend/commands/publicationcmds.c index 659f448..c323490 100644 --- a/src/backend/commands/publicationcmds.c +++ b/src/backend/commands/publicationcmds.c @@ -504,6 +504,14 @@ OpenTableList(List *tables) List *rels = NIL; ListCell *lc; PublicationRelationInfo *pri; + bool whereclause; + + /* + * ALTER PUBLICATION ... ADD TABLE provides a PublicationTable List + * (Relation, Where clause). ALTER PUBLICATION ... DROP TABLE provides + * a Relation List. Check the List element to be used. + */ + whereclause = IsA(linitial(tables), PublicationTable); /* * Open, share-lock, and check all the explicitly-specified relations @@ -515,17 +523,9 @@ OpenTableList(List *tables) bool recurse; Relation rel; Oid myrelid; - bool whereclause; - /* - * ALTER PUBLICATION ... ADD TABLE provides a PublicationTable List - * (Relation, Where clause). ALTER PUBLICATION ... DROP TABLE provides - * a Relation List. Check the List element to be used. - */ - if (IsA(lfirst(lc), PublicationTable)) - whereclause = true; - else - whereclause = false; + /* Assert all list elements must be of same kind. */ + Assert(whereclause == IsA(lfirst(lc), PublicationTable)); if (whereclause) { -- 1.8.3.1