| 80 | } |
| 81 | |
| 82 | Status BinaryViewBuilder::FinishInternal(std::shared_ptr<ArrayData>* out) { |
| 83 | ARROW_ASSIGN_OR_RAISE(auto null_bitmap, null_bitmap_builder_.FinishWithLength(length_)); |
| 84 | ARROW_ASSIGN_OR_RAISE(auto data, data_builder_.FinishWithLength(length_)); |
| 85 | ARROW_ASSIGN_OR_RAISE(auto byte_buffers, data_heap_builder_.Finish()); |
| 86 | BufferVector buffers(byte_buffers.size() + 2); |
| 87 | buffers[0] = std::move(null_bitmap); |
| 88 | buffers[1] = std::move(data); |
| 89 | std::move(byte_buffers.begin(), byte_buffers.end(), buffers.begin() + 2); |
| 90 | *out = ArrayData::Make(type(), length_, std::move(buffers), null_count_); |
| 91 | Reset(); |
| 92 | return Status::OK(); |
| 93 | } |
| 94 | |
| 95 | Status BinaryViewBuilder::ReserveData(int64_t length) { |
| 96 | return data_heap_builder_.Reserve(length); |