From 186b0b8876efe6bfa4aab0368ec5f9082e57d99e Mon Sep 17 00:00:00 2001
From: Hou Zhijie <houzj.fnst@cn.fujitsu.com>
Date: Tue, 11 Feb 2025 12:01:36 +0800
Subject: [PATCH] fix if condition

---
 src/backend/replication/slot.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/src/backend/replication/slot.c b/src/backend/replication/slot.c
index eccada9d4c5..28d69f916eb 100644
--- a/src/backend/replication/slot.c
+++ b/src/backend/replication/slot.c
@@ -1703,15 +1703,17 @@ InvalidatePossiblyObsoleteSlot(uint32 possible_causes,
 			{
 				if (SlotIsLogical(s) &&
 				/* invalid DB oid signals a shared relation */
-					(dboid == InvalidOid || dboid == s->data.database) &&
-					TransactionIdIsValid(initial_effective_xmin) &&
-					TransactionIdPrecedesOrEquals(initial_effective_xmin,
-												  snapshotConflictHorizon))
-					invalidation_cause = RS_INVAL_HORIZON;
-				else if (TransactionIdIsValid(initial_catalog_effective_xmin) &&
-						 TransactionIdPrecedesOrEquals(initial_catalog_effective_xmin,
-													   snapshotConflictHorizon))
-					invalidation_cause = RS_INVAL_HORIZON;
+					(dboid == InvalidOid || dboid == s->data.database))
+				{
+					if (TransactionIdIsValid(initial_effective_xmin) &&
+						TransactionIdPrecedesOrEquals(initial_effective_xmin,
+													  snapshotConflictHorizon))
+						invalidation_cause = RS_INVAL_HORIZON;
+					else if (TransactionIdIsValid(initial_catalog_effective_xmin) &&
+							 TransactionIdPrecedesOrEquals(initial_catalog_effective_xmin,
+														   snapshotConflictHorizon))
+						invalidation_cause = RS_INVAL_HORIZON;
+				}
 			}
 			if (invalidation_cause == RS_INVAL_NONE &&
 				(possible_causes & RS_INVAL_WAL_LEVEL))
-- 
2.30.0.windows.2

