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

Commit27bc34b

Browse files
committed
WAL need in overwrite mode - restored in new way
(without PageManagetSetMode -:))Safe shuffle mode behaviour retained.
1 parentb58c041 commit27bc34b

File tree

1 file changed

+26
-3
lines changed

1 file changed

+26
-3
lines changed

‎src/backend/storage/page/bufpage.c

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/storage/page/bufpage.c,v 1.31 2000/07/21 06:42:33 tgl Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/storage/page/bufpage.c,v 1.32 2000/10/20 11:28:39 vadim Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -80,6 +80,9 @@ PageAddItem(Page page,
8080
ItemIditemId;
8181
OffsetNumberlimit;
8282
boolneedshuffle= false;
83+
booloverwritemode=flags&OverwritePageMode;
84+
85+
flags &= ~OverwritePageMode;
8386

8487
/*
8588
* Find first unallocated offsetNumber
@@ -89,8 +92,28 @@ PageAddItem(Page page,
8992
/* was offsetNumber passed in? */
9093
if (OffsetNumberIsValid(offsetNumber))
9194
{
92-
needshuffle= true;/* need to increase "lower" */
93-
/* don't actually do the shuffle till we've checked free space! */
95+
if (overwritemode)
96+
{
97+
if (offsetNumber>limit)
98+
{
99+
elog(NOTICE,"PageAddItem: tried overwrite after maxoff");
100+
returnInvalidOffsetNumber;
101+
}
102+
itemId=&((PageHeader)page)->pd_linp[offsetNumber-1];
103+
if (((*itemId).lp_flags&LP_USED)||
104+
((*itemId).lp_len!=0))
105+
{
106+
elog(NOTICE,"PageAddItem: tried overwrite of used ItemId");
107+
returnInvalidOffsetNumber;
108+
}
109+
}
110+
else
111+
{
112+
/*
113+
* Don't actually do the shuffle till we've checked free space!
114+
*/
115+
needshuffle= true;/* need to increase "lower" */
116+
}
94117
}
95118
else
96119
{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp