PostgreSQL Source Code git master
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
origin.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 * origin.h
3 * Exports from replication/logical/origin.c
4 *
5 * Copyright (c) 2013-2025, PostgreSQL Global Development Group
6 *
7 * src/include/replication/origin.h
8 *-------------------------------------------------------------------------
9 */
10#ifndef PG_ORIGIN_H
11#define PG_ORIGIN_H
12
13#include "access/xlog.h"
14#include "access/xlogdefs.h"
15#include "access/xlogreader.h"
17
18typedef struct xl_replorigin_set
19{
22 bool force;
24
25typedef struct xl_replorigin_drop
26{
29
30#define XLOG_REPLORIGIN_SET 0x00
31#define XLOG_REPLORIGIN_DROP 0x10
32
33#define InvalidRepOriginId 0
34#define DoNotReplicateId PG_UINT16_MAX
35
39
40/* GUCs */
42
43/* API for querying & manipulating replication origins */
44extern RepOriginId replorigin_by_name(const char *roname, bool missing_ok);
45extern RepOriginId replorigin_create(const char *roname);
46extern void replorigin_drop_by_name(const char *name, bool missing_ok, bool nowait);
47extern bool replorigin_by_oid(RepOriginId roident, bool missing_ok,
48 char **roname);
49
50/* API for querying & manipulating replication progress tracking */
51extern void replorigin_advance(RepOriginId node,
52 XLogRecPtr remote_commit,
53 XLogRecPtr local_commit,
54 bool go_backward, bool wal_log);
55extern XLogRecPtr replorigin_get_progress(RepOriginId node, bool flush);
56
57extern void replorigin_session_advance(XLogRecPtr remote_commit,
58 XLogRecPtr local_commit);
59extern void replorigin_session_setup(RepOriginId node, int acquired_by);
60extern void replorigin_session_reset(void);
62
63/* Checkpoint/Startup integration */
64extern void CheckPointReplicationOrigin(void);
65extern void StartupReplicationOrigin(void);
66
67/* WAL logging */
68extern void replorigin_redo(XLogReaderState *record);
69extern void replorigin_desc(StringInfo buf, XLogReaderState *record);
70extern const char *replorigin_identify(uint8 info);
71
72/* shared memory allocation */
74extern void ReplicationOriginShmemInit(void);
75
76#endif /* PG_ORIGIN_H */
#define PGDLLIMPORT
Definition: c.h:1291
uint8_t uint8
Definition: c.h:500
size_t Size
Definition: c.h:576
int64 TimestampTz
Definition: timestamp.h:39
RepOriginId replorigin_by_name(const char *roname, bool missing_ok)
Definition: origin.c:226
Size ReplicationOriginShmemSize(void)
Definition: origin.c:511
RepOriginId replorigin_create(const char *roname)
Definition: origin.c:257
void replorigin_session_reset(void)
Definition: origin.c:1190
void replorigin_session_advance(XLogRecPtr remote_commit, XLogRecPtr local_commit)
Definition: origin.c:1219
PGDLLIMPORT XLogRecPtr replorigin_session_origin_lsn
Definition: origin.c:164
bool replorigin_by_oid(RepOriginId roident, bool missing_ok, char **roname)
Definition: origin.c:470
void replorigin_desc(StringInfo buf, XLogReaderState *record)
XLogRecPtr replorigin_get_progress(RepOriginId node, bool flush)
Definition: origin.c:1014
struct xl_replorigin_drop xl_replorigin_drop
const char * replorigin_identify(uint8 info)
PGDLLIMPORT int max_active_replication_origins
Definition: origin.c:104
void StartupReplicationOrigin(void)
Definition: origin.c:699
void replorigin_drop_by_name(const char *name, bool missing_ok, bool nowait)
Definition: origin.c:416
void replorigin_advance(RepOriginId node, XLogRecPtr remote_commit, XLogRecPtr local_commit, bool go_backward, bool wal_log)
Definition: origin.c:888
void replorigin_session_setup(RepOriginId node, int acquired_by)
Definition: origin.c:1097
void CheckPointReplicationOrigin(void)
Definition: origin.c:573
PGDLLIMPORT RepOriginId replorigin_session_origin
Definition: origin.c:163
XLogRecPtr replorigin_session_get_progress(bool flush)
Definition: origin.c:1237
void ReplicationOriginShmemInit(void)
Definition: origin.c:526
struct xl_replorigin_set xl_replorigin_set
PGDLLIMPORT TimestampTz replorigin_session_origin_timestamp
Definition: origin.c:165
void replorigin_redo(XLogReaderState *record)
Definition: origin.c:827
static char * buf
Definition: pg_test_fsync.c:72
RepOriginId node_id
Definition: origin.h:27
RepOriginId node_id
Definition: origin.h:21
XLogRecPtr remote_lsn
Definition: origin.h:20
const char * name
uint16 RepOriginId
Definition: xlogdefs.h:65
uint64 XLogRecPtr
Definition: xlogdefs.h:21