aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Eisentraut <peter@eisentraut.org>2024-07-23 09:53:54 +0200
committerPeter Eisentraut <peter@eisentraut.org>2024-07-23 10:00:41 +0200
commit935e675f3c9efd0e39bf33db15ab85049cc4ee7c (patch)
tree9c996e50da9c00aa2cdc37ae1ade03ff3a550b5e /src
parentffb0603929617f39d449e942abe96cdba36e7545 (diff)
downloadpostgresql-935e675f3c9efd0e39bf33db15ab85049cc4ee7c.tar.gz
postgresql-935e675f3c9efd0e39bf33db15ab85049cc4ee7c.zip
Get rid of a global variable
bootstrap_data_checksum_version can just as easily be passed to where it is used via function arguments. Reviewed-by: Andres Freund <andres@anarazel.de> Discussion: https://www.postgresql.org/message-id/flat/e0a62134-83da-4ba4-8cdb-ceb0111c95ce@eisentraut.org
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/transam/xlog.c12
-rw-r--r--src/backend/bootstrap/bootstrap.c5
-rw-r--r--src/include/access/xlog.h2
3 files changed, 8 insertions, 11 deletions
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index d70ba67bac9..473a9c5c2f8 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -105,8 +105,6 @@
#include "utils/timestamp.h"
#include "utils/varlena.h"
-extern uint32 bootstrap_data_checksum_version;
-
/* timeline ID to be used when bootstrapping */
#define BootstrapTimeLineID 1
@@ -683,7 +681,7 @@ static void ValidateXLOGDirectoryStructure(void);
static void CleanupBackupHistory(void);
static void UpdateMinRecoveryPoint(XLogRecPtr lsn, bool force);
static bool PerformRecoveryXLogAction(void);
-static void InitControlFile(uint64 sysidentifier);
+static void InitControlFile(uint64 sysidentifier, uint32 data_checksum_version);
static void WriteControlFile(void);
static void ReadControlFile(void);
static void UpdateControlFile(void);
@@ -4190,7 +4188,7 @@ CleanupBackupHistory(void)
*/
static void
-InitControlFile(uint64 sysidentifier)
+InitControlFile(uint64 sysidentifier, uint32 data_checksum_version)
{
char mock_auth_nonce[MOCK_AUTH_NONCE_LEN];
@@ -4221,7 +4219,7 @@ InitControlFile(uint64 sysidentifier)
ControlFile->wal_level = wal_level;
ControlFile->wal_log_hints = wal_log_hints;
ControlFile->track_commit_timestamp = track_commit_timestamp;
- ControlFile->data_checksum_version = bootstrap_data_checksum_version;
+ ControlFile->data_checksum_version = data_checksum_version;
}
static void
@@ -4997,7 +4995,7 @@ XLOGShmemInit(void)
* and the initial XLOG segment.
*/
void
-BootStrapXLOG(void)
+BootStrapXLOG(uint32 data_checksum_version)
{
CheckPoint checkPoint;
char *buffer;
@@ -5139,7 +5137,7 @@ BootStrapXLOG(void)
openLogFile = -1;
/* Now create pg_control */
- InitControlFile(sysidentifier);
+ InitControlFile(sysidentifier, data_checksum_version);
ControlFile->time = checkPoint.time;
ControlFile->checkPoint = checkPoint.redo;
ControlFile->checkPointCopy = checkPoint;
diff --git a/src/backend/bootstrap/bootstrap.c b/src/backend/bootstrap/bootstrap.c
index 986f6f1d9ca..7637581a184 100644
--- a/src/backend/bootstrap/bootstrap.c
+++ b/src/backend/bootstrap/bootstrap.c
@@ -41,8 +41,6 @@
#include "utils/rel.h"
#include "utils/relmapper.h"
-uint32 bootstrap_data_checksum_version = 0; /* No checksum */
-
static void CheckerModeMain(void);
static void bootstrap_signals(void);
@@ -202,6 +200,7 @@ BootstrapModeMain(int argc, char *argv[], bool check_only)
char *progname = argv[0];
int flag;
char *userDoption = NULL;
+ uint32 bootstrap_data_checksum_version = 0; /* No checksum */
Assert(!IsUnderPostmaster);
@@ -332,7 +331,7 @@ BootstrapModeMain(int argc, char *argv[], bool check_only)
BaseInit();
bootstrap_signals();
- BootStrapXLOG();
+ BootStrapXLOG(bootstrap_data_checksum_version);
/*
* To ensure that src/common/link-canary.c is linked into the backend, we
diff --git a/src/include/access/xlog.h b/src/include/access/xlog.h
index 1a1f11a943f..c40fd56b291 100644
--- a/src/include/access/xlog.h
+++ b/src/include/access/xlog.h
@@ -231,7 +231,7 @@ extern bool DataChecksumsEnabled(void);
extern XLogRecPtr GetFakeLSNForUnloggedRel(void);
extern Size XLOGShmemSize(void);
extern void XLOGShmemInit(void);
-extern void BootStrapXLOG(void);
+extern void BootStrapXLOG(uint32 data_checksum_version);
extern void InitializeWalConsistencyChecking(void);
extern void LocalProcessControlFile(bool reset);
extern WalLevel GetActiveWalLevelOnStandby(void);