From 061339b832bab44da183f74379fa0ae2f0ff55ca Mon Sep 17 00:00:00 2001
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: Tue, 15 Nov 2022 19:22:45 +0100
Subject: [PATCH v25 4/9] change ConcatRTEPermissionInfoLists API

---
 src/backend/optimizer/plan/subselect.c    |  5 +++--
 src/backend/optimizer/prep/prepjointree.c | 10 ++++++----
 src/backend/rewrite/rewriteHandler.c      |  7 ++++---
 3 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/src/backend/optimizer/plan/subselect.c b/src/backend/optimizer/plan/subselect.c
index a61082d27c..cbeb0191fb 100644
--- a/src/backend/optimizer/plan/subselect.c
+++ b/src/backend/optimizer/plan/subselect.c
@@ -1500,8 +1500,9 @@ convert_EXISTS_sublink_to_join(PlannerInfo *root, SubLink *sublink,
 	 * Add subquery's RTEPermissionInfos into the upper query.  This also
 	 * updates the subquery's RTEs' perminfoindex.
 	 */
-	ConcatRTEPermissionInfoLists(&parse->rtepermlist, subselect->rtepermlist,
-								 subselect->rtable);
+	parse->rtepermlist = ConcatRTEPermissionInfoLists(parse->rtepermlist,
+													  subselect->rtepermlist,
+													  subselect->rtable);
 
 	/* Now we can attach the modified subquery rtable to the parent */
 	parse->rtable = list_concat(parse->rtable, subselect->rtable);
diff --git a/src/backend/optimizer/prep/prepjointree.c b/src/backend/optimizer/prep/prepjointree.c
index b2ab2c14a4..8d7b243b21 100644
--- a/src/backend/optimizer/prep/prepjointree.c
+++ b/src/backend/optimizer/prep/prepjointree.c
@@ -1201,8 +1201,9 @@ pull_up_simple_subquery(PlannerInfo *root, Node *jtnode, RangeTblEntry *rte,
 	 * Add subquery's RTEPermissionInfos into the upper query.  This also
 	 * updates the subquery's RTEs' perminfoindex.
 	 */
-	ConcatRTEPermissionInfoLists(&parse->rtepermlist, subquery->rtepermlist,
-								 subquery->rtable);
+	parse->rtepermlist = ConcatRTEPermissionInfoLists(parse->rtepermlist,
+													  subquery->rtepermlist,
+													  subquery->rtable);
 
 	/*
 	 * Now append the adjusted rtable entries to upper query. (We hold off
@@ -1348,8 +1349,9 @@ pull_up_simple_union_all(PlannerInfo *root, Node *jtnode, RangeTblEntry *rte)
 	 * Add subquery's RTEPermissionInfos into the upper query.  This also
 	 * updates the subquery's RTEs' perminfoindex.
 	 */
-	ConcatRTEPermissionInfoLists(&root->parse->rtepermlist,
-								 subquery->rtepermlist, rtable);
+	root->parse->rtepermlist = ConcatRTEPermissionInfoLists(root->parse->rtepermlist,
+															subquery->rtepermlist,
+															rtable);
 	/*
 	 * Append child RTEs to parent rtable.
 	 */
diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c
index fda0eacf79..656a27ea22 100644
--- a/src/backend/rewrite/rewriteHandler.c
+++ b/src/backend/rewrite/rewriteHandler.c
@@ -420,10 +420,11 @@ rewriteRuleAction(Query *parsetree,
 	 * for both.  Copy rtable before calling ConcatRTEPermissionInfoLists(),
 	 * because perminfoindex of those RTEs will be updated there.
 	 */
-	sub_action->rtepermlist = copyObject(sub_action->rtepermlist);
 	query_rtable = copyObject(parsetree->rtable);
-	ConcatRTEPermissionInfoLists(&sub_action->rtepermlist,
-								 parsetree->rtepermlist, query_rtable);
+	sub_action->rtepermlist =
+		ConcatRTEPermissionInfoLists(copyObject(sub_action->rtepermlist),
+									 parsetree->rtepermlist,
+									 query_rtable);
 	sub_action->rtable = list_concat(query_rtable, sub_action->rtable);
 
 	/*
-- 
2.30.2

