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

Function processEncodedFilterResults

bolt/exec/OperatorUtils.cpp:220–246  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

218}
219
220vector_size_t processEncodedFilterResults(
221 const VectorPtr& filterResult,
222 const SelectivityVector& rows,
223 FilterEvalCtx& filterEvalCtx,
224 memory::MemoryPool* pool) {
225 auto size = rows.size();
226
227 DecodedVector& decoded = filterEvalCtx.decodedResult;
228 decoded.decode(*filterResult.get(), rows);
229 auto values = decoded.data<uint64_t>();
230 auto nulls = decoded.nulls(&rows);
231 auto indices = decoded.indices();
232
233 vector_size_t passed = 0;
234 auto* rawSelected = filterEvalCtx.getRawSelectedIndices(size, pool);
235 auto* rawSelectedBits = filterEvalCtx.getRawSelectedBits(size, pool);
236 memset(rawSelectedBits, 0, bits::nbytes(size));
237 for (int32_t i = 0; i < size; ++i) {
238 auto index = indices[i];
239 if ((!nulls || !bits::isBitNull(nulls, i)) &&
240 bits::isBitSet(values, index)) {
241 rawSelected[passed++] = i;
242 bits::setBit(rawSelectedBits, i);
243 }
244 }
245 return passed;
246}
247} // namespace
248
249vector_size_t processFilterResults(

Callers 1

processFilterResultsFunction · 0.85

Calls 12

memsetFunction · 0.85
nbytesFunction · 0.85
isBitNullFunction · 0.85
isBitSetFunction · 0.85
indicesMethod · 0.80
getRawSelectedIndicesMethod · 0.80
getRawSelectedBitsMethod · 0.80
setBitFunction · 0.70
sizeMethod · 0.45
decodeMethod · 0.45
getMethod · 0.45
nullsMethod · 0.45

Tested by

no test coverage detected