From 7d54876dcf4e5d41871040b183cf4aa21b0ac390 Mon Sep 17 00:00:00 2001
From: ChangAo Chen <cca5507@qq.com>
Date: Sat, 8 Nov 2025 15:39:16 +0800
Subject: [PATCH v1] Use bsearch() instead of a manual binary search in
 syscache.c

---
 src/backend/utils/cache/syscache.c | 42 +++++++-----------------------
 1 file changed, 10 insertions(+), 32 deletions(-)

diff --git a/src/backend/utils/cache/syscache.c b/src/backend/utils/cache/syscache.c
index 0e70a8020b7..f713c7a3abc 100644
--- a/src/backend/utils/cache/syscache.c
+++ b/src/backend/utils/cache/syscache.c
@@ -736,22 +736,11 @@ RelationInvalidatesSnapshotsOnly(Oid relid)
 bool
 RelationHasSysCache(Oid relid)
 {
-	int			low = 0,
-				high = SysCacheRelationOidSize - 1;
-
-	while (low <= high)
-	{
-		int			middle = low + (high - low) / 2;
-
-		if (SysCacheRelationOid[middle] == relid)
-			return true;
-		if (SysCacheRelationOid[middle] < relid)
-			low = middle + 1;
-		else
-			high = middle - 1;
-	}
-
-	return false;
+	return bsearch(&relid,
+				   SysCacheRelationOid,
+				   SysCacheRelationOidSize,
+				   sizeof(Oid),
+				   oid_compare) != NULL;
 }
 
 /*
@@ -761,22 +750,11 @@ RelationHasSysCache(Oid relid)
 bool
 RelationSupportsSysCache(Oid relid)
 {
-	int			low = 0,
-				high = SysCacheSupportingRelOidSize - 1;
-
-	while (low <= high)
-	{
-		int			middle = low + (high - low) / 2;
-
-		if (SysCacheSupportingRelOid[middle] == relid)
-			return true;
-		if (SysCacheSupportingRelOid[middle] < relid)
-			low = middle + 1;
-		else
-			high = middle - 1;
-	}
-
-	return false;
+	return bsearch(&relid,
+				   SysCacheSupportingRelOid,
+				   SysCacheSupportingRelOidSize,
+				   sizeof(Oid),
+				   oid_compare) != NULL;
 }
 
 
-- 
2.51.2

