mirror of
https://github.com/postgres/postgres.git
synced 2025-07-26 01:22:12 +03:00
Move InRecovery and standbyState global vars to xlogutils.c.
They are used in code that runs both during normal operation and during WAL replay, and needs to behave differently during replay. Move them to xlogutils.c, because that's where we have other helper functions used by redo routines. Reviewed-by: Andres Freund Discussion: https://www.postgresql.org/message-id/b3b71061-4919-e882-4857-27e370ab134a%40iki.fi
This commit is contained in:
@ -31,48 +31,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.
|
||||
|
Reference in New Issue
Block a user