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

Method ResizeFixedLengthBuffers

cpp/src/arrow/compute/row/row_internal.cc:262–295  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

260}
261
262Status RowTableImpl::ResizeFixedLengthBuffers(int64_t num_extra_rows) {
263 if (rows_capacity_ >= num_rows_ + num_extra_rows) {
264 return Status::OK();
265 }
266
267 int64_t rows_capacity_new = std::max(static_cast<int64_t>(1), 2 * rows_capacity_);
268 while (rows_capacity_new < num_rows_ + num_extra_rows) {
269 rows_capacity_new *= 2;
270 }
271
272 // Null masks
273 RETURN_NOT_OK(null_masks_->Resize(size_null_masks(rows_capacity_new), false));
274 memset(null_masks_->mutable_data() + size_null_masks(rows_capacity_), 0,
275 size_null_masks(rows_capacity_new) - size_null_masks(rows_capacity_));
276
277 // Either offsets or rows
278 if (!metadata_.is_fixed_length) {
279 RETURN_NOT_OK(offsets_->Resize(size_offsets(rows_capacity_new), false));
280 memset(offsets_->mutable_data() + size_offsets(rows_capacity_), 0,
281 size_offsets(rows_capacity_new) - size_offsets(rows_capacity_));
282 } else {
283 RETURN_NOT_OK(rows_->Resize(size_rows_fixed_length(rows_capacity_new), false));
284 memset(rows_->mutable_data() + size_rows_fixed_length(rows_capacity_), 0,
285 size_rows_fixed_length(rows_capacity_new) -
286 size_rows_fixed_length(rows_capacity_));
287 bytes_capacity_ = size_rows_fixed_length(rows_capacity_new) - kPaddingForVectors;
288 }
289
290 UpdateBufferPointers();
291
292 rows_capacity_ = rows_capacity_new;
293
294 return Status::OK();
295}
296
297Status RowTableImpl::ResizeOptionalVaryingLengthBuffer(int64_t num_extra_bytes) {
298 DCHECK(!metadata_.is_fixed_length);

Callers 2

DecodeSelectedMethod · 0.45
TESTFunction · 0.45

Calls 3

OKFunction · 0.50
ResizeMethod · 0.45
mutable_dataMethod · 0.45

Tested by 1

TESTFunction · 0.36