[Java] ArrowRecordBatch Body Length Computation Only Accounts for Last Buffer
- Vorherrschende Sprache
- Java
- Sterne
- 94
- Forks
- 152
- Ø Merge
- 3 T. 16 Std.
- Gemergte PRs (30 T.)
- 11
Beschreibung
### 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
Beitragsleitfaden
Rechercherichtung
Beginne bei ArrowRecordBatch::computeBodyLength und untersuche, wie Pufferlayouts und lesbare Bytes zum zurückgegebenen Wert beitragen. Reproduziere die Berechnung mit mehreren Puffern und prüfe anschließend den umgebenden Java-Code oder die Tests auf die erwartete Semantik der Body-Länge. Die Aufgabe ist erledigt, wenn die Berechnung jeden Puffer berücksichtigt und die erforderliche 8-Byte-Rundung beibehält.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- data-engineering
- Issue-Typ
- Bug
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100