iceberg-cpp
Loading...
Searching...
No Matches
iceberg
util
bucket_util.h
1
/*
2
* Licensed to the Apache Software Foundation (ASF) under one
3
* or more contributor license agreements. See the NOTICE file
4
* distributed with this work for additional information
5
* regarding copyright ownership. The ASF licenses this file
6
* to you under the Apache License, Version 2.0 (the
7
* "License"); you may not use this file except in compliance
8
* with the License. You may obtain a copy of the License at
9
*
10
* http://www.apache.org/licenses/LICENSE-2.0
11
*
12
* Unless required by applicable law or agreed to in writing,
13
* software distributed under the License is distributed on an
14
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
* KIND, either express or implied. See the License for the
16
* specific language governing permissions and limitations
17
* under the License.
18
*/
19
20
#pragma once
21
22
#include <cstdint>
23
#include <span>
24
25
#include "iceberg/iceberg_export.h"
26
#include "iceberg/result.h"
27
#include "
iceberg/type_fwd.h
"
28
29
namespace
iceberg {
30
31
class
ICEBERG_EXPORT
BucketUtils
{
32
public
:
39
static
inline
int32_t
HashInt
(int32_t value) {
40
return
HashLong(
static_cast<
int64_t
>
(value));
41
}
42
46
static
int32_t HashLong(int64_t value);
47
51
static
int32_t HashBytes(std::span<const uint8_t> bytes);
52
57
static
Result<int32_t> BucketIndex(
const
Literal
& literal, int32_t num_buckets);
58
};
59
60
}
// namespace iceberg
iceberg::BucketUtils
Definition
bucket_util.h:31
iceberg::BucketUtils::HashInt
static int32_t HashInt(int32_t value)
Hash a 32-bit integer using MurmurHash3 and return a 32-bit hash value.
Definition
bucket_util.h:39
iceberg::Literal
Literal is a literal value that is associated with a primitive type.
Definition
literal.h:39
type_fwd.h
Generated by
1.9.8