diff options
Diffstat (limited to 'src/backend/executor/nodeAgg.c')
-rw-r--r-- | src/backend/executor/nodeAgg.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c index 20d6d8e9cbb..fd0bcd54917 100644 --- a/src/backend/executor/nodeAgg.c +++ b/src/backend/executor/nodeAgg.c @@ -1741,7 +1741,7 @@ agg_retrieve_direct(AggState *aggstate) * Make a copy of the first input tuple; we will use this * for comparisons (in group mode) and for projection. */ - aggstate->grp_firstTuple = ExecCopySlotTuple(outerslot); + aggstate->grp_firstTuple = ExecCopySlotHeapTuple(outerslot); } else { @@ -1800,9 +1800,8 @@ agg_retrieve_direct(AggState *aggstate) * reserved for it. The tuple will be deleted when it is * cleared from the slot. */ - ExecStoreHeapTuple(aggstate->grp_firstTuple, - firstSlot, - true); + ExecForceStoreHeapTuple(aggstate->grp_firstTuple, + firstSlot); aggstate->grp_firstTuple = NULL; /* don't keep two pointers */ /* set up for first advance_aggregates call */ @@ -1858,7 +1857,7 @@ agg_retrieve_direct(AggState *aggstate) if (!ExecQual(aggstate->phase->eqfunctions[node->numCols - 1], tmpcontext)) { - aggstate->grp_firstTuple = ExecCopySlotTuple(outerslot); + aggstate->grp_firstTuple = ExecCopySlotHeapTuple(outerslot); break; } } |