mirror of
https://github.com/postgres/postgres.git
synced 2025-04-25 21:42:33 +03: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
c4d360d182
commit
57b2e1049e
@ -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…
x
Reference in New Issue
Block a user