Skip to content

Commit e5b0b0c

Browse files
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
1 parent d0d649e commit e5b0b0c

File tree

15 files changed

+26
-26
lines changed

15 files changed

+26
-26
lines changed

contrib/bloom/blvacuum.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ blbulkdelete(IndexVacuumInfo *info, IndexBulkDeleteResult *stats,
5757
*itupPtr,
5858
*itupEnd;
5959

60-
vacuum_delay_point();
60+
vacuum_delay_point(false);
6161

6262
buffer = ReadBufferExtended(index, MAIN_FORKNUM, blkno,
6363
RBM_NORMAL, info->strategy);
@@ -187,7 +187,7 @@ blvacuumcleanup(IndexVacuumInfo *info, IndexBulkDeleteResult *stats)
187187
Buffer buffer;
188188
Page page;
189189

190-
vacuum_delay_point();
190+
vacuum_delay_point(false);
191191

192192
buffer = ReadBufferExtended(index, MAIN_FORKNUM, blkno,
193193
RBM_NORMAL, info->strategy);

contrib/file_fdw/file_fdw.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1237,7 +1237,7 @@ file_acquire_sample_rows(Relation onerel, int elevel,
12371237
for (;;)
12381238
{
12391239
/* Check for user-requested abort or sleep */
1240-
vacuum_delay_point();
1240+
vacuum_delay_point(true);
12411241

12421242
/* Fetch next row */
12431243
MemoryContextReset(tupcontext);

src/backend/access/gin/ginfast.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -892,7 +892,7 @@ ginInsertCleanup(GinState *ginstate, bool full_clean,
892892
*/
893893
processPendingPage(&accum, &datums, page, FirstOffsetNumber);
894894

895-
vacuum_delay_point();
895+
vacuum_delay_point(false);
896896

897897
/*
898898
* 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,
929929
{
930930
ginEntryInsert(ginstate, attnum, key, category,
931931
list, nlist, NULL);
932-
vacuum_delay_point();
932+
vacuum_delay_point(false);
933933
}
934934

935935
/*
@@ -1002,7 +1002,7 @@ ginInsertCleanup(GinState *ginstate, bool full_clean,
10021002
/*
10031003
* Read next page in pending list
10041004
*/
1005-
vacuum_delay_point();
1005+
vacuum_delay_point(false);
10061006
buffer = ReadBuffer(index, blkno);
10071007
LockBuffer(buffer, GIN_SHARE);
10081008
page = BufferGetPage(buffer);

src/backend/access/gin/ginvacuum.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -662,12 +662,12 @@ ginbulkdelete(IndexVacuumInfo *info, IndexBulkDeleteResult *stats,
662662
UnlockReleaseBuffer(buffer);
663663
}
664664

665-
vacuum_delay_point();
665+
vacuum_delay_point(false);
666666

667667
for (i = 0; i < nRoot; i++)
668668
{
669669
ginVacuumPostingTree(&gvs, rootOfPostingTree[i]);
670-
vacuum_delay_point();
670+
vacuum_delay_point(false);
671671
}
672672

673673
if (blkno == InvalidBlockNumber) /* rightmost page */
@@ -748,7 +748,7 @@ ginvacuumcleanup(IndexVacuumInfo *info, IndexBulkDeleteResult *stats)
748748
Buffer buffer;
749749
Page page;
750750

751-
vacuum_delay_point();
751+
vacuum_delay_point(false);
752752

753753
buffer = ReadBufferExtended(index, MAIN_FORKNUM, blkno,
754754
RBM_NORMAL, info->strategy);

src/backend/access/gist/gistvacuum.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ gistvacuumpage(GistVacState *vstate, BlockNumber blkno, BlockNumber orig_blkno)
283283
recurse_to = InvalidBlockNumber;
284284

285285
/* call vacuum_delay_point while not holding any buffer lock */
286-
vacuum_delay_point();
286+
vacuum_delay_point(false);
287287

288288
buffer = ReadBufferExtended(rel, MAIN_FORKNUM, blkno, RBM_NORMAL,
289289
info->strategy);

src/backend/access/hash/hash.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -716,7 +716,7 @@ hashbucketcleanup(Relation rel, Bucket cur_bucket, Buffer bucket_buf,
716716
bool retain_pin = false;
717717
bool clear_dead_marking = false;
718718

719-
vacuum_delay_point();
719+
vacuum_delay_point(false);
720720

721721
page = BufferGetPage(buf);
722722
opaque = HashPageGetOpaque(page);

src/backend/access/heap/vacuumlazy.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1214,7 +1214,7 @@ lazy_scan_heap(LVRelState *vacrel)
12141214
update_vacuum_error_info(vacrel, NULL, VACUUM_ERRCB_PHASE_SCAN_HEAP,
12151215
blkno, InvalidOffsetNumber);
12161216

1217-
vacuum_delay_point();
1217+
vacuum_delay_point(false);
12181218

12191219
/*
12201220
* Regularly check if wraparound failsafe should trigger.
@@ -2646,7 +2646,7 @@ lazy_vacuum_heap_rel(LVRelState *vacrel)
26462646
OffsetNumber offsets[MaxOffsetNumber];
26472647
int num_offsets;
26482648

2649-
vacuum_delay_point();
2649+
vacuum_delay_point(false);
26502650

26512651
blkno = iter_result->blkno;
26522652
vacrel->blkno = blkno;

src/backend/access/nbtree/nbtree.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1137,7 +1137,7 @@ btvacuumpage(BTVacState *vstate, BlockNumber scanblkno)
11371137
backtrack_to = P_NONE;
11381138

11391139
/* call vacuum_delay_point while not holding any buffer lock */
1140-
vacuum_delay_point();
1140+
vacuum_delay_point(false);
11411141

11421142
/*
11431143
* We can't use _bt_getbuf() here because it always applies

src/backend/access/spgist/spgvacuum.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -625,7 +625,7 @@ spgvacuumpage(spgBulkDeleteState *bds, BlockNumber blkno)
625625
Page page;
626626

627627
/* call vacuum_delay_point while not holding any buffer lock */
628-
vacuum_delay_point();
628+
vacuum_delay_point(false);
629629

630630
buffer = ReadBufferExtended(index, MAIN_FORKNUM, blkno,
631631
RBM_NORMAL, bds->info->strategy);
@@ -704,7 +704,7 @@ spgprocesspending(spgBulkDeleteState *bds)
704704
continue; /* ignore already-done items */
705705

706706
/* call vacuum_delay_point while not holding any buffer lock */
707-
vacuum_delay_point();
707+
vacuum_delay_point(false);
708708

709709
/* examine the referenced page */
710710
blkno = ItemPointerGetBlockNumber(&pitem->tid);

src/backend/commands/analyze.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -915,7 +915,7 @@ compute_index_stats(Relation onerel, double totalrows,
915915
{
916916
HeapTuple heapTuple = rows[rowno];
917917

918-
vacuum_delay_point();
918+
vacuum_delay_point(true);
919919

920920
/*
921921
* Reset the per-tuple context each time, to reclaim any cruft
@@ -1238,7 +1238,7 @@ acquire_sample_rows(Relation onerel, int elevel,
12381238
/* Outer loop over blocks to sample */
12391239
while (table_scan_analyze_next_block(scan, stream))
12401240
{
1241-
vacuum_delay_point();
1241+
vacuum_delay_point(true);
12421242

12431243
while (table_scan_analyze_next_tuple(scan, OldestXmin, &liverows, &deadrows, slot))
12441244
{
@@ -1970,7 +1970,7 @@ compute_trivial_stats(VacAttrStatsP stats,
19701970
Datum value;
19711971
bool isnull;
19721972

1973-
vacuum_delay_point();
1973+
vacuum_delay_point(true);
19741974

19751975
value = fetchfunc(stats, i, &isnull);
19761976

@@ -2086,7 +2086,7 @@ compute_distinct_stats(VacAttrStatsP stats,
20862086
int firstcount1,
20872087
j;
20882088

2089-
vacuum_delay_point();
2089+
vacuum_delay_point(true);
20902090

20912091
value = fetchfunc(stats, i, &isnull);
20922092

@@ -2433,7 +2433,7 @@ compute_scalar_stats(VacAttrStatsP stats,
24332433
Datum value;
24342434
bool isnull;
24352435

2436-
vacuum_delay_point();
2436+
vacuum_delay_point(true);
24372437

24382438
value = fetchfunc(stats, i, &isnull);
24392439

src/backend/commands/vacuum.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2373,7 +2373,7 @@ vac_close_indexes(int nindexes, Relation *Irel, LOCKMODE lockmode)
23732373
* typically once per page processed.
23742374
*/
23752375
void
2376-
vacuum_delay_point(void)
2376+
vacuum_delay_point(bool is_analyze)
23772377
{
23782378
double msec = 0;
23792379

src/backend/tsearch/ts_typanalyze.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ compute_tsvector_stats(VacAttrStats *stats,
204204
char *lexemesptr;
205205
int j;
206206

207-
vacuum_delay_point();
207+
vacuum_delay_point(true);
208208

209209
value = fetchfunc(stats, vector_no, &isnull);
210210

src/backend/utils/adt/array_typanalyze.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ compute_array_stats(VacAttrStats *stats, AnalyzeAttrFetchFunc fetchfunc,
314314
int distinct_count;
315315
bool count_item_found;
316316

317-
vacuum_delay_point();
317+
vacuum_delay_point(true);
318318

319319
value = fetchfunc(stats, array_no, &isnull);
320320
if (isnull)

src/backend/utils/adt/rangetypes_typanalyze.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ compute_range_stats(VacAttrStats *stats, AnalyzeAttrFetchFunc fetchfunc,
167167
upper;
168168
float8 length;
169169

170-
vacuum_delay_point();
170+
vacuum_delay_point(true);
171171

172172
value = fetchfunc(stats, range_no, &isnull);
173173
if (isnull)

src/include/commands/vacuum.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ extern bool vacuum_get_cutoffs(Relation rel, const VacuumParams *params,
356356
struct VacuumCutoffs *cutoffs);
357357
extern bool vacuum_xid_failsafe_check(const struct VacuumCutoffs *cutoffs);
358358
extern void vac_update_datfrozenxid(void);
359-
extern void vacuum_delay_point(void);
359+
extern void vacuum_delay_point(bool is_analyze);
360360
extern bool vacuum_is_permitted_for_relation(Oid relid, Form_pg_class reltuple,
361361
bits32 options);
362362
extern Relation vacuum_open_relation(Oid relid, RangeVar *relation,

0 commit comments

Comments
 (0)