From: Melanie Plageman Date: Fri, 4 Apr 2025 19:25:17 +0000 (-0400) Subject: Remove superfluous autoprewarm check X-Git-Tag: REL_18_BETA1~267 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=7f848cb788ee05b9a4896ad2e19b9ee724577439;p=postgresql.git Remove superfluous autoprewarm check autoprewarm_database_main() prewarms blocks from the same database. It is passed an array of sorted BlockInfoRecords and a start and stop index into the array. The range represented should include only blocks belonging to global objects or blocks from a single database. Remove an unnecessary check that the current block is from the same database and add an assert to ensure this invariant remains. Doing so removes a special case that makes future refactoring to accommodate read streamifying autoprewarm easier. Noticed off-list by Andres Freund --- diff --git a/contrib/pg_prewarm/autoprewarm.c b/contrib/pg_prewarm/autoprewarm.c index 760b1548eff..5f6dca57cdd 100644 --- a/contrib/pg_prewarm/autoprewarm.c +++ b/contrib/pg_prewarm/autoprewarm.c @@ -463,12 +463,10 @@ autoprewarm_database_main(Datum main_arg) CHECK_FOR_INTERRUPTS(); /* - * Quit if we've reached records for another database. If previous - * blocks are of some global objects, then continue pre-warming. + * All blocks between prewarm_start_idx and prewarm_stop_idx should + * belong either to global objects or the same database. */ - if (old_blk != NULL && old_blk->database != blk->database && - old_blk->database != 0) - break; + Assert(blk->database == apw_state->database || blk->database == 0); /* * As soon as we encounter a block of a new relation, close the old