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

Method Slice

cpp/src/arrow/array/data.cc:189–207  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

187}
188
189std::shared_ptr<ArrayData> ArrayData::Slice(int64_t off, int64_t len) const {
190 ARROW_CHECK_LE(off, length) << "Slice offset (" << off
191 << ") greater than array length (" << length << ")";
192 len = std::min(length - off, len);
193 off += offset;
194
195 auto copy = this->Copy();
196 copy->length = len;
197 copy->offset = off;
198 if (null_count == length) {
199 copy->null_count = len;
200 } else if (off == offset && len == length) { // A copy of current.
201 copy->null_count = null_count.load();
202 } else {
203 copy->null_count = null_count != 0 ? kUnknownNullCount : 0;
204 }
205 copy->statistics = nullptr;
206 return copy;
207}
208
209Result<std::shared_ptr<ArrayData>> ArrayData::SliceSafe(int64_t off, int64_t len) const {
210 RETURN_NOT_OK(internal::CheckSliceParams(length, off, len, "array"));

Callers 15

garrow_table_sliceFunction · 0.45
garrow_array_sliceFunction · 0.45
ApplyGroupingsMethod · 0.45
ConvertListsLikeFunction · 0.45
SliceArrayFromJSONFunction · 0.45
TestSessionFunction · 0.45
TEST_FFunction · 0.45
PrintDiffFunction · 0.45
GetChildMethod · 0.45

Calls 2

CopyMethod · 0.45
loadMethod · 0.45

Tested by 15

TestSessionFunction · 0.36
TEST_FFunction · 0.36
TESTFunction · 0.36
TEST_FFunction · 0.36
TEST_FFunction · 0.36
ASSERT_OK_AND_ASSIGNFunction · 0.36
TYPED_TEST_PFunction · 0.36
TEST_FFunction · 0.36
TEST_PFunction · 0.36
TEST_FFunction · 0.36
TestSizeLimitMethod · 0.36