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

Function SwapListView

cpp/src/arrow/compute/kernels/vector_nested_test.cc:187–205  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

185
186template <typename T = ListViewType, typename offset_type = typename T::offset_type>
187void SwapListView(ArrayData* array, int64_t i, int64_t j) {
188 ASSERT_TRUE(is_list_view(array->type->id()));
189 ASSERT_EQ(array->type->id(), T::type_id);
190 ASSERT_LT(i, array->length);
191 ASSERT_LT(j, array->length);
192 auto* validity = array->GetMutableValues<uint8_t>(0);
193 if (validity) {
194 const bool is_valid_i = bit_util::GetBit(validity, array->offset + i);
195 const bool is_valid_j = bit_util::GetBit(validity, array->offset + j);
196 if (is_valid_i ^ is_valid_j) {
197 bit_util::SetBitTo(validity, array->offset + i, is_valid_j);
198 bit_util::SetBitTo(validity, array->offset + j, is_valid_i);
199 }
200 }
201 auto* offsets = array->GetMutableValues<offset_type>(1);
202 auto* sizes = array->GetMutableValues<offset_type>(2);
203 std::swap(offsets[i], offsets[j]);
204 std::swap(sizes[i], sizes[j]);
205}
206
207template <typename T = ListViewType, typename offset_type = typename T::offset_type>
208void SetListView(ArrayData* array, int64_t i, offset_type offset, offset_type size) {

Callers 1

TESTFunction · 0.85

Calls 5

swapFunction · 0.85
is_list_viewFunction · 0.50
GetBitFunction · 0.50
SetBitToFunction · 0.50
idMethod · 0.45

Tested by

no test coverage detected