From d73e9df087b87c4b959b4020084e543a54f7895b Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Thu, 8 Mar 2001 01:49:01 +0000
Subject: [PATCH] A subplan invoked within an aggregate function's argument
 should be allowed to receive ungrouped variables of the current query level.
 Curious that no one reported this bug before...

---
 src/backend/optimizer/util/clauses.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c
index e6d51b047cc..bc05908148b 100644
--- a/src/backend/optimizer/util/clauses.c
+++ b/src/backend/optimizer/util/clauses.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/util/clauses.c,v 1.81 2001/02/12 18:46:40 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/util/clauses.c,v 1.82 2001/03/08 01:49:01 tgl Exp $
  *
  * HISTORY
  *	  AUTHOR			DATE			MAJOR EVENT
@@ -542,6 +542,14 @@ check_subplans_for_ungrouped_vars_walker(Node *node,
 	if (node == NULL)
 		return false;
 
+	/*
+	 * If we find an aggregate function, do not recurse into its
+	 * arguments.  Subplans invoked within aggregate calls are allowed
+	 * to receive ungrouped variables.
+	 */
+	if (IsA(node, Aggref))
+		return false;
+
 	/*
 	 * We can ignore Vars other than in subplan args lists, since the
 	 * parser already checked 'em.
-- 
GitLab