From 34a1de41f654f92b61b2d78725b0b86c41c24bf3 Mon Sep 17 00:00:00 2001
From: root <root@localhost.localdomain>
Date: Tue, 1 Dec 2020 05:42:45 -0500
Subject: [PATCH] Avoid using lcons and list_delete_first

---
 src/backend/optimizer/prep/prepunion.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/backend/optimizer/prep/prepunion.c b/src/backend/optimizer/prep/prepunion.c
index 745f443..28bb96a 100644
--- a/src/backend/optimizer/prep/prepunion.c
+++ b/src/backend/optimizer/prep/prepunion.c
@@ -886,9 +886,9 @@ plan_union_children(PlannerInfo *root,
 
 	while (pending_rels != NIL)
 	{
-		Node	   *setOp = linitial(pending_rels);
+		Node	   *setOp = llast(pending_rels);
 
-		pending_rels = list_delete_first(pending_rels);
+		pending_rels = list_delete_last(pending_rels);
 
 		if (IsA(setOp, SetOperationStmt))
 		{
@@ -899,8 +899,8 @@ plan_union_children(PlannerInfo *root,
 				equal(op->colTypes, top_union->colTypes))
 			{
 				/* Same UNION, so fold children into parent */
-				pending_rels = lcons(op->rarg, pending_rels);
-				pending_rels = lcons(op->larg, pending_rels);
+				pending_rels = lappend(pending_rels, op->rarg);
+				pending_rels = lappend(pending_rels, op->larg);
 				continue;
 			}
 		}
-- 
1.8.3.1

