diff options
author | David Storch <david.storch@10gen.com> | 2016-07-15 18:15:12 -0400 |
---|---|---|
committer | David Storch <david.storch@10gen.com> | 2016-07-19 22:35:21 -0400 |
commit | 7e986cc77f121e3af9a5f1217e89913745fc07f9 (patch) | |
tree | e29c4ec325199937b2723a500a462e6c125616ea /src/mongo/base/simple_string_data_comparator.cpp | |
parent | 0b32158c9cb44b31078ca923ef5c8fff755c952a (diff) | |
download | mongo-7e986cc77f121e3af9a5f1217e89913745fc07f9.tar.gz |
SERVER-23990 add ValueComparator::Hasher for collation-aware Value hashing
Diffstat (limited to 'src/mongo/base/simple_string_data_comparator.cpp')
-rw-r--r-- | src/mongo/base/simple_string_data_comparator.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mongo/base/simple_string_data_comparator.cpp b/src/mongo/base/simple_string_data_comparator.cpp index e52539744fc..f9077f942b2 100644 --- a/src/mongo/base/simple_string_data_comparator.cpp +++ b/src/mongo/base/simple_string_data_comparator.cpp @@ -40,19 +40,19 @@ namespace mongo { namespace { template <int SizeofSizeT> -size_t murmur3(StringData str); +size_t murmur3(StringData str, size_t seed); template <> -size_t murmur3<4>(StringData str) { +size_t murmur3<4>(StringData str, size_t seed) { char hash[4]; - MurmurHash3_x86_32(str.rawData(), str.size(), 0, &hash); + MurmurHash3_x86_32(str.rawData(), str.size(), seed, &hash); return ConstDataView(hash).read<LittleEndian<std::uint32_t>>(); } template <> -size_t murmur3<8>(StringData str) { +size_t murmur3<8>(StringData str, size_t seed) { char hash[16]; - MurmurHash3_x64_128(str.rawData(), str.size(), 0, hash); + MurmurHash3_x64_128(str.rawData(), str.size(), seed, hash); return static_cast<size_t>(ConstDataView(hash).read<LittleEndian<std::uint64_t>>()); } @@ -64,8 +64,8 @@ int SimpleStringDataComparator::compare(StringData left, StringData right) const return left.compare(right); } -size_t SimpleStringDataComparator::hash(StringData stringToHash) const { - return murmur3<sizeof(size_t)>(stringToHash); +void SimpleStringDataComparator::hash_combine(size_t& seed, StringData stringToHash) const { + seed = murmur3<sizeof(size_t)>(stringToHash, seed); } } // namespace mongo |