nsivabalan commented on a change in pull request #4714:
URL: https://github.com/apache/hudi/pull/4714#discussion_r802141826



##########
File path: 
hudi-common/src/main/java/org/apache/hudi/common/table/HoodieTableMetaClient.java
##########
@@ -750,6 +757,22 @@ public PropertyBuilder 
setCommitTimezone(HoodieTimelineTimeZone timelineTimeZone
       return this;
     }
 
+    public PropertyBuilder set(String key, Object value) {
+      if (HoodieTableConfig.PERSISTED_CONFIG_LIST.contains(key)) {
+        this.others.put(key, value);
+      }
+      return this;
+    }
+
+    public PropertyBuilder set(Map<String, Object> props) {
+      for (Map.Entry<String, Object> entry : props.entrySet()) {

Review comment:
       can we go through PERSISTED_CONFIG_LIST here in this for loop and in 
next line check if its part of incoming props list. iterating through a smaller 
list is better :) 

##########
File path: 
hudi-common/src/main/java/org/apache/hudi/common/table/HoodieTableConfig.java
##########
@@ -183,6 +185,14 @@
   public static final ConfigProperty<String> URL_ENCODE_PARTITIONING = 
KeyGeneratorOptions.URL_ENCODE_PARTITIONING;
   public static final ConfigProperty<String> HIVE_STYLE_PARTITIONING_ENABLE = 
KeyGeneratorOptions.HIVE_STYLE_PARTITIONING_ENABLE;
 
+  public static final List<String> PERSISTED_CONFIG_LIST = Arrays.asList(
+      Config.DATE_TIME_PARSER_PROP,

Review comment:
       yes, please do open one. 

##########
File path: 
hudi-common/src/main/java/org/apache/hudi/common/table/HoodieTableMetaClient.java
##########
@@ -643,6 +644,12 @@ public static PropertyBuilder withPropertyBuilder() {
     private Boolean urlEncodePartitioning;
     private HoodieTimelineTimeZone commitTimeZone;
 
+    /**
+     * Persist the configs that is written at the first time, and should not 
be changed.
+     * Like KeyGenerator's configs.
+     */
+    private Properties others = new Properties();

Review comment:
       So far we have never added loose configs (random key value pairs) to our 
tableConfig. But these could be empty if not for timestamp based key gen. Can't 
think of better ways. 
   
   btw, @xushiyan @codope @yihua : Adding new properties to tableConfig does 
not warrant a new table version right? wanted to confirm w/ you folks. 
   

##########
File path: 
hudi-common/src/main/java/org/apache/hudi/common/table/HoodieTableMetaClient.java
##########
@@ -759,6 +780,11 @@ public PropertyBuilder 
fromMetaClient(HoodieTableMetaClient metaClient) {
 
     public PropertyBuilder fromProperties(Properties properties) {
       HoodieConfig hoodieConfig = new HoodieConfig(properties);
+
+      for (String key : hoodieConfig.getProps().stringPropertyNames()) {

Review comment:
       do you mean to say, hoodieConfig.getProps().stringPropertyNames() will 
be same as PERSISTED_CONFIG_LIST. Just trying to see if we can iterate through 
smaller list among PERSISTED_CONFIG_LIST and 
hoodieConfig.getProps().stringPropertyNames()




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