diff options
Diffstat (limited to 'src/backend/commands/vacuum.c')
-rw-r--r-- | src/backend/commands/vacuum.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c index 9b4dc959232..894a7e32855 100644 --- a/src/backend/commands/vacuum.c +++ b/src/backend/commands/vacuum.c @@ -13,7 +13,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.212 2001/11/05 17:46:25 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.213 2002/01/06 00:37:44 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -992,6 +992,8 @@ scan_heap(VRelStats *vacrelstats, Relation onerel, bool do_reap, do_frag; + CHECK_FOR_INTERRUPTS(); + buf = ReadBuffer(onerel, blkno); page = BufferGetPage(buf); @@ -1415,6 +1417,8 @@ repair_frag(VRelStats *vacrelstats, Relation onerel, blkno > last_move_dest_block; blkno--) { + CHECK_FOR_INTERRUPTS(); + /* * Forget fraged_pages pages at or after this one; they're no * longer useful as move targets, since we only want to move down. @@ -2127,6 +2131,7 @@ repair_frag(VRelStats *vacrelstats, Relation onerel, i < vacuumed_pages; i++, curpage++) { + CHECK_FOR_INTERRUPTS(); Assert((*curpage)->blkno < blkno); if ((*curpage)->offsets_used == 0) { @@ -2157,6 +2162,7 @@ repair_frag(VRelStats *vacrelstats, Relation onerel, i < num_fraged_pages; i++, curpage++) { + CHECK_FOR_INTERRUPTS(); Assert((*curpage)->blkno < blkno); if ((*curpage)->blkno > last_move_dest_block) break; /* no need to scan any further */ @@ -2342,6 +2348,7 @@ vacuum_heap(VRelStats *vacrelstats, Relation onerel, VacPageList vacuum_pages) for (i = 0, vacpage = vacuum_pages->pagedesc; i < nblocks; i++, vacpage++) { + CHECK_FOR_INTERRUPTS(); if ((*vacpage)->offsets_free > 0) { buf = ReadBuffer(onerel, (*vacpage)->blkno); |