From b7a5362fccb82820c6e1b05d4e3d44d64acc2844 Mon Sep 17 00:00:00 2001
From: ChangAo Chen <cca5507@qq.com>
Date: Fri, 7 Nov 2025 21:55:38 +0800
Subject: [PATCH v1] Minor refactor of the code in ExecScanExtended()

---
 src/include/executor/execScan.h | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/src/include/executor/execScan.h b/src/include/executor/execScan.h
index 2003cbc7ed5..53a896439ca 100644
--- a/src/include/executor/execScan.h
+++ b/src/include/executor/execScan.h
@@ -168,21 +168,18 @@ ExecScanExtended(ScanState *node,
 
 	/* interrupt checks are in ExecScanFetch */
 
+	/*
+	 * Reset per-tuple memory context to free any expression evaluation
+	 * storage allocated in the previous tuple cycle.
+	 */
+	ResetExprContext(econtext);
+
 	/*
 	 * If we have neither a qual to check nor a projection to do, just skip
 	 * all the overhead and return the raw scan tuple.
 	 */
 	if (!qual && !projInfo)
-	{
-		ResetExprContext(econtext);
 		return ExecScanFetch(node, epqstate, accessMtd, recheckMtd);
-	}
-
-	/*
-	 * Reset per-tuple memory context to free any expression evaluation
-	 * storage allocated in the previous tuple cycle.
-	 */
-	ResetExprContext(econtext);
 
 	/*
 	 * get a tuple from the access method.  Loop until we obtain a tuple that
-- 
2.51.2

