diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index 72ed632..88bb5e3 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -2096,6 +2096,8 @@ heap_multi_insert(Relation relation, HeapTuple *tuples, int ntuples, char *scratch = NULL; Page page; bool needwal; + Size saveFreeSpace = RelationGetTargetPageFreeSpace(relation, + HEAP_DEFAULT_FILLFACTOR); needwal = !(options & HEAP_INSERT_SKIP_WAL) && RelationNeedsWAL(relation); @@ -2157,7 +2159,7 @@ heap_multi_insert(Relation relation, HeapTuple *tuples, int ntuples, { HeapTuple heaptup = heaptuples[ndone + nthispage]; - if (PageGetHeapFreeSpace(page) < MAXALIGN(heaptup->t_len)) + if (PageGetHeapFreeSpace(page) - saveFreeSpace < MAXALIGN(heaptup->t_len)) break; RelationPutHeapTuple(relation, buffer, heaptup);