PostgreSQL Source Code
git master
|
#include "access/xlog.h"
#include "access/xlogdefs.h"
#include "access/xlogreader.h"
#include "catalog/pg_replication_origin.h"
Go to the source code of this file.
Data Structures | |
struct | xl_replorigin_set |
struct | xl_replorigin_drop |
Macros | |
#define | XLOG_REPLORIGIN_SET 0x00 |
#define | XLOG_REPLORIGIN_DROP 0x10 |
#define | InvalidRepOriginId 0 |
#define | DoNotReplicateId PG_UINT16_MAX |
Typedefs | |
typedef struct xl_replorigin_set | xl_replorigin_set |
typedef struct xl_replorigin_drop | xl_replorigin_drop |
Functions | |
RepOriginId | replorigin_by_name (char *name, bool missing_ok) |
RepOriginId | replorigin_create (char *name) |
void | replorigin_drop_by_name (char *name, bool missing_ok, bool nowait) |
bool | replorigin_by_oid (RepOriginId roident, bool missing_ok, char **roname) |
void | replorigin_advance (RepOriginId node, XLogRecPtr remote_commit, XLogRecPtr local_commit, bool go_backward, bool wal_log) |
XLogRecPtr | replorigin_get_progress (RepOriginId node, bool flush) |
void | replorigin_session_advance (XLogRecPtr remote_commit, XLogRecPtr local_commit) |
void | replorigin_session_setup (RepOriginId node) |
void | replorigin_session_reset (void) |
XLogRecPtr | replorigin_session_get_progress (bool flush) |
void | CheckPointReplicationOrigin (void) |
void | StartupReplicationOrigin (void) |
void | replorigin_redo (XLogReaderState *record) |
void | replorigin_desc (StringInfo buf, XLogReaderState *record) |
const char * | replorigin_identify (uint8 info) |
Size | ReplicationOriginShmemSize (void) |
void | ReplicationOriginShmemInit (void) |
Variables | |
PGDLLIMPORT RepOriginId | replorigin_session_origin |
PGDLLIMPORT XLogRecPtr | replorigin_session_origin_lsn |
PGDLLIMPORT TimestampTz | replorigin_session_origin_timestamp |
#define DoNotReplicateId PG_UINT16_MAX |
Definition at line 34 of file origin.h.
Referenced by EndPrepare(), RecordTransactionAbortPrepared(), RecordTransactionCommit(), RecordTransactionCommitPrepared(), replorigin_advance(), and replorigin_by_oid().
#define InvalidRepOriginId 0 |
Definition at line 33 of file origin.h.
Referenced by CheckPointReplicationOrigin(), CommitTsShmemInit(), DeactivateCommitTs(), DecodeXLogRecord(), EndPrepare(), pg_decode_filter(), pg_replication_origin_session_is_setup(), pg_replication_origin_session_reset(), pg_show_replication_origin_status(), pgoutput_begin_txn(), pgoutput_stream_start(), PrepareRedoAdd(), RecordTransactionAbortPrepared(), RecordTransactionCommit(), RecordTransactionCommitPrepared(), replorigin_advance(), replorigin_by_oid(), replorigin_drop_guts(), replorigin_redo(), replorigin_session_advance(), replorigin_session_setup(), restoreTwoPhaseData(), TransactionIdGetCommitTsData(), xact_redo_commit(), XactLogAbortRecord(), XactLogCommitRecord(), and XLogRecordAssemble().
#define XLOG_REPLORIGIN_DROP 0x10 |
Definition at line 31 of file origin.h.
Referenced by replorigin_desc(), replorigin_drop_guts(), replorigin_identify(), and replorigin_redo().
#define XLOG_REPLORIGIN_SET 0x00 |
Definition at line 30 of file origin.h.
Referenced by replorigin_advance(), replorigin_desc(), replorigin_identify(), and replorigin_redo().
typedef struct xl_replorigin_drop xl_replorigin_drop |
typedef struct xl_replorigin_set xl_replorigin_set |
void CheckPointReplicationOrigin | ( | void | ) |
Definition at line 557 of file origin.c.
References CloseTransientFile(), COMP_CRC32C, durable_rename(), ereport, errcode_for_file_access(), errmsg(), FIN_CRC32C, i, INIT_CRC32C, InvalidRepOriginId, ReplicationState::local_lsn, ReplicationState::lock, LW_SHARED, LWLockAcquire(), LWLockRelease(), max_replication_slots, OpenTransientFile(), PANIC, PG_BINARY, ReplicationState::remote_lsn, ReplicationStateOnDisk::remote_lsn, REPLICATION_STATE_MAGIC, ReplicationState::roident, ReplicationStateOnDisk::roident, write, and XLogFlush().
Referenced by CheckPointGuts().
void ReplicationOriginShmemInit | ( | void | ) |
Definition at line 510 of file origin.c.
References ConditionVariableInit(), i, ReplicationState::lock, LWLockInitialize(), LWTRANCHE_REPLICATION_ORIGIN_STATE, max_replication_slots, MemSet, ReplicationState::origin_cv, ReplicationOriginShmemSize(), ShmemInitStruct(), ReplicationStateCtl::states, and ReplicationStateCtl::tranche_id.
Referenced by CreateSharedMemoryAndSemaphores().
Size ReplicationOriginShmemSize | ( | void | ) |
Definition at line 490 of file origin.c.
References add_size(), max_replication_slots, mul_size(), and offsetof.
Referenced by CreateSharedMemoryAndSemaphores(), and ReplicationOriginShmemInit().
void replorigin_advance | ( | RepOriginId | node, |
XLogRecPtr | remote_commit, | ||
XLogRecPtr | local_commit, | ||
bool | go_backward, | ||
bool | wal_log | ||
) |
Definition at line 872 of file origin.c.
References ReplicationState::acquired_by, Assert, DoNotReplicateId, ereport, errcode(), errhint(), errmsg(), ERROR, xl_replorigin_set::force, i, InvalidRepOriginId, InvalidXLogRecPtr, ReplicationState::local_lsn, ReplicationState::lock, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), max_replication_slots, xl_replorigin_set::node_id, xl_replorigin_set::remote_lsn, ReplicationState::remote_lsn, ReplicationState::roident, XLOG_REPLORIGIN_SET, XLogBeginInsert(), XLogInsert(), and XLogRegisterData().
Referenced by LogicalRepSyncTableStart(), pg_replication_origin_advance(), PrepareRedoAdd(), replorigin_redo(), xact_redo_abort(), and xact_redo_commit().
RepOriginId replorigin_by_name | ( | char * | name, |
bool | missing_ok | ||
) |
Definition at line 209 of file origin.c.
References CStringGetTextDatum, ereport, errcode(), errmsg(), ERROR, GETSTRUCT, HeapTupleIsValid, InvalidOid, ReleaseSysCache(), REPLORIGNAME, ReplicationState::roident, and SearchSysCache1().
Referenced by ApplyWorkerMain(), LogicalRepSyncTableStart(), pg_replication_origin_advance(), pg_replication_origin_oid(), pg_replication_origin_progress(), pg_replication_origin_session_setup(), and replorigin_drop_by_name().
bool replorigin_by_oid | ( | RepOriginId | roident, |
bool | missing_ok, | ||
char ** | roname | ||
) |
Definition at line 449 of file origin.c.
References Assert, DoNotReplicateId, ereport, errcode(), errmsg(), ERROR, GETSTRUCT, HeapTupleIsValid, InvalidRepOriginId, ObjectIdGetDatum, OidIsValid, ReleaseSysCache(), REPLORIGIDENT, SearchSysCache1(), and text_to_cstring().
Referenced by pg_show_replication_origin_status(), pgoutput_begin_txn(), and pgoutput_stream_start().
RepOriginId replorigin_create | ( | char * | name | ) |
Definition at line 240 of file origin.c.
References Assert, BTEqualStrategyNumber, CatalogTupleInsert(), CHECK_FOR_INTERRUPTS, CommandCounterIncrement(), CStringGetTextDatum, ereport, errcode(), errmsg(), ERROR, ExclusiveLock, heap_form_tuple(), heap_freetuple(), HeapTupleIsValid, InitDirtySnapshot, InvalidOid, IsTransactionState(), sort-test::key, ObjectIdGetDatum, PG_UINT16_MAX, RelationGetDescr, ReplicationOriginIdentIndex, ReplicationState::roident, ScanKeyInit(), systable_beginscan(), systable_endscan(), systable_getnext(), table_close(), table_open(), and values.
Referenced by ApplyWorkerMain(), CreateSubscription(), LogicalRepSyncTableStart(), and pg_replication_origin_create().
void replorigin_desc | ( | StringInfo | buf, |
XLogReaderState * | record | ||
) |
Definition at line 19 of file replorigindesc.c.
References appendStringInfo(), xl_replorigin_set::force, LSN_FORMAT_ARGS, xl_replorigin_set::node_id, xl_replorigin_drop::node_id, xl_replorigin_set::remote_lsn, XLOG_REPLORIGIN_DROP, XLOG_REPLORIGIN_SET, XLogRecGetData, XLogRecGetInfo, and XLR_INFO_MASK.
Definition at line 414 of file origin.c.
References Assert, ExclusiveLock, IsTransactionState(), NoLock, OidIsValid, replorigin_by_name(), replorigin_drop_guts(), ReplicationState::roident, table_close(), and table_open().
Referenced by AlterSubscription_refresh(), DropSubscription(), pg_replication_origin_drop(), and process_syncing_tables_for_apply().
XLogRecPtr replorigin_get_progress | ( | RepOriginId | node, |
bool | flush | ||
) |
Definition at line 995 of file origin.c.
References i, InvalidXLogRecPtr, ReplicationState::local_lsn, ReplicationState::lock, LW_SHARED, LWLockAcquire(), LWLockRelease(), max_replication_slots, ReplicationState::remote_lsn, ReplicationState::roident, and XLogFlush().
Referenced by pg_replication_origin_progress().
const char* replorigin_identify | ( | uint8 | info | ) |
Definition at line 51 of file replorigindesc.c.
References XLOG_REPLORIGIN_DROP, and XLOG_REPLORIGIN_SET.
void replorigin_redo | ( | XLogReaderState * | record | ) |
Definition at line 811 of file origin.c.
References elog, XLogReaderState::EndRecPtr, xl_replorigin_set::force, i, InvalidRepOriginId, InvalidXLogRecPtr, ReplicationState::local_lsn, max_replication_slots, xl_replorigin_set::node_id, xl_replorigin_drop::node_id, PANIC, xl_replorigin_set::remote_lsn, ReplicationState::remote_lsn, replorigin_advance(), ReplicationState::roident, XLOG_REPLORIGIN_DROP, XLOG_REPLORIGIN_SET, XLogRecGetData, XLogRecGetInfo, and XLR_INFO_MASK.
void replorigin_session_advance | ( | XLogRecPtr | remote_commit, |
XLogRecPtr | local_commit | ||
) |
Definition at line 1185 of file origin.c.
References Assert, InvalidRepOriginId, ReplicationState::local_lsn, ReplicationState::lock, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), ReplicationState::remote_lsn, and ReplicationState::roident.
Referenced by EndPrepare(), RecordTransactionAbortPrepared(), RecordTransactionCommit(), and RecordTransactionCommitPrepared().
XLogRecPtr replorigin_session_get_progress | ( | bool | flush | ) |
Definition at line 1203 of file origin.c.
References Assert, InvalidXLogRecPtr, ReplicationState::local_lsn, ReplicationState::lock, LW_SHARED, LWLockAcquire(), LWLockRelease(), ReplicationState::remote_lsn, and XLogFlush().
Referenced by ApplyWorkerMain(), LogicalRepSyncTableStart(), and pg_replication_origin_session_progress().
void replorigin_session_reset | ( | void | ) |
Definition at line 1156 of file origin.c.
References ReplicationState::acquired_by, Assert, ConditionVariableBroadcast(), ereport, errcode(), errmsg(), ERROR, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), max_replication_slots, and ReplicationState::origin_cv.
Referenced by pg_replication_origin_session_reset().
void replorigin_session_setup | ( | RepOriginId | node | ) |
Definition at line 1068 of file origin.c.
References ReplicationState::acquired_by, Assert, ConditionVariableBroadcast(), ereport, errcode(), errhint(), errmsg(), ERROR, i, InvalidRepOriginId, InvalidXLogRecPtr, ReplicationState::local_lsn, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), max_replication_slots, MyProcPid, on_shmem_exit(), ReplicationState::origin_cv, ReplicationState::remote_lsn, ReplicationOriginExitCleanup(), and ReplicationState::roident.
Referenced by ApplyWorkerMain(), LogicalRepSyncTableStart(), and pg_replication_origin_session_setup().
void StartupReplicationOrigin | ( | void | ) |
Definition at line 683 of file origin.c.
References Assert, CloseTransientFile(), COMP_CRC32C, DEBUG2, elog, ereport, errcode(), ERRCODE_DATA_CORRUPTED, errcode_for_file_access(), errmsg(), fd(), FIN_CRC32C, INIT_CRC32C, LOG, LSN_FORMAT_ARGS, max_replication_slots, OpenTransientFile(), PANIC, PG_BINARY, read, ReplicationState::remote_lsn, ReplicationStateOnDisk::remote_lsn, REPLICATION_STATE_MAGIC, ReplicationState::roident, and ReplicationStateOnDisk::roident.
Referenced by StartupXLOG().
PGDLLIMPORT RepOriginId replorigin_session_origin |
Definition at line 154 of file origin.c.
Referenced by ApplyWorkerMain(), EndPrepare(), LogicalRepSyncTableStart(), pg_replication_origin_session_is_setup(), pg_replication_origin_session_reset(), pg_replication_origin_session_setup(), RecordTransactionAbortPrepared(), RecordTransactionCommit(), RecordTransactionCommitPrepared(), XactLogAbortRecord(), XactLogCommitRecord(), and XLogRecordAssemble().
PGDLLIMPORT XLogRecPtr replorigin_session_origin_lsn |
Definition at line 155 of file origin.c.
Referenced by apply_handle_commit_internal(), EndPrepare(), pg_replication_origin_session_reset(), pg_replication_origin_xact_reset(), pg_replication_origin_xact_setup(), RecordTransactionAbortPrepared(), RecordTransactionCommit(), RecordTransactionCommitPrepared(), XactLogAbortRecord(), and XactLogCommitRecord().
PGDLLIMPORT TimestampTz replorigin_session_origin_timestamp |
Definition at line 156 of file origin.c.
Referenced by apply_handle_commit_internal(), EndPrepare(), pg_replication_origin_session_reset(), pg_replication_origin_xact_reset(), pg_replication_origin_xact_setup(), RecordTransactionCommit(), RecordTransactionCommitPrepared(), XactLogAbortRecord(), and XactLogCommitRecord().