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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy