From e152661200c1b3e6a834c918ba64681dde404440 Mon Sep 17 00:00:00 2001
From: "Marc G. Fournier" <scrappy@hub.org>
Date: Thu, 24 Oct 1996 06:32:01 +0000
Subject: [PATCH] Fixes:

It's bug in nodeAgg.c on lines 241, 242:

                null_array = malloc(nagg);
                for (i=0;i<nagg;i++)
                    null_array[i] = 'n';
                oneTuple = heap_formtuple(tupType, tupValue, null_array);

- your query has not only aggregates but also 'group by-ed' fields and so
null_array should contain tupType->natts elements (tupType->natts > nagg in
your case).

Patch follows and it's very simple.

VAdim
---
 src/backend/executor/nodeAgg.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c
index ee187367c74..94764bfa3ac 100644
--- a/src/backend/executor/nodeAgg.c
+++ b/src/backend/executor/nodeAgg.c
@@ -238,8 +238,8 @@ ExecAgg(Agg *node)
 		tupValue = 	projInfo->pi_tupValue;
 		
 		/* initially, set all the values to NULL */
-		null_array = malloc(nagg);
-		for (i=0;i<nagg;i++)
+		null_array = malloc(tupType->natts);
+		for (i=0;i<tupType->natts;i++)
 		    null_array[i] = 'n';
 		oneTuple = heap_formtuple(tupType, tupValue, null_array);
 		free(null_array);
-- 
GitLab