mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +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:
		@@ -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;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user