From 6d6b5828500e348580faf6bdda69fe62fc0faa28 Mon Sep 17 00:00:00 2001 From: Tom Lane <tgl@sss.pgh.pa.us> Date: Sun, 20 Oct 2002 00:31:53 +0000 Subject: [PATCH] Disallow aggregate functions in rule WHERE clauses. Per gripe from Fritz Lehmann-Grube back in January. --- src/backend/parser/analyze.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c index 2dcaadc177f..c8ed3ed8cb2 100644 --- a/src/backend/parser/analyze.c +++ b/src/backend/parser/analyze.c @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.251 2002/10/14 22:14:35 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.252 2002/10/20 00:31:53 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1454,6 +1454,10 @@ transformRuleStmt(ParseState *pstate, RuleStmt *stmt, if (length(pstate->p_rtable) != 2) /* naughty, naughty... */ elog(ERROR, "Rule WHERE condition may not contain references to other relations"); + /* aggregates not allowed (but subselects are okay) */ + if (contain_agg_clause(stmt->whereClause)) + elog(ERROR, "Rule WHERE condition may not contain aggregate functions"); + /* save info about sublinks in where clause */ qry->hasSubLinks = pstate->p_hasSubLinks; -- GitLab