18#define ROTATE_HIGH_AND_LOW_32BITS(v) \
19 ((((v) << 1) & UINT64CONST(0xfffffffefffffffe)) | \
20 (((v) >> 31) & UINT64CONST(0x100000001)))
59#define oid_hash uint32_hash
70 a ^= b + 0x9e3779b9 + (a << 6) + (a >> 2);
83 a ^= b +
UINT64CONST(0x49a0f4dd15e5a8e3) + (a << 54) + (a >> 7);
#define UINT64CONST(x)
Definition: c.h:470
size_t Size
Definition: c.h:545
static uint64 hash_combine64(uint64 a, uint64 b)
Definition: hashfn.h:80
uint32 hash_bytes_uint32(uint32 k)
Definition: hashfn.c:610
uint64 hash_bytes_extended(const unsigned char *k, int keylen, uint64 seed)
Definition: hashfn.c:372
static Datum hash_uint32(uint32 k)
Definition: hashfn.h:43
static uint32 hash_combine(uint32 a, uint32 b)
Definition: hashfn.h:68
static uint32 murmurhash32(uint32 data)
Definition: hashfn.h:92
static Datum hash_any_extended(const unsigned char *k, int keylen, uint64 seed)
Definition: hashfn.h:37
uint32 hash_bytes(const unsigned char *k, int keylen)
Definition: hashfn.c:146
static Datum hash_any(const unsigned char *k, int keylen)
Definition: hashfn.h:31
uint32 tag_hash(const void *key, Size keysize)
Definition: hashfn.c:677
uint64 hash_bytes_uint32_extended(uint32 k, uint64 seed)
Definition: hashfn.c:631
static Datum hash_uint32_extended(uint32 k, uint64 seed)
Definition: hashfn.h:49
uint32 uint32_hash(const void *key, Size keysize)
Definition: hashfn.c:688
uint32 string_hash(const void *key, Size keysize)
Definition: hashfn.c:660
unsigned int uint32
Definition: pg_ext_defs.in.h:13
uintptr_t Datum
Definition: pg_ext_defs.in.h:4
unsigned long int uint64
Definition: pg_ext_defs.in.h:14
#define UInt32GetDatum(X)
Definition: postgres.h:556
#define UInt64GetDatum(X)
Definition: postgres.h:709