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

diwu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-flink-connector.git


The following commit(s) were added to refs/heads/master by this push:
     new 7dd8512  [fix]fix SchemaChangeManager cannot do schema change (#241)
7dd8512 is described below

commit 7dd8512ea9ab870147277cd95833068172e85c19
Author: wudongliang <46414265+donglian...@users.noreply.github.com>
AuthorDate: Thu Nov 23 16:20:49 2023 +0800

    [fix]fix SchemaChangeManager cannot do schema change (#241)
---
 .../apache/doris/flink/sink/schema/SchemaChangeManager.java   | 11 ++++++-----
 .../sink/writer/serializer/JsonDebeziumSchemaSerializer.java  |  4 ++--
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git 
a/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/schema/SchemaChangeManager.java
 
b/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/schema/SchemaChangeManager.java
index aff30c9..d9c3345 100644
--- 
a/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/schema/SchemaChangeManager.java
+++ 
b/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/schema/SchemaChangeManager.java
@@ -49,7 +49,7 @@ public class SchemaChangeManager implements Serializable {
     private static final long serialVersionUID = 1L;
     private static final Logger LOG = 
LoggerFactory.getLogger(SchemaChangeManager.class);
     private static final String CHECK_SCHEMA_CHANGE_API = 
"http://%s/api/enable_light_schema_change/%s/%s";;
-    private static final String SCHEMA_CHANGE_API = 
"http://%s/api/query/default_cluster/";;
+    private static final String SCHEMA_CHANGE_API = 
"http://%s/api/query/default_cluster/%s";;
     private ObjectMapper objectMapper = new ObjectMapper();
     private DorisOptions dorisOptions;
 
@@ -59,7 +59,7 @@ public class SchemaChangeManager implements Serializable {
 
     public boolean createTable(TableSchema table) throws IOException, 
IllegalArgumentException {
         String createTableDDL = DorisSystem.buildCreateTableDDL(table);
-        return execute(createTableDDL);
+        return execute(createTableDDL, table.getDatabase());
     }
 
     public boolean addColumn(String database, String table, FieldSchema field) 
throws IOException, IllegalArgumentException {
@@ -82,7 +82,7 @@ public class SchemaChangeManager implements Serializable {
 
     public boolean schemaChange(String database, String table, Map<String, 
Object> params, String sql) throws IOException, IllegalArgumentException {
         if(checkSchemaChange(database, table, params)){
-            return execute(sql);
+            return execute(sql, database);
         }
         return false;
     }
@@ -116,13 +116,14 @@ public class SchemaChangeManager implements Serializable {
     /**
      * execute sql in doris
      */
-    public boolean execute(String ddl) throws IOException, 
IllegalArgumentException {
+    public boolean execute(String ddl, String database) throws IOException, 
IllegalArgumentException {
         if(StringUtils.isNullOrWhitespaceOnly(ddl)){
             return false;
         }
         Map<String, String> param = new HashMap<>();
         param.put("stmt", ddl);
-        String requestUrl = String.format(SCHEMA_CHANGE_API, 
RestService.randomEndpoint(dorisOptions.getFenodes(), LOG));
+        String requestUrl = String.format(SCHEMA_CHANGE_API,
+                RestService.randomEndpoint(dorisOptions.getFenodes(), LOG), 
database);
         HttpPost httpPost = new HttpPost(requestUrl);
         httpPost.setHeader(HttpHeaders.AUTHORIZATION, authHeader());
         httpPost.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
diff --git 
a/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/writer/serializer/JsonDebeziumSchemaSerializer.java
 
b/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/writer/serializer/JsonDebeziumSchemaSerializer.java
index ee4cad3..50ae7fc 100644
--- 
a/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/writer/serializer/JsonDebeziumSchemaSerializer.java
+++ 
b/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/writer/serializer/JsonDebeziumSchemaSerializer.java
@@ -198,7 +198,7 @@ public class JsonDebeziumSchemaSerializer implements 
DorisRecordSerializer<Strin
                 DDLSchema ddlSchema = ddlSchemas.get(i);
                 String ddlSql = ddlSqlList.get(i);
                 boolean doSchemaChange = checkSchemaChange(ddlSchema);
-                status = doSchemaChange && schemaChangeManager.execute(ddlSql);
+                status = doSchemaChange && schemaChangeManager.execute(ddlSql, 
database);
                 LOG.info("schema change status:{}, ddl:{}", status, ddlSql);
             }
         } catch (Exception ex) {
@@ -268,7 +268,7 @@ public class JsonDebeziumSchemaSerializer implements 
DorisRecordSerializer<Strin
                 return false;
             }
             boolean doSchemaChange = checkSchemaChange(ddl);
-            status = doSchemaChange && schemaChangeManager.execute(ddl);
+            status = doSchemaChange && schemaChangeManager.execute(ddl, 
database);
             LOG.info("schema change status:{}", status);
         } catch (Exception ex) {
             LOG.warn("schema change error :", ex);


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

Reply via email to