Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3b6cbce

Browse files
committed
Add CHECK_FOR_INTERRUPTS() in various strategic spots, per comments
from Hiroshi.
1 parent734e421 commit3b6cbce

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
IndexTupleitup;
597597
ItemPointerhtup;
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
booltupleIsAlive;
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
OffsetNumbertargoffset,
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
intfirstcount1,
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
Datumvalue;
11591164
boolisnull;
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
HeapTupleDataLocalHeapTuple;
264264
BufferLocalBuffer;
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
booldo_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
intprev_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
Bufferbuf;
465467
Pagepage;
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/0600: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)

[8]ページ先頭

©2009-2025 Movatter.jp