@Override public Void visit(ArrowType.Struct type) { try { generator.writeStartObject(); if (!skipName) { generator.writeFieldName("name"); generator.writeString(field.getName()); } generator.writeFieldName("type"); generator.writeStartObject(); generator.writeFieldName("name"); type.accept(typeDescriber); List<Field> children = field.getChildren(); if (children != null) { generator.writeFieldName("subSchema"); generator.writeStartArray(); for (Field field : children) { APIFieldDescriber.FieldDescriber describer = new APIFieldDescriber.FieldDescriber(generator, field, false); field.getType().accept(describer); } generator.writeEndArray(); } generator.writeEndObject(); generator.writeEndObject(); } catch (IOException e) { e.printStackTrace(); } return null; }
return new ArrowType.Struct();
public StructVector addOrGetStruct(String name) { return addOrGet(name, FieldType.nullable(new Struct()), StructVector.class); }
@Test public void falseWhenChildrenAreSelected() { BatchSchema schema = mock(BatchSchema.class); when(schema.iterator()) .thenReturn(Lists.newArrayList( new Field("a1", new FieldType(true, new ArrowType.Struct(), null), Lists.newArrayList(Field.nullable("a2", new ArrowType.Bool()))), Field.nullable("a3", new ArrowType.Bool())).iterator()); assertFalse(EasyScanOperatorCreator.selectsAllColumns(schema, Lists.newArrayList(SchemaPath.getSimplePath("a1"), SchemaPath.getCompoundPath("a1", "a2"), SchemaPath.getSimplePath("a3")))); }