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

Commit6e8a1a6

Browse files
committed
WriteBuffer return value:
>I'd vote for changing WriteBuffer to>return void, and have it elog() on bad argument.Manfred Koizar
1 parent82b14b6 commit6e8a1a6

File tree

5 files changed

+44
-52
lines changed

5 files changed

+44
-52
lines changed

‎src/backend/commands/sequence.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/commands/sequence.c,v 1.80 2002/06/15 19:54:23 momjian Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/commands/sequence.c,v 1.81 2002/06/15 19:59:59 momjian Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -468,8 +468,7 @@ nextval(PG_FUNCTION_ARGS)
468468

469469
LockBuffer(buf,BUFFER_LOCK_UNLOCK);
470470

471-
if (WriteBuffer(buf)==STATUS_ERROR)
472-
elog(ERROR,"%s.nextval: WriteBuffer failed",sequence->relname);
471+
WriteBuffer(buf);
473472

474473
relation_close(seqrel,NoLock);
475474

@@ -581,8 +580,7 @@ do_setval(RangeVar *sequence, int64 next, bool iscalled)
581580

582581
LockBuffer(buf,BUFFER_LOCK_UNLOCK);
583582

584-
if (WriteBuffer(buf)==STATUS_ERROR)
585-
elog(ERROR,"%s.setval: WriteBuffer failed",sequence->relname);
583+
WriteBuffer(buf);
586584

587585
relation_close(seqrel,NoLock);
588586
}

‎src/backend/storage/buffer/bufmgr.c

Lines changed: 34 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.124 2002/06/15 19:55:37 momjian Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.125 2002/06/15 19:59:59 momjian Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -87,6 +87,7 @@ static intReleaseBufferWithBufferLock(Buffer buffer);
8787
staticintBufferReplace(BufferDesc*bufHdr);
8888
voidPrintBufferDescs(void);
8989

90+
staticvoidwrite_buffer(Bufferbuffer,boolunpin);
9091

9192
/*
9293
* ReadBuffer -- returns a buffer containing the requested
@@ -558,29 +559,22 @@ BufferAlloc(Relation reln,
558559
}
559560

560561
/*
561-
* WriteBuffer
562-
*
563-
*Marks buffer contents as dirty (actual write happens later).
564-
*
565-
* Assume that buffer is pinned. Assume that reln is
566-
*valid.
567-
*
568-
* Side Effects:
569-
*Pin count is decremented.
562+
* write_buffer -- common functionality for
563+
* WriteBuffer and WriteNoReleaseBuffer
570564
*/
571-
572-
#undef WriteBuffer
573-
574-
int
575-
WriteBuffer(Bufferbuffer)
565+
staticvoid
566+
write_buffer(Bufferbuffer,boolrelease)
576567
{
577568
BufferDesc*bufHdr;
578569

579570
if (BufferIsLocal(buffer))
580-
returnWriteLocalBuffer(buffer, TRUE);
571+
{
572+
WriteLocalBuffer(buffer,release);
573+
return;
574+
}
581575

582576
if (BAD_BUFFER_ID(buffer))
583-
return FALSE;
577+
elog(ERROR,"write_buffer: bad buffer %d",buffer);
584578

585579
bufHdr=&BufferDescriptors[buffer-1];
586580

@@ -589,37 +583,39 @@ WriteBuffer(Buffer buffer)
589583

590584
bufHdr->flags |= (BM_DIRTY |BM_JUST_DIRTIED);
591585

592-
UnpinBuffer(bufHdr);
586+
if (release)
587+
UnpinBuffer(bufHdr);
593588
LWLockRelease(BufMgrLock);
589+
}
594590

595-
return TRUE;
591+
/*
592+
* WriteBuffer
593+
*
594+
*Marks buffer contents as dirty (actual write happens later).
595+
*
596+
* Assume that buffer is pinned. Assume that reln is
597+
*valid.
598+
*
599+
* Side Effects:
600+
*Pin count is decremented.
601+
*/
602+
603+
#undef WriteBuffer
604+
605+
void
606+
WriteBuffer(Bufferbuffer)
607+
{
608+
write_buffer(buffer, true);
596609
}
597610

