linliu-code commented on code in PR #13498:
URL: https://github.com/apache/hudi/pull/13498#discussion_r2198092274
##########
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:
Yeah, I was also thinking about:
`CommitTimeBufferedRecordPartialUpdateIgnoreDefaultsMerger,
CommitTimeBufferedRecordPartialUpdateIgnoreMarkersMerger,
CommitTimeBufferedRecordPartialUpdateKeepValuesMerger,
...
`
Since that we will have too many subclasses. That is why I changed my mind
to see if maintaining less mergers is better. But I agree that we can keep
partial update modes into one subclass, which is better trade off.
--
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]