private static boolean fileIsFullyDeleted(List<CommitTaskData> positionDeletes) {
    checkArgument(!positionDeletes.isEmpty(), "Cannot call fileIsFullyDeletes with an empty list");
    String referencedDataFile = positionDeletes.get(0).getReferencedDataFile().orElseThrow();
    long fileRecordCount = positionDeletes.get(0).getFileRecordCount().orElseThrow();
    checkArgument(
        positionDeletes.stream()
            .allMatch(
                positionDelete ->
                    positionDelete.getReferencedDataFile().orElseThrow().equals(referencedDataFile)
                        && positionDelete.getFileRecordCount().orElseThrow() == fileRecordCount),
        "All position deletes must be for the same file and have the same fileRecordCount");
    long deletedRowCount =
        positionDeletes.stream()
            .map(CommitTaskData::getDeletedRowCount)
            .mapToLong(Optional::orElseThrow)
            .sum();
    checkState(
        deletedRowCount <= fileRecordCount, "Found more deleted rows than exist in the file");
    return fileRecordCount == deletedRowCount;
  }
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