From 6c12925c28e779a06b338f098a52fb7ad08721ce Mon Sep 17 00:00:00 2001 From: TheR1sing3un Date: Fri, 20 Sep 2024 15:48:10 +0800 Subject: [PATCH] fix: fix missing key-partition pair when wrap HoodieRecord 1. fix missing key-partition pair when wrap HoodieRecord Signed-off-by: TheR1sing3un --- .../apache/hudi/table/action/commit/HoodieMergeHelper.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/commit/HoodieMergeHelper.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/commit/HoodieMergeHelper.java index d4a1e17357c7..5fe957db66f2 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/commit/HoodieMergeHelper.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/table/action/commit/HoodieMergeHelper.java @@ -27,6 +27,7 @@ import org.apache.hudi.common.table.TableSchemaResolver; import org.apache.hudi.common.table.compaction.SortMergeCompactionHelper; import org.apache.hudi.common.util.SampleEstimator; +import org.apache.hudi.common.util.collection.Pair; import org.apache.hudi.common.util.sorter.ExternalSorter; import org.apache.hudi.common.util.sorter.ExternalSorterFactory; import org.apache.hudi.common.util.sorter.ExternalSorterType; @@ -98,8 +99,10 @@ private ClosableIterator getBaseFileRecordIteratorInSortMergeCompa ClosableIterator wrapRecordItr = new CloseableMappingIterator(rawRecordIter, record -> { HoodieTableConfig tableConfig = mergeHandle.getHoodieTableMetaClient().getTableConfig(); try { + Option> simpleKeyGenFieldsOpt = + tableConfig.populateMetaFields() ? Option.empty() : Option.of(Pair.of(tableConfig.getRecordKeyFieldProp(), tableConfig.getPartitionFieldProp())); return record.copy() - .wrapIntoHoodieRecordPayloadWithParams(readSchema, tableConfig.getProps(), Option.empty(), writeConfig.allowOperationMetadataField(), Option.of(mergeHandle.getPartitionPath()), + .wrapIntoHoodieRecordPayloadWithParams(readSchema, tableConfig.getProps(), simpleKeyGenFieldsOpt, writeConfig.allowOperationMetadataField(), Option.of(mergeHandle.getPartitionPath()), tableConfig.populateMetaFields(), Option.empty()); } catch (IOException e) { throw new HoodieIOException("Failed to wrap record into HoodieRecordPayload", e);