From 5b3c45f8e7c32d3bf3e53b9874d0c12a4fdc9ac2 Mon Sep 17 00:00:00 2001
From: Peter Smith <peter.b.smith@fujitsu.com>
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

