private static AMSPartitionField buildPartitionFieldFromPartitionSpec(
      Schema schema, PartitionField pf) {
    return new AMSPartitionField.Builder()
        .field(pf.name())
        .sourceField(schema.findColumnName(pf.sourceId()))
        .transform(pf.transform().toString())
        .fieldId(pf.fieldId())
        .sourceFieldId(pf.sourceId())
        .build();
  }
Construct ColumnInfo based on schema and primary key field.
amoro-ams/src/main/java/org/apache/amoro/server/dashboard/MixedAndIcebergTableDescriptor.java