@@ -2518,8 +2518,7 @@ CopyMultiInsertBufferFlush(CopyMultiInsertInfo *miinfo,
25182518 * The buffer must be flushed before cleanup.
25192519 */
25202520static inline void
2521- CopyMultiInsertBufferCleanup (CopyMultiInsertInfo * miinfo ,
2522- CopyMultiInsertBuffer * buffer )
2521+ CopyMultiInsertBufferCleanup (CopyMultiInsertBuffer * buffer )
25232522{
25242523 int i ;
25252524
@@ -2535,9 +2534,6 @@ CopyMultiInsertBufferCleanup(CopyMultiInsertInfo *miinfo,
25352534 for (i = 0 ; i < MAX_BUFFERED_TUPLES && buffer -> slots [i ] != NULL ; i ++ )
25362535 ExecDropSingleTupleTableSlot (buffer -> slots [i ]);
25372536
2538- table_finish_bulk_insert (buffer -> resultRelInfo -> ri_RelationDesc ,
2539- miinfo -> ti_options );
2540-
25412537 pfree (buffer );
25422538}
25432539
@@ -2589,7 +2585,7 @@ CopyMultiInsertInfoFlush(CopyMultiInsertInfo *miinfo, ResultRelInfo *curr_rri)
25892585 buffer = (CopyMultiInsertBuffer * ) linitial (miinfo -> multiInsertBuffers );
25902586 }
25912587
2592- CopyMultiInsertBufferCleanup (miinfo , buffer );
2588+ CopyMultiInsertBufferCleanup (buffer );
25932589 miinfo -> multiInsertBuffers = list_delete_first (miinfo -> multiInsertBuffers );
25942590 }
25952591}
@@ -2603,7 +2599,7 @@ CopyMultiInsertInfoCleanup(CopyMultiInsertInfo *miinfo)
26032599 ListCell * lc ;
26042600
26052601 foreach (lc , miinfo -> multiInsertBuffers )
2606- CopyMultiInsertBufferCleanup (miinfo , lfirst (lc ));
2602+ CopyMultiInsertBufferCleanup (lfirst (lc ));
26072603
26082604 list_free (miinfo -> multiInsertBuffers );
26092605}
@@ -3325,6 +3321,9 @@ CopyFrom(CopyState cstate)
33253321 {
33263322 if (!CopyMultiInsertInfoIsEmpty (& multiInsertInfo ))
33273323 CopyMultiInsertInfoFlush (& multiInsertInfo , NULL );
3324+
3325+ /* Tear down the multi-insert buffer data */
3326+ CopyMultiInsertInfoCleanup (& multiInsertInfo );
33283327 }
33293328
33303329 /* Done, clean up */
@@ -3367,11 +3366,7 @@ CopyFrom(CopyState cstate)
33673366
33683367 FreeExecutorState (estate );
33693368
3370- if (insertMethod != CIM_SINGLE )
3371- {
3372- /* Tear down the multi-insert buffer data */
3373- CopyMultiInsertInfoCleanup (& multiInsertInfo );
3374- }
3369+ table_finish_bulk_insert (cstate -> rel , ti_options );
33753370
33763371 return processed ;
33773372}
0 commit comments