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

Method CompareRunEndEncoded

cpp/src/arrow/compare.cc:592–614  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

590
591 template <typename RunEndCType>
592 Status CompareRunEndEncoded() {
593 auto left_span = ArraySpan(left_);
594 auto right_span = ArraySpan(right_);
595 left_span.SetSlice(left_.offset + left_start_idx_, range_length_);
596 right_span.SetSlice(right_.offset + right_start_idx_, range_length_);
597 const ree_util::RunEndEncodedArraySpan<RunEndCType> left(left_span);
598 const ree_util::RunEndEncodedArraySpan<RunEndCType> right(right_span);
599
600 const auto& left_values = *left_.child_data[1];
601 const auto& right_values = *right_.child_data[1];
602
603 auto it = ree_util::MergedRunsIterator(left, right);
604 for (; !it.is_end(); ++it) {
605 RangeDataEqualsImpl impl(options_, floating_approximate_, left_values, right_values,
606 it.index_into_left_array(), it.index_into_right_array(),
607 /*range_length=*/1);
608 if (!impl.Compare()) {
609 result_ = false;
610 return Status::OK();
611 }
612 }
613 return Status::OK();
614 }
615
616 template <typename offset_type, typename CompareRanges>
617 void CompareWithOffsets(int offsets_buffer_index, CompareRanges&& compare_ranges) {

Callers

nothing calls this directly

Calls 7

MergedRunsIteratorClass · 0.85
index_into_left_arrayMethod · 0.80
ArraySpanClass · 0.70
OKFunction · 0.70
is_endMethod · 0.45
CompareMethod · 0.45

Tested by

no test coverage detected