MCPcopy Create free account
hub / github.com/bytedance/bolt / setHasherMode

Method setHasherMode

bolt/exec/HashTable.cpp:1556–1570  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1554
1555template <bool ignoreNullKeys>
1556uint64_t HashTable<ignoreNullKeys>::setHasherMode(
1557 const std::vector<std::unique_ptr<VectorHasher>>& hashers,
1558 const std::vector<bool>& useRange,
1559 const std::vector<uint64_t>& rangeSizes,
1560 const std::vector<uint64_t>& distinctSizes) {
1561 uint64_t multiplier = 1;
1562 // A group by leaves 50% space for values not yet seen.
1563 for (int i = 0; i < hashers.size(); ++i) {
1564 multiplier = useRange.size() > i && useRange[i]
1565 ? hashers[i]->enableValueRange(multiplier, reservePct())
1566 : hashers[i]->enableValueIds(multiplier, reservePct());
1567 BOLT_CHECK_NE(multiplier, VectorHasher::kRangeTooLarge);
1568 }
1569 return multiplier;
1570}
1571
1572template <bool ignoreNullKeys>
1573void HashTable<ignoreNullKeys>::clearUseRange(std::vector<bool>& useRange) {

Callers

nothing calls this directly

Calls 3

enableValueRangeMethod · 0.80
enableValueIdsMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected