Skip to content

[Java] StructVector throws with ExtensionType #87

Description

@FiV0

Describe the bug, including details regarding any error messages, version, and platform.

Currently when creating a struct vector with a child being an extension type things throw:

@TestpublicvoidtestStructVectorWithExtensionTypes() {
TestExtensionType.UuidTypeuuidType = newTestExtensionType.UuidType();
FielduuidField = newField("struct_child", FieldType.nullable(uuidType), null);
FieldstructField = newField("struct", FieldType.nullable(newArrowType.Struct()), List.of(uuidField));
// throwsStructVectors1 = newStructVector(structField, allocator, null);
// doesn't throwStructVectors2 = (StructVector) structField.createVector(allocator);
s1.close();
s2.close();
}

I am mainly running into this while trying to create a TransferPair.

@TestpublicvoidtestStructVectorTransferPairWithExtensionType() {
TestExtensionType.UuidTypeuuidType = newTestExtensionType.UuidType();
FielduuidField = newField("uuid_child", FieldType.nullable(uuidType), null);
FieldstructField = newField("struct", FieldType.nullable(newArrowType.Struct()), List.of(uuidField));
StructVectors1 = (StructVector) structField.createVector(allocator);
TestExtensionType.UuidVectoruuidVector = s1.addOrGet("uuid_child", FieldType.nullable(uuidType), TestExtensionType.UuidVector.class);
s1.setValueCount(1);
uuidVector.set(0, newUUID(1, 2));
s1.setIndexDefined(0);
TransferPairtp = s1.getTransferPair(structField, allocator);
finalStructVectortoVector = (StructVector) tp.getTo();
assertEquals(s1.getField(), toVector.getField());
assertEquals(s1.getField().getChildren().get(0), toVector.getField().getChildren().get(0));
// also fails but probably another issue// assertEquals(s1.getValueCount(), toVector.getValueCount());// assertEquals(s1, toVector);s1.close();
toVector.close();
}

Component(s)

Java

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions