v1-0001-Use-bsearch-instead-of-a-manual-binary-search-in-.patch
application/octet-stream
Filename: v1-0001-Use-bsearch-instead-of-a-manual-binary-search-in-.patch
Type: application/octet-stream
Part: 0
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch v1-0001
Subject: Use bsearch() instead of a manual binary search in syscache.c
| File | + | − |
|---|---|---|
| src/backend/utils/cache/syscache.c | 10 | 32 |
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