From 78bd7409074651820dd71c54e78aa8e56d6e5304 Mon Sep 17 00:00:00 2001 From: Tadeja Kadunc Date: Wed, 29 Jul 2026 13:08:41 +0200 Subject: [PATCH 1/2] Replace std::span iterator with offset subspan --- cpp/src/arrow/compute/kernels/vector_sort.cc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/cpp/src/arrow/compute/kernels/vector_sort.cc b/cpp/src/arrow/compute/kernels/vector_sort.cc index 4a12a04aeef7..3ff888570710 100644 --- a/cpp/src/arrow/compute/kernels/vector_sort.cc +++ b/cpp/src/arrow/compute/kernels/vector_sort.cc @@ -231,19 +231,19 @@ void VisitConstantRanges(const ArrayType& array, std::span indices, if (indices.empty()) { return; } - auto range_start = indices.begin(); - auto range_cur = range_start; - auto last_value = GetView::LogicalValue(array.GetView(*range_cur - offset)); - while (++range_cur != indices.end()) { - auto v = GetView::LogicalValue(array.GetView(*range_cur - offset)); + size_t range_start = 0; + size_t range_cur = 0; + auto last_value = GetView::LogicalValue(array.GetView(indices[range_cur] - offset)); + while (++range_cur != indices.size()) { + auto v = GetView::LogicalValue(array.GetView(indices[range_cur] - offset)); if (v != last_value) { - visit({range_start, range_cur}); + visit(indices.subspan(range_start, range_cur - range_start)); range_start = range_cur; last_value = v; } } if (range_start != range_cur) { - visit({range_start, range_cur}); + visit(indices.subspan(range_start, range_cur - range_start)); } } From 0b69409df13cbcbf5113e6ba66a9fd401bc429e2 Mon Sep 17 00:00:00 2001 From: Tadeja Kadunc Date: Wed, 29 Jul 2026 15:13:30 +0200 Subject: [PATCH 2/2] Replace std::ranges in reader.cc --- cpp/src/parquet/arrow/reader.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cpp/src/parquet/arrow/reader.cc b/cpp/src/parquet/arrow/reader.cc index 9212f0abb6ce..d6fe369301b7 100644 --- a/cpp/src/parquet/arrow/reader.cc +++ b/cpp/src/parquet/arrow/reader.cc @@ -732,12 +732,12 @@ class PARQUET_NO_EXPORT FixedSizeListReader : public ListReader { const int32_t expected_size = has_elements ? list_size : 0; std::span run_offsets(offsets + start, static_cast(length + 1)); - const auto first_invalid_offset = std::ranges::adjacent_find( - run_offsets, + const auto first_invalid_offset = std::adjacent_find( + run_offsets.begin(), run_offsets.end(), [&](int32_t left, int32_t right) { return right - left != expected_size; }); if (first_invalid_offset != run_offsets.end()) { const int64_t x = - start + std::ranges::distance(run_offsets.begin(), first_invalid_offset); + start + std::distance(run_offsets.begin(), first_invalid_offset); const int32_t size = offsets[x + 1] - offsets[x]; if (has_elements) { return Status::Invalid("Expected all lists to be of size=", list_size,