Skip to content

Commit 1e374c6

Browse files

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

api/src/main/java/org/apache/iceberg/transforms/PartitionSpecVisitor.java

+15-4
Original file line numberDiff line numberDiff line change
@@ -121,13 +121,24 @@ static <R> R visit(Schema schema, PartitionField field, PartitionSpecVisitor<R>
121121
} else if (transform instanceof Truncate) {
122122
int width = ((Truncate<?>) transform).width();
123123
return visitor.truncate(field.fieldId(), sourceName, field.sourceId(), width);
124-
} else if ("year".equalsIgnoreCase(transform.toString())) {
124+
} else if (transform == Dates.YEAR
125+
|| transform == Timestamps.YEAR_FROM_MICROS
126+
|| transform == Timestamps.YEAR_FROM_NANOS
127+
|| transform instanceof Years) {
125128
return visitor.year(field.fieldId(), sourceName, field.sourceId());
126-
} else if ("month".equalsIgnoreCase(transform.toString())) {
129+
} else if (transform == Dates.MONTH
130+
|| transform == Timestamps.MONTH_FROM_MICROS
131+
|| transform == Timestamps.MONTH_FROM_NANOS
132+
|| transform instanceof Months) {
127133
return visitor.month(field.fieldId(), sourceName, field.sourceId());
128-
} else if ("day".equalsIgnoreCase(transform.toString())) {
134+
} else if (transform == Dates.DAY
135+
|| transform == Timestamps.DAY_FROM_MICROS
136+
|| transform == Timestamps.DAY_FROM_NANOS
137+
|| transform instanceof Days) {
129138
return visitor.day(field.fieldId(), sourceName, field.sourceId());
130-
} else if ("hour".equalsIgnoreCase(transform.toString())) {
139+
} else if (transform == Timestamps.HOUR_FROM_MICROS
140+
|| transform == Timestamps.HOUR_FROM_NANOS
141+
|| transform instanceof Hours) {
131142
return visitor.hour(field.fieldId(), sourceName, field.sourceId());
132143
} else if (transform instanceof VoidTransform) {
133144
return visitor.alwaysNull(field.fieldId(), sourceName, field.sourceId());

0 commit comments

Comments
 (0)