diff options
Diffstat (limited to 'src/backend/utils/cache')
-rw-r--r-- | src/backend/utils/cache/catcache.c | 9 | ||||
-rw-r--r-- | src/backend/utils/cache/syscache.c | 4 |
2 files changed, 9 insertions, 4 deletions
diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c index 8a0a42ce712..5ddbf6eab10 100644 --- a/src/backend/utils/cache/catcache.c +++ b/src/backend/utils/cache/catcache.c @@ -1512,6 +1512,11 @@ GetCatCacheHashValue(CatCache *cache, * Generate a list of all tuples matching a partial key (that is, * a key specifying just the first K of the cache's N key columns). * + * It doesn't make any sense to specify all of the cache's key columns + * here: since the key is unique, there could be at most one match, so + * you ought to use SearchCatCache() instead. Hence this function takes + * one less Datum argument than SearchCatCache() does. + * * The caller must not modify the list object or the pointed-to tuples, * and must call ReleaseCatCacheList() when done with the list. */ @@ -1520,9 +1525,9 @@ SearchCatCacheList(CatCache *cache, int nkeys, Datum v1, Datum v2, - Datum v3, - Datum v4) + Datum v3) { + Datum v4 = 0; /* dummy last-column value */ Datum arguments[CATCACHE_MAXKEYS]; uint32 lHashValue; dlist_iter iter; diff --git a/src/backend/utils/cache/syscache.c b/src/backend/utils/cache/syscache.c index 041cd53a300..2b381782a32 100644 --- a/src/backend/utils/cache/syscache.c +++ b/src/backend/utils/cache/syscache.c @@ -1418,14 +1418,14 @@ GetSysCacheHashValue(int cacheId, */ struct catclist * SearchSysCacheList(int cacheId, int nkeys, - Datum key1, Datum key2, Datum key3, Datum key4) + Datum key1, Datum key2, Datum key3) { if (cacheId < 0 || cacheId >= SysCacheSize || !PointerIsValid(SysCache[cacheId])) elog(ERROR, "invalid cache ID: %d", cacheId); return SearchCatCacheList(SysCache[cacheId], nkeys, - key1, key2, key3, key4); + key1, key2, key3); } /* |