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

Method CloseRun

cpp/src/arrow/array/builder_run_end.cc:333–346  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

331}
332
333Status RunEndEncodedBuilder::CloseRun(int64_t run_length) {
334 // TODO(felipecrv): gracefully fragment runs bigger than INT32_MAX
335 if (ARROW_PREDICT_FALSE(run_length > std::numeric_limits<int32_t>::max())) {
336 return Status::Invalid(
337 "Run-length of run-encoded arrays must fit in a 32-bit signed integer.");
338 }
339 int64_t run_end;
340 if (internal::AddWithOverflow(committed_logical_length_, run_length, &run_end)) {
341 return Status::Invalid("Run end value must fit on run ends type.");
342 }
343 RETURN_NOT_OK(AppendRunEnd(/*run_end=*/run_end));
344 UpdateDimensions(run_end, 0);
345 return Status::OK();
346}
347
348ArrayBuilder& RunEndEncodedBuilder::run_end_builder() { return *children_[0]; }
349ArrayBuilder& RunEndEncodedBuilder::value_builder() { return *children_[1]; }

Callers 2

WillCloseRunMethod · 0.80

Calls 3

AddWithOverflowFunction · 0.85
InvalidFunction · 0.50
OKFunction · 0.50

Tested by

no test coverage detected