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

Method Run

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

Source from the content-addressed store, hash-verified

495 }
496
497 IterationResult Run(ElementRange* range, ElementRange* child_range,
498 PathWriteContext* context) {
499 if (new_range_) {
500 // Reset the reader each time we are starting fresh on a range.
501 // We can't rely on continuity because nulls above can
502 // cause discontinuities.
503 valid_bits_reader_ = MakeReader(*range);
504 }
505 child_range->start = range->start;
506 ::arrow::internal::BitRun run = valid_bits_reader_.NextRun();
507 if (!run.set) {
508 range->start += run.length;
509 RETURN_IF_ERROR(FillRepLevels(run.length, rep_level_if_null_, context));
510 RETURN_IF_ERROR(context->AppendDefLevels(run.length, def_level_if_null_));
511 run = valid_bits_reader_.NextRun();
512 }
513 if (range->Empty()) {
514 new_range_ = true;
515 return kDone;
516 }
517 child_range->end = child_range->start = range->start;
518 child_range->end += run.length;
519
520 DCHECK(!child_range->Empty());
521 range->start += child_range->Size();
522 new_range_ = false;
523 return kNext;
524 }
525
526 const uint8_t* null_bitmap_;
527 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