Copy a record batch to host memory.
| 1219 | |
| 1220 | // Copy a record batch to host memory. |
| 1221 | arrow::Result<std::shared_ptr<RecordBatch>> CopyBatchToHost(const RecordBatch& batch) { |
| 1222 | auto mm = CPUDevice::Instance()->default_memory_manager(); |
| 1223 | ArrayVector arrays; |
| 1224 | for (const auto& column : batch.columns()) { |
| 1225 | std::shared_ptr<ArrayData> data = column->data()->Copy(); |
| 1226 | if (data->child_data.size() != 0) { |
| 1227 | return Status::NotImplemented("Nested arrays"); |
| 1228 | } |
| 1229 | |
| 1230 | for (size_t i = 0; i < data->buffers.size(); i++) { |
| 1231 | const auto& buffer = data->buffers[i]; |
| 1232 | if (!buffer || buffer->is_cpu()) continue; |
| 1233 | ARROW_ASSIGN_OR_RAISE(data->buffers[i], Buffer::Copy(buffer, mm)); |
| 1234 | } |
| 1235 | arrays.push_back(MakeArray(data)); |
| 1236 | } |
| 1237 | return RecordBatch::Make(batch.schema(), batch.num_rows(), std::move(arrays)); |
| 1238 | } |
| 1239 | |
| 1240 | class CudaTestServer : public FlightServerBase { |
| 1241 | public: |
nothing calls this directly
no test coverage detected