[HUDI-3170] Do not preserve filename when preserveCommitMetadata enabled (#4512)
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user