MCPcopy Create free account
hub / github.com/apache/arrow / Run

Method Run

cpp/src/parquet/arrow/path_internal.cc:284–302  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

282 def_level_if_null_(def_level_if_present - 1) {}
283
284 IterationResult Run(const ElementRange& range, PathWriteContext* context) {
285 int64_t elements = range.Size();
286 RETURN_IF_ERROR(context->ReserveDefLevels(elements));
287
288 DCHECK_GT(elements, 0);
289
290 auto bit_visitor = [&](bool is_set) {
291 context->UnsafeAppendDefLevel(is_set ? def_level_if_present_ : def_level_if_null_);
292 };
293
294 if (elements > 16) { // 16 guarantees at least one unrolled loop.
295 ::arrow::internal::VisitBitsUnrolled(bitmap_, range.start + element_offset_,
296 elements, bit_visitor);
297 } else {
298 ::arrow::internal::VisitBits(bitmap_, range.start + element_offset_, elements,
299 bit_visitor);
300 }
301 return kDone;
302 }
303 const uint8_t* bitmap_;
304 int64_t element_offset_;
305 int16_t def_level_if_present_;

Callers

nothing calls this directly

Calls 5

ReserveDefLevelsMethod · 0.80
UnsafeAppendDefLevelMethod · 0.80
VisitBitsUnrolledFunction · 0.50
VisitBitsFunction · 0.50
SizeMethod · 0.45

Tested by

no test coverage detected