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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]