diff options
Diffstat (limited to 'src/backend/executor/nodeModifyTable.c')
-rw-r--r-- | src/backend/executor/nodeModifyTable.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c index 55c430c9ec5..0227252b88e 100644 --- a/src/backend/executor/nodeModifyTable.c +++ b/src/backend/executor/nodeModifyTable.c @@ -755,7 +755,6 @@ ExecInsert(ModifyTableState *mtstate, resultRelInfo->ri_PlanSlots, resultRelInfo->ri_NumSlots, estate, canSetTag); - resultRelInfo->ri_NumSlots = 0; flushed = true; } @@ -1142,6 +1141,14 @@ ExecBatchInsert(ModifyTableState *mtstate, if (canSetTag && numInserted > 0) estate->es_processed += numInserted; + + /* Clean up all the slots, ready for the next batch */ + for (i = 0; i < numSlots; i++) + { + ExecClearTuple(slots[i]); + ExecClearTuple(planSlots[i]); + } + resultRelInfo->ri_NumSlots = 0; } /* ---------------------------------------------------------------- @@ -1523,7 +1530,6 @@ ExecPendingInserts(EState *estate) resultRelInfo->ri_PlanSlots, resultRelInfo->ri_NumSlots, estate, mtstate->canSetTag); - resultRelInfo->ri_NumSlots = 0; } list_free(estate->es_insert_pending_result_relations); |