aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/nodeAgg.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/executor/nodeAgg.c')
-rw-r--r--src/backend/executor/nodeAgg.c7
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];