char *scratch = NULL;
Page page;
bool needwal;
+ Size saveFreeSpace;
needwal = !(options & HEAP_INSERT_SKIP_WAL) && RelationNeedsWAL(relation);
+ saveFreeSpace = RelationGetTargetPageFreeSpace(relation,
+ HEAP_DEFAULT_FILLFACTOR);
/* Toast and set header data in all the tuples */
heaptuples = palloc(ntuples * sizeof(HeapTuple));
{
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);