| 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) { |
nothing calls this directly
no test coverage detected