@Override
  public PartitionAwareOptimizationCtx createPartitionAwareOptimizationContext(
      org.apache.hadoop.hive.ql.metadata.Table table) {
    // Currently, we support the only bucket transform
    final List<String> bucketColumnNames = Lists.newArrayList();
    final List<Integer> numBuckets = Lists.newArrayList();
    getPartitionTransformSpec(table).stream().filter(IcebergTableUtil::isBucket).forEach(spec -> {
      bucketColumnNames.add(spec.getColumnName());
      numBuckets.add(spec.getTransformParam().get());
    });

    if (bucketColumnNames.isEmpty()) {
      return null;
    }
    final IcebergBucketFunction bucketFunction = new IcebergBucketFunction(bucketColumnNames, numBuckets);
    return new PartitionAwareOptimizationCtx(bucketFunction);
  }
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