in xtable-core/src/main/java/org/apache/xtable/delta/DeltaPartitionExtractor.java [255:291]
public Map<String, String> partitionValueSerialization(InternalDataFile internalDataFile) {
Map<String, String> partitionValuesSerialized = new HashMap<>();
if (internalDataFile.getPartitionValues() == null
|| internalDataFile.getPartitionValues().isEmpty()) {
return partitionValuesSerialized;
}
for (PartitionValue partitionValue : internalDataFile.getPartitionValues()) {
InternalPartitionField partitionField = partitionValue.getPartitionField();
PartitionTransformType transformType = partitionField.getTransformType();
String partitionValueSerialized;
if (transformType == PartitionTransformType.VALUE) {
partitionValueSerialized =
convertToDeltaPartitionValue(
partitionValue.getRange().getMaxValue(),
partitionField.getSourceField().getSchema().getDataType(),
transformType,
"");
partitionValuesSerialized.put(
partitionField.getSourceField().getName(), partitionValueSerialized);
} else if (transformType == PartitionTransformType.BUCKET) {
partitionValueSerialized = partitionValue.getRange().getMaxValue().toString();
partitionValuesSerialized.put(
getGeneratedColumnName(partitionField), partitionValueSerialized);
} else {
// use appropriate date formatter for value serialization.
partitionValueSerialized =
convertToDeltaPartitionValue(
partitionValue.getRange().getMaxValue(),
partitionField.getSourceField().getSchema().getDataType(),
transformType,
getDateFormat(partitionField.getTransformType()));
partitionValuesSerialized.put(
getGeneratedColumnName(partitionField), partitionValueSerialized);
}
}
return partitionValuesSerialized;
}