From 7565506149e0ac7a93d9b253975f741bbb2fdc0f Mon Sep 17 00:00:00 2001
From: Masahiko Sawada <sawada.mshk@gmail.com>
Date: Wed, 15 Jul 2026 15:29:02 -0700
Subject: [PATCH v1 2/2] pg_controldata: Show logical decoding status.

The logical decoding status is stored in checkpoint records and used to
restore the status at server startup, but pg_controldata did not show
it. This information is useful for diagnosing issues around the
dynamicactivation and deactivation of logical decoding.

Oversight in 67c20979ce7.

Discussion: https://postgr.es/m/
Backpatch-through: 19
---
 src/bin/pg_controldata/pg_controldata.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/bin/pg_controldata/pg_controldata.c b/src/bin/pg_controldata/pg_controldata.c
index fe5fc5ec133..6fc87ed114d 100644
--- a/src/bin/pg_controldata/pg_controldata.c
+++ b/src/bin/pg_controldata/pg_controldata.c
@@ -264,6 +264,8 @@ main(int argc, char *argv[])
 		   ControlFile->checkPointCopy.PrevTimeLineID);
 	printf(_("Latest checkpoint's full_page_writes: %s\n"),
 		   ControlFile->checkPointCopy.fullPageWrites ? _("on") : _("off"));
+	printf(_("Latest checkpoint's logical decoding: %s\n"),
+		   ControlFile->checkPointCopy.logicalDecodingEnabled ? _("on") : _("off"));
 	printf(_("Latest checkpoint's NextXID:          %u:%u\n"),
 		   EpochFromFullTransactionId(ControlFile->checkPointCopy.nextXid),
 		   XidFromFullTransactionId(ControlFile->checkPointCopy.nextXid));
-- 
2.54.0

