diff options
Diffstat (limited to 'src/include/utils/typcache.h')
-rw-r--r-- | src/include/utils/typcache.h | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/include/utils/typcache.h b/src/include/utils/typcache.h index 28b66718b33..313f7815918 100644 --- a/src/include/utils/typcache.h +++ b/src/include/utils/typcache.h @@ -49,16 +49,18 @@ typedef struct TypeCacheEntry Oid lt_opr; /* the less-than operator */ Oid gt_opr; /* the greater-than operator */ Oid cmp_proc; /* the btree comparison function */ + Oid hash_proc; /* the hash calculation function */ /* - * Pre-set-up fmgr call info for the equality operator and the btree - * comparison function. These are kept in the type cache to avoid - * problems with memory leaks in repeated calls to array_eq and array_cmp. - * There is not currently a need to maintain call info for the lt_opr or - * gt_opr. + * Pre-set-up fmgr call info for the equality operator, the btree + * comparison function, and the hash calculation function. These are kept + * in the type cache to avoid problems with memory leaks in repeated calls + * to array_eq, array_cmp, hash_array. There is not currently a need to + * maintain call info for the lt_opr or gt_opr. */ FmgrInfo eq_opr_finfo; FmgrInfo cmp_proc_finfo; + FmgrInfo hash_proc_finfo; /* * Tuple descriptor if it's a composite type (row type). NULL if not @@ -79,10 +81,13 @@ typedef struct TypeCacheEntry #define TYPECACHE_LT_OPR 0x0002 #define TYPECACHE_GT_OPR 0x0004 #define TYPECACHE_CMP_PROC 0x0008 -#define TYPECACHE_EQ_OPR_FINFO 0x0010 -#define TYPECACHE_CMP_PROC_FINFO 0x0020 -#define TYPECACHE_TUPDESC 0x0040 -#define TYPECACHE_BTREE_OPFAMILY 0x0080 +#define TYPECACHE_HASH_PROC 0x0010 +#define TYPECACHE_EQ_OPR_FINFO 0x0020 +#define TYPECACHE_CMP_PROC_FINFO 0x0040 +#define TYPECACHE_HASH_PROC_FINFO 0x0080 +#define TYPECACHE_TUPDESC 0x0100 +#define TYPECACHE_BTREE_OPFAMILY 0x0200 +#define TYPECACHE_HASH_OPFAMILY 0x0400 extern TypeCacheEntry *lookup_type_cache(Oid type_id, int flags); |