aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/executor/execExprInterp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/backend/executor/execExprInterp.c b/src/backend/executor/execExprInterp.c
index 827c65cc852..19351fe34bf 100644
--- a/src/backend/executor/execExprInterp.c
+++ b/src/backend/executor/execExprInterp.c
@@ -4254,7 +4254,8 @@ ExecEvalPreOrderedDistinctSingle(AggState *aggstate, AggStatePerTrans pertrans)
pertrans->aggCollation,
pertrans->lastdatum, value))))
{
- if (pertrans->haslast && !pertrans->inputtypeByVal)
+ if (pertrans->haslast && !pertrans->inputtypeByVal &&
+ !pertrans->lastisnull)
pfree(DatumGetPointer(pertrans->lastdatum));
pertrans->haslast = true;