summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMelanie Plageman2025-04-04 19:25:17 +0000
committerMelanie Plageman2025-04-04 19:28:39 +0000
commit7f848cb788ee05b9a4896ad2e19b9ee724577439 (patch)
tree91b9ddc23f3103ef001cea1b5e9e5338fa6b719e
parentb3f1a13f22f9e28842ee5fbd08b7ec805e27aaac (diff)
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
-rw-r--r--contrib/pg_prewarm/autoprewarm.c8
1 files changed, 3 insertions, 5 deletions
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