public static Stream<Arguments> testStatic() {
    Function<Record, Boolean> alwaysTrue = r -> true;
    Function<Record, Boolean> deleteAAA = r -> "AAA".equals(r.getField("pt"));
    Function<Record, Boolean> deleteDDD = r -> "DDD".equals(r.getField("pt"));

    Function<Record, Record> noTrans = Function.identity();
    Function<Record, Record> ptAAA = r -> setPtValue(r, "AAA");
    Function<Record, Record> ptDDD = r -> setPtValue(r, "DDD");

    return Stream.of(
        Arguments.arguments(MIXED_ICEBERG, ID_PRIMARY_KEY_SPEC, "", "*", alwaysTrue, noTrans),
        Arguments.arguments(
            MIXED_ICEBERG,
            ID_PRIMARY_KEY_SPEC,
            "PARTITION(pt = 'AAA')",
            "id, data",
            deleteAAA,
            ptAAA),
        Arguments.arguments(MIXED_ICEBERG, NO_PRIMARY_KEY, "", "*", alwaysTrue, noTrans),
        Arguments.arguments(
            MIXED_ICEBERG, NO_PRIMARY_KEY, "PARTITION(pt = 'DDD')", "id, data", deleteDDD, ptDDD),
        Arguments.arguments(MIXED_HIVE, ID_PRIMARY_KEY_SPEC, "", "*", alwaysTrue, noTrans),
        Arguments.arguments(
            MIXED_HIVE, ID_PRIMARY_KEY_SPEC, "PARTITION(pt = 'AAA')", "id, data", deleteAAA, ptAAA),
        Arguments.arguments(MIXED_HIVE, NO_PRIMARY_KEY, "", "*", alwaysTrue, noTrans),
        Arguments.arguments(
            MIXED_HIVE, NO_PRIMARY_KEY, "PARTITION(pt = 'DDD')", "id, data", deleteDDD, ptDDD));
  }
1. dynamic insert overwrite 2. static insert overwrite 3. for un-partitioned table 3. duplicate
check for insert overwrite 4. optimize write is work for insert overwrite
amoro-format-mixed/amoro-mixed-spark/v3.3/amoro-mixed-spark-3.3/src/test/java/org/apache/amoro/spark/test/suites/sql/TestInsertOverwriteSQL.java