Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-17 08:28:55

0001 // Licensed to the Apache Software Foundation (ASF) under one
0002 // or more contributor license agreements.  See the NOTICE file
0003 // distributed with this work for additional information
0004 // regarding copyright ownership.  The ASF licenses this file
0005 // to you under the Apache License, Version 2.0 (the
0006 // "License"); you may not use this file except in compliance
0007 // with the License.  You may obtain a copy of the License at
0008 //
0009 //   http://www.apache.org/licenses/LICENSE-2.0
0010 //
0011 // Unless required by applicable law or agreed to in writing,
0012 // software distributed under the License is distributed on an
0013 // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
0014 // KIND, either express or implied.  See the License for the
0015 // specific language governing permissions and limitations
0016 // under the License.
0017 
0018 #pragma once
0019 
0020 #include <cstdint>
0021 
0022 #include "parquet/hasher.h"
0023 #include "parquet/platform.h"
0024 #include "parquet/types.h"
0025 
0026 namespace parquet {
0027 
0028 class PARQUET_EXPORT XxHasher : public Hasher {
0029  public:
0030   uint64_t Hash(int32_t value) const override;
0031   uint64_t Hash(int64_t value) const override;
0032   uint64_t Hash(float value) const override;
0033   uint64_t Hash(double value) const override;
0034   uint64_t Hash(const Int96* value) const override;
0035   uint64_t Hash(const ByteArray* value) const override;
0036   uint64_t Hash(const FLBA* val, uint32_t len) const override;
0037 
0038   void Hashes(const int32_t* values, int num_values, uint64_t* hashes) const override;
0039   void Hashes(const int64_t* values, int num_values, uint64_t* hashes) const override;
0040   void Hashes(const float* values, int num_values, uint64_t* hashes) const override;
0041   void Hashes(const double* values, int num_values, uint64_t* hashes) const override;
0042   void Hashes(const Int96* values, int num_values, uint64_t* hashes) const override;
0043   void Hashes(const ByteArray* values, int num_values, uint64_t* hashes) const override;
0044   void Hashes(const FLBA* values, uint32_t type_len, int num_values,
0045               uint64_t* hashes) const override;
0046 
0047   static constexpr int kParquetBloomXxHashSeed = 0;
0048 };
0049 
0050 }  // namespace parquet