diff --git a/cpp/submodules/parquet-testing b/cpp/submodules/parquet-testing index 74278bc4a1122..d69d979223e88 160000 --- a/cpp/submodules/parquet-testing +++ b/cpp/submodules/parquet-testing @@ -1 +1 @@ -Subproject commit 74278bc4a1122d74945969e6dec405abd1533ec3 +Subproject commit d69d979223e883faef9dc6fe3cf573087243c28a diff --git a/python/pyarrow/array.pxi b/python/pyarrow/array.pxi index 131a9e2b993c3..45fd29ad3b3f3 100644 --- a/python/pyarrow/array.pxi +++ b/python/pyarrow/array.pxi @@ -562,8 +562,13 @@ def _normalize_slice(object arrow_obj, slice key): Py_ssize_t n = len(arrow_obj) start, stop, step = key.indices(n) - indices = np.arange(start, stop, step) - return arrow_obj.take(indices) + + if step != 1: + indices = np.arange(start, stop, step) + return arrow_obj.take(indices) + else: + length = max(stop - start, 0) + return arrow_obj.slice(start, length) cdef Py_ssize_t _normalize_index(Py_ssize_t index, diff --git a/testing b/testing index 25d16511e8d42..ad82a736c170e 160000 --- a/testing +++ b/testing @@ -1 +1 @@ -Subproject commit 25d16511e8d42c2744a1d94d90169e3a36e92631 +Subproject commit ad82a736c170e97b7c8c035ebd8a801c17eec170