nocfbot-0015-Narrow-variable-scope-DEFINE-loop.txt

text/plain

Filename: nocfbot-0015-Narrow-variable-scope-DEFINE-loop.txt
Type: text/plain
Part: 14
Message: Re: Row pattern recognition
From e54dd341aef218be3dcce088ee46c4d35f24d482 Mon Sep 17 00:00:00 2001
From: Henson Choi <assam258@gmail.com>
Date: Tue, 7 Apr 2026 09:48:55 +0900
Subject: [PATCH 15/40] Narrow variable scope in ExecInitWindowAgg DEFINE
 clause loop

---
 src/backend/executor/nodeWindowAgg.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/src/backend/executor/nodeWindowAgg.c b/src/backend/executor/nodeWindowAgg.c
index dca2de570e8..0202c508323 100644
--- a/src/backend/executor/nodeWindowAgg.c
+++ b/src/backend/executor/nodeWindowAgg.c
@@ -2628,9 +2628,6 @@ ExecInitWindowAgg(WindowAgg *node, EState *estate, int eflags)
 	TupleDesc	scanDesc;
 	ListCell   *l;
 
-	TargetEntry *te;
-	Expr	   *expr;
-
 	/* check for unsupported flags */
 	Assert(!(eflags & (EXEC_FLAG_BACKWARD | EXEC_FLAG_MARK)));
 
@@ -2951,13 +2948,11 @@ ExecInitWindowAgg(WindowAgg *node, EState *estate, int eflags)
 		 */
 		foreach(l, node->defineClause)
 		{
-			char	   *name;
+			TargetEntry *te = lfirst(l);
+			char	   *name = te->resname;
+			Expr	   *expr = te->expr;
 			ExprState  *exps;
 
-			te = lfirst(l);
-			name = te->resname;
-			expr = te->expr;
-
 			winstate->defineVariableList =
 				lappend(winstate->defineVariableList,
 						makeString(pstrdup(name)));
-- 
2.50.1 (Apple Git-155)