private static UnboundPredicate<Object> getPartitionPredicate(PartitionData partitionData, PartitionField field,
      int index, Schema schema) {
    String columName = schema.findField(field.sourceId()).name();
    TransformSpec transformSpec = TransformSpec.fromString(field.transform().toString(), columName);

    UnboundTerm<Object> partitionColumn =
        ObjectUtils.defaultIfNull(HiveIcebergFilterFactory.toTerm(columName, transformSpec),
            Expressions.ref(field.name()));

    return Expressions.equal(partitionColumn, partitionData.get(index, Object.class));
  }
Calculates the properties we would like to send to the catalog.
<ul>
<li>The base of the properties is the properties stored at the Hive Metastore for the given table
<li>We add the {@link Catalogs#LOCATION} as the table location
<li>We add the {@link Catalogs#NAME} as TableIdentifier defined by the database name and table name
<li>We add the serdeProperties of the HMS table
<li>We remove some parameters that we don't want to push down to the Iceberg table props
</ul>
@param hmsTable Table for which we are calculating the properties
@return The properties we can provide for Iceberg functions, like {@link Catalogs}
iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/HiveIcebergMetaHook.java