diff options
| author | Bruce Momjian <bruce@momjian.us> | 1998-01-15 19:00:16 +0000 |
|---|---|---|
| committer | Bruce Momjian <bruce@momjian.us> | 1998-01-15 19:00:16 +0000 |
| commit | 763ff8aef848d71da079049890786edffc3302d6 (patch) | |
| tree | a1aed2a633c409071dd6d724b6db2bc7bf4fcb75 /src/backend/nodes/outfuncs.c | |
| parent | f22d8e6668e36a5855c35b04cc21a4d1593298d9 (diff) | |
| download | postgresql-763ff8aef848d71da079049890786edffc3302d6.tar.gz | |
Remove Query->qry_aggs and qry_numaggs and replace with Query->hasAggs.
Pass List* of Aggregs into executor, and create needed array there.
No longer need to double-processs Aggregs with second copy in Query.
Fix crash when doing:
select sum(x+1) from test where 1 > 0;
Diffstat (limited to 'src/backend/nodes/outfuncs.c')
| -rw-r--r-- | src/backend/nodes/outfuncs.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index 8f0daf3040..ba4b27f822 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.20 1998/01/07 15:32:25 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.21 1998/01/15 18:59:26 momjian Exp $ * * NOTES * Every (plan) node in POSTGRES has an associated "out" routine which @@ -163,7 +163,6 @@ static void _outQuery(StringInfo str, Query *node) { char buf[500]; - int i; appendStringInfo(str, "QUERY"); @@ -229,12 +228,8 @@ _outQuery(StringInfo str, Query *node) _outNode(str, node->groupClause); appendStringInfo(str, " :havingQual "); _outNode(str, node->havingQual); - appendStringInfo(str, " :qry_numAgg "); - sprintf(buf, " %d ", node->qry_numAgg); - appendStringInfo(str, buf); - appendStringInfo(str, " :qry_aggs "); - for (i=0; i < node->qry_numAgg; i++) - _outNode(str, node->qry_aggs[i]); + appendStringInfo(str, " :hasAggs "); + appendStringInfo(str, (node->hasAggs ? "true" : "false")); appendStringInfo(str, " :unionClause "); _outNode(str, node->unionClause); } @@ -505,14 +500,12 @@ _outSort(StringInfo str, Sort *node) static void _outAgg(StringInfo str, Agg *node) { - char buf[500]; appendStringInfo(str, "AGG"); _outPlanInfo(str, (Plan *) node); - /* the actual Agg fields */ - sprintf(buf, " :numagg %d ", node->numAgg); - appendStringInfo(str, buf); + appendStringInfo(str, " :aggs "); + _outNode(str, node->aggs); } static void |
