Skip to content

Commit f5db56f

Browse files
committed
Revert fix missing call to table_finish_bulk_insert during COPY
This reverts commits 4de6024 and b2d6980. Further thought is required to make this work properly.
1 parent b2d6980 commit f5db56f

File tree

1 file changed

+7
-12
lines changed

1 file changed

+7
-12
lines changed

src/backend/commands/copy.c

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2518,8 +2518,7 @@ CopyMultiInsertBufferFlush(CopyMultiInsertInfo *miinfo,
25182518
* The buffer must be flushed before cleanup.
25192519
*/
25202520
static 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

Comments
 (0)