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

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


The following commit(s) were added to refs/heads/master by this push:
     new 5a1aa3e  [Bug][Dynamic partition] Forward show dynamic partition 
tables stmt to Master (#6190)
5a1aa3e is described below

commit 5a1aa3ec35520814df9e6415916edf63d19b5d7b
Author: Mingyu Chen <morningman....@gmail.com>
AuthorDate: Sat Jul 10 10:14:04 2021 +0800

    [Bug][Dynamic partition] Forward show dynamic partition tables stmt to 
Master (#6190)
    
    1.
    Only Master FE has these info.
    Also catch more exception of dynamic partition scheduler.
    
    2.
    Forward admin show frontend config stmt to Master if set 
forward_to_master=true
---
 .../java/org/apache/doris/analysis/AdminShowConfigStmt.java |  9 +++++++++
 .../doris/analysis/RoutineLoadDataSourceProperties.java     |  7 ++++++-
 .../org/apache/doris/analysis/ShowDynamicPartitionStmt.java |  5 +++++
 .../org/apache/doris/clone/DynamicPartitionScheduler.java   | 13 ++++++++-----
 4 files changed, 28 insertions(+), 6 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AdminShowConfigStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AdminShowConfigStmt.java
index 069c7a6..5f38716 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AdminShowConfigStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AdminShowConfigStmt.java
@@ -75,4 +75,13 @@ public class AdminShowConfigStmt extends ShowStmt {
         }
         return builder.build();
     }
+
+    @Override
+    public RedirectStatus getRedirectStatus() {
+        if (ConnectContext.get().getSessionVariable().getForwardToMaster()) {
+            return RedirectStatus.FORWARD_NO_SYNC;
+        } else {
+            return RedirectStatus.NO_FORWARD;
+        }
+    }
 }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/RoutineLoadDataSourceProperties.java
 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/RoutineLoadDataSourceProperties.java
index ca6f800..1a10d66 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/RoutineLoadDataSourceProperties.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/RoutineLoadDataSourceProperties.java
@@ -88,7 +88,12 @@ public class RoutineLoadDataSourceProperties {
 
     public void analyze() throws UserException {
         if (properties.isEmpty()) {
-            throw new AnalysisException("No properties");
+            if (!isAlter) {
+                throw new AnalysisException("No data source properties");
+            } else {
+                // for alter routine load stmt, the datasource property can by 
null
+                return;
+            }
         }
         Preconditions.checkState(!Strings.isNullOrEmpty(timezone), "timezone 
must be set before analyzing");
         checkDataSourceProperties();
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowDynamicPartitionStmt.java
 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowDynamicPartitionStmt.java
index 529da1d..cecf94c 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowDynamicPartitionStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowDynamicPartitionStmt.java
@@ -89,4 +89,9 @@ public class ShowDynamicPartitionStmt extends ShowStmt {
     public ShowResultSetMetaData getMetaData() {
         return SHOW_DYNAMIC_PARTITION_META_DATA;
     }
+
+    @Override
+    public RedirectStatus getRedirectStatus() {
+        return RedirectStatus.FORWARD_NO_SYNC;
+    }
 }
\ No newline at end of file
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/clone/DynamicPartitionScheduler.java
 
b/fe/fe-core/src/main/java/org/apache/doris/clone/DynamicPartitionScheduler.java
index a860c1f..9d10469 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/clone/DynamicPartitionScheduler.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/clone/DynamicPartitionScheduler.java
@@ -46,12 +46,15 @@ import org.apache.doris.common.util.PropertyAnalyzer;
 import org.apache.doris.common.util.RangeUtils;
 import org.apache.doris.common.util.TimeUtils;
 import org.apache.doris.thrift.TStorageMedium;
+
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Range;
 import com.google.common.collect.Sets;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+
 import java.time.ZonedDateTime;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -181,9 +184,10 @@ public class DynamicPartitionScheduler extends 
MasterDaemon {
                 // only support single column partition now
                 try {
                     RangeUtils.checkRangeIntersect(partitionItem.getItems(), 
addPartitionKeyRange);
-                } catch (DdlException e) {
+                } catch (Exception e) {
                     isPartitionExists = true;
                     if (addPartitionKeyRange.equals(partitionItem.getItems())) 
{
+                        LOG.info("partition range {} exist in table {}, clear 
fail msg", addPartitionKeyRange, olapTable.getName());
                         clearCreatePartitionFailedMsg(olapTable.getId());
                     } else {
                         recordCreatePartitionFailedMsg(db.getFullName(), 
olapTable.getName(), e.getMessage(), olapTable.getId());
@@ -209,7 +213,6 @@ public class DynamicPartitionScheduler extends MasterDaemon 
{
                 setStorageMediumProperty(partitionProperties, 
dynamicPartitionProperty, now, hotPartitionNum, idx);
             }
 
-
             String partitionName = dynamicPartitionProperty.getPrefix() + 
DynamicPartitionUtil.getFormattedPartitionName(
                     dynamicPartitionProperty.getTimeZone(), prevBorder, 
dynamicPartitionProperty.getTimeUnit());
             SinglePartitionDesc rangePartitionDesc = new 
SinglePartitionDesc(true, partitionName,
@@ -341,7 +344,7 @@ public class DynamicPartitionScheduler extends MasterDaemon 
{
                 String partitionFormat;
                 try {
                     partitionFormat = 
DynamicPartitionUtil.getPartitionFormat(partitionColumn);
-                } catch (DdlException e) {
+                } catch (Exception e) {
                     recordCreatePartitionFailedMsg(db.getFullName(), 
olapTable.getName(), e.getMessage(), olapTable.getId());
                     continue;
                 }
@@ -360,7 +363,7 @@ public class DynamicPartitionScheduler extends MasterDaemon 
{
                 try {
                     Catalog.getCurrentCatalog().dropPartition(db, olapTable, 
dropPartitionClause);
                     clearDropPartitionFailedMsg(olapTable.getId());
-                } catch (DdlException e) {
+                } catch (Exception e) {
                     recordDropPartitionFailedMsg(db.getFullName(), tableName, 
e.getMessage(), olapTable.getId());
                 } finally {
                     olapTable.writeUnlock();
@@ -372,7 +375,7 @@ public class DynamicPartitionScheduler extends MasterDaemon 
{
                     try {
                         Catalog.getCurrentCatalog().addPartition(db, 
tableName, addPartitionClause);
                         clearCreatePartitionFailedMsg(olapTable.getId());
-                    } catch (DdlException e) {
+                    } catch (Exception e) {
                         recordCreatePartitionFailedMsg(db.getFullName(), 
tableName, e.getMessage(), olapTable.getId());
                     }
                 }

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

Reply via email to