nsivabalan commented on code in PR #13498:
URL: https://github.com/apache/hudi/pull/13498#discussion_r2231776102
##########
hudi-common/src/main/java/org/apache/hudi/common/table/read/BufferedRecordMergerFactory.java:
##########
@@ -45,27 +46,45 @@
* 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) {
+ /**
+ * This part implements KEEP_VALUES partial update mode, which merges two
records that do not have all columns.
+ * Other Partial update modes, like IGNORE_DEFAULTS assume all columns
exists in the record,
+ * but some columns contain specific values that should be replaced by
that from older version of the record.
+ */
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<>();
+ if (partialUpdateMode == PartialUpdateMode.NONE) {
Review Comment:
yes, addressing it as part of https://github.com/apache/hudi/pull/13623
--
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]