mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-30 19:00:29 +08:00
Add interrupt checks to contrib/pg_prewarm.
Currently the extension's pg_prewarm() function didn't check interrupts once it started "warming" data. Since individual calls can take a long while it's important for them to be interruptible. Backpatch to 9.4 where pg_prewarm was introduced.
This commit is contained in:
parent
28245b8424
commit
bd4ae0f396
@ -159,6 +159,7 @@ pg_prewarm(PG_FUNCTION_ARGS)
|
||||
*/
|
||||
for (block = first_block; block <= last_block; ++block)
|
||||
{
|
||||
CHECK_FOR_INTERRUPTS();
|
||||
PrefetchBuffer(rel, forkNumber, block);
|
||||
++blocks_done;
|
||||
}
|
||||
@ -177,6 +178,7 @@ pg_prewarm(PG_FUNCTION_ARGS)
|
||||
*/
|
||||
for (block = first_block; block <= last_block; ++block)
|
||||
{
|
||||
CHECK_FOR_INTERRUPTS();
|
||||
smgrread(rel->rd_smgr, forkNumber, block, blockbuffer);
|
||||
++blocks_done;
|
||||
}
|
||||
@ -190,6 +192,7 @@ pg_prewarm(PG_FUNCTION_ARGS)
|
||||
{
|
||||
Buffer buf;
|
||||
|
||||
CHECK_FOR_INTERRUPTS();
|
||||
buf = ReadBufferExtended(rel, forkNumber, block, RBM_NORMAL, NULL);
|
||||
ReleaseBuffer(buf);
|
||||
++blocks_done;
|
||||
|
Loading…
Reference in New Issue
Block a user