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

Method listNullKeyRows

bolt/exec/HashTable.cpp:2113–2141  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2111
2112template <>
2113int32_t HashTable<false>::listNullKeyRows(
2114 NullKeyRowsIterator* iter,
2115 int32_t maxRows,
2116 char** rows) {
2117 if (!iter->initialized) {
2118 BOLT_CHECK_GT(nextOffset_, 0);
2119 BOLT_CHECK_EQ(hashers_.size(), 1);
2120 HashLookup lookup(hashers_, enableJit_);
2121 if (hashMode_ == HashMode::kHash) {
2122 lookup.hashes.push_back(VectorHasher::kNullHash);
2123 } else {
2124 lookup.hashes.push_back(0);
2125 }
2126 lookup.rows.push_back(0);
2127 lookup.hits.resize(1);
2128 lookup.reset(1);
2129 joinProbe(lookup);
2130 iter->nextHit = lookup.hits[0];
2131 iter->initialized = true;
2132 }
2133 size_t numRows = 0;
2134 char* hit = iter->nextHit;
2135 while (numRows < maxRows && hit) {
2136 rows[numRows++] = hit;
2137 hit = nextRow(hit);
2138 }
2139 iter->nextHit = hit;
2140 return numRows;
2141}
2142
2143template <>
2144int32_t

Callers 2

testListNullKeyRowsMethod · 0.80

Calls 4

sizeMethod · 0.45
push_backMethod · 0.45
resizeMethod · 0.45
resetMethod · 0.45

Tested by 1

testListNullKeyRowsMethod · 0.64