diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index 7bb4a87..05f14e4 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -2888,11 +2888,15 @@ l2: { all_visible_cleared = true; PageClearAllVisible(BufferGetPage(buffer)); + visibilitymap_clear(relation, BufferGetBlockNumber(buffer), + vmbuffer); } if (newbuf != buffer && PageIsAllVisible(BufferGetPage(newbuf))) { all_visible_cleared_new = true; PageClearAllVisible(BufferGetPage(newbuf)); + visibilitymap_clear(relation, BufferGetBlockNumber(newbuf), + vmbuffer_new); } if (newbuf != buffer) @@ -2929,14 +2933,6 @@ l2: */ CacheInvalidateHeapTuple(relation, &oldtup); - /* Clear bits in visibility map */ - if (all_visible_cleared) - visibilitymap_clear(relation, BufferGetBlockNumber(buffer), - vmbuffer); - if (all_visible_cleared_new) - visibilitymap_clear(relation, BufferGetBlockNumber(newbuf), - vmbuffer_new); - /* Now we can release the buffer(s) */ if (newbuf != buffer) ReleaseBuffer(newbuf);