mirror of
https://github.com/postgres/postgres.git
synced 2025-06-19 04: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:
@ -99,16 +99,10 @@ bool XLOG_DEBUG = false;
|
||||
*/
|
||||
#define XLOGfileslop (2*CheckPointSegments + 1)
|
||||
|
||||
|
||||
/*
|
||||
* GUC support
|
||||
*/
|
||||
const struct config_enum_entry wal_level_options[] = {
|
||||
{"minimal", WAL_LEVEL_MINIMAL, false},
|
||||
{"archive", WAL_LEVEL_ARCHIVE, false},
|
||||
{"hot_standby", WAL_LEVEL_HOT_STANDBY, false},
|
||||
{NULL, 0, false}
|
||||
};
|
||||
|
||||
const struct config_enum_entry sync_method_options[] = {
|
||||
{"fsync", SYNC_METHOD_FSYNC, false},
|
||||
#ifdef HAVE_FSYNC_WRITETHROUGH
|
||||
@ -588,25 +582,6 @@ static bool InRedo = false;
|
||||
/* Have we launched bgwriter during recovery? */
|
||||
static bool bgwriterLaunched = false;
|
||||
|
||||
/*
|
||||
* Information logged when we detect a change in one of the parameters
|
||||
* important for Hot Standby.
|
||||
*/
|
||||
typedef struct xl_parameter_change
|
||||
{
|
||||
int MaxConnections;
|
||||
int max_prepared_xacts;
|
||||
int max_locks_per_xact;
|
||||
int wal_level;
|
||||
} xl_parameter_change;
|
||||
|
||||
/* logs restore point */
|
||||
typedef struct xl_restore_point
|
||||
{
|
||||
TimestampTz rp_time;
|
||||
char rp_name[MAXFNAMELEN];
|
||||
} xl_restore_point;
|
||||
|
||||
|
||||
static void readRecoveryCommandFile(void);
|
||||
static void exitArchiveRecovery(TimeLineID endTLI, XLogSegNo endLogSegNo);
|
||||
@ -8031,97 +8006,6 @@ xlog_redo(XLogRecPtr lsn, XLogRecord *record)
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
xlog_desc(StringInfo buf, uint8 xl_info, char *rec)
|
||||
{
|
||||
uint8 info = xl_info & ~XLR_INFO_MASK;
|
||||
|
||||
if (info == XLOG_CHECKPOINT_SHUTDOWN ||
|
||||
info == XLOG_CHECKPOINT_ONLINE)
|
||||
{
|
||||
CheckPoint *checkpoint = (CheckPoint *) rec;
|
||||
|
||||
appendStringInfo(buf, "checkpoint: redo %X/%X; "
|
||||
"tli %u; fpw %s; xid %u/%u; oid %u; multi %u; offset %u; "
|
||||
"oldest xid %u in DB %u; oldest running xid %u; %s",
|
||||
(uint32) (checkpoint->redo >> 32), (uint32) checkpoint->redo,
|
||||
checkpoint->ThisTimeLineID,
|
||||
checkpoint->fullPageWrites ? "true" : "false",
|
||||
checkpoint->nextXidEpoch, checkpoint->nextXid,
|
||||
checkpoint->nextOid,
|
||||
checkpoint->nextMulti,
|
||||
checkpoint->nextMultiOffset,
|
||||
checkpoint->oldestXid,
|
||||
checkpoint->oldestXidDB,
|
||||
checkpoint->oldestActiveXid,
|
||||
(info == XLOG_CHECKPOINT_SHUTDOWN) ? "shutdown" : "online");
|
||||
}
|
||||
else if (info == XLOG_NOOP)
|
||||
{
|
||||
appendStringInfo(buf, "xlog no-op");
|
||||
}
|
||||
else if (info == XLOG_NEXTOID)
|
||||
{
|
||||
Oid nextOid;
|
||||
|
||||
memcpy(&nextOid, rec, sizeof(Oid));
|
||||
appendStringInfo(buf, "nextOid: %u", nextOid);
|
||||
}
|
||||
else if (info == XLOG_SWITCH)
|
||||
{
|
||||
appendStringInfo(buf, "xlog switch");
|
||||
}
|
||||
else if (info == XLOG_RESTORE_POINT)
|
||||
{
|
||||
xl_restore_point *xlrec = (xl_restore_point *) rec;
|
||||
|
||||
appendStringInfo(buf, "restore point: %s", xlrec->rp_name);
|
||||
|
||||
}
|
||||
else if (info == XLOG_BACKUP_END)
|
||||
{
|
||||
XLogRecPtr startpoint;
|
||||
|
||||
memcpy(&startpoint, rec, sizeof(XLogRecPtr));
|
||||
appendStringInfo(buf, "backup end: %X/%X",
|
||||
(uint32) (startpoint >> 32), (uint32) startpoint);
|
||||
}
|
||||
else if (info == XLOG_PARAMETER_CHANGE)
|
||||
{
|
||||
xl_parameter_change xlrec;
|
||||
const char *wal_level_str;
|
||||
const struct config_enum_entry *entry;
|
||||
|
||||
memcpy(&xlrec, rec, sizeof(xl_parameter_change));
|
||||
|
||||
/* Find a string representation for wal_level */
|
||||
wal_level_str = "?";
|
||||
for (entry = wal_level_options; entry->name; entry++)
|
||||
{
|
||||
if (entry->val == xlrec.wal_level)
|
||||
{
|
||||
wal_level_str = entry->name;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
appendStringInfo(buf, "parameter change: max_connections=%d max_prepared_xacts=%d max_locks_per_xact=%d wal_level=%s",
|
||||
xlrec.MaxConnections,
|
||||
xlrec.max_prepared_xacts,
|
||||
xlrec.max_locks_per_xact,
|
||||
wal_level_str);
|
||||
}
|
||||
else if (info == XLOG_FPW_CHANGE)
|
||||
{
|
||||
bool fpw;
|
||||
|
||||
memcpy(&fpw, rec, sizeof(bool));
|
||||
appendStringInfo(buf, "full_page_writes: %s", fpw ? "true" : "false");
|
||||
}
|
||||
else
|
||||
appendStringInfo(buf, "UNKNOWN");
|
||||
}
|
||||
|
||||
#ifdef WAL_DEBUG
|
||||
|
||||
static void
|
||||
|
Reference in New Issue
Block a user