21 #define PG_REPLSLOT_DIR "pg_replslot"
212 #define SlotIsPhysical(slot) ((slot)->data.database == InvalidOid)
213 #define SlotIsLogical(slot) ((slot)->data.database != InvalidOid)
ReplicationSlot * SearchNamedReplicationSlot(const char *name, bool need_lock)
int ReplicationSlotIndex(ReplicationSlot *slot)
struct ReplicationSlotCtlData ReplicationSlotCtlData
PGDLLIMPORT char * synchronized_standby_slots
PGDLLIMPORT ReplicationSlot * MyReplicationSlot
void CheckPointReplicationSlots(bool is_shutdown)
void ReplicationSlotCreate(const char *name, bool db_specific, ReplicationSlotPersistency persistency, bool two_phase, bool failover, bool synced)
void ReplicationSlotDropAcquired(void)
void ReplicationSlotMarkDirty(void)
void ReplicationSlotReserveWal(void)
bool ReplicationSlotsCountDBSlots(Oid dboid, int *nslots, int *nactive)
void ReplicationSlotAcquire(const char *name, bool nowait)
bool InvalidateObsoleteReplicationSlots(ReplicationSlotInvalidationCause cause, XLogSegNo oldestSegno, Oid dboid, TransactionId snapshotConflictHorizon)
ReplicationSlotInvalidationCause GetSlotInvalidationCause(const char *invalidation_reason)
void ReplicationSlotsDropDBSlots(Oid dboid)
XLogRecPtr ReplicationSlotsComputeLogicalRestartLSN(void)
void ReplicationSlotsComputeRequiredXmin(bool already_locked)
void ReplicationSlotPersist(void)
void ReplicationSlotDrop(const char *name, bool nowait)
bool SlotExistsInSyncStandbySlots(const char *slot_name)
struct ReplicationSlotPersistentData ReplicationSlotPersistentData
ReplicationSlotPersistency
void ReplicationSlotSave(void)
PGDLLIMPORT const char *const SlotInvalidationCauses[]
void ReplicationSlotNameForTablesync(Oid suboid, Oid relid, char *syncslotname, Size szslot)
void CheckSlotPermissions(void)
bool ReplicationSlotName(int index, Name name)
void ReplicationSlotsShmemInit(void)
void ReplicationSlotAlter(const char *name, const bool *failover, const bool *two_phase)
void ReplicationSlotRelease(void)
void WaitForStandbyConfirmation(XLogRecPtr wait_for_lsn)
PGDLLIMPORT ReplicationSlotCtlData * ReplicationSlotCtl
bool StandbySlotsHaveCaughtup(XLogRecPtr wait_for_lsn, int elevel)
ReplicationSlotInvalidationCause
void ReplicationSlotsComputeRequiredLSN(void)
void ReplicationSlotCleanup(bool synced_only)
void ReplicationSlotInitialize(void)
PGDLLIMPORT int max_replication_slots
struct ReplicationSlot ReplicationSlot
void StartupReplicationSlots(void)
void ReplicationSlotDropAtPubNode(WalReceiverConn *wrconn, char *slotname, bool missing_ok)
void CheckSlotRequirements(void)
Size ReplicationSlotsShmemSize(void)
bool ReplicationSlotValidateName(const char *name, int elevel)
ReplicationSlot replication_slots[1]
TransactionId catalog_xmin
XLogRecPtr confirmed_flush
ReplicationSlotPersistency persistency
ReplicationSlotInvalidationCause invalidated
XLogRecPtr candidate_xmin_lsn
TransactionId effective_catalog_xmin
XLogRecPtr candidate_restart_valid
XLogRecPtr last_saved_confirmed_flush
TransactionId effective_xmin
XLogRecPtr candidate_restart_lsn
LWLock io_in_progress_lock
ConditionVariable active_cv
TransactionId candidate_catalog_xmin
ReplicationSlotPersistentData data
TimestampTz inactive_since
static WalReceiverConn * wrconn