mirror of
https://github.com/postgres/postgres.git
synced 2025-12-21 05:21:08 +03:00
Split out rmgr rm_desc functions into their own files
This is necessary (but not sufficient) to have them compilable outside of a backend environment.
This commit is contained in:
65
src/backend/access/rmgrdesc/standbydesc.c
Normal file
65
src/backend/access/rmgrdesc/standbydesc.c
Normal file
@@ -0,0 +1,65 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* standbydesc.c
|
||||
* rmgr descriptor routines for storage/ipc/standby.c
|
||||
*
|
||||
* Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* src/backend/access/rmgrdesc/standbydesc.c
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
#include "storage/standby.h"
|
||||
|
||||
static void
|
||||
standby_desc_running_xacts(StringInfo buf, xl_running_xacts *xlrec)
|
||||
{
|
||||
int i;
|
||||
|
||||
appendStringInfo(buf, " nextXid %u latestCompletedXid %u oldestRunningXid %u",
|
||||
xlrec->nextXid,
|
||||
xlrec->latestCompletedXid,
|
||||
xlrec->oldestRunningXid);
|
||||
if (xlrec->xcnt > 0)
|
||||
{
|
||||
appendStringInfo(buf, "; %d xacts:", xlrec->xcnt);
|
||||
for (i = 0; i < xlrec->xcnt; i++)
|
||||
appendStringInfo(buf, " %u", xlrec->xids[i]);
|
||||
}
|
||||
|
||||
if (xlrec->subxid_overflow)
|
||||
appendStringInfo(buf, "; subxid ovf");
|
||||
}
|
||||
|
||||
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");
|
||||
}
|
||||
Reference in New Issue
Block a user