|
|
|
@@ -10,8 +10,8 @@ fn required_data_size_inner(array: &ArrayData, next_offset: &mut usize) { |
|
|
|
let layout = arrow::array::layout(array.data_type()); |
|
|
|
for (buffer, spec) in array.buffers().iter().zip(&layout.buffers) { |
|
|
|
// consider alignment padding |
|
|
|
if let BufferSpec::FixedWidth { alignment, .. } = spec { |
|
|
|
*next_offset = (*next_offset + alignment - 1) / alignment * alignment; |
|
|
|
if let BufferSpec::FixedWidth { alignment, .. } = *spec { |
|
|
|
*next_offset = (*next_offset).div_ceil(alignment) * alignment; |
|
|
|
} |
|
|
|
*next_offset += buffer.len(); |
|
|
|
} |
|
|
|
@@ -41,8 +41,8 @@ fn copy_array_into_sample_inner( |
|
|
|
*next_offset, |
|
|
|
); |
|
|
|
// add alignment padding |
|
|
|
if let BufferSpec::FixedWidth { alignment, .. } = spec { |
|
|
|
*next_offset = (*next_offset + alignment - 1) / alignment * alignment; |
|
|
|
if let BufferSpec::FixedWidth { alignment, .. } = *spec { |
|
|
|
*next_offset = (*next_offset).div_ceil(alignment) * alignment; |
|
|
|
} |
|
|
|
|
|
|
|
target_buffer[*next_offset..][..len].copy_from_slice(buffer.as_slice()); |
|
|
|
|