codekingpro/portable-devtools
115k
1/*-------------------------------------------------------------------------2 * origin.h3 * Exports from replication/logical/origin.c4 *5 * Copyright (c) 2013-2023, PostgreSQL Global Development Group6 *7 * src/include/replication/origin.h8 *-------------------------------------------------------------------------9 */10#ifndef PG_ORIGIN_H11#define PG_ORIGIN_H12 13#include "access/xlog.h"14#include "access/xlogdefs.h"15#include "access/xlogreader.h"16#include "catalog/pg_replication_origin.h"17 18typedef struct xl_replorigin_set19{20 XLogRecPtr remote_lsn;21 RepOriginId node_id;22 bool force;23} xl_replorigin_set;24 25typedef struct xl_replorigin_drop26{27 RepOriginId node_id;28} xl_replorigin_drop;29 30#define XLOG_REPLORIGIN_SET 0x0031#define XLOG_REPLORIGIN_DROP 0x1032 33#define InvalidRepOriginId 034#define DoNotReplicateId PG_UINT16_MAX35 36extern PGDLLIMPORT RepOriginId replorigin_session_origin;37extern PGDLLIMPORT XLogRecPtr replorigin_session_origin_lsn;38extern PGDLLIMPORT TimestampTz replorigin_session_origin_timestamp;39 40/* API for querying & manipulating replication origins */41extern RepOriginId replorigin_by_name(const char *roname, bool missing_ok);42extern RepOriginId replorigin_create(const char *roname);43extern void replorigin_drop_by_name(const char *name, bool missing_ok, bool nowait);44extern bool replorigin_by_oid(RepOriginId roident, bool missing_ok,45 char **roname);46 47/* API for querying & manipulating replication progress tracking */48extern void replorigin_advance(RepOriginId node,49 XLogRecPtr remote_commit,50 XLogRecPtr local_commit,51 bool go_backward, bool wal_log);52extern XLogRecPtr replorigin_get_progress(RepOriginId node, bool flush);53 54extern void replorigin_session_advance(XLogRecPtr remote_commit,55 XLogRecPtr local_commit);56extern void replorigin_session_setup(RepOriginId node, int acquired_by);57extern void replorigin_session_reset(void);58extern XLogRecPtr replorigin_session_get_progress(bool flush);59 60/* Checkpoint/Startup integration */61extern void CheckPointReplicationOrigin(void);62extern void StartupReplicationOrigin(void);63 64/* WAL logging */65extern void replorigin_redo(XLogReaderState *record);66extern void replorigin_desc(StringInfo buf, XLogReaderState *record);67extern const char *replorigin_identify(uint8 info);68 69/* shared memory allocation */70extern Size ReplicationOriginShmemSize(void);71extern void ReplicationOriginShmemInit(void);72 73#endif /* PG_ORIGIN_H */74 