@Override
  public UpdateSchema requireColumn(String name) {
    internalUpdateColumnRequirement(name, false);
    return this;
  }
@Test
  public void testRequireColumn() {
    Schema schema = new Schema(optional(1, "id", Types.IntegerType.get()));
    Schema expected = new Schema(required(1, "id", Types.IntegerType.get()));

    assertThatThrownBy(() -> new SchemaUpdate(schema, 1).requireColumn("id"))
        .isInstanceOf(IllegalArgumentException.class)
        .hasMessage("Cannot change column nullability: id: optional -> required");

    // required to required is not an incompatible change
    new SchemaUpdate(expected, 1).requireColumn("id").apply();

    Schema result =
        new SchemaUpdate(schema, 1).allowIncompatibleChanges().requireColumn("id").apply();

    assertThat(result.asStruct()).isEqualTo(expected.asStruct());
  }