'Unknown type: NULL' when initialising a NullableStructWriter from a struct with NullVector children
- 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.
added test case to TestStructVector:
```java
@Test
public void testStructVectorTransferPairWithNullType() {
Field uuidField = new Field("null", FieldType.nullable(ArrowType.Null.INSTANCE), null);
Field structField =
new Field("struct", FieldType.nullable(new ArrowType.Struct()), List.of(uuidField));
try(StructVector s1 = (StructVector) structField.createVector(allocator)) {
NullVector nullVector =
s1.addOrGet("null", FieldType.nullable(ArrowType.Null.INSTANCE), NullVector.class);
s1.setValueCount(1);
nullVector.setNull(0);
s1.setIndexDefined(0);
TransferPair tp = s1.getTransferPair(structField, allocator);
try (StructVector toVector = (StructVector) tp.getTo()) {
assertEquals(s1.getField(), toVector.getField());
}
}
}
```
got this:
```
java.lang.UnsupportedOperationException: Unknown type: NULL
at org.apache.arrow.vector.complex.impl.NullableStructWriter.(NullableStructWriter.java:279)
at org.apache.arrow.vector.complex.StructVector.(StructVector.java:74)
at org.apache.arrow.vector.complex.StructVector.getTransferPair(StructVector.java:261)
at org.apache.arrow.vector.TestStructVector.testStructVectorTransferPairWithNullType(TestStructVector.java:389)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
```
expected: similar result to `testStructVectorTransferPairWithExtensionType`
Cheers!
James
our issue: xtdb/xtdb#4693
Beitragsleitfaden
Rechercherichtung
Beginne mit TestStructVector.testStructVectorTransferPairWithNullType und vergleiche es mit testStructVectorTransferPairWithExtensionType. Verfolge StructVector.getTransferPair bis in StructVector.java und NullableStructWriter.java und führe anschließend die fokussierten TestStructVector-Tests aus; abgeschlossen, wenn eine Struct, die einen NullVector enthält, ohne die Unknown type: NULL-Ausnahme übertragen wird und der Regressionstest erfolgreich ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- data
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 58/100