From b3125b9731c3874ced1df15a316a4ce5d68c4aff Mon Sep 17 00:00:00 2001
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: Wed, 16 Nov 2022 12:25:21 +0100
Subject: [PATCH v25 5/9] lfirst -> lfirst_node

---
 contrib/sepgsql/dml.c               | 2 +-
 src/backend/executor/execMain.c     | 4 ++--
 src/backend/parser/parse_relation.c | 5 ++---
 src/backend/rewrite/rewriteDefine.c | 2 +-
 src/backend/rewrite/rewriteManip.c  | 2 +-
 5 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/contrib/sepgsql/dml.c b/contrib/sepgsql/dml.c
index c4e071b0ea..3509358fbe 100644
--- a/contrib/sepgsql/dml.c
+++ b/contrib/sepgsql/dml.c
@@ -285,7 +285,7 @@ sepgsql_dml_privileges(List *rangeTbls, List *rtepermlist,
 
 	foreach(lr, rtepermlist)
 	{
-		RTEPermissionInfo *perminfo = lfirst(lr);
+		RTEPermissionInfo *perminfo = lfirst_node(RTEPermissionInfo, lr);
 		uint32		required = 0;
 		List	   *tableIds;
 		ListCell   *li;
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index c43d2215b3..926820f19b 100644
--- a/src/backend/executor/execMain.c
+++ b/src/backend/executor/execMain.c
@@ -578,7 +578,7 @@ ExecCheckPermissions(List *rangeTable, List *rtepermlist,
 
 	foreach(l, rtepermlist)
 	{
-		RTEPermissionInfo *perminfo = (RTEPermissionInfo *) lfirst(l);
+		RTEPermissionInfo *perminfo = lfirst_node(RTEPermissionInfo, l);
 
 		Assert(OidIsValid(perminfo->relid));
 		result = ExecCheckOneRelPerms(perminfo);
@@ -765,7 +765,7 @@ ExecCheckXactReadOnly(PlannedStmt *plannedstmt)
 	 */
 	foreach(l, plannedstmt->rtepermlist)
 	{
-		RTEPermissionInfo *perminfo = (RTEPermissionInfo *) lfirst(l);
+		RTEPermissionInfo *perminfo = lfirst_node(RTEPermissionInfo, l);
 
 		if ((perminfo->requiredPerms & (~ACL_SELECT)) == 0)
 			continue;
diff --git a/src/backend/parser/parse_relation.c b/src/backend/parser/parse_relation.c
index 4dc8d7ecf5..5fd01965a4 100644
--- a/src/backend/parser/parse_relation.c
+++ b/src/backend/parser/parse_relation.c
@@ -3753,9 +3753,8 @@ GetRTEPermissionInfo(List *rtepermlist, RangeTblEntry *rte)
 	if (rte->perminfoindex > list_length(rtepermlist))
 		elog(ERROR, "invalid perminfoindex %u in RTE with relid %u",
 			 rte->perminfoindex, rte->relid);
-	perminfo = (RTEPermissionInfo *) list_nth(rtepermlist,
-											  rte->perminfoindex - 1);
-	Assert(perminfo != NULL);
+	perminfo = list_nth_node(RTEPermissionInfo, rtepermlist,
+							 rte->perminfoindex - 1);
 	if (perminfo->relid != rte->relid)
 		elog(ERROR, "permission info at index %u (with relid=%u) does not match requested RTE (with relid=%u)",
 			 rte->perminfoindex, perminfo->relid, rte->relid);
diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c
index 5f50c87b01..3b2649f7a0 100644
--- a/src/backend/rewrite/rewriteDefine.c
+++ b/src/backend/rewrite/rewriteDefine.c
@@ -834,7 +834,7 @@ setRuleCheckAsUser_Query(Query *qry, Oid userid)
 	/* Set in all RTEPermissionInfos for this query. */
 	foreach(l, qry->rtepermlist)
 	{
-		RTEPermissionInfo *perminfo = (RTEPermissionInfo *) lfirst(l);
+		RTEPermissionInfo *perminfo = lfirst_node(RTEPermissionInfo, l);
 
 		perminfo->checkAsUser = userid;
 	}
diff --git a/src/backend/rewrite/rewriteManip.c b/src/backend/rewrite/rewriteManip.c
index 3552a8db59..9208e8760d 100644
--- a/src/backend/rewrite/rewriteManip.c
+++ b/src/backend/rewrite/rewriteManip.c
@@ -1550,7 +1550,7 @@ ConcatRTEPermissionInfoLists(List **dest_rtepermlist, List *src_rtepermlist,
 
 	foreach(l, src_rtable)
 	{
-		RangeTblEntry  *rte = (RangeTblEntry *) lfirst(l);
+		RangeTblEntry  *rte = lfirst_node(RangeTblEntry, l);
 
 		if (rte->perminfoindex > 0)
 			rte->perminfoindex += offset;
-- 
2.30.2

