mirror of
https://github.com/postgres/postgres.git
synced 2025-07-20 05:03:10 +03:00
Fix pg_visibility regression failure with CLOBBER_CACHE_ALWAYS
Commit8e03eb92e9
reverted a bit too much code, reintroducing one of the issues fixed by39b66a91bd
- a page might have been left partially empty after relcache invalidation. Reported-By: Tom Lane Author: Masahiko Sawada Discussion: https://postgr.es/m/822752.1623032114@sss.pgh.pa.us Discussion: https://postgr.es/m/CAD21AoA%3D%3Df2VSw3c-Cp_y%3DWLKHMKc1D6s7g3YWsCOvgaYPpJcg%40mail.gmail.com
This commit is contained in:
@ -407,19 +407,19 @@ RelationGetBufferForTuple(Relation relation, Size len,
|
|||||||
* target.
|
* target.
|
||||||
*/
|
*/
|
||||||
targetBlock = GetPageWithFreeSpace(relation, targetFreeSpace);
|
targetBlock = GetPageWithFreeSpace(relation, targetFreeSpace);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the FSM knows nothing of the rel, try the last page before we
|
* If the FSM knows nothing of the rel, try the last page before we
|
||||||
* give up and extend. This avoids one-tuple-per-page syndrome during
|
* give up and extend. This avoids one-tuple-per-page syndrome during
|
||||||
* bootstrapping or in a recently-started system.
|
* bootstrapping or in a recently-started system.
|
||||||
*/
|
*/
|
||||||
if (targetBlock == InvalidBlockNumber)
|
if (targetBlock == InvalidBlockNumber)
|
||||||
{
|
{
|
||||||
BlockNumber nblocks = RelationGetNumberOfBlocks(relation);
|
BlockNumber nblocks = RelationGetNumberOfBlocks(relation);
|
||||||
|
|
||||||
if (nblocks > 0)
|
if (nblocks > 0)
|
||||||
targetBlock = nblocks - 1;
|
targetBlock = nblocks - 1;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
loop:
|
loop:
|
||||||
|
Reference in New Issue
Block a user