diff --git a/src/backend/replication/logical/logicalctl.c b/src/backend/replication/logical/logicalctl.c index 7006f7de167..5089717ace5 100644 --- a/src/backend/replication/logical/logicalctl.c +++ b/src/backend/replication/logical/logicalctl.c @@ -100,9 +100,11 @@ typedef struct LogicalDecodingCtlData static LogicalDecodingCtlData *LogicalDecodingCtl = NULL; static void LogicalDecodingCtlShmemRequest(void *arg); +static void LogicalDecodingCtlShmemInit(void *arg); const ShmemCallbacks LogicalDecodingCtlShmemCallbacks = { .request_fn = LogicalDecodingCtlShmemRequest, + .init_fn = LogicalDecodingCtlShmemInit, }; /* @@ -136,6 +138,14 @@ LogicalDecodingCtlShmemRequest(void *arg) ); } +static void +LogicalDecodingCtlShmemInit(void *arg) +{ + LogicalDecodingCtl->xlog_logical_info = false; + LogicalDecodingCtl->logical_decoding_enabled = false; + LogicalDecodingCtl->pending_disable = false; +} + /* * Initialize the logical decoding status in shmem at server startup. This * must be called ONCE during postmaster or standalone-backend startup.