|
|
|
@ -11,7 +11,7 @@ |
|
|
|
|
* SQL aggregates. (Do not expect POSTQUEL semantics.) -- ay 2/95 |
|
|
|
|
* |
|
|
|
|
* IDENTIFICATION |
|
|
|
|
* $Header: /cvsroot/pgsql/src/backend/executor/nodeAgg.c,v 1.58 1999/10/30 01:18:16 tgl Exp $ |
|
|
|
|
* $Header: /cvsroot/pgsql/src/backend/executor/nodeAgg.c,v 1.59 1999/10/30 02:35:14 tgl Exp $ |
|
|
|
|
* |
|
|
|
|
*------------------------------------------------------------------------- |
|
|
|
|
*/ |
|
|
|
@ -434,6 +434,9 @@ ExecAgg(Agg *node) |
|
|
|
|
|
|
|
|
|
tupType = aggstate->csstate.css_ScanTupleSlot->ttc_tupleDescriptor; |
|
|
|
|
tupValue = projInfo->pi_tupValue; |
|
|
|
|
/* watch out for null input tuples, though... */ |
|
|
|
|
if (tupType && tupValue) |
|
|
|
|
{ |
|
|
|
|
null_array = (char *) palloc(sizeof(char)*tupType->natts); |
|
|
|
|
for (attnum = 0; attnum < tupType->natts; attnum++) |
|
|
|
|
null_array[attnum] = 'n'; |
|
|
|
@ -441,6 +444,7 @@ ExecAgg(Agg *node) |
|
|
|
|
pfree(null_array); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Store the representative input tuple in the tuple table slot |
|
|
|
|