danny0405 commented on code in PR #13498:
URL: https://github.com/apache/hudi/pull/13498#discussion_r2191372379


##########
hudi-common/src/main/java/org/apache/hudi/common/table/read/BufferedRecordMergerFactory.java:
##########
@@ -45,27 +46,34 @@
  * Factory to create a {@link BufferedRecordMerger}.
  */
 public class BufferedRecordMergerFactory {
+
+  private BufferedRecordMergerFactory() {
+  }
+
   public static <T> BufferedRecordMerger<T> create(HoodieReaderContext<T> 
readerContext,
                                                    RecordMergeMode 
recordMergeMode,
                                                    boolean 
enablePartialMerging,
                                                    Option<HoodieRecordMerger> 
recordMerger,
                                                    Option<String> 
orderingFieldName,
                                                    Option<String> payloadClass,
                                                    Schema readerSchema,
-                                                   TypedProperties props) {
+                                                   TypedProperties props,
+                                                   PartialUpdateMode 
partialUpdateMode) {
     if (enablePartialMerging) {
       BufferedRecordMerger<T> deleteRecordMerger = create(
-          readerContext, recordMergeMode, false, recordMerger, 
orderingFieldName, payloadClass, readerSchema, props);
+          readerContext, recordMergeMode, false, recordMerger, 
orderingFieldName, payloadClass, readerSchema, props, partialUpdateMode);
       return new PartialUpdateBufferedRecordMerger<>(readerContext, 
recordMerger, deleteRecordMerger, readerSchema, props);
     }
+
     switch (recordMergeMode) {
       case COMMIT_TIME_ORDERING:
-        return new CommitTimeBufferedRecordMerger<>();
+        return new CommitTimeBufferedRecordMerger<>(readerContext, 
partialUpdateMode, props, readerSchema);

Review Comment:
   I was expecting to add a new `CommitTimeBufferedRecordMerger` subclass, like 
`CommitTimeBufferedRecordPartialUpdateMerger`, let's keep the core event 
time/commit time merging logic clean.
   
   ```java
   case COMMIT_TIME_ORDERING:
     if (partialUpdateMode == None) {
       return new CommitTimeBufferedRecordMerger<>(...);
     } else {
       return new CommitTimeBufferedRecordPartialUpdateMerger<>(...);
     }
   ```



##########
hudi-common/src/main/java/org/apache/hudi/common/table/read/BufferedRecordMergerFactory.java:
##########
@@ -45,27 +46,34 @@
  * Factory to create a {@link BufferedRecordMerger}.
  */
 public class BufferedRecordMergerFactory {
+
+  private BufferedRecordMergerFactory() {
+  }
+
   public static <T> BufferedRecordMerger<T> create(HoodieReaderContext<T> 
readerContext,
                                                    RecordMergeMode 
recordMergeMode,
                                                    boolean 
enablePartialMerging,
                                                    Option<HoodieRecordMerger> 
recordMerger,
                                                    Option<String> 
orderingFieldName,
                                                    Option<String> payloadClass,
                                                    Schema readerSchema,
-                                                   TypedProperties props) {
+                                                   TypedProperties props,
+                                                   PartialUpdateMode 
partialUpdateMode) {
     if (enablePartialMerging) {
       BufferedRecordMerger<T> deleteRecordMerger = create(
-          readerContext, recordMergeMode, false, recordMerger, 
orderingFieldName, payloadClass, readerSchema, props);
+          readerContext, recordMergeMode, false, recordMerger, 
orderingFieldName, payloadClass, readerSchema, props, partialUpdateMode);
       return new PartialUpdateBufferedRecordMerger<>(readerContext, 
recordMerger, deleteRecordMerger, readerSchema, props);
     }
+
     switch (recordMergeMode) {
       case COMMIT_TIME_ORDERING:
-        return new CommitTimeBufferedRecordMerger<>();
+        return new CommitTimeBufferedRecordMerger<>(readerContext, 
partialUpdateMode, props, readerSchema);
       case EVENT_TIME_ORDERING:
-        return new EventTimeBufferedRecordMerger<>();
+        return new EventTimeBufferedRecordMerger<>(readerContext, 
partialUpdateMode, props, readerSchema);

Review Comment:
   ditto



-- 
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]

Reply via email to