Skip to content

Commit 935e675

Browse files
committed
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
1 parent ffb0603 commit 935e675

File tree

3 files changed

+8
-11
lines changed

3 files changed

+8
-11
lines changed

src/backend/access/transam/xlog.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,6 @@
105105
#include "utils/timestamp.h"
106106
#include "utils/varlena.h"
107107

108-
extern uint32 bootstrap_data_checksum_version;
109-
110108
/* timeline ID to be used when bootstrapping */
111109
#define BootstrapTimeLineID 1
112110

@@ -683,7 +681,7 @@ static void ValidateXLOGDirectoryStructure(void);
683681
static void CleanupBackupHistory(void);
684682
static void UpdateMinRecoveryPoint(XLogRecPtr lsn, bool force);
685683
static bool PerformRecoveryXLogAction(void);
686-
static void InitControlFile(uint64 sysidentifier);
684+
static void InitControlFile(uint64 sysidentifier, uint32 data_checksum_version);
687685
static void WriteControlFile(void);
688686
static void ReadControlFile(void);
689687
static void UpdateControlFile(void);
@@ -4190,7 +4188,7 @@ CleanupBackupHistory(void)
41904188
*/
41914189

41924190
static void
4193-
InitControlFile(uint64 sysidentifier)
4191+
InitControlFile(uint64 sysidentifier, uint32 data_checksum_version)
41944192
{
41954193
char mock_auth_nonce[MOCK_AUTH_NONCE_LEN];
41964194

@@ -4221,7 +4219,7 @@ InitControlFile(uint64 sysidentifier)
42214219
ControlFile->wal_level = wal_level;
42224220
ControlFile->wal_log_hints = wal_log_hints;
42234221
ControlFile->track_commit_timestamp = track_commit_timestamp;
4224-
ControlFile->data_checksum_version = bootstrap_data_checksum_version;
4222+
ControlFile->data_checksum_version = data_checksum_version;
42254223
}
42264224

42274225
static void
@@ -4997,7 +4995,7 @@ XLOGShmemInit(void)
49974995
* and the initial XLOG segment.
49984996
*/
49994997
void
5000-
BootStrapXLOG(void)
4998+
BootStrapXLOG(uint32 data_checksum_version)
50014999
{
50025000
CheckPoint checkPoint;
50035001
char *buffer;
@@ -5139,7 +5137,7 @@ BootStrapXLOG(void)
51395137
openLogFile = -1;
51405138

51415139
/* Now create pg_control */
5142-
InitControlFile(sysidentifier);
5140+
InitControlFile(sysidentifier, data_checksum_version);
51435141
ControlFile->time = checkPoint.time;
51445142
ControlFile->checkPoint = checkPoint.redo;
51455143
ControlFile->checkPointCopy = checkPoint;

src/backend/bootstrap/bootstrap.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@
4141
#include "utils/rel.h"
4242
#include "utils/relmapper.h"
4343

44-
uint32 bootstrap_data_checksum_version = 0; /* No checksum */
45-
4644

4745
static void CheckerModeMain(void);
4846
static void bootstrap_signals(void);
@@ -202,6 +200,7 @@ BootstrapModeMain(int argc, char *argv[], bool check_only)
202200
char *progname = argv[0];
203201
int flag;
204202
char *userDoption = NULL;
203+
uint32 bootstrap_data_checksum_version = 0; /* No checksum */
205204

206205
Assert(!IsUnderPostmaster);
207206

@@ -332,7 +331,7 @@ BootstrapModeMain(int argc, char *argv[], bool check_only)
332331
BaseInit();
333332

334333
bootstrap_signals();
335-
BootStrapXLOG();
334+
BootStrapXLOG(bootstrap_data_checksum_version);
336335

337336
/*
338337
* To ensure that src/common/link-canary.c is linked into the backend, we

src/include/access/xlog.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ extern bool DataChecksumsEnabled(void);
231231
extern XLogRecPtr GetFakeLSNForUnloggedRel(void);
232232
extern Size XLOGShmemSize(void);
233233
extern void XLOGShmemInit(void);
234-
extern void BootStrapXLOG(void);
234+
extern void BootStrapXLOG(uint32 data_checksum_version);
235235
extern void InitializeWalConsistencyChecking(void);
236236
extern void LocalProcessControlFile(bool reset);
237237
extern WalLevel GetActiveWalLevelOnStandby(void);

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy