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

Method CompareRunEndEncoded

cpp/src/arrow/compare.cc:619–641  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

617
618 template <typename RunEndCType>
619 Status CompareRunEndEncoded() {
620 auto left_span = ArraySpan(left_);
621 auto right_span = ArraySpan(right_);
622 left_span.SetSlice(left_.offset + left_start_idx_, range_length_);
623 right_span.SetSlice(right_.offset + right_start_idx_, range_length_);
624 const ree_util::RunEndEncodedArraySpan<RunEndCType> left(left_span);
625 const ree_util::RunEndEncodedArraySpan<RunEndCType> right(right_span);
626
627 const auto& left_values = *left_.child_data[1];
628 const auto& right_values = *right_.child_data[1];
629
630 auto it = ree_util::MergedRunsIterator(left, right);
631 for (; !it.is_end(); ++it) {
632 RangeDataEqualsImpl impl(options_, left_values, right_values,
633 it.index_into_left_array(), it.index_into_right_array(),
634 /*range_length=*/1);
635 if (!impl.Compare()) {
636 result_ = false;
637 return Status::OK();
638 }
639 }
640 return Status::OK();
641 }
642
643 template <typename offset_type, typename CompareRanges>
644 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