* 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.
*/
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;
*/
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);
}
/*
/* list-search interface. Users of this must import catcache.h too */
struct catclist;
extern struct catclist *SearchSysCacheList(int cacheId, int nkeys,
- Datum key1, Datum key2, Datum key3, Datum key4);
+ Datum key1, Datum key2, Datum key3);
extern void SysCacheInvalidate(int cacheId, uint32 hashValue);
GetSysCacheHashValue(cacheId, key1, key2, key3, key4)
#define SearchSysCacheList1(cacheId, key1) \
- SearchSysCacheList(cacheId, 1, key1, 0, 0, 0)
+ SearchSysCacheList(cacheId, 1, key1, 0, 0)
#define SearchSysCacheList2(cacheId, key1, key2) \
- SearchSysCacheList(cacheId, 2, key1, key2, 0, 0)
+ SearchSysCacheList(cacheId, 2, key1, key2, 0)
#define SearchSysCacheList3(cacheId, key1, key2, key3) \
- SearchSysCacheList(cacheId, 3, key1, key2, key3, 0)
-#define SearchSysCacheList4(cacheId, key1, key2, key3, key4) \
- SearchSysCacheList(cacheId, 4, key1, key2, key3, key4)
+ SearchSysCacheList(cacheId, 3, key1, key2, key3)
#define ReleaseSysCacheList(x) ReleaseCatCacheList(x)