mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-05 19:09:58 +08:00
Adjust cutoff points in newly-added sanity tests.
Per recommendation from Andres.
This commit is contained in:
parent
e7984cca06
commit
4ee95870de
@ -745,13 +745,13 @@ vac_update_relstats(Relation relation,
|
||||
* which case we don't want to forget the work it already did. However,
|
||||
* if the stored relfrozenxid is "in the future", then it must be corrupt
|
||||
* and it seems best to overwrite it with the cutoff we used this time.
|
||||
* See vac_update_datfrozenxid() concerning what we consider to be "in the
|
||||
* future".
|
||||
* This should match vac_update_datfrozenxid() concerning what we consider
|
||||
* to be "in the future".
|
||||
*/
|
||||
if (TransactionIdIsNormal(frozenxid) &&
|
||||
pgcform->relfrozenxid != frozenxid &&
|
||||
(TransactionIdPrecedes(pgcform->relfrozenxid, frozenxid) ||
|
||||
TransactionIdPrecedes(GetOldestXmin(true, true),
|
||||
TransactionIdPrecedes(ReadNewTransactionId(),
|
||||
pgcform->relfrozenxid)))
|
||||
{
|
||||
pgcform->relfrozenxid = frozenxid;
|
||||
@ -762,7 +762,7 @@ vac_update_relstats(Relation relation,
|
||||
if (MultiXactIdIsValid(minmulti) &&
|
||||
pgcform->relminmxid != minmulti &&
|
||||
(MultiXactIdPrecedes(pgcform->relminmxid, minmulti) ||
|
||||
MultiXactIdPrecedes(GetOldestMultiXactId(), pgcform->relminmxid)))
|
||||
MultiXactIdPrecedes(ReadNextMultiXactId(), pgcform->relminmxid)))
|
||||
{
|
||||
pgcform->relminmxid = minmulti;
|
||||
dirty = true;
|
||||
@ -803,8 +803,8 @@ vac_update_datfrozenxid(void)
|
||||
SysScanDesc scan;
|
||||
HeapTuple classTup;
|
||||
TransactionId newFrozenXid;
|
||||
TransactionId lastSaneFrozenXid;
|
||||
MultiXactId newMinMulti;
|
||||
TransactionId lastSaneFrozenXid;
|
||||
MultiXactId lastSaneMinMulti;
|
||||
bool bogus = false;
|
||||
bool dirty = false;
|
||||
@ -815,13 +815,21 @@ vac_update_datfrozenxid(void)
|
||||
* committed pg_class entries for new tables; see AddNewRelationTuple().
|
||||
* So we cannot produce a wrong minimum by starting with this.
|
||||
*/
|
||||
newFrozenXid = lastSaneFrozenXid = GetOldestXmin(true, true);
|
||||
newFrozenXid = GetOldestXmin(true, true);
|
||||
|
||||
/*
|
||||
* Similarly, initialize the MultiXact "min" with the value that would be
|
||||
* used on pg_class for new tables. See AddNewRelationTuple().
|
||||
*/
|
||||
newMinMulti = lastSaneMinMulti = GetOldestMultiXactId();
|
||||
newMinMulti = GetOldestMultiXactId();
|
||||
|
||||
/*
|
||||
* Identify the latest relfrozenxid and relminmxid values that we could
|
||||
* validly see during the scan. These are conservative values, but it's
|
||||
* not really worth trying to be more exact.
|
||||
*/
|
||||
lastSaneFrozenXid = ReadNewTransactionId();
|
||||
lastSaneMinMulti = ReadNextMultiXactId();
|
||||
|
||||
/*
|
||||
* We must seqscan pg_class to find the minimum Xid, because there is no
|
||||
|
Loading…
Reference in New Issue
Block a user