void standby_desc(StringInfo buf, uint8 xl_info, char *rec) { uint8 info = xl_info & ~XLR_INFO_MASK; if (info == XLOG_STANDBY_LOCK) { xl_standby_locks *xlrec = (xl_standby_locks *) rec; int i; appendStringInfo(buf, "AccessExclusive locks:"); for (i = 0; i < xlrec->nlocks; i++) appendStringInfo(buf, " xid %u db %u rel %u", xlrec->locks[i].xid, xlrec->locks[i].dbOid, xlrec->locks[i].relOid); } else if (info == XLOG_RUNNING_XACTS) { xl_running_xacts *xlrec = (xl_running_xacts *) rec; appendStringInfo(buf, " running xacts:"); standby_desc_running_xacts(buf, xlrec); } else appendStringInfo(buf, "UNKNOWN"); }
void standby_desc(StringInfo buf, XLogReaderState *record) { char *rec = XLogRecGetData(record); uint8 info = XLogRecGetInfo(record) & ~XLR_INFO_MASK; if (info == XLOG_STANDBY_LOCK) { xl_standby_locks *xlrec = (xl_standby_locks *) rec; int i; for (i = 0; i < xlrec->nlocks; i++) appendStringInfo(buf, "xid %u db %u rel %u ", xlrec->locks[i].xid, xlrec->locks[i].dbOid, xlrec->locks[i].relOid); } else if (info == XLOG_RUNNING_XACTS) { xl_running_xacts *xlrec = (xl_running_xacts *) rec; standby_desc_running_xacts(buf, xlrec); } else if (info == XLOG_INVALIDATIONS) { xl_invalidations *xlrec = (xl_invalidations *) rec; standby_desc_invalidations(buf, xlrec->nmsgs, xlrec->msgs, xlrec->dbId, xlrec->tsId, xlrec->relcacheInitFileInval); } }