context->recovery_logno = slot->logno;
/* Read log switch information from meta and reset it. */
- *prevlog_xact_start = slot->meta.unlogged.prevlog_xact_start;
- *prevlog_last_urp = slot->meta.unlogged.prevlog_last_urp;
+ *prevlog_xact_start = slot->meta.prevlog_xact_start;
+ *prevlog_last_urp = slot->meta.prevlog_last_urp;
- slot->meta.unlogged.prevlog_xact_start = InvalidUndoRecPtr;
- slot->meta.unlogged.prevlog_last_urp = InvalidUndoRecPtr;
+ slot->meta.prevlog_xact_start = InvalidUndoRecPtr;
+ slot->meta.prevlog_last_urp = InvalidUndoRecPtr;
return MakeUndoRecPtr(slot->logno, slot->meta.unlogged.insert);
}
Assert(AmAttachedToUndoLogSlot(slot));
LWLockAcquire(&slot->mutex, LW_EXCLUSIVE);
- slot->meta.unlogged.prevlog_xact_start = prevlog_last_urp;
- slot->meta.unlogged.prevlog_last_urp = prevlog_last_urp;
+ slot->meta.prevlog_xact_start = prevlog_xact_start;
+ slot->meta.prevlog_last_urp = prevlog_last_urp;
LWLockRelease(&slot->mutex);
/* Wal log the log switch. */
xl_undolog_switch xlrec;
xlrec.logno = logno;
- xlrec.prevlog_xact_start = prevlog_last_urp;
+ xlrec.prevlog_xact_start = prevlog_xact_start;
xlrec.prevlog_last_urp = prevlog_xact_start;
XLogBeginInsert();
* Restore the log switch information in the MyUndoLogState this will be
* reset by following UndoLogAllocateDuringRecovery.
*/
- slot->meta.unlogged.prevlog_xact_start = xlrec->prevlog_xact_start;
- slot->meta.unlogged.prevlog_last_urp = xlrec->prevlog_last_urp;
+ slot->meta.prevlog_xact_start = xlrec->prevlog_xact_start;
+ slot->meta.prevlog_last_urp = xlrec->prevlog_last_urp;
}
void
UndoLogOffset last_xact_start; /* last transaction's first byte in this log */
UndoLogOffset this_xact_start; /* this transaction's first byte in this log */
TransactionId xid; /* currently attached/writing xid */
-
- /*
- * Below two variable are used during recovery when transaction's undo
- * records are split across undo logs. Replay of switch will restore
- * these two undo record pointers which will be reset on next allocation
- * during recovery. */
- UndoRecPtr prevlog_xact_start; /* Transaction's start undo record pointer
- * in the previous log. */
- UndoRecPtr prevlog_last_urp; /* Transaction's last undo record pointer in
- * the previous log. */
} UndoLogUnloggedMetaData;
/*
UndoLogStatus status;
UndoLogOffset end; /* one past end of highest segment */
UndoLogOffset discard; /* oldest data needed (tail) */
+
+ /*
+ * Below two variable are used during recovery when transaction's undo
+ * records are split across undo logs. Replay of switch will restore
+ * these two undo record pointers which will be reset on next allocation
+ * during recovery. */
+ UndoRecPtr prevlog_xact_start; /* Transaction's start undo record pointer
+ * in the previous log. */
+ UndoRecPtr prevlog_last_urp; /* Transaction's last undo record pointer in
+ * the previous log. */
} UndoLogMetaData;
/*