public static Schema getOutputSchema(
      Schema inputSchema, FieldAccessDescriptor fieldAccessDescriptor) {
    return getOutputSchemaTrackingNullable(inputSchema, fieldAccessDescriptor, false);
  }
@Test
  public void testNullableSchemaArray() {
    FieldAccessDescriptor fieldAccessDescriptor1 =
        FieldAccessDescriptor.withFieldNames("nestedArray.field1").resolve(NESTED_NULLABLE_SCHEMA);
    Schema schema1 = SelectHelpers.getOutputSchema(NESTED_NULLABLE_SCHEMA, fieldAccessDescriptor1);
    Schema expectedSchema1 =
        Schema.builder().addNullableField("field1", FieldType.array(FieldType.STRING)).build();
    assertEquals(expectedSchema1, schema1);

    FieldAccessDescriptor fieldAccessDescriptor2 =
        FieldAccessDescriptor.withFieldNames("nestedArray.*").resolve(NESTED_NULLABLE_SCHEMA);
    Schema schema2 = SelectHelpers.getOutputSchema(NESTED_NULLABLE_SCHEMA, fieldAccessDescriptor2);
    Schema expectedSchema2 =
        Schema.builder()
            .addNullableField("field1", FieldType.array(FieldType.STRING))
            .addNullableField("field2", FieldType.array(FieldType.INT32))
            .addNullableField("field3", FieldType.array(FieldType.DOUBLE))
            .addNullableField("field_extra", FieldType.array(FieldType.STRING))
            .build();
    assertEquals(expectedSchema2, schema2);
  }