@Override
  public Map<Integer, List<TransformSpec>> getPartitionTransformSpecs(
      org.apache.hadoop.hive.ql.metadata.Table hmsTable) {
    Table table = IcebergTableUtil.getTable(conf, hmsTable.getTTable());
    return table.specs().entrySet().stream().flatMap(e ->
      e.getValue().fields().stream()
        .filter(f -> !f.transform().isVoid())
        .map(f -> {
          TransformSpec spec = IcebergTableUtil.getTransformSpec(
              table, f.transform().toString(), f.sourceId());
          spec.setFieldName(f.name());
          return Pair.of(e.getKey(), spec);
        }))
      .collect(Collectors.groupingBy(
          Pair::first, Collectors.mapping(Pair::second, Collectors.toList())));
  }
Iceberg's optimistic concurrency control fails to provide means for IOW and Insert operations isolation.
Use `hive.txn.ext.locking.enabled` config to create Hive locks in order to guarantee data consistency.
iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/HiveIcebergStorageHandler.java