We have several issues about adding some "copy" utility that compacts the arrays, i.e. truncates all sliced arrays, child arrays and buffers to just the part that is needed to represent the data (#37878, #30503, #38806).
We also nowadays have the utility to copy data to a different device (Array::CopyTo, same for RecordBatch). But similarly as for the above issues, one might want to just copy the required part and not the full buffers (right now, copying an Array to a different devices just copies the underlying buffers as-is, and so copying a sliced array just copies the full array).
Somewhat related (could potentially share code) is that we also want this functionality for writing non-CPU data to IPC: #43029
We have several issues about adding some "copy" utility that compacts the arrays, i.e. truncates all sliced arrays, child arrays and buffers to just the part that is needed to represent the data (#37878, #30503, #38806).
We also nowadays have the utility to copy data to a different device (
Array::CopyTo, same for RecordBatch). But similarly as for the above issues, one might want to just copy the required part and not the full buffers (right now, copying an Array to a different devices just copies the underlying buffers as-is, and so copying a sliced array just copies the full array).Somewhat related (could potentially share code) is that we also want this functionality for writing non-CPU data to IPC: #43029