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

Method Run

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

Source from the content-addressed store, hash-verified

470 }
471
472 IterationResult Run(ElementRange* range, ElementRange* child_range,
473 PathWriteContext* context) {
474 if (new_range_) {
475 // Reset the reader each time we are starting fresh on a range.
476 // We can't rely on continuity because nulls above can
477 // cause discontinuities.
478 valid_bits_reader_ = MakeReader(*range);
479 }
480 child_range->start = range->start;
481 ::arrow::internal::BitRun run = valid_bits_reader_.NextRun();
482 if (!run.set) {
483 range->start += run.length;
484 RETURN_IF_ERROR(FillRepLevels(run.length, rep_level_if_null_, context));
485 RETURN_IF_ERROR(context->AppendDefLevels(run.length, def_level_if_null_));
486 run = valid_bits_reader_.NextRun();
487 }
488 if (range->Empty()) {
489 new_range_ = true;
490 return kDone;
491 }
492 child_range->end = child_range->start = range->start;
493 child_range->end += run.length;
494
495 DCHECK(!child_range->Empty());
496 range->start += child_range->Size();
497 new_range_ = false;
498 return kNext;
499 }
500
501 const uint8_t* null_bitmap_;
502 int64_t entry_offset_;

Callers

nothing calls this directly

Calls 5

FillRepLevelsFunction · 0.85
NextRunMethod · 0.45
AppendDefLevelsMethod · 0.45
EmptyMethod · 0.45
SizeMethod · 0.45

Tested by

no test coverage detected