PostgreSQL Source Code: src/include/access/xlog.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11#ifndef XLOG_H

12#define XLOG_H

13

19

20

21

23{

31

35

36

59

61

62

64{

70

71

73{

78

79

81{

87

88

90{

95

97

98

99#define XLogArchivingActive() \

100 (AssertMacro(XLogArchiveMode == ARCHIVE_MODE_OFF || wal_level >= WAL_LEVEL_REPLICA), XLogArchiveMode > ARCHIVE_MODE_OFF)

101

102#define XLogArchivingAlways() \

103 (AssertMacro(XLogArchiveMode == ARCHIVE_MODE_OFF || wal_level >= WAL_LEVEL_REPLICA), XLogArchiveMode == ARCHIVE_MODE_ALWAYS)

104

105

106

107

108

109#define XLogIsNeeded() (wal_level >= WAL_LEVEL_REPLICA)

110

111

112

113

114

115

116

117

118

119

120#define XLogHintBitIsNeeded() (DataChecksumsEnabled() || wal_log_hints)

121

122

123#define XLogStandbyInfoActive() (wal_level >= WAL_LEVEL_REPLICA)

124

125

126#define XLogLogicalInfoActive() (wal_level >= WAL_LEVEL_LOGICAL)

127

128#ifdef WAL_DEBUG

130#endif

131

132

133

134

135

136

137

138

139#define CHECKPOINT_IS_SHUTDOWN 0x0001

140#define CHECKPOINT_END_OF_RECOVERY 0x0002

141

142#define CHECKPOINT_IMMEDIATE 0x0004

143#define CHECKPOINT_FORCE 0x0008

144#define CHECKPOINT_FLUSH_ALL 0x0010

145

146

147#define CHECKPOINT_WAIT 0x0020

148#define CHECKPOINT_REQUESTED 0x0040

149

150#define CHECKPOINT_CAUSE_XLOG 0x0080

151#define CHECKPOINT_CAUSE_TIME 0x0100

152

153

154

156#define XLOG_INCLUDE_ORIGIN 0x01

157#define XLOG_MARK_UNIMPORTANT 0x02

158

160

179

180

181

183

185

186

187

188

194

198

201

205 int num_fpi,

206 bool topxid_included);

212

218

222

224

230

257

259

262

263

264

265

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

293

302

303#define RECOVERY_SIGNAL_FILE "recovery.signal"

304#define STANDBY_SIGNAL_FILE "standby.signal"

305#define BACKUP_LABEL_FILE "backup_label"

306#define BACKUP_LABEL_OLD "backup_label.old"

308#define TABLESPACE_MAP "tablespace_map"

309#define TABLESPACE_MAP_OLD "tablespace_map.old"

311

312#define PROMOTE_SIGNAL_FILE "promote"

313

314#endif

static int fd(const char *x, int i)

uint64 ckpt_agg_sync_time

TimestampTz ckpt_sync_end_t

DecodedXLogRecord * record

int XLogFileInit(XLogSegNo logsegno, TimeLineID logtli)

uint64 GetSystemIdentifier(void)

void UpdateFullPageWrites(void)

bool RecoveryInProgress(void)

void GetFullPageWriteInfo(XLogRecPtr *RedoRecPtr_p, bool *doPageWrites_p)

TimeLineID GetWALInsertionTimeLine(void)

PGDLLIMPORT bool log_checkpoints

void do_pg_abort_backup(int code, Datum arg)

XLogSegNo XLogGetLastRemovedSegno(void)

void xlog_desc(StringInfo buf, struct XLogReaderState *record)

Size WALReadFromBuffers(char *dstbuf, XLogRecPtr startptr, Size count, TimeLineID tli)

XLogRecPtr GetRedoRecPtr(void)

void SetInstallXLogFileSegmentActive(void)

XLogRecPtr XLogInsertRecord(struct XLogRecData *rdata, XLogRecPtr fpw_lsn, uint8 flags, int num_fpi, bool topxid_included)

bool IsInstallXLogFileSegmentActive(void)

PGDLLIMPORT XLogRecPtr XactLastRecEnd

void BootStrapXLOG(uint32 data_checksum_version)

bool CreateRestartPoint(int flags)

PGDLLIMPORT int wal_sync_method

PGDLLIMPORT bool EnableHotStandby

XLogRecPtr GetInsertRecPtr(void)

SessionBackupState get_backup_status(void)

void CheckXLogRemoved(XLogSegNo segno, TimeLineID tli)

PGDLLIMPORT CheckpointStatsData CheckpointStats

WALAvailability GetWALAvailability(XLogRecPtr targetLSN)

PGDLLIMPORT int wal_retrieve_retry_interval

void ShutdownXLOG(int code, Datum arg)

bool DataChecksumsEnabled(void)

RecoveryState GetRecoveryState(void)

const char * xlog_identify(uint8 info)

PGDLLIMPORT int wal_compression

void XLogSetReplicationSlotMinimumLSN(XLogRecPtr lsn)

PGDLLIMPORT int CommitSiblings

void SwitchIntoArchiveRecovery(XLogRecPtr EndRecPtr, TimeLineID replayTLI)

bool GetDefaultCharSignedness(void)

PGDLLIMPORT int wal_decode_buffer_size

XLogRecPtr GetXLogInsertRecPtr(void)

void SetWalWriterSleeping(bool sleeping)

struct CheckpointStatsData CheckpointStatsData

int XLogFileOpen(XLogSegNo segno, TimeLineID tli)

XLogRecPtr GetFlushRecPtr(TimeLineID *insertTLI)

WalLevel GetActiveWalLevelOnStandby(void)

PGDLLIMPORT int CheckPointSegments

void xlog_redo(struct XLogReaderState *record)

void InitializeWalConsistencyChecking(void)

PGDLLIMPORT bool fullPageWrites

void RemoveNonParentXlogFiles(XLogRecPtr switchpoint, TimeLineID newTLI)

XLogRecPtr GetLastImportantRecPtr(void)

PGDLLIMPORT XLogRecPtr ProcLastRecPtr

PGDLLIMPORT char * wal_consistency_checking_string

bool XLogNeedsFlush(XLogRecPtr record)

PGDLLIMPORT int wal_segment_size

void register_persistent_abort_backup_handler(void)

void ReachedEndOfBackup(XLogRecPtr EndRecPtr, TimeLineID tli)

void LocalProcessControlFile(bool reset)

XLogSegNo XLogGetOldestSegno(TimeLineID tli)

PGDLLIMPORT int XLogArchiveMode

XLogRecPtr GetXLogWriteRecPtr(void)

PGDLLIMPORT char * XLogArchiveCommand

PGDLLIMPORT int wal_keep_size_mb

bool XLogBackgroundFlush(void)

char * GetMockAuthenticationNonce(void)

PGDLLIMPORT bool * wal_consistency_checking

PGDLLIMPORT int max_slot_wal_keep_size_mb

bool XLogInsertAllowed(void)

void do_pg_backup_start(const char *backupidstr, bool fast, List **tablespaces, BackupState *state, StringInfo tblspcmapfile)

PGDLLIMPORT bool wal_init_zero

PGDLLIMPORT int min_wal_size_mb

PGDLLIMPORT int CommitDelay

XLogRecPtr XLogRestorePoint(const char *rpName)

PGDLLIMPORT int XLOGbuffers

TimeLineID GetWALInsertionTimeLineIfSet(void)

void do_pg_backup_stop(BackupState *state, bool waitforarchive)

PGDLLIMPORT bool wal_recycle

bool CreateCheckPoint(int flags)

XLogRecPtr GetFakeLSNForUnloggedRel(void)

PGDLLIMPORT int XLogArchiveTimeout

void XLogPutNextOid(Oid nextOid)

void XLogFlush(XLogRecPtr record)

PGDLLIMPORT XLogRecPtr XactLastCommitEnd

PGDLLIMPORT int wal_level

PGDLLIMPORT bool wal_log_hints

void XLogShutdownWalRcv(void)

void issue_xlog_fsync(int fd, XLogSegNo segno, TimeLineID tli)

PGDLLIMPORT int max_wal_size_mb

void XLogSetAsyncXactLSN(XLogRecPtr asyncXactLSN)

PGDLLIMPORT bool track_wal_io_timing

bool XLogCheckpointNeeded(XLogSegNo new_segno)

@ WAL_SYNC_METHOD_FDATASYNC

@ WAL_SYNC_METHOD_FSYNC_WRITETHROUGH

@ WAL_SYNC_METHOD_OPEN_DSYNC