From 7d54876dcf4e5d41871040b183cf4aa21b0ac390 Mon Sep 17 00:00:00 2001 From: ChangAo Chen 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