From: Tom Lane Date: Wed, 17 Jan 2007 17:25:52 +0000 (+0000) Subject: Add a note pointing out that is_pseudo_constant_clause() doesn't check X-Git-Tag: REL8_3_BETA1~1502 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c81bfc244bf703296ed5571a65e15de522388a59;p=postgresql Add a note pointing out that is_pseudo_constant_clause() doesn't check for aggregates. This is OK for current uses but could burn somebody someday... --- diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c index 4858f985cf..52dd8c22ca 100644 --- a/src/backend/optimizer/util/clauses.c +++ b/src/backend/optimizer/util/clauses.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/optimizer/util/clauses.c,v 1.229 2007/01/10 18:06:04 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/optimizer/util/clauses.c,v 1.230 2007/01/17 17:25:52 tgl Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -1073,6 +1073,12 @@ is_strict_saop(ScalarArrayOpExpr *expr, bool falseOK) * may vary from one statement to the next. However, the expr's value * will be constant over any one scan of the current query, so it can be * used as, eg, an indexscan key. + * + * CAUTION: this function omits to test for one very important class of + * not-constant expressions, namely aggregates (Aggrefs). In current usage + * this is only applied to WHERE clauses and so a check for Aggrefs would be + * a waste of cycles; but be sure to also check contain_agg_clause() if you + * want to know about pseudo-constness in other contexts. */ bool is_pseudo_constant_clause(Node *clause)