598611
/*
599612
* WriteNoReleaseBuffer -- like WriteBuffer, but do not unpin the buffer
600613
* when the operation is complete.
601614
*/
602-
int
615+
void
603616
WriteNoReleaseBuffer(Bufferbuffer)
604617
{
605-
BufferDesc*bufHdr;
606-
607-
if (BufferIsLocal(buffer))
608-
returnWriteLocalBuffer(buffer, FALSE);
609-
610-
if (BAD_BUFFER_ID(buffer))
611-
returnSTATUS_ERROR;
612-
613-
bufHdr=&BufferDescriptors[buffer-1];
614-
615-
LWLockAcquire(BufMgrLock,LW_EXCLUSIVE);
616-
Assert(bufHdr->refcount>0);
617-
618-
bufHdr->flags |= (BM_DIRTY |BM_JUST_DIRTIED);
619-
620-
LWLockRelease(BufMgrLock);
621-
622-
returnSTATUS_OK;
618+
write_buffer(buffer, false);
623619
}
624620

625621

‎src/backend/storage/buffer/localbuf.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
*
1717
*
1818
* IDENTIFICATION
19-
* $Header: /cvsroot/pgsql/src/backend/storage/buffer/localbuf.c,v 1.42 2002/05/03 17:42:11 tgl Exp $
19+
* $Header: /cvsroot/pgsql/src/backend/storage/buffer/localbuf.c,v 1.43 2002/06/15 19:59:59 momjian Exp $
2020
*
2121
*-------------------------------------------------------------------------
2222
*/
@@ -155,7 +155,7 @@ LocalBufferAlloc(Relation reln, BlockNumber blockNum, bool *foundPtr)
155155
* WriteLocalBuffer -
156156
* writes out a local buffer
157157
*/
158-
int
158+
void
159159
WriteLocalBuffer(Bufferbuffer,boolrelease)
160160
{
161161
intbufid;
@@ -174,8 +174,6 @@ WriteLocalBuffer(Buffer buffer, bool release)
174174
Assert(LocalRefCount[bufid]>0);
175175
LocalRefCount[bufid]--;
176176
}
177-
178-
return true;
179177
}
180178

181179
/*

‎src/include/storage/buf_internals.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
88
* Portions Copyright (c) 1994, Regents of the University of California
99
*
10-
* $Id: buf_internals.h,v 1.55 2002/06/15 19:55:38 momjian Exp $
10+
* $Id: buf_internals.h,v 1.56 2002/06/15 19:59:59 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -176,7 +176,7 @@ extern BufferDesc *LocalBufferDescriptors;
176176

177177
externBufferDesc*LocalBufferAlloc(Relationreln,BlockNumberblockNum,
178178
bool*foundPtr);
179-
externintWriteLocalBuffer(Bufferbuffer,boolrelease);
179+
externvoidWriteLocalBuffer(Bufferbuffer,boolrelease);
180180
externintFlushLocalBuffer(Bufferbuffer,boolsync,boolrelease);
181181
externvoidLocalBufferSync(void);
182182
externvoidResetLocalBufferPool(void);

‎src/include/storage/bufmgr.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
88
* Portions Copyright (c) 1994, Regents of the University of California
99
*
10-
* $Id: bufmgr.h,v 1.58 2002/04/1523:47:12 momjian Exp $
10+
* $Id: bufmgr.h,v 1.59 2002/06/1519:59:59 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -148,8 +148,8 @@ extern long *LocalRefCount;
148148
*/
149149
externBufferReadBuffer(Relationreln,BlockNumberblockNum);
150150
externintReleaseBuffer(Bufferbuffer);
151-
externintWriteBuffer(Bufferbuffer);
152-
externintWriteNoReleaseBuffer(Bufferbuffer);
151+
externvoidWriteBuffer(Bufferbuffer);
152+
externvoidWriteNoReleaseBuffer(Bufferbuffer);
153153
externBufferReleaseAndReadBuffer(Bufferbuffer,Relationrelation,
154154
BlockNumberblockNum);
155155
externintFlushBuffer(Bufferbuffer,boolsync,boolrelease);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp