This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch dev-1.1.2
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/dev-1.1.2 by this push:
     new 31b5e693aa [bugfix-1.1.2](odbc) fix charset not found bug
31b5e693aa is described below

commit 31b5e693aa98ec98f289e69bc2e8078e07362d36
Author: yiguolei <yiguo...@gmail.com>
AuthorDate: Fri Aug 19 17:54:27 2022 +0800

    [bugfix-1.1.2](odbc) fix charset not found bug
---
 .../apache/doris/catalog/OdbcCatalogResource.java  |  1 +
 .../java/org/apache/doris/catalog/Resource.java    | 22 ++++++++++++++++++++++
 .../org/apache/doris/catalog/SparkResource.java    | 22 ++++++++++++++++++++++
 3 files changed, 45 insertions(+)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/OdbcCatalogResource.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/OdbcCatalogResource.java
index 0b0384c5a4..ae15863d69 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/OdbcCatalogResource.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/OdbcCatalogResource.java
@@ -17,6 +17,7 @@
 
 package org.apache.doris.catalog;
 
+import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.proc.BaseProcResult;
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Resource.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/Resource.java
index 252c3c4d56..fe57b1524a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Resource.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Resource.java
@@ -18,6 +18,7 @@
 package org.apache.doris.catalog;
 
 import org.apache.doris.analysis.CreateResourceStmt;
+import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.FeConstants;
 import org.apache.doris.common.io.DeepCopy;
@@ -29,6 +30,7 @@ import org.apache.doris.persist.gson.GsonUtils;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
+import com.google.common.base.Strings;
 import com.google.gson.annotations.SerializedName;
 
 import java.io.DataInput;
@@ -92,6 +94,26 @@ public abstract class Resource implements Writable {
     public ResourceType getType() {
         return type;
     }
+    
+    /**
+     * Modify properties in child resources
+     * @param properties
+     * @throws DdlException
+     */
+    public abstract void modifyProperties(Map<String, String> properties) 
throws DdlException;
+
+    /**
+     * Check properties in child resources
+     * @param properties
+     * @throws AnalysisException
+     */
+    public abstract void checkProperties(Map<String, String> properties) 
throws AnalysisException;
+
+    protected void replaceIfEffectiveValue(Map<String, String> properties, 
String key, String value) {
+        if (!Strings.isNullOrEmpty(value)) {
+            properties.put(key, value);
+        }
+    }
 
     /**
      * Set and check the properties in child resources
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/SparkResource.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/SparkResource.java
index 8940c30d46..e2feb65326 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/SparkResource.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/SparkResource.java
@@ -19,6 +19,7 @@ package org.apache.doris.catalog;
 
 import org.apache.doris.analysis.BrokerDesc;
 import org.apache.doris.analysis.ResourceDesc;
+import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.LoadException;
@@ -210,7 +211,11 @@ public class SparkResource extends Resource {
         if (properties == null) {
             return;
         }
+        // update properties
+        updateProperties(properties);
+    }
 
+    private void updateProperties(Map<String, String> properties) throws 
DdlException {
         // update spark configs
         if (properties.containsKey(SPARK_MASTER)) {
             throw new DdlException("Cannot change spark master");
@@ -296,6 +301,23 @@ public class SparkResource extends Resource {
         return brokerProperties;
     }
 
+    @Override
+    public void modifyProperties(Map<String, String> properties) throws 
DdlException {
+        updateProperties(properties);
+    }
+
+    @Override
+    public void checkProperties(Map<String, String> properties) throws 
AnalysisException {
+        Map<String, String> copiedProperties = Maps.newHashMap(properties);
+        
copiedProperties.keySet().removeAll(getSparkConfig(properties).keySet());
+        
copiedProperties.keySet().removeAll(getBrokerProperties(properties).keySet());
+        copiedProperties.remove(BROKER);
+        copiedProperties.remove(WORKING_DIR);
+
+        if (!copiedProperties.isEmpty()) {
+            throw new AnalysisException("Unknown spark resource properties: " 
+ copiedProperties);
+        }
+    }
     @Override
     protected void getProcNodeData(BaseProcResult result) {
         String lowerCaseType = type.name().toLowerCase();


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to