diff options
Diffstat (limited to 'src/backend/storage/ipc/standby.c')
-rw-r--r-- | src/backend/storage/ipc/standby.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/backend/storage/ipc/standby.c b/src/backend/storage/ipc/standby.c index 7fd94f3e50a..35548d1d1fb 100644 --- a/src/backend/storage/ipc/standby.c +++ b/src/backend/storage/ipc/standby.c @@ -778,6 +778,7 @@ standby_redo(XLogRecPtr lsn, XLogRecord *record) RunningTransactionsData running; running.xcnt = xlrec->xcnt; + running.subxcnt = xlrec->subxcnt; running.subxid_overflow = xlrec->subxid_overflow; running.nextXid = xlrec->nextXid; running.latestCompletedXid = xlrec->latestCompletedXid; @@ -897,6 +898,7 @@ LogCurrentRunningXacts(RunningTransactions CurrRunningXacts) XLogRecPtr recptr; xlrec.xcnt = CurrRunningXacts->xcnt; + xlrec.subxcnt = CurrRunningXacts->subxcnt; xlrec.subxid_overflow = CurrRunningXacts->subxid_overflow; xlrec.nextXid = CurrRunningXacts->nextXid; xlrec.oldestRunningXid = CurrRunningXacts->oldestRunningXid; @@ -912,7 +914,7 @@ LogCurrentRunningXacts(RunningTransactions CurrRunningXacts) { rdata[0].next = &(rdata[1]); rdata[1].data = (char *) CurrRunningXacts->xids; - rdata[1].len = xlrec.xcnt * sizeof(TransactionId); + rdata[1].len = (xlrec.xcnt + xlrec.subxcnt) * sizeof(TransactionId); rdata[1].buffer = InvalidBuffer; lastrdata = 1; } @@ -931,8 +933,8 @@ LogCurrentRunningXacts(RunningTransactions CurrRunningXacts) CurrRunningXacts->nextXid); else elog(trace_recovery(DEBUG2), - "snapshot of %u running transaction ids (lsn %X/%X oldest xid %u latest complete %u next xid %u)", - CurrRunningXacts->xcnt, + "snapshot of %u+%u running transaction ids (lsn %X/%X oldest xid %u latest complete %u next xid %u)", + CurrRunningXacts->xcnt, CurrRunningXacts->subxcnt, (uint32) (recptr >> 32), (uint32) recptr, CurrRunningXacts->oldestRunningXid, CurrRunningXacts->latestCompletedXid, |