diff --git a/src/backend/access/gin/ginfast.c b/src/backend/access/gin/ginfast.c new file mode 100644 index c5732c3..8770eb9 *** a/src/backend/access/gin/ginfast.c --- b/src/backend/access/gin/ginfast.c *************** ginInsertCleanup(GinState *ginstate, *** 801,808 **** */ processPendingPage(&accum, &datums, page, FirstOffsetNumber); ! if (vac_delay) ! vacuum_delay_point(); /* * Is it time to flush memory to disk? Flush if we are at the end of --- 801,807 ---- */ processPendingPage(&accum, &datums, page, FirstOffsetNumber); ! vacuum_delay_point(); /* * Is it time to flush memory to disk? Flush if we are at the end of *************** ginInsertCleanup(GinState *ginstate, *** 842,849 **** { ginEntryInsert(ginstate, attnum, key, category, list, nlist, NULL); ! if (vac_delay) ! vacuum_delay_point(); } /* --- 841,847 ---- { ginEntryInsert(ginstate, attnum, key, category, list, nlist, NULL); ! vacuum_delay_point(); } /* *************** ginInsertCleanup(GinState *ginstate, *** 923,929 **** /* * Read next page in pending list */ ! CHECK_FOR_INTERRUPTS(); buffer = ReadBuffer(index, blkno); LockBuffer(buffer, GIN_SHARE); page = BufferGetPage(buffer); --- 921,927 ---- /* * Read next page in pending list */ ! vacuum_delay_point(); buffer = ReadBuffer(index, blkno); LockBuffer(buffer, GIN_SHARE); page = BufferGetPage(buffer);