linliu-code commented on code in PR #13498:
URL: https://github.com/apache/hudi/pull/13498#discussion_r2197836915


##########
hudi-common/src/main/java/org/apache/hudi/common/engine/HoodieReaderContext.java:
##########
@@ -280,7 +286,8 @@ public ClosableIterator<T> getFileRecordIterator(
   public void initRecordMerger(TypedProperties properties) {
     RecordMergeMode recordMergeMode = tableConfig.getRecordMergeMode();
     String mergeStrategyId = tableConfig.getRecordMergeStrategyId();
-    if 
(!tableConfig.getTableVersion().greaterThanOrEquals(HoodieTableVersion.EIGHT)) {
+    if 
(tableConfig.getTableVersion().greaterThanOrEquals(HoodieTableVersion.NINE)
+        || tableConfig.getTableVersion().lesserThan(HoodieTableVersion.EIGHT)) 
{

Review Comment:
   @nsivabalan , we can sync on this. I think I finally understand the workflow.
   1. For reading any tables created in table version 9, payload class config 
should not be used. Merge mode/partial update mode should have been set 
correctly.
   2. For reading existing tables in table version < 9, if payload class has 
been used, the merge mode/partial update mode should be inferred. (backward 
compatibility)
   3. During upgrade to table version 9, the merge mode / partial update mode 
should be inferred, and set explicitly for these payload classes. 
   
   Therefore, in table version < 9, inference should be utilized. In table 
version 9, we should assume merge mode/partial update mode have been set 
explicitly. 
   
   Then I think I need to fix the above logic to keep inference only for table 
version <= 8, and the upgrade/downgrade PR to add merge/partial update mode 
explicitly as well. 



-- 
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: commits-unsubscr...@hudi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to