rdblue commented on a change in pull request #1919:
URL: https://github.com/apache/iceberg/pull/1919#discussion_r541474598



##########
File path: 
api/src/main/java/org/apache/iceberg/transforms/PartitionSpecVisitor.java
##########
@@ -113,37 +113,43 @@ default T unknown(int fieldId, String sourceName, int 
sourceId, String transform
    * @deprecated this will be removed in 0.11.0; use {@link 
#visit(PartitionSpec, PartitionSpecVisitor)} instead.
    */
   @Deprecated
-  @SuppressWarnings("checkstyle:CyclomaticComplexity")
   static <R> List<R> visit(Schema schema, PartitionSpec spec, 
PartitionSpecVisitor<R> visitor) {
     List<R> results = Lists.newArrayListWithExpectedSize(spec.fields().size());
 
     for (PartitionField field : spec.fields()) {
-      String sourceName = schema.findColumnName(field.sourceId());
-      Transform<?, ?> transform = field.transform();
-
-      if (transform instanceof Identity) {
-        results.add(visitor.identity(field.fieldId(), sourceName, 
field.sourceId()));
-      } else if (transform instanceof Bucket) {
-        int numBuckets = ((Bucket<?>) transform).numBuckets();
-        results.add(visitor.bucket(field.fieldId(), sourceName, 
field.sourceId(), numBuckets));
-      } else if (transform instanceof Truncate) {
-        int width = ((Truncate<?>) transform).width();
-        results.add(visitor.truncate(field.fieldId(), sourceName, 
field.sourceId(), width));
-      } else if (transform == Dates.YEAR || transform == Timestamps.YEAR) {
-        results.add(visitor.year(field.fieldId(), sourceName, 
field.sourceId()));
-      } else if (transform == Dates.MONTH || transform == Timestamps.MONTH) {
-        results.add(visitor.month(field.fieldId(), sourceName, 
field.sourceId()));
-      } else if (transform == Dates.DAY || transform == Timestamps.DAY) {
-        results.add(visitor.day(field.fieldId(), sourceName, 
field.sourceId()));
-      } else if (transform == Timestamps.HOUR) {
-        results.add(visitor.hour(field.fieldId(), sourceName, 
field.sourceId()));
-      } else if (transform instanceof VoidTransform) {
-        results.add(visitor.alwaysNull(field.fieldId(), sourceName, 
field.sourceId()));
-      } else if (transform instanceof UnknownTransform) {
-        results.add(visitor.unknown(field.fieldId(), sourceName, 
field.sourceId(), transform.toString()));
-      }
+      results.add(visit(schema, field, visitor));
     }
 
     return results;
   }
+
+  static <R> R visit(Schema schema, PartitionField field, 
PartitionSpecVisitor<R> visitor) {

Review comment:
       Refactored this out of the method above to visit individual fields, for 
setting default partition names based on the transform.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to