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)
|
for (block = first_block; block <= last_block; ++block)
|
||||||
{
|
{
|
||||||
|
CHECK_FOR_INTERRUPTS();
|
||||||
PrefetchBuffer(rel, forkNumber, block);
|
PrefetchBuffer(rel, forkNumber, block);
|
||||||
++blocks_done;
|
++blocks_done;
|
||||||
}
|
}
|
||||||
@ -177,6 +178,7 @@ pg_prewarm(PG_FUNCTION_ARGS)
|
|||||||
*/
|
*/
|
||||||
for (block = first_block; block <= last_block; ++block)
|
for (block = first_block; block <= last_block; ++block)
|
||||||
{
|
{
|
||||||
|
CHECK_FOR_INTERRUPTS();
|
||||||
smgrread(rel->rd_smgr, forkNumber, block, blockbuffer);
|
smgrread(rel->rd_smgr, forkNumber, block, blockbuffer);
|
||||||
++blocks_done;
|
++blocks_done;
|
||||||
}
|
}
|
||||||
@ -190,6 +192,7 @@ pg_prewarm(PG_FUNCTION_ARGS)
|
|||||||
{
|
{
|
||||||
Buffer buf;
|
Buffer buf;
|
||||||
|
|
||||||
|
CHECK_FOR_INTERRUPTS();
|
||||||
buf = ReadBufferExtended(rel, forkNumber, block, RBM_NORMAL, NULL);
|
buf = ReadBufferExtended(rel, forkNumber, block, RBM_NORMAL, NULL);
|
||||||
ReleaseBuffer(buf);
|
ReleaseBuffer(buf);
|
||||||
++blocks_done;
|
++blocks_done;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user