Skip to content

Commit 085b44f

Browse files
author
Alexander Korotkov
committed
Fix limits in VACUUM.
1 parent 34015b9 commit 085b44f

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/backend/commands/vacuum.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,7 @@ vacuum_set_xid_limits(Relation rel,
483483
int mxid_freezemin;
484484
int effective_multixact_freeze_max_age;
485485
TransactionId limit;
486-
TransactionId safeLimit;
486+
TransactionId safeLimit, nextXid;
487487
MultiXactId mxactLimit;
488488
MultiXactId safeMxactLimit;
489489

@@ -525,8 +525,10 @@ vacuum_set_xid_limits(Relation rel,
525525
* autovacuum_freeze_max_age / 2 XIDs old), complain and force a minimum
526526
* freeze age of zero.
527527
*/
528-
safeLimit = ReadNewTransactionId() - autovacuum_freeze_max_age;
529-
if (!TransactionIdIsNormal(safeLimit))
528+
nextXid = ReadNewTransactionId();
529+
if (nextXid > FirstNormalTransactionId + autovacuum_freeze_max_age)
530+
safeLimit = ReadNewTransactionId() - autovacuum_freeze_max_age;
531+
else
530532
safeLimit = FirstNormalTransactionId;
531533

532534
if (TransactionIdPrecedes(limit, safeLimit))

0 commit comments

Comments
 (0)