diff options
Diffstat (limited to 'src/backend/executor/nodeAgg.c')
-rw-r--r-- | src/backend/executor/nodeAgg.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c index 4f1a5902f0a..c6e5b269cde 100644 --- a/src/backend/executor/nodeAgg.c +++ b/src/backend/executor/nodeAgg.c @@ -368,7 +368,12 @@ ExecAgg(Agg *node) char *args[2]; AggFuncInfo *aggfns = &aggFuncInfo[i]; - if (aggfns->finalfn && nTuplesAgged > 0) { + if (noInitValue[i]) { + /* + * No values found for this agg; return current state. + * This seems to fix behavior for avg() aggregate. -tgl 12/96 + */ + } else if (aggfns->finalfn && nTuplesAgged > 0) { if (aggfns->finalfn_nargs > 1) { args[0] = (char*)value1[i]; args[1] = (char*)value2[i]; |