summaryrefslogtreecommitdiff
path: root/src/backend/storage/ipc/procarray.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/storage/ipc/procarray.c')
-rw-r--r--src/backend/storage/ipc/procarray.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c
index 6ff8d8699b3..447b6e3de7f 100644
--- a/src/backend/storage/ipc/procarray.c
+++ b/src/backend/storage/ipc/procarray.c
@@ -1916,12 +1916,13 @@ ProcArrayInstallRestoredXmin(TransactionId xmin, PGPROC *proc)
TransactionIdIsNormal(xid) &&
TransactionIdPrecedesOrEquals(xid, xmin))
{
- /* Install xmin */
+ /*
+ * Install xmin and propagate the vacuumFlags that affect how the
+ * value is interpreted by vacuum.
+ */
MyPgXact->xmin = TransactionXmin = xmin;
-
- /* Flags being copied must be valid copy-able flags. */
- Assert((pgxact->vacuumFlags & (~PROC_COPYABLE_FLAGS)) == 0);
- MyPgXact->vacuumFlags = pgxact->vacuumFlags;
+ MyPgXact->vacuumFlags = (MyPgXact->vacuumFlags & ~PROC_XMIN_FLAGS) |
+ (pgxact->vacuumFlags & PROC_XMIN_FLAGS);
result = true;
}