private IcebergSplit toIcebergSplit(FileScanTask task) {
    Long transactionId = null;
    DataFileType dataFileType = null;
    if (isChange) {
      MixedFileScanTask mixedFileScanTask = (MixedFileScanTask) task;
      PrimaryKeyedFile primaryKeyedFile = mixedFileScanTask.file();
      transactionId = primaryKeyedFile.transactionId();
      dataFileType = primaryKeyedFile.type();
    }
    return new IcebergSplit(
        task.file().path().toString(),
        task.start(),
        task.length(),
        task.file().fileSizeInBytes(),
        task.file().recordCount(),
        IcebergFileFormat.fromIceberg(task.file().format()),
        ImmutableList.of(),
        PartitionSpecParser.toJson(task.spec()),
        PartitionData.toJson(task.file().partition()),
        task.deletes().stream().map(TrinoDeleteFile::copyOf).collect(toImmutableList()),
        transactionId,
        dataFileType);
  }
Iceberg original IcebergSplitSource has some problems for mixed-format table, such as iceberg
version, table type.
amoro-format-mixed/amoro-mixed-trino/src/main/java/org/apache/amoro/trino/unkeyed/IcebergSplitSource.java