in xtable-core/src/main/java/org/apache/xtable/hudi/HudiPartitionValuesExtractor.java [83:104]
private PartialResult parsePartitionPath(
InternalPartitionField field, String remainingPath, int totalNumberOfPartitions) {
switch (field.getTransformType()) {
case YEAR:
case MONTH:
case DAY:
case HOUR:
return parseDate(
remainingPath, pathToPartitionFieldFormat.get(field.getSourceField().getPath()));
case VALUE:
// if there is only one partition field, then assume full partition path is used even if
// value contains slashes
// this case is possible if user is directly relying on directly _hoodie_partition_path due
// to custom partitioning logic
boolean isSlashDelimited = totalNumberOfPartitions > 1;
return parseValue(
remainingPath, field.getSourceField().getSchema().getDataType(), isSlashDelimited);
default:
throw new IllegalArgumentException(
"Unexpected partition type: " + field.getTransformType());
}
}