diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/access/heap/visibilitymap.c | 2 | ||||
-rw-r--r-- | src/backend/access/transam/commit_ts.c | 1 | ||||
-rw-r--r-- | src/backend/access/transam/multixact.c | 2 | ||||
-rw-r--r-- | src/backend/access/transam/slru.c | 1 | ||||
-rw-r--r-- | src/backend/access/transam/varsup.c | 2 | ||||
-rw-r--r-- | src/backend/access/transam/xlog.c | 16 | ||||
-rw-r--r-- | src/backend/access/transam/xlogutils.c | 20 | ||||
-rw-r--r-- | src/backend/commands/tablespace.c | 2 | ||||
-rw-r--r-- | src/backend/postmaster/startup.c | 1 | ||||
-rw-r--r-- | src/backend/storage/buffer/bufmgr.c | 2 | ||||
-rw-r--r-- | src/backend/storage/ipc/procarray.c | 2 | ||||
-rw-r--r-- | src/backend/storage/ipc/standby.c | 2 | ||||
-rw-r--r-- | src/backend/storage/lmgr/lock.c | 1 | ||||
-rw-r--r-- | src/backend/storage/lmgr/proc.c | 2 | ||||
-rw-r--r-- | src/backend/storage/smgr/smgr.c | 2 | ||||
-rw-r--r-- | src/include/access/xlog.h | 42 | ||||
-rw-r--r-- | src/include/access/xlogutils.h | 42 |
17 files changed, 75 insertions, 67 deletions
diff --git a/src/backend/access/heap/visibilitymap.c b/src/backend/access/heap/visibilitymap.c index 4720b35ee5c..114fbbdd307 100644 --- a/src/backend/access/heap/visibilitymap.c +++ b/src/backend/access/heap/visibilitymap.c @@ -88,7 +88,7 @@ #include "access/heapam_xlog.h" #include "access/visibilitymap.h" -#include "access/xlog.h" +#include "access/xlogutils.h" #include "miscadmin.h" #include "port/pg_bitutils.h" #include "storage/bufmgr.h" diff --git a/src/backend/access/transam/commit_ts.c b/src/backend/access/transam/commit_ts.c index 0985fa155ca..42ea8e53f2c 100644 --- a/src/backend/access/transam/commit_ts.c +++ b/src/backend/access/transam/commit_ts.c @@ -28,6 +28,7 @@ #include "access/htup_details.h" #include "access/slru.h" #include "access/transam.h" +#include "access/xlogutils.h" #include "catalog/pg_type.h" #include "funcapi.h" #include "miscadmin.h" diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c index b643564f16a..e6c70ed0bc2 100644 --- a/src/backend/access/transam/multixact.c +++ b/src/backend/access/transam/multixact.c @@ -74,8 +74,8 @@ #include "access/twophase.h" #include "access/twophase_rmgr.h" #include "access/xact.h" -#include "access/xlog.h" #include "access/xloginsert.h" +#include "access/xlogutils.h" #include "catalog/pg_type.h" #include "commands/dbcommands.h" #include "funcapi.h" diff --git a/src/backend/access/transam/slru.c b/src/backend/access/transam/slru.c index 82149ad7821..7585ae24ce9 100644 --- a/src/backend/access/transam/slru.c +++ b/src/backend/access/transam/slru.c @@ -54,6 +54,7 @@ #include "access/slru.h" #include "access/transam.h" #include "access/xlog.h" +#include "access/xlogutils.h" #include "miscadmin.h" #include "pgstat.h" #include "storage/fd.h" diff --git a/src/backend/access/transam/varsup.c b/src/backend/access/transam/varsup.c index 5b4898bb786..a6e98e71bd1 100644 --- a/src/backend/access/transam/varsup.c +++ b/src/backend/access/transam/varsup.c @@ -18,7 +18,7 @@ #include "access/subtrans.h" #include "access/transam.h" #include "access/xact.h" -#include "access/xlog.h" +#include "access/xlogutils.h" #include "commands/dbcommands.h" #include "miscadmin.h" #include "postmaster/autovacuum.h" diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 1e601d6282f..efb3ca273ed 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -193,22 +193,6 @@ CheckpointStatsData CheckpointStats; */ TimeLineID ThisTimeLineID = 0; -/* - * Are we doing recovery from XLOG? - * - * This is only ever true in the startup process; it should be read as meaning - * "this process is replaying WAL records", rather than "the system is in - * recovery mode". It should be examined primarily by functions that need - * to act differently when called from a WAL redo function (e.g., to skip WAL - * logging). To check whether the system is in recovery regardless of which - * process you're running in, use RecoveryInProgress() but only after shared - * memory startup and lock initialization. - */ -bool InRecovery = false; - -/* Are we in Hot Standby mode? Only valid in startup process, see xlog.h */ -HotStandbyState standbyState = STANDBY_DISABLED; - static XLogRecPtr LastRec; /* Local copy of WalRcv->flushedUpto */ diff --git a/src/backend/access/transam/xlogutils.c b/src/backend/access/transam/xlogutils.c index d17d660f460..b1702bc6bef 100644 --- a/src/backend/access/transam/xlogutils.c +++ b/src/backend/access/transam/xlogutils.c @@ -25,6 +25,7 @@ #include "access/xlogutils.h" #include "miscadmin.h" #include "pgstat.h" +#include "storage/fd.h" #include "storage/smgr.h" #include "utils/guc.h" #include "utils/hsearch.h" @@ -35,6 +36,25 @@ bool ignore_invalid_pages = false; /* + * Are we doing recovery from XLOG? + * + * This is only ever true in the startup process; it should be read as meaning + * "this process is replaying WAL records", rather than "the system is in + * recovery mode". It should be examined primarily by functions that need + * to act differently when called from a WAL redo function (e.g., to skip WAL + * logging). To check whether the system is in recovery regardless of which + * process you're running in, use RecoveryInProgress() but only after shared + * memory startup and lock initialization. + * + * This is updated from xlog.c, but lives here because it's mostly read by + * WAL redo functions. + */ +bool InRecovery = false; + +/* Are we in Hot Standby mode? Only valid in startup process, see xlogutils.h */ +HotStandbyState standbyState = STANDBY_DISABLED; + +/* * During XLOG replay, we may see XLOG records for incremental updates of * pages that no longer exist, because their relation was later dropped or * truncated. (Note: this is only possible when full_page_writes = OFF, diff --git a/src/backend/commands/tablespace.c b/src/backend/commands/tablespace.c index 0385fd61214..a54239a8b35 100644 --- a/src/backend/commands/tablespace.c +++ b/src/backend/commands/tablespace.c @@ -56,8 +56,8 @@ #include "access/sysattr.h" #include "access/tableam.h" #include "access/xact.h" -#include "access/xlog.h" #include "access/xloginsert.h" +#include "access/xlogutils.h" #include "catalog/catalog.h" #include "catalog/dependency.h" #include "catalog/indexing.h" diff --git a/src/backend/postmaster/startup.c b/src/backend/postmaster/startup.c index 69077bd2075..0f4f00d6895 100644 --- a/src/backend/postmaster/startup.c +++ b/src/backend/postmaster/startup.c @@ -20,6 +20,7 @@ #include "postgres.h" #include "access/xlog.h" +#include "access/xlogutils.h" #include "libpq/pqsignal.h" #include "miscadmin.h" #include "pgstat.h" diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c index 86ef607ff38..33d99f604ad 100644 --- a/src/backend/storage/buffer/bufmgr.c +++ b/src/backend/storage/buffer/bufmgr.c @@ -34,7 +34,7 @@ #include <unistd.h> #include "access/tableam.h" -#include "access/xlog.h" +#include "access/xlogutils.h" #include "catalog/catalog.h" #include "catalog/storage.h" #include "executor/instrument.h" diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c index 09c97c58b87..c7816fcfb30 100644 --- a/src/backend/storage/ipc/procarray.c +++ b/src/backend/storage/ipc/procarray.c @@ -52,7 +52,7 @@ #include "access/transam.h" #include "access/twophase.h" #include "access/xact.h" -#include "access/xlog.h" +#include "access/xlogutils.h" #include "catalog/catalog.h" #include "catalog/pg_authid.h" #include "commands/dbcommands.h" diff --git a/src/backend/storage/ipc/standby.c b/src/backend/storage/ipc/standby.c index aeecaf6cabf..077251c1a65 100644 --- a/src/backend/storage/ipc/standby.c +++ b/src/backend/storage/ipc/standby.c @@ -19,8 +19,8 @@ #include "access/transam.h" #include "access/twophase.h" #include "access/xact.h" -#include "access/xlog.h" #include "access/xloginsert.h" +#include "access/xlogutils.h" #include "miscadmin.h" #include "pgstat.h" #include "storage/bufmgr.h" diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c index 8c2138f1071..364654e1060 100644 --- a/src/backend/storage/lmgr/lock.c +++ b/src/backend/storage/lmgr/lock.c @@ -37,6 +37,7 @@ #include "access/twophase_rmgr.h" #include "access/xact.h" #include "access/xlog.h" +#include "access/xlogutils.h" #include "miscadmin.h" #include "pg_trace.h" #include "pgstat.h" diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c index 2575ea1ca0d..b7d9da0aa9f 100644 --- a/src/backend/storage/lmgr/proc.c +++ b/src/backend/storage/lmgr/proc.c @@ -37,7 +37,7 @@ #include "access/transam.h" #include "access/twophase.h" -#include "access/xact.h" +#include "access/xlogutils.h" #include "miscadmin.h" #include "pgstat.h" #include "postmaster/autovacuum.h" diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c index 4dc24649df9..0fcef4994be 100644 --- a/src/backend/storage/smgr/smgr.c +++ b/src/backend/storage/smgr/smgr.c @@ -17,7 +17,7 @@ */ #include "postgres.h" -#include "access/xlog.h" +#include "access/xlogutils.h" #include "lib/ilist.h" #include "storage/bufmgr.h" #include "storage/ipc.h" diff --git a/src/include/access/xlog.h b/src/include/access/xlog.h index ccfcf43d62a..0a8ede700de 100644 --- a/src/include/access/xlog.h +++ b/src/include/access/xlog.h @@ -32,48 +32,6 @@ extern int sync_method; extern PGDLLIMPORT TimeLineID ThisTimeLineID; /* current TLI */ /* - * Prior to 8.4, all activity during recovery was carried out by the startup - * process. This local variable continues to be used in many parts of the - * code to indicate actions taken by RecoveryManagers. Other processes that - * potentially perform work during recovery should check RecoveryInProgress(). - * See XLogCtl notes in xlog.c. - */ -extern bool InRecovery; - -/* - * Like InRecovery, standbyState is only valid in the startup process. - * In all other processes it will have the value STANDBY_DISABLED (so - * InHotStandby will read as false). - * - * In DISABLED state, we're performing crash recovery or hot standby was - * disabled in postgresql.conf. - * - * In INITIALIZED state, we've run InitRecoveryTransactionEnvironment, but - * we haven't yet processed a RUNNING_XACTS or shutdown-checkpoint WAL record - * to initialize our primary-transaction tracking system. - * - * When the transaction tracking is initialized, we enter the SNAPSHOT_PENDING - * state. The tracked information might still be incomplete, so we can't allow - * connections yet, but redo functions must update the in-memory state when - * appropriate. - * - * In SNAPSHOT_READY mode, we have full knowledge of transactions that are - * (or were) running on the primary at the current WAL location. Snapshots - * can be taken, and read-only queries can be run. - */ -typedef enum -{ - STANDBY_DISABLED, - STANDBY_INITIALIZED, - STANDBY_SNAPSHOT_PENDING, - STANDBY_SNAPSHOT_READY -} HotStandbyState; - -extern HotStandbyState standbyState; - -#define InHotStandby (standbyState >= STANDBY_SNAPSHOT_PENDING) - -/* * Recovery target type. * Only set during a Point in Time recovery, not when in standby mode. */ diff --git a/src/include/access/xlogutils.h b/src/include/access/xlogutils.h index 9ac602b674d..a5cb3d322c5 100644 --- a/src/include/access/xlogutils.h +++ b/src/include/access/xlogutils.h @@ -14,6 +14,48 @@ #include "access/xlogreader.h" #include "storage/bufmgr.h" +/* + * Prior to 8.4, all activity during recovery was carried out by the startup + * process. This local variable continues to be used in many parts of the + * code to indicate actions taken by RecoveryManagers. Other processes that + * potentially perform work during recovery should check RecoveryInProgress(). + * See XLogCtl notes in xlog.c. + */ +extern bool InRecovery; + +/* + * Like InRecovery, standbyState is only valid in the startup process. + * In all other processes it will have the value STANDBY_DISABLED (so + * InHotStandby will read as false). + * + * In DISABLED state, we're performing crash recovery or hot standby was + * disabled in postgresql.conf. + * + * In INITIALIZED state, we've run InitRecoveryTransactionEnvironment, but + * we haven't yet processed a RUNNING_XACTS or shutdown-checkpoint WAL record + * to initialize our primary-transaction tracking system. + * + * When the transaction tracking is initialized, we enter the SNAPSHOT_PENDING + * state. The tracked information might still be incomplete, so we can't allow + * connections yet, but redo functions must update the in-memory state when + * appropriate. + * + * In SNAPSHOT_READY mode, we have full knowledge of transactions that are + * (or were) running on the primary at the current WAL location. Snapshots + * can be taken, and read-only queries can be run. + */ +typedef enum +{ + STANDBY_DISABLED, + STANDBY_INITIALIZED, + STANDBY_SNAPSHOT_PENDING, + STANDBY_SNAPSHOT_READY +} HotStandbyState; + +extern HotStandbyState standbyState; + +#define InHotStandby (standbyState >= STANDBY_SNAPSHOT_PENDING) + extern bool XLogHaveInvalidPages(void); extern void XLogCheckInvalidPages(void); |