return Value.timestamp(value.getTimestamp(fieldIndex)); case STRUCT: return Value.struct(value.getStruct(fieldIndex)); case ARRAY:
@Test public void structWithStructField() { Struct nestedStruct = Struct.newBuilder().set("f2f1").to(10).build(); Struct struct = Struct.newBuilder() .set("f1") .to("v1") .set("f2") .to(nestedStruct) .set("f3") .to(nestedStruct.getType(), null) .build(); assertThat(struct.getType()) .isEqualTo( Type.struct( Type.StructField.of("f1", Type.string()), Type.StructField.of("f2", Type.struct(Type.StructField.of("f2f1", Type.int64()))), Type.StructField.of("f3", Type.struct(Type.StructField.of("f2f1", Type.int64()))))); assertThat(struct.isNull(0)).isFalse(); assertThat(struct.isNull(1)).isFalse(); assertThat(struct.isNull(2)).isTrue(); assertThat(struct.getString(0)).isEqualTo("v1"); assertThat(struct.getString("f1")).isEqualTo("v1"); assertThat(struct.getStruct(1)).isEqualTo(nestedStruct); assertThat(struct.getStruct("f2")).isEqualTo(nestedStruct); }
return Value.timestamp(value.getTimestamp(fieldIndex)); case STRUCT: return Value.struct(value.getStruct(fieldIndex)); case ARRAY: