diff options
Diffstat (limited to 'src/include/access/xlog.h')
-rw-r--r-- | src/include/access/xlog.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/include/access/xlog.h b/src/include/access/xlog.h index 961e0506221..9567379f49d 100644 --- a/src/include/access/xlog.h +++ b/src/include/access/xlog.h @@ -98,7 +98,6 @@ extern int wal_keep_segments; extern int XLOGbuffers; extern int XLogArchiveTimeout; extern int wal_retrieve_retry_interval; -extern bool XLogArchiveMode; extern char *XLogArchiveCommand; extern bool EnableHotStandby; extern bool fullPageWrites; @@ -108,6 +107,15 @@ extern bool log_checkpoints; extern int CheckPointSegments; +/* Archive modes */ +typedef enum ArchiveMode +{ + ARCHIVE_MODE_OFF = 0, /* disabled */ + ARCHIVE_MODE_ON, /* enabled while server is running normally */ + ARCHIVE_MODE_ALWAYS /* enabled always (even during recovery) */ +} ArchiveMode; +extern int XLogArchiveMode; + /* WAL levels */ typedef enum WalLevel { @@ -118,7 +126,8 @@ typedef enum WalLevel } WalLevel; extern int wal_level; -#define XLogArchivingActive() (XLogArchiveMode && wal_level >= WAL_LEVEL_ARCHIVE) +#define XLogArchivingActive() \ + (XLogArchiveMode > ARCHIVE_MODE_OFF && wal_level >= WAL_LEVEL_ARCHIVE) #define XLogArchiveCommandSet() (XLogArchiveCommand[0] != '\0') /* |