From d73e9df087b87c4b959b4020084e543a54f7895b Mon Sep 17 00:00:00 2001 From: Tom Lane 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 e6d51b047c..bc05908148 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.