mirror of
https://github.com/postgres/postgres.git
synced 2025-11-22 12:22:45 +03:00
Add is_analyze parameter to vacuum_delay_point().
This function is used in both vacuum and analyze code paths, and a follow-up commit will require distinguishing between the two. This commit forces callers to specify whether they are in a vacuum or analyze path, but it does not use that information for anything yet. Author: Nathan Bossart <nathandbossart@gmail.com> Co-authored-by: Bertrand Drouvot <bertranddrouvot.pg@gmail.com> Discussion: https://postgr.es/m/ZmaXmWDL829fzAVX%40ip-10-97-1-34.eu-west-3.compute.internal
This commit is contained in:
@@ -892,7 +892,7 @@ ginInsertCleanup(GinState *ginstate, bool full_clean,
|
||||
*/
|
||||
processPendingPage(&accum, &datums, page, FirstOffsetNumber);
|
||||
|
||||
vacuum_delay_point();
|
||||
vacuum_delay_point(false);
|
||||
|
||||
/*
|
||||
* Is it time to flush memory to disk? Flush if we are at the end of
|
||||
@@ -929,7 +929,7 @@ ginInsertCleanup(GinState *ginstate, bool full_clean,
|
||||
{
|
||||
ginEntryInsert(ginstate, attnum, key, category,
|
||||
list, nlist, NULL);
|
||||
vacuum_delay_point();
|
||||
vacuum_delay_point(false);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1002,7 +1002,7 @@ ginInsertCleanup(GinState *ginstate, bool full_clean,
|
||||
/*
|
||||
* Read next page in pending list
|
||||
*/
|
||||
vacuum_delay_point();
|
||||
vacuum_delay_point(false);
|
||||
buffer = ReadBuffer(index, blkno);
|
||||
LockBuffer(buffer, GIN_SHARE);
|
||||
page = BufferGetPage(buffer);
|
||||
|
||||
@@ -662,12 +662,12 @@ ginbulkdelete(IndexVacuumInfo *info, IndexBulkDeleteResult *stats,
|
||||
UnlockReleaseBuffer(buffer);
|
||||
}
|
||||
|
||||
vacuum_delay_point();
|
||||
vacuum_delay_point(false);
|
||||
|
||||
for (i = 0; i < nRoot; i++)
|
||||
{
|
||||
ginVacuumPostingTree(&gvs, rootOfPostingTree[i]);
|
||||
vacuum_delay_point();
|
||||
vacuum_delay_point(false);
|
||||
}
|
||||
|
||||
if (blkno == InvalidBlockNumber) /* rightmost page */
|
||||
@@ -748,7 +748,7 @@ ginvacuumcleanup(IndexVacuumInfo *info, IndexBulkDeleteResult *stats)
|
||||
Buffer buffer;
|
||||
Page page;
|
||||
|
||||
vacuum_delay_point();
|
||||
vacuum_delay_point(false);
|
||||
|
||||
buffer = ReadBufferExtended(index, MAIN_FORKNUM, blkno,
|
||||
RBM_NORMAL, info->strategy);
|
||||
|
||||
@@ -283,7 +283,7 @@ restart:
|
||||
recurse_to = InvalidBlockNumber;
|
||||
|
||||
/* call vacuum_delay_point while not holding any buffer lock */
|
||||
vacuum_delay_point();
|
||||
vacuum_delay_point(false);
|
||||
|
||||
buffer = ReadBufferExtended(rel, MAIN_FORKNUM, blkno, RBM_NORMAL,
|
||||
info->strategy);
|
||||
|
||||
@@ -716,7 +716,7 @@ hashbucketcleanup(Relation rel, Bucket cur_bucket, Buffer bucket_buf,
|
||||
bool retain_pin = false;
|
||||
bool clear_dead_marking = false;
|
||||
|
||||
vacuum_delay_point();
|
||||
vacuum_delay_point(false);
|
||||
|
||||
page = BufferGetPage(buf);
|
||||
opaque = HashPageGetOpaque(page);
|
||||
|
||||
@@ -1214,7 +1214,7 @@ lazy_scan_heap(LVRelState *vacrel)
|
||||
update_vacuum_error_info(vacrel, NULL, VACUUM_ERRCB_PHASE_SCAN_HEAP,
|
||||
blkno, InvalidOffsetNumber);
|
||||
|
||||
vacuum_delay_point();
|
||||
vacuum_delay_point(false);
|
||||
|
||||
/*
|
||||
* Regularly check if wraparound failsafe should trigger.
|
||||
@@ -2646,7 +2646,7 @@ lazy_vacuum_heap_rel(LVRelState *vacrel)
|
||||
OffsetNumber offsets[MaxOffsetNumber];
|
||||
int num_offsets;
|
||||
|
||||
vacuum_delay_point();
|
||||
vacuum_delay_point(false);
|
||||
|
||||
blkno = iter_result->blkno;
|
||||
vacrel->blkno = blkno;
|
||||
|
||||
@@ -1137,7 +1137,7 @@ backtrack:
|
||||
backtrack_to = P_NONE;
|
||||
|
||||
/* call vacuum_delay_point while not holding any buffer lock */
|
||||
vacuum_delay_point();
|
||||
vacuum_delay_point(false);
|
||||
|
||||
/*
|
||||
* We can't use _bt_getbuf() here because it always applies
|
||||
|
||||
@@ -625,7 +625,7 @@ spgvacuumpage(spgBulkDeleteState *bds, BlockNumber blkno)
|
||||
Page page;
|
||||
|
||||
/* call vacuum_delay_point while not holding any buffer lock */
|
||||
vacuum_delay_point();
|
||||
vacuum_delay_point(false);
|
||||
|
||||
buffer = ReadBufferExtended(index, MAIN_FORKNUM, blkno,
|
||||
RBM_NORMAL, bds->info->strategy);
|
||||
@@ -704,7 +704,7 @@ spgprocesspending(spgBulkDeleteState *bds)
|
||||
continue; /* ignore already-done items */
|
||||
|
||||
/* call vacuum_delay_point while not holding any buffer lock */
|
||||
vacuum_delay_point();
|
||||
vacuum_delay_point(false);
|
||||
|
||||
/* examine the referenced page */
|
||||
blkno = ItemPointerGetBlockNumber(&pitem->tid);
|
||||
|
||||
Reference in New Issue
Block a user