wombatu-kun commented on code in PR #20346:
URL: https://github.com/apache/hudi/pull/20346#discussion_r4302822664


##########
hudi-common/src/main/java/org/apache/hudi/common/table/HoodieTableConfig.java:
##########
@@ -701,6 +701,17 @@ public static void create(HoodieStorage storage, 
StoragePath metadataFolder, Pro
         hoodieConfig.setValue(POPULATE_META_FIELDS,
             Boolean.toString(metaFieldsMode.toLegacyPopulateMetaFields()));
       }
+      List<String> orderingFields = 
StringUtils.split(hoodieConfig.getProps().getProperty(ORDERING_FIELDS.key()), 
",");
+      if (!orderingFields.isEmpty() && 
tableVersion.lesserThan(HoodieTableVersion.NINE)) {
+        // readers of tables below version 9 only know the deprecated 
precombine key, which the 9 to 8 downgrade writes too,
+        // and take its value as one field name
+        if 
(MySqlDebeziumAvroPayload.class.getName().equals(hoodieConfig.getString(PAYLOAD_CLASS_NAME)))
 {
+          // below version 9 this payload orders on its sequence field, the 
value the downgrade writes for it
+          hoodieConfig.setValue(PRECOMBINE_FIELD, 
DebeziumConstants.ADDED_SEQ_COL_NAME);

Review Comment:
   Done c27bc854e990: the legacy key now repeats the declared ordering field 
whatever the payload, and stays unset when none is declared. There is no such 
validation: this payload's ordering fields are only rewritten at version 9 
creation, by the 8 to 9 and 9 to 8 handlers, and by `StreamSync` on version 9 
tables.
   



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