@DisplayName("Test `alter column`")
  @ParameterizedTest
  @MethodSource()
  @EnableCatalogSelect.SelectCatalog(use = MIXED_ICEBERG_CATALOG)
  public void testAlterColumn(
      String alterText, String primaryKeyDDL, Types.StructType expectedSchema) {
    String sqlText =
        "CREATE TABLE "
            + target()
            + " ( \n"
            + "id bigint, data string, ts timestamp, count int "
            + primaryKeyDDL
            + " ) using "
            + provider(TableFormat.MIXED_ICEBERG)
            + " PARTITIONED BY (ts)";
    sql(sqlText);
    if (expectedSchema != null) {
      sql("ALTER TABLE " + target().database + "." + target().table + " ALTER COLUMN " + alterText);
      Assertions.assertEquals(
          expectedSchema, loadTable().schema().asStruct(), "Schema should match expected");
    } else {
      Assert.assertThrows(
          AnalysisException.class,
          () ->
              sql(
                  "ALTER TABLE "
                      + target().database
                      + "."
                      + target().table
                      + " ALTER COLUMN "
                      + alterText));
    }
  }
TODO: are arguments could be simplify? TODO: Test coverage is not enough.
amoro-format-mixed/amoro-mixed-spark/v3.3/amoro-mixed-spark-3.3/src/test/java/org/apache/amoro/spark/test/suites/sql/TestAlterTableColumnSQL.java