pgsql: Fix autoprewarm neglect of tablespaces

From: Melanie Plageman <melanieplageman(at)gmail(dot)com>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix autoprewarm neglect of tablespaces
Date: 2025-04-04 15:35:02
Message-ID: E1u0j4Q-002ecS-0s@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix autoprewarm neglect of tablespaces

While prewarming blocks from a dump file, autoprewarm_database_main()
mistakenly ignored tablespace when detecting the beginning of the next
relation to prewarm. Because RelFileNumbers are only unique within a
tablespace, autoprewarm could miss prewarming blocks from a
relation with the same RelFileNumber in a different tablespace.

Though this situation is likely rare in practice, it's best to make the
code correct. Do so by explicitly checking for the RelFileNumber when
detecting a new relation.

Reported-by: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
Discussion: https://postgr.es/m/97c36982-603b-494a-95f4-aaf2a12ac27e%40iki.fi

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/64e7fa43a948a82f97e305f020f924c02671a434

Modified Files
--------------
contrib/pg_prewarm/autoprewarm.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Melanie Plageman 2025-04-04 15:47:10 Re: pgsql: Convert 'x IN (VALUES ...)' to 'x = ANY ...' then appropriate
Previous Message Nathan Bossart 2025-04-04 14:42:23 pgsql: Add commit e1a8b1ad58 to .git-blame-ignore-revs.