]> granicus.if.org Git - postgresql/commitdiff
Add a note pointing out that is_pseudo_constant_clause() doesn't check
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 17 Jan 2007 17:25:52 +0000 (17:25 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 17 Jan 2007 17:25:52 +0000 (17:25 +0000)
for aggregates.  This is OK for current uses but could burn somebody
someday...

src/backend/optimizer/util/clauses.c

index 4858f985cffe2eb0f1f061a866aba3d7a996c37a..52dd8c22ca7457002808cbcd2324f8cbc5d7532e 100644 (file)
@@ -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)