From 44da139d4023f81109a0b8853711acc0cd9f0325 Mon Sep 17 00:00:00 2001
From: Sergei Patiakin <sergei.patiakin@enterprisedb.com>
Date: Wed, 30 Sep 2026 18:08:12 +0200
Subject: [PATCH v1] Handle effective_wal_level change in aborted transactions

AtEOXact_LogicalCtl was called before XID was cleared, leading to a gap
where effective_wal_level changes could be missed.

Oversight in commit 67c20979ce7
---
 src/backend/access/transam/xact.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index 7b67db514ec..88f52bebdf2 100644
--- a/src/backend/access/transam/xact.c
+++ b/src/backend/access/transam/xact.c
@@ -2553,6 +2553,7 @@ CommitTransaction(void)
 	 * done with commit processing, set current transaction state back to
 	 * default
 	 */
+
 	s->state = TRANS_DEFAULT;
 
 	RESUME_INTERRUPTS();
@@ -3054,7 +3055,6 @@ AbortTransaction(void)
 		AtEOXact_PgStat(false, is_parallel_worker);
 		AtEOXact_ApplyLauncher(false);
 		AtEOXact_LogicalRepWorkers(false);
-		AtEOXact_LogicalCtl();
 		pgstat_report_xact_timestamp(0);
 	}
 
@@ -3107,6 +3107,8 @@ CleanupTransaction(void)
 	XactTopFullTransactionId = InvalidFullTransactionId;
 	nParallelCurrentXids = 0;
 
+	AtEOXact_LogicalCtl();
+
 	/*
 	 * done with abort processing, set current transaction state back to
 	 * default
-- 
2.47.3

