1
0

[HUDI-3170] Do not preserve filename when preserveCommitMetadata enabled (#4512)

This commit is contained in:
Sagar Sumit
2022-01-05 18:39:58 +05:30
committed by GitHub
parent 0e297c0c4c
commit 75133f9942
2 changed files with 5 additions and 0 deletions

View File

@@ -140,6 +140,8 @@ public class HoodieCreateHandle<T extends HoodieRecordPayload, I, K, O> extends
// Convert GenericRecord to GenericRecord with hoodie commit metadata in schema
IndexedRecord recordWithMetadataInSchema = rewriteRecord((GenericRecord) avroRecord.get());
if (preserveHoodieMetadata) {
// do not preserve FILENAME_METADATA_FIELD
recordWithMetadataInSchema.put(HoodieRecord.HOODIE_META_COLUMNS_NAME_TO_POS.get(HoodieRecord.FILENAME_METADATA_FIELD), path.getName());
fileWriter.writeAvro(record.getRecordKey(), recordWithMetadataInSchema);
} else {
fileWriter.writeAvroWithMetadata(recordWithMetadataInSchema, record);

View File

@@ -1836,9 +1836,12 @@ public class TestHoodieClientOnCopyOnWriteStorage extends HoodieClientTestBase {
Map<String, List<GenericRecord>> recordsByCommitTime = records.stream()
.collect(Collectors.groupingBy(r -> r.get(HoodieRecord.COMMIT_TIME_METADATA_FIELD).toString()));
assertTrue(commitTimes.containsAll(recordsByCommitTime.keySet()));
Set<String> expectedFileIds = allStatus.stream().map(WriteStatus::getFileId).collect(Collectors.toSet());
for (GenericRecord record : records) {
String recordKey = record.get(HoodieRecord.RECORD_KEY_METADATA_FIELD).toString();
assertTrue(expectedKeys.contains(recordKey));
String fileName = record.get(HoodieRecord.FILENAME_METADATA_FIELD).toString();
assertTrue(expectedFileIds.contains(FSUtils.getFileId(fileName)));
}
}