fatemehp commented on code in PR #14142:
URL: https://github.com/apache/arrow/pull/14142#discussion_r1004908371


##########
cpp/src/parquet/column_reader.cc:
##########
@@ -1347,16 +1346,24 @@ class TypedRecordReader : public 
TypedColumnReaderImpl<DType>,
     int64_t gap = levels_position_ - start_levels_position;
     if (gap == 0) return;
 
-    std::copy(def_levels() + levels_position_, def_levels() + levels_written_,
-              def_levels() + levels_position_ - gap);
+    int64_t levels_remaining = levels_written_ - gap;
+
+    int16_t* def_data = def_levels();
+    std::copy(def_data + levels_position_, def_data + levels_written_,

Review Comment:
   Yes, they can. However levels_position - gap is smaller than levels_position 
(we return for gap = 0 above). So we can safely use std::copy:
   "Copies all elements in the range [first, last) starting from first and 
proceeding to last - 1. The behavior is undefined if d_first is within the 
range [first, last). In this case, 
[std::copy_backward](https://en.cppreference.com/w/cpp/algorithm/copy_backward) 
may be used instead."



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to