Skip to content

Commit 3b6cbce

Browse files
committed
Add CHECK_FOR_INTERRUPTS() in various strategic spots, per comments
from Hiroshi.
1 parent 734e421 commit 3b6cbce

File tree

8 files changed

+39
-10
lines changed

8 files changed

+39
-10
lines changed

src/backend/access/nbtree/nbtree.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* Portions Copyright (c) 1994, Regents of the University of California
1313
*
1414
* IDENTIFICATION
15-
* $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.86 2001/11/23 23:41:54 tgl Exp $
15+
* $Header: /cvsroot/pgsql/src/backend/access/nbtree/nbtree.c,v 1.87 2002/01/06 00:37:43 tgl Exp $
1616
*
1717
*-------------------------------------------------------------------------
1818
*/
@@ -596,6 +596,8 @@ btbulkdelete(PG_FUNCTION_ARGS)
596596
IndexTuple itup;
597597
ItemPointer htup;
598598

599+
CHECK_FOR_INTERRUPTS();
600+
599601
/* current is the next index tuple */
600602
blkno = ItemPointerGetBlockNumber(current);
601603
offnum = ItemPointerGetOffsetNumber(current);

src/backend/catalog/index.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.170 2001/11/20 02:46:13 tgl Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.171 2002/01/06 00:37:44 tgl Exp $
1212
*
1313
*
1414
* INTERFACE ROUTINES
@@ -1679,6 +1679,8 @@ IndexBuildHeapScan(Relation heapRelation,
16791679
{
16801680
bool tupleIsAlive;
16811681

1682+
CHECK_FOR_INTERRUPTS();
1683+
16821684
if (snapshot == SnapshotAny)
16831685
{
16841686
/* do our own time qual check */

src/backend/commands/analyze.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/commands/analyze.c,v 1.24 2001/10/25 20:37:30 tgl Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/commands/analyze.c,v 1.25 2002/01/06 00:37:44 tgl Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -516,6 +516,7 @@ acquire_sample_rows(Relation onerel, HeapTuple *rows, int targrows,
516516
rows[numrows++] = heap_copytuple(tuple);
517517
if (numrows >= targrows)
518518
break;
519+
CHECK_FOR_INTERRUPTS();
519520
}
520521
heap_endscan(scan);
521522

@@ -584,6 +585,8 @@ acquire_sample_rows(Relation onerel, HeapTuple *rows, int targrows,
584585
OffsetNumber targoffset,
585586
maxoffset;
586587

588+
CHECK_FOR_INTERRUPTS();
589+
587590
t = select_next_random_record(t, targrows, &rstate);
588591
/* Try to read the t'th record in the table */
589592
targpos = t / tuplesperpage;
@@ -881,6 +884,8 @@ compute_minimal_stats(VacAttrStats *stats,
881884
int firstcount1,
882885
j;
883886

887+
CHECK_FOR_INTERRUPTS();
888+
884889
value = heap_getattr(tuple, stats->attnum, tupDesc, &isnull);
885890

886891
/* Check for null/nonnull */
@@ -1158,6 +1163,8 @@ compute_scalar_stats(VacAttrStats *stats,
11581163
Datum value;
11591164
bool isnull;
11601165

1166+
CHECK_FOR_INTERRUPTS();
1167+
11611168
value = heap_getattr(tuple, stats->attnum, tupDesc, &isnull);
11621169

11631170
/* Check for null/nonnull */

src/backend/commands/cluster.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*
1616
*
1717
* IDENTIFICATION
18-
* $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.70 2001/10/25 05:49:24 momjian Exp $
18+
* $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.71 2002/01/06 00:37:44 tgl Exp $
1919
*
2020
*-------------------------------------------------------------------------
2121
*/
@@ -263,6 +263,8 @@ rebuildheap(Oid OIDNewHeap, Oid OIDOldHeap, Oid OIDOldIndex)
263263
HeapTupleData LocalHeapTuple;
264264
Buffer LocalBuffer;
265265

266+
CHECK_FOR_INTERRUPTS();
267+
266268
LocalHeapTuple.t_self = ScanResult->heap_iptr;
267269
LocalHeapTuple.t_datamcxt = NULL;
268270
LocalHeapTuple.t_data = NULL;

src/backend/commands/vacuum.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
*
1414
*
1515
* IDENTIFICATION
16-
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.212 2001/11/05 17:46:25 momjian Exp $
16+
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.213 2002/01/06 00:37:44 tgl Exp $
1717
*
1818
*-------------------------------------------------------------------------
1919
*/
@@ -992,6 +992,8 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
992992
bool do_reap,
993993
do_frag;
994994

995+
CHECK_FOR_INTERRUPTS();
996+
995997
buf = ReadBuffer(onerel, blkno);
996998
page = BufferGetPage(buf);
997999

@@ -1415,6 +1417,8 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
14151417
blkno > last_move_dest_block;
14161418
blkno--)
14171419
{
1420+
CHECK_FOR_INTERRUPTS();
1421+
14181422
/*
14191423
* Forget fraged_pages pages at or after this one; they're no
14201424
* longer useful as move targets, since we only want to move down.
@@ -2127,6 +2131,7 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
21272131
i < vacuumed_pages;
21282132
i++, curpage++)
21292133
{
2134+
CHECK_FOR_INTERRUPTS();
21302135
Assert((*curpage)->blkno < blkno);
21312136
if ((*curpage)->offsets_used == 0)
21322137
{
@@ -2157,6 +2162,7 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
21572162
i < num_fraged_pages;
21582163
i++, curpage++)
21592164
{
2165+
CHECK_FOR_INTERRUPTS();
21602166
Assert((*curpage)->blkno < blkno);
21612167
if ((*curpage)->blkno > last_move_dest_block)
21622168
break; /* no need to scan any further */
@@ -2342,6 +2348,7 @@ vacuum_heap(VRelStats *vacrelstats, Relation onerel, VacPageList vacuum_pages)
23422348

23432349
for (i = 0, vacpage = vacuum_pages->pagedesc; i < nblocks; i++, vacpage++)
23442350
{
2351+
CHECK_FOR_INTERRUPTS();
23452352
if ((*vacpage)->offsets_free > 0)
23462353
{
23472354
buf = ReadBuffer(onerel, (*vacpage)->blkno);

src/backend/commands/vacuumlazy.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
*
3232
*
3333
* IDENTIFICATION
34-
* $Header: /cvsroot/pgsql/src/backend/commands/vacuumlazy.c,v 1.10 2001/10/28 06:25:43 momjian Exp $
34+
* $Header: /cvsroot/pgsql/src/backend/commands/vacuumlazy.c,v 1.11 2002/01/06 00:37:44 tgl Exp $
3535
*
3636
*-------------------------------------------------------------------------
3737
*/
@@ -230,6 +230,8 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
230230
hastup;
231231
int prev_dead_count;
232232

233+
CHECK_FOR_INTERRUPTS();
234+
233235
/*
234236
* If we are close to overrunning the available space for
235237
* dead-tuple TIDs, pause and do a cycle of vacuuming before we
@@ -464,6 +466,8 @@ lazy_vacuum_heap(Relation onerel, LVRelStats *vacrelstats)
464466
Buffer buf;
465467
Page page;
466468

469+
CHECK_FOR_INTERRUPTS();
470+
467471
tblk = ItemPointerGetBlockNumber(&vacrelstats->dead_tuples[tupindex]);
468472
buf = ReadBuffer(onerel, tblk);
469473
LockBufferForCleanup(buf);
@@ -770,6 +774,8 @@ count_nondeletable_pages(Relation onerel, LVRelStats *vacrelstats)
770774
tupgone,
771775
hastup;
772776

777+
CHECK_FOR_INTERRUPTS();
778+
773779
blkno--;
774780

775781
buf = ReadBuffer(onerel, blkno);

src/backend/executor/execScan.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,17 @@
1212
*
1313
*
1414
* IDENTIFICATION
15-
* $Header: /cvsroot/pgsql/src/backend/executor/execScan.c,v 1.18 2001/10/25 05:49:27 momjian Exp $
15+
* $Header: /cvsroot/pgsql/src/backend/executor/execScan.c,v 1.19 2002/01/06 00:37:44 tgl Exp $
1616
*
1717
*-------------------------------------------------------------------------
1818
*/
19+
#include "postgres.h"
1920

2021
#include <sys/types.h>
2122
#include <sys/file.h>
2223

23-
#include "postgres.h"
24-
2524
#include "executor/executor.h"
25+
#include "miscadmin.h"
2626
#include "utils/memutils.h"
2727

2828

@@ -92,6 +92,8 @@ ExecScan(Scan *node,
9292
{
9393
TupleTableSlot *slot;
9494

95+
CHECK_FOR_INTERRUPTS();
96+
9597
slot = (*accessMtd) (node);
9698

9799
/*

src/backend/utils/sort/tuplesort.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878
* Portions Copyright (c) 1994, Regents of the University of California
7979
*
8080
* IDENTIFICATION
81-
* $Header: /cvsroot/pgsql/src/backend/utils/sort/tuplesort.c,v 1.21 2001/11/11 22:00:25 tgl Exp $
81+
* $Header: /cvsroot/pgsql/src/backend/utils/sort/tuplesort.c,v 1.22 2002/01/06 00:37:44 tgl Exp $
8282
*
8383
*-------------------------------------------------------------------------
8484
*/
@@ -1233,6 +1233,7 @@ mergeonerun(Tuplesortstate *state)
12331233
*/
12341234
while (state->memtupcount > 0)
12351235
{
1236+
CHECK_FOR_INTERRUPTS();
12361237
/* write the tuple to destTape */
12371238
priorAvail = state->availMem;
12381239
srcTape = state->memtupindex[0];

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy