From 427942e18e4ec5d23d3abab5c2758e450a807dc6 Mon Sep 17 00:00:00 2001 From: Simon Riggs Date: Mon, 5 Oct 2009 15:09:47 +0100 Subject: [PATCH] Apply 0010-Make-recoveryTargetMode-an-enum.patch --- src/backend/access/transam/xlog.c | 38 ++++++++++++++++++------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 68456e1da0..0613001136 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -179,16 +179,19 @@ static int recoveryTargetAdvance = 0; bool InHotStandby = true; /* recovery target modes */ -#define RECOVERY_TARGET_NONE 0 -#define RECOVERY_TARGET_PAUSE_ALL 1 -#define RECOVERY_TARGET_PAUSE_XID 2 -#define RECOVERY_TARGET_PAUSE_TIME 3 -#define RECOVERY_TARGET_PAUSE_LSN 4 -#define RECOVERY_TARGET_ADVANCE 5 -#define RECOVERY_TARGET_STOP_IMMEDIATE 6 -#define RECOVERY_TARGET_STOP_XID 7 -#define RECOVERY_TARGET_STOP_TIME 8 -static int recoveryTargetMode = RECOVERY_TARGET_NONE; +typedef enum RecoveryTargetMode +{ + RECOVERY_TARGET_NONE, + RECOVERY_TARGET_PAUSE_ALL, + RECOVERY_TARGET_PAUSE_XID, + RECOVERY_TARGET_PAUSE_TIME, + RECOVERY_TARGET_PAUSE_LSN, + RECOVERY_TARGET_ADVANCE, + RECOVERY_TARGET_STOP_IMMEDIATE, + RECOVERY_TARGET_STOP_XID, + RECOVERY_TARGET_STOP_TIME +} RecoveryTargetMode; +static RecoveryTargetMode recoveryTargetMode = RECOVERY_TARGET_NONE; static bool recoveryStartsPaused = false; #define DEFAULT_MAX_STANDBY_DELAY 30 @@ -390,7 +393,7 @@ typedef struct XLogCtlData /* end+1 of the last record replayed (or being replayed) */ XLogRecPtr replayEndRecPtr; - int recoveryTargetMode; + RecoveryTargetMode recoveryTargetMode; TransactionId recoveryTargetXid; TimestampTz recoveryTargetTime; int recoveryTargetAdvance; @@ -506,8 +509,8 @@ static void exitArchiveRecovery(TimeLineID endTLI, static bool recoveryStopsHere(XLogRecord *record, bool *includeThis); static void recoveryPausesAfterLSN(void); static void RequiresWALControlPermissions(void); -static void SetRecoveryTargetMode(int mode, TransactionId xid, TimestampTz ts, - XLogRecPtr lsn, int advance); +static void SetRecoveryTargetMode(RecoveryTargetMode mode, TransactionId xid, + TimestampTz ts, XLogRecPtr lsn, int advance); static void SetMaxStandbyDelay(int delay); static void CheckMaxConnections(int maxcon); static void LocalSetXLogInsertAllowed(void); @@ -5272,7 +5275,7 @@ recoveryStopsHere(XLogRecord *record, bool *includeThis) do { - int prevRecoveryTargetMode = recoveryTargetMode; + RecoveryTargetMode prevRecoveryTargetMode = recoveryTargetMode; CHECK_FOR_INTERRUPTS(); @@ -5507,6 +5510,9 @@ recoveryStopsHere(XLogRecord *record, bool *includeThis) *includeThis = false; } break; + default: + /* Other modes don't make us stop */ + break; } if (stopsHere) @@ -5584,8 +5590,8 @@ RequiresWALControlPermissions(void) * target mode. This allows user control over the progress of recovery. */ static void -SetRecoveryTargetMode(int mode, TransactionId xid, TimestampTz ts, - XLogRecPtr lsn, int advance) +SetRecoveryTargetMode(RecoveryTargetMode mode, TransactionId xid, + TimestampTz ts, XLogRecPtr lsn, int advance) { /* use volatile pointer to prevent code rearrangement */ volatile XLogCtlData *xlogctl = XLogCtl; -- 2.39.5