From: Tom Lane Date: Sun, 20 Oct 2002 00:31:53 +0000 (+0000) Subject: Disallow aggregate functions in rule WHERE clauses. Per gripe from X-Git-Tag: REL7_3~237 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6d6b5828500e348580faf6bdda69fe62fc0faa28;p=thirdparty%2Fpostgresql.git Disallow aggregate functions in rule WHERE clauses. Per gripe from Fritz Lehmann-Grube back in January. --- 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;