[Vector][ExtensionType] ComplexCopier requires that extension types' holder readers implement getField
- 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.
https://github.com/apache/arrow-java/pull/892 made efforts to streamline and simplify extension readers and writers. In this, `ComplexCopier.copy` relies on `FieldReader.getField` being defined for extension types.
Usages of `ComplexCopier.copy` with readers backed by vector, e.g., `UuidReaderImpl` and `VariantReaderImpl` that do have `getField` implementation, should be OK (as there is concrete notion of Field). However, if holder readers, namely, `NullableUuidHolderReaderImpl` or `NullableVariantHolderReaderImpl` are used this results in an NPE.
Having said that `getField` method for holder readers appears to be a misnomer as we do not have a notion of a field for the holders. This can be seen from the absence of `getField` overrides for primitive types.
Beitragsleitfaden
Rechercherichtung
Beginne damit, ComplexCopier.copy zu lesen und die getField-Implementierungen in UuidReaderImpl und VariantReaderImpl mit NullableUuidHolderReaderImpl und NullableVariantHolderReaderImpl zu vergleichen. Reproduziere die NPE mit einem holder-basierten Extension-Reader und überprüfe anschließend, dass das Kopieren keine unpassende getField-Implementierung für Holder mehr erfordert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- data
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100