222 bool xlog_logical_info;
228 return xlog_logical_info;
270 elog(
DEBUG1,
"aborting logical decoding activation process");
423 errmsg(
"logical decoding is enabled upon creating a new logical replication slot"));
450 elog(
DEBUG1,
"requested disabling logical decoding");
462 bool pending_disable;
481 if (!pending_disable)
532 errmsg(
"logical decoding is disabled because there are no valid logical replication slots"));
555 bool new_status =
false;
608 "update logical decoding status to %d at the end of recovery",
638 INJECTION_POINT(
"startup-logical-decoding-status-change-end-of-recovery", NULL);
#define MemSet(start, val, len)
void WakeupCheckpointer(void)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
Assert(PointerIsAligned(start, uint64))
#define INJECTION_POINT(name, arg)
#define PG_ENSURE_ERROR_CLEANUP(cleanup_function, arg)
#define PG_END_ENSURE_ERROR_CLEANUP(cleanup_function, arg)
void InitializeProcessXLogLogicalInfo(void)
void LogicalDecodingCtlShmemInit(void)
void UpdateLogicalDecodingStatusEndOfRecovery(void)
bool IsLogicalDecodingEnabled(void)
void EnsureLogicalDecodingEnabled(void)
Size LogicalDecodingCtlShmemSize(void)
static void abort_logical_decoding_activation(int code, Datum arg)
bool ProcessBarrierUpdateXLogLogicalInfo(void)
static bool XLogLogicalInfoUpdatePending
void AtEOXact_LogicalCtl(void)
static void update_xlog_logical_info(void)
struct LogicalDecodingCtlData LogicalDecodingCtlData
bool IsXLogLogicalInfoEnabled(void)
void StartupLogicalDecodingStatus(bool last_status)
void DisableLogicalDecoding(void)
static LogicalDecodingCtlData * LogicalDecodingCtl
void EnableLogicalDecoding(void)
void RequestDisableLogicalDecoding(void)
static void write_logical_decoding_status_update_record(bool status)
void DisableLogicalDecodingIfNecessary(void)
bool LWLockAcquire(LWLock *lock, LWLockMode mode)
void LWLockRelease(LWLock *lock)
#define START_CRIT_SECTION()
#define END_CRIT_SECTION()
#define XLOG_LOGICAL_DECODING_STATUS_CHANGE
void WaitForProcSignalBarrier(uint64 generation)
uint64 EmitProcSignalBarrier(ProcSignalBarrierType type)
@ PROCSIGNAL_BARRIER_UPDATE_XLOG_LOGICAL_INFO
void * ShmemInitStruct(const char *name, Size size, bool *foundPtr)
bool CheckLogicalSlotExists(void)
ReplicationSlot * MyReplicationSlot
bool logical_decoding_enabled
#define InvalidTransactionId
TransactionId GetTopTransactionIdIfAny(void)
bool RecoveryInProgress(void)
void XLogFlush(XLogRecPtr record)
XLogRecPtr XLogInsert(RmgrId rmid, uint8 info)
void XLogRegisterData(const void *data, uint32 len)
void XLogBeginInsert(void)