*     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)