@VisibleForTesting
  static boolean partitionMatchesPredicate(
      Set<IcebergColumnHandle> identityPartitionColumns,
      Supplier<Map<ColumnHandle, NullableValue>> partitionValues,
      TupleDomain<IcebergColumnHandle> dynamicFilterPredicate) {
    if (dynamicFilterPredicate.isNone()) {
      return false;
    }
    Map<IcebergColumnHandle, Domain> domains = dynamicFilterPredicate.getDomains().orElseThrow();

    for (IcebergColumnHandle partitionColumn : identityPartitionColumns) {
      Domain allowedDomain = domains.get(partitionColumn);
      if (allowedDomain != null) {
        if (!allowedDomain.includesNullableValue(
            partitionValues.get().get(partitionColumn).getValue())) {
          return false;
        }
      }
    }
    return true;
  }
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