private static void validateTableExecuteParameters(
      Table table,
      SchemaTableName schemaTableName,
      String procedureName,
      Duration retentionThreshold,
      Duration minRetention,
      String minRetentionParameterName,
      String sessionMinRetentionParameterName) {
    int tableFormatVersion = ((HasTableOperations) table).operations().current().formatVersion();
    if (tableFormatVersion > CLEANING_UP_PROCEDURES_MAX_SUPPORTED_TABLE_VERSION) {
      // It is not known if future version won't bring any new kind of metadata or data files
      // because of the way procedures are implemented it is safer to fail here than to potentially
      // remove
      // files that should stay there
      throw new TrinoException(
          NOT_SUPPORTED,
          format(
              "%s is not supported for Iceberg table format version > %d. "
                  + "Table %s format version is %s.",
              procedureName,
              CLEANING_UP_PROCEDURES_MAX_SUPPORTED_TABLE_VERSION,
              schemaTableName,
              tableFormatVersion));
    }
    Map<String, String> properties = table.properties();
    if (properties.containsKey(WRITE_LOCATION_PROVIDER_IMPL)) {
      throw new TrinoException(
          NOT_SUPPORTED,
          "Table "
              + schemaTableName
              + " specifies "
              + properties.get(WRITE_LOCATION_PROVIDER_IMPL)
              + " as a location provider. Writing to Iceberg tables with custom location provider is not supported.");
    }

    Duration retention = requireNonNull(retentionThreshold, "retention is null");
    checkProcedureArgument(
        retention.compareTo(minRetention) >= 0,
        "Retention specified (%s) is shorter than the minimum retention configured in the system (%s). "
            + "Minimum retention can be changed with %s configuration property or iceberg.%s session property",
        retention,
        minRetention,
        minRetentionParameterName,
        sessionMinRetentionParameterName);
  }
Iceberg original metadata has some problems for mixed-format table, such as iceberg version,
table type. So copy from IcebergMetadata and made some change
amoro-format-mixed/amoro-mixed-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergMetadata.java