[Java] ArrowRecordBatch Body Length Computation Only Accounts for Last Buffer
- Linguagem predominante
- Java
- Estrelas
- 94
- Forks
- 152
- Merge médio
- 3d 16h
- PRs com merge (30d)
- 11
Descrição
### Describe the bug, including details regarding any error messages, version, and platform.
Hi Arrow Community,
I believe `ArrowRecordBatch::computeBodyLength` has an implementation bug. It does the following
```
for (int i = 0; i < buffers.size(); i++) {
ArrowBuf buffer = buffers.get(i);
ArrowBuffer layout = buffersLayout.get(i);
size = layout.getOffset() + buffer.readableBytes();
// round up size to the next multiple of 8
size = DataSizeRoundingUtil.roundUpTo8Multiple(size);
}
return size;
```
Since `size` is being assigned and not incremented at first - does this mean computeBodyLength only accounts for the last buffer ?
### Component(s)
Java
Guia de contribuição
Direção de pesquisa
Comece em ArrowRecordBatch::computeBodyLength e inspecione como os layouts dos buffers e os bytes legíveis contribuem para o valor retornado. Reproduza o cálculo com vários buffers e, em seguida, verifique o código Java ao redor ou os testes para entender a semântica esperada do comprimento do corpo. Está concluído quando o cálculo considera todos os buffers e preserva o arredondamento necessário para 8 bytes.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- java
- Domínio
- data-engineering
- Tipo de issue
- Bug
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 35/100