diff options
Diffstat (limited to 'src/include/optimizer/clauses.h')
-rw-r--r-- | src/include/optimizer/clauses.h | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/include/optimizer/clauses.h b/src/include/optimizer/clauses.h index 368c69f68b2..b2ec17ef405 100644 --- a/src/include/optimizer/clauses.h +++ b/src/include/optimizer/clauses.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/optimizer/clauses.h,v 1.77 2004/12/31 22:03:36 pgsql Exp $ + * $PostgreSQL: pgsql/src/include/optimizer/clauses.h,v 1.78 2005/01/28 19:34:28 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -17,11 +17,17 @@ #include "nodes/relation.h" - #define is_opclause(clause) ((clause) != NULL && IsA(clause, OpExpr)) #define is_funcclause(clause) ((clause) != NULL && IsA(clause, FuncExpr)) #define is_subplan(clause) ((clause) != NULL && IsA(clause, SubPlan)) +typedef struct +{ + int numAggs; /* total number of aggregate calls */ + int numDistinctAggs; /* number that use DISTINCT */ + Size transitionSpace; /* for pass-by-ref transition data */ +} AggClauseCounts; + extern Expr *make_opclause(Oid opno, Oid opresulttype, bool opretset, Expr *leftop, Expr *rightop); @@ -42,8 +48,7 @@ extern Expr *make_ands_explicit(List *andclauses); extern List *make_ands_implicit(Expr *clause); extern bool contain_agg_clause(Node *clause); -extern bool contain_distinct_agg_clause(Node *clause); -extern int count_agg_clause(Node *clause); +extern void count_agg_clauses(Node *clause, AggClauseCounts *counts); extern bool expression_returns_set(Node *clause); |