danny0405 commented on code in PR #13334:
URL: https://github.com/apache/hudi/pull/13334#discussion_r2127771545
##########
hudi-common/src/main/java/org/apache/hudi/common/util/HoodieRecordUtils.java:
##########
@@ -75,21 +85,58 @@ public static HoodieRecordMerger loadRecordMerger(String
mergerClass) {
* Instantiate a given class with a record merge.
*/
public static HoodieRecordMerger createRecordMerger(String basePath,
EngineType engineType,
- List<String>
mergerClassList, String recordMergerStrategy) {
- if (mergerClassList.isEmpty() ||
HoodieTableMetadata.isMetadataTable(basePath)) {
+ List<String>
mergerClassList,
+ String
recordMergerStrategy,
+ Option<String>
payloadClassOpt) {
+ if (HoodieTableMetadata.isMetadataTable(basePath)) {
return HoodieAvroRecordMerger.INSTANCE;
+ } else if (mergerClassList.isEmpty()) {
+ // No merger class is given, we fall back to use Avro based mergers.
+ return createValidRecordMerger(engineType, "", recordMergerStrategy,
payloadClassOpt)
+ .orElse(HoodieAvroRecordMerger.INSTANCE);
} else {
return createValidRecordMerger(engineType, mergerClassList,
recordMergerStrategy)
.orElse(HoodieAvroRecordMerger.INSTANCE);
}
}
public static Option<HoodieRecordMerger> createValidRecordMerger(EngineType
engineType,
- String
mergerImpls, String recordMergerStrategy) {
- if
(recordMergerStrategy.equals(HoodieRecordMerger.PAYLOAD_BASED_MERGE_STRATEGY_UUID))
{
- return Option.of(HoodieAvroRecordMerger.INSTANCE);
+ String
mergerImpls,
+ String
recordMergerStrategy,
+
Option<String> payloadClassOpt) {
+ String payloadClass = payloadClassOpt.get();
+ // Payload based strategy and payload class is given.
+ if (null != recordMergerStrategy
Review Comment:
payload class is a table config, shouldn't we fix
`HoodieTableConfig.inferRecordMergeModeFromPayloadClass` and
`HoodieTableConfig.inferRecordMergeModeFromMergeStrategyId` instead of here?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]