|
8 | 8 | * Portions Copyright (c) 1994, Regents of the University of California
|
9 | 9 | *
|
10 | 10 | * IDENTIFICATION
|
11 |
| - * $PostgreSQL: pgsql/src/backend/access/gist/gistvacuum.c,v 1.14 2006/02/11 23:31:33 tgl Exp $ |
| 11 | + * $PostgreSQL: pgsql/src/backend/access/gist/gistvacuum.c,v 1.15 2006/02/14 16:39:32 tgl Exp $ |
12 | 12 | *
|
13 | 13 | *-------------------------------------------------------------------------
|
14 | 14 | */
|
@@ -68,6 +68,8 @@ gistVacuumUpdate(GistVacuum *gv, BlockNumber blkno, bool needunion)
|
68 | 68 | int ncompleted = 0,
|
69 | 69 | lencompleted = 16;
|
70 | 70 |
|
| 71 | + vacuum_delay_point(); |
| 72 | + |
71 | 73 | buffer = ReadBuffer(gv->index, blkno);
|
72 | 74 |
|
73 | 75 | /*
|
@@ -406,9 +408,12 @@ gistvacuumcleanup(PG_FUNCTION_ARGS)
|
406 | 408 | freePages = (BlockNumber *) palloc(sizeof(BlockNumber) * maxFreePages);
|
407 | 409 | for (blkno = GIST_ROOT_BLKNO + 1; blkno < npages; blkno++)
|
408 | 410 | {
|
409 |
| - Buffer buffer = ReadBuffer(rel, blkno); |
| 411 | + Buffer buffer; |
410 | 412 | Page page;
|
411 | 413 |
|
| 414 | + vacuum_delay_point(); |
| 415 | + |
| 416 | + buffer = ReadBuffer(rel, blkno); |
412 | 417 | LockBuffer(buffer, GIST_SHARE);
|
413 | 418 | page = (Page) BufferGetPage(buffer);
|
414 | 419 |
|
@@ -561,7 +566,7 @@ gistbulkdelete(PG_FUNCTION_ARGS)
|
561 | 566 | page = (Page) BufferGetPage(buffer);
|
562 | 567 | if (stack->blkno == GIST_ROOT_BLKNO && !GistPageIsLeaf(page))
|
563 | 568 | {
|
564 |
| - /* the only root can become non-leaf during relock */ |
| 569 | + /* only the root can become non-leaf during relock */ |
565 | 570 | LockBuffer(buffer, GIST_UNLOCK);
|
566 | 571 | ReleaseBuffer(buffer);
|
567 | 572 | /* one more check */
|
@@ -649,7 +654,6 @@ gistbulkdelete(PG_FUNCTION_ARGS)
|
649 | 654 | LockBuffer(buffer, GIST_UNLOCK);
|
650 | 655 | ReleaseBuffer(buffer);
|
651 | 656 |
|
652 |
| - |
653 | 657 | ptr = stack->next;
|
654 | 658 | pfree(stack);
|
655 | 659 | stack = ptr;
|
|
0 commit comments