xid-assignment-v12-fix.patch

text/plain

Filename: xid-assignment-v12-fix.patch
Type: text/plain
Part: 0
Message: Re: PATCH: logical_work_mem and logical streaming of large in-progress transactions

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: unified
Series: patch v12
File+
src/backend/access/transam/xlog.c 13 0
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -7574,6 +7574,19 @@ StartupXLOG(void)
                    LWLockRelease(XidGenLock);
                }
+               /*
+                * Assign subtransaction xids to the top level xid if the
+                * record has that information. This is required at most
+                * once per subtransactions.
+                */
+               if (TransactionIdIsValid(xlogreader->toplevel_xid) &&
+                   standbyState >= STANDBY_INITIALIZED)
+               {
+                   Assert(XLogStandbyInfoActive());
+                   ProcArrayApplyXidAssignment(xlogreader->toplevel_xid,
+                                               1, &record->xl_xid);
+               }
+
                /*
                 * Before replaying this record, check if this record causes
                 * the current timeline to change. The record is already