iceberg-cpp
Loading...
Searching...
No Matches
Static Public Member Functions | List of all members
iceberg::BucketUtils Class Reference

Static Public Member Functions

static int32_t HashInt (int32_t value)
 Hash a 32-bit integer using MurmurHash3 and return a 32-bit hash value.
 
static int32_t HashLong (int64_t value)
 Hash a 64-bit integer using MurmurHash3 and return a 32-bit hash value.
 
static int32_t HashBytes (std::span< const uint8_t > bytes)
 Hash a byte array using MurmurHash3 and return a 32-bit hash value.
 
static Result< int32_t > BucketIndex (const Literal &literal, int32_t num_buckets)
 Compute the bucket index for a given literal and number of buckets.
 

Member Function Documentation

◆ BucketIndex()

Result< int32_t > iceberg::BucketUtils::BucketIndex ( const Literal literal,
int32_t  num_buckets 
)
static

Compute the bucket index for a given literal and number of buckets.

Parameters
literalThe input literal to hash.
num_bucketsThe number of buckets to hash into.
Returns
(murmur3_x86_32_hash(literal) & Integer.MAX_VALUE) % num_buckets

◆ HashBytes()

int32_t iceberg::BucketUtils::HashBytes ( std::span< const uint8_t >  bytes)
static

Hash a byte array using MurmurHash3 and return a 32-bit hash value.

Parameters
bytesThe input byte array to hash.
Returns
A 32-bit hash value.

◆ HashInt()

static int32_t iceberg::BucketUtils::HashInt ( int32_t  value)
inlinestatic

Hash a 32-bit integer using MurmurHash3 and return a 32-bit hash value.

Parameters
valueThe input integer to hash.
Note
Integer and long hash results must be identical for all integer values. This ensures that schema evolution does not change bucket partition values if integer types are promoted.
Returns
A 32-bit hash value.

◆ HashLong()

int32_t iceberg::BucketUtils::HashLong ( int64_t  value)
static

Hash a 64-bit integer using MurmurHash3 and return a 32-bit hash value.

Parameters
valueThe input long to hash.
Returns
A 32-bit hash value.

The documentation for this class was generated from the following files: