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

Commit8a45a2e

Browse files
committed
Fix miscalculation of remaining free space during tuple chain moving.
Only affects machines where MAXALIGN > 4, and is a boundary-conditioncase even there, but still surprising that it's not been identifiedbefore. Also reduce tuple chain move give-up messages from WARNINGto DEBUG1, since they are not unexpected conditions.
1 parent5936055 commit8a45a2e

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

‎src/backend/commands/vacuum.c

Lines changed: 8 additions & 8 deletions
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.243 2002/10/21 22:06:19 tgl Exp $
16+
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.244 2002/10/31 19:25:29 tgl Exp $
1717
*
1818
*-------------------------------------------------------------------------
1919
*/
@@ -1079,7 +1079,7 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
10791079
relname,blkno);
10801080
PageInit(page,BufferGetPageSize(buf),0);
10811081
vacpage->free= ((PageHeader)page)->pd_upper- ((PageHeader)page)->pd_lower;
1082-
free_size+=(vacpage->free-sizeof(ItemIdData));
1082+
free_size+=vacpage->free;
10831083
new_pages++;
10841084
empty_end_pages++;
10851085
vacpagecopy=copy_vac_page(vacpage);
@@ -1092,7 +1092,7 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
10921092
if (PageIsEmpty(page))
10931093
{
10941094
vacpage->free= ((PageHeader)page)->pd_upper- ((PageHeader)page)->pd_lower;
1095-
free_size+=(vacpage->free-sizeof(ItemIdData));
1095+
free_size+=vacpage->free;
10961096
empty_pages++;
10971097
empty_end_pages++;
10981098
vacpagecopy=copy_vac_page(vacpage);
@@ -1667,7 +1667,7 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
16671667
/* Quick exit if we have no vtlinks to search in */
16681668
if (vacrelstats->vtlinks==NULL)
16691669
{
1670-
elog(WARNING,"Parent item in update-chain not found - can't continue repair_frag");
1670+
elog(DEBUG1,"Parent item in update-chain not found - can't continue repair_frag");
16711671
break;/* out of walk-along-page loop */
16721672
}
16731673

@@ -1704,7 +1704,7 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
17041704
* in scan_heap(), but it's not implemented at the
17051705
* moment and so we just stop shrinking here.
17061706
*/
1707-
elog(WARNING,"Child itemid in update-chain marked as unused - can't continue repair_frag");
1707+
elog(DEBUG1,"Child itemid in update-chain marked as unused - can't continue repair_frag");
17081708
chain_move_failed= true;
17091709
break;/* out of loop to move to chain end */
17101710
}
@@ -1753,7 +1753,7 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
17531753
}
17541754
to_vacpage->free-=MAXALIGN(tlen);
17551755
if (to_vacpage->offsets_used >=to_vacpage->offsets_free)
1756-
to_vacpage->free-=MAXALIGN(sizeof(ItemIdData));
1756+
to_vacpage->free-=sizeof(ItemIdData);
17571757
(to_vacpage->offsets_used)++;
17581758
if (free_vtmove==0)
17591759
{
@@ -1789,7 +1789,7 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
17891789
if (vtlp==NULL)
17901790
{
17911791
/* see discussion above */
1792-
elog(WARNING,"Parent item in update-chain not found - can't continue repair_frag");
1792+
elog(DEBUG1,"Parent item in update-chain not found - can't continue repair_frag");
17931793
chain_move_failed= true;
17941794
break;/* out of check-all-items loop */
17951795
}
@@ -1825,7 +1825,7 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
18251825
HeapTupleHeaderGetXmin(tp.t_data))))
18261826
{
18271827
ReleaseBuffer(Pbuf);
1828-
elog(WARNING,"Too old parent tuple found - can't continue repair_frag");
1828+
elog(DEBUG1,"Too old parent tuple found - can't continue repair_frag");
18291829
chain_move_failed= true;
18301830
break;/* out of check-all-items loop */
18311831
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp