apache / apache/arrow-java

[Java] ArrowRecordBatch Body Length Computation Only Accounts for Last Buffer

Aberta
#188 0 comentários 0 reações 0 responsáveis Ver no GitHub
Type: bug
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

Abrir o 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

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.