public void executeRemoveOrphanFiles(
      ConnectorSession session, IcebergTableExecuteHandle executeHandle) {
    IcebergRemoveOrphanFilesHandle removeOrphanFilesHandle =
        (IcebergRemoveOrphanFilesHandle) executeHandle.getProcedureHandle();

    Table table = loadTable(session, executeHandle.getSchemaTableName());
    Duration retention =
        requireNonNull(removeOrphanFilesHandle.getRetentionThreshold(), "retention is null");
    validateTableExecuteParameters(
        table,
        executeHandle.getSchemaTableName(),
        REMOVE_ORPHAN_FILES.name(),
        retention,
        getRemoveOrphanFilesMinRetention(session),
        IcebergConfig.REMOVE_ORPHAN_FILES_MIN_RETENTION,
        IcebergSessionProperties.REMOVE_ORPHAN_FILES_MIN_RETENTION);

    if (table.currentSnapshot() == null) {
      log.debug("Skipping remove_orphan_files procedure for empty table %s", table);
      return;
    }

    long expireTimestampMillis = session.getStart().toEpochMilli() - retention.toMillis();
    removeOrphanFiles(table, session, executeHandle.getSchemaTableName(), expireTimestampMillis);
  }
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