private static void updateColumnSpec(IcebergColumnInfo column, UpdatePartitionSpec builder) {
        if (StringUtils.isEmpty(column.getPartitionStrategy())) {
            return;
        }
        switch (IcebergPartition.forName(column.getPartitionStrategy())) {
            case IDENTITY:
                builder.addField(column.getFieldName());
                break;
            case BUCKET:
                builder.addField(Expressions.bucket(column.getFieldName(), column.getBucketNum()));
                break;
            case TRUNCATE:
                builder.addField(Expressions.truncate(column.getFieldName(), column.getWidth()));
                break;
            case YEAR:
                builder.addField(Expressions.year(column.getFieldName()));
                break;
            case MONTH:
                builder.addField(Expressions.month(column.getFieldName()));
                break;
            case DAY:
                builder.addField(Expressions.day(column.getFieldName()));
                break;
            case HOUR:
                builder.addField(Expressions.hour(column.getFieldName()));
                break;
            case NONE:
                break;
            default:
                throw new IllegalArgumentException(
                        "unknown iceberg partition strategy: " + column.getPartitionStrategy());
        }
    }
Update iceberg table column schema.
It's unfortunate that the updating api is different from the creating api so the partition type switch is
repeated here.
inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/resource/sink/iceberg/IcebergCatalogUtils.java