summaryrefslogtreecommitdiff
path: root/src/backend/nodes/outfuncs.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1998-01-15 19:00:16 +0000
committerBruce Momjian <bruce@momjian.us>1998-01-15 19:00:16 +0000
commit763ff8aef848d71da079049890786edffc3302d6 (patch)
treea1aed2a633c409071dd6d724b6db2bc7bf4fcb75 /src/backend/nodes/outfuncs.c
parentf22d8e6668e36a5855c35b04cc21a4d1593298d9 (diff)
downloadpostgresql-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.c17
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