You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2020/06/17 01:42:02 UTC
[incubator-doris] branch master updated: [Enhancement] Replace N/A
with NULL in ShowStmt result (#3851)
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 ae7028b [Enhancement] Replace N/A with NULL in ShowStmt result (#3851)
ae7028b is described below
commit ae7028bee4a9e6ca434d2493af9ebd386b6142ab
Author: lichaoyong <li...@gmail.com>
AuthorDate: Wed Jun 17 09:41:51 2020 +0800
[Enhancement] Replace N/A with NULL in ShowStmt result (#3851)
---
fe/src/main/java/org/apache/doris/alter/RollupJob.java | 3 ++-
.../main/java/org/apache/doris/alter/RollupJobV2.java | 2 +-
.../java/org/apache/doris/alter/SchemaChangeJob.java | 17 +++++++++--------
.../java/org/apache/doris/alter/SchemaChangeJobV2.java | 2 +-
.../java/org/apache/doris/analysis/DescribeStmt.java | 3 ++-
.../main/java/org/apache/doris/backup/Repository.java | 13 +++++++------
.../apache/doris/catalog/DynamicPartitionProperty.java | 3 ++-
.../java/org/apache/doris/catalog/MetadataViewer.java | 5 +++--
.../apache/doris/clone/DynamicPartitionScheduler.java | 3 ++-
.../java/org/apache/doris/clone/TabletSchedCtx.java | 7 ++++---
.../main/java/org/apache/doris/common/FeConstants.java | 3 +++
.../apache/doris/common/proc/IndexSchemaProcNode.java | 3 ++-
.../org/apache/doris/common/proc/TablesProcDir.java | 7 ++++---
.../org/apache/doris/common/proc/TabletsProcDir.java | 9 +++++----
.../apache/doris/common/util/DynamicPartitionUtil.java | 3 ++-
.../java/org/apache/doris/common/util/TimeUtils.java | 3 ++-
fe/src/main/java/org/apache/doris/load/EtlStatus.java | 3 ++-
fe/src/main/java/org/apache/doris/load/ExportMgr.java | 3 ++-
fe/src/main/java/org/apache/doris/load/Load.java | 7 ++++---
fe/src/main/java/org/apache/doris/load/LoadJob.java | 3 ++-
.../main/java/org/apache/doris/load/loadv2/LoadJob.java | 5 +++--
.../java/org/apache/doris/mysql/privilege/PaloAuth.java | 13 +++++++------
.../org/apache/doris/mysql/privilege/RoleManager.java | 9 +++++----
fe/src/main/java/org/apache/doris/qe/ShowExecutor.java | 3 ++-
fe/src/main/java/org/apache/doris/qe/StmtExecutor.java | 3 ++-
.../java/org/apache/doris/service/FrontendOptions.java | 3 ++-
fe/src/main/java/org/apache/doris/system/Backend.java | 3 ++-
.../org/apache/doris/common/proc/DbsProcDirTest.java | 7 ++++---
.../org/apache/doris/common/util/TimeUtilsTest.java | 3 ++-
.../test/java/org/apache/doris/qe/StmtExecutorTest.java | 4 ++--
30 files changed, 92 insertions(+), 63 deletions(-)
diff --git a/fe/src/main/java/org/apache/doris/alter/RollupJob.java b/fe/src/main/java/org/apache/doris/alter/RollupJob.java
index 63f5a16..dde8a7b 100644
--- a/fe/src/main/java/org/apache/doris/alter/RollupJob.java
+++ b/fe/src/main/java/org/apache/doris/alter/RollupJob.java
@@ -33,6 +33,7 @@ import org.apache.doris.catalog.Tablet;
import org.apache.doris.catalog.TabletInvertedIndex;
import org.apache.doris.catalog.TabletMeta;
import org.apache.doris.common.Config;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.FeMetaVersion;
import org.apache.doris.common.MetaNotFoundException;
import org.apache.doris.common.io.Text;
@@ -1003,7 +1004,7 @@ public class RollupJob extends AlterJob {
Preconditions.checkState(unfinishedReplicaNum <= totalReplicaNum);
jobInfo.add(((totalReplicaNum - unfinishedReplicaNum) * 100 / totalReplicaNum) + "%");
} else {
- jobInfo.add("N/A");
+ jobInfo.add(FeConstants.null_string);
}
jobInfo.add(Config.alter_table_timeout_second);
diff --git a/fe/src/main/java/org/apache/doris/alter/RollupJobV2.java b/fe/src/main/java/org/apache/doris/alter/RollupJobV2.java
index e856a76..07e79bf 100644
--- a/fe/src/main/java/org/apache/doris/alter/RollupJobV2.java
+++ b/fe/src/main/java/org/apache/doris/alter/RollupJobV2.java
@@ -687,7 +687,7 @@ public class RollupJobV2 extends AlterJobV2 implements GsonPostProcessable {
if (jobState == JobState.RUNNING && rollupBatchTask.getTaskNum() > 0) {
info.add(rollupBatchTask.getFinishedTaskNum() + "/" + rollupBatchTask.getTaskNum());
} else {
- info.add("N/A");
+ info.add(FeConstants.null_string);
}
info.add(timeoutMs / 1000);
infos.add(info);
diff --git a/fe/src/main/java/org/apache/doris/alter/SchemaChangeJob.java b/fe/src/main/java/org/apache/doris/alter/SchemaChangeJob.java
index da246b1..acdec62 100644
--- a/fe/src/main/java/org/apache/doris/alter/SchemaChangeJob.java
+++ b/fe/src/main/java/org/apache/doris/alter/SchemaChangeJob.java
@@ -33,6 +33,7 @@ import org.apache.doris.catalog.Replica.ReplicaState;
import org.apache.doris.catalog.Table;
import org.apache.doris.catalog.Tablet;
import org.apache.doris.common.Config;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.FeMetaVersion;
import org.apache.doris.common.MetaNotFoundException;
import org.apache.doris.common.io.Text;
@@ -1102,14 +1103,14 @@ public class SchemaChangeJob extends AlterJob {
jobInfo.add(tbl.getName()); // table name
jobInfo.add(TimeUtils.longToTimeString(createTime));
jobInfo.add(TimeUtils.longToTimeString(finishedTime));
- jobInfo.add("N/A"); // index name
- jobInfo.add("N/A"); // index id
- jobInfo.add("N/A"); // origin id
- jobInfo.add("N/A"); // schema version
+ jobInfo.add(FeConstants.null_string); // index name
+ jobInfo.add(FeConstants.null_string); // index id
+ jobInfo.add(FeConstants.null_string); // origin id
+ jobInfo.add(FeConstants.null_string); // schema version
jobInfo.add(-1); // transaction id
jobInfo.add(state.name()); // job state
jobInfo.add(cancelMsg);
- jobInfo.add("N/A"); // progress
+ jobInfo.add(FeConstants.null_string); // progress
jobInfo.add(Config.alter_table_timeout_second); // timeout
jobInfos.add(jobInfo);
return;
@@ -1168,7 +1169,7 @@ public class SchemaChangeJob extends AlterJob {
jobInfo.add(tbl.getName());
jobInfo.add(TimeUtils.longToTimeString(createTime));
jobInfo.add(TimeUtils.longToTimeString(finishedTime));
- jobInfo.add(tbl.getIndexNameById(indexId) == null ? "N/A" : tbl.getIndexNameById(indexId)); // index name
+ jobInfo.add(tbl.getIndexNameById(indexId) == null ? FeConstants.null_string : tbl.getIndexNameById(indexId)); // index name
jobInfo.add(indexId);
jobInfo.add(indexId); // origin index id
// index schema version and schema hash
@@ -1177,9 +1178,9 @@ public class SchemaChangeJob extends AlterJob {
jobInfo.add(state.name()); // job state
jobInfo.add(cancelMsg);
if (state == JobState.RUNNING) {
- jobInfo.add(indexProgress.get(indexId) == null ? "N/A" : indexProgress.get(indexId)); // progress
+ jobInfo.add(indexProgress.get(indexId) == null ? FeConstants.null_string : indexProgress.get(indexId)); // progress
} else {
- jobInfo.add("N/A");
+ jobInfo.add(FeConstants.null_string);
}
jobInfo.add(Config.alter_table_timeout_second);
diff --git a/fe/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java b/fe/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java
index bdede94..db49eee 100644
--- a/fe/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java
+++ b/fe/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java
@@ -787,7 +787,7 @@ public class SchemaChangeJobV2 extends AlterJobV2 {
@Override
protected void getInfo(List<List<Comparable>> infos) {
// calc progress first. all index share the same process
- String progress = "N/A";
+ String progress = FeConstants.null_string;
if (jobState == JobState.RUNNING && schemaChangeBatchTask.getTaskNum() > 0) {
progress = schemaChangeBatchTask.getFinishedTaskNum() + "/" + schemaChangeBatchTask.getTaskNum();
}
diff --git a/fe/src/main/java/org/apache/doris/analysis/DescribeStmt.java b/fe/src/main/java/org/apache/doris/analysis/DescribeStmt.java
index 368a7c7..bf7cfac 100644
--- a/fe/src/main/java/org/apache/doris/analysis/DescribeStmt.java
+++ b/fe/src/main/java/org/apache/doris/analysis/DescribeStmt.java
@@ -29,6 +29,7 @@ import org.apache.doris.catalog.Table.TableType;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.ErrorCode;
import org.apache.doris.common.ErrorReport;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.UserException;
import org.apache.doris.common.proc.ProcNodeInterface;
import org.apache.doris.common.proc.ProcResult;
@@ -175,7 +176,7 @@ public class DescribeStmt extends ShowStmt {
column.isAllowNull() ? "Yes" : "No",
((Boolean) column.isKey()).toString(),
column.getDefaultValue() == null
- ? "N/A" : column.getDefaultValue(),
+ ? FeConstants.null_string : column.getDefaultValue(),
extraStr);
if (j == 0) {
diff --git a/fe/src/main/java/org/apache/doris/backup/Repository.java b/fe/src/main/java/org/apache/doris/backup/Repository.java
index d6ff2ae..a624f5d 100644
--- a/fe/src/main/java/org/apache/doris/backup/Repository.java
+++ b/fe/src/main/java/org/apache/doris/backup/Repository.java
@@ -21,6 +21,7 @@ import org.apache.doris.backup.Status.ErrCode;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.FsBroker;
import org.apache.doris.common.AnalysisException;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.Pair;
import org.apache.doris.common.io.Text;
import org.apache.doris.common.io.Writable;
@@ -535,7 +536,7 @@ public class Repository implements Writable {
info.add(String.valueOf(isReadOnly));
info.add(location);
info.add(storage.getBrokerName());
- info.add(errMsg == null ? "N/A" : errMsg);
+ info.add(errMsg == null ? FeConstants.null_string : errMsg);
return info;
}
@@ -575,7 +576,7 @@ public class Repository implements Writable {
Status st = storage.list(infoFilePath + "*", results);
if (!st.ok()) {
info.add(snapshotName);
- info.add("N/A");
+ info.add(FeConstants.null_string);
info.add("ERROR: Failed to get info: " + st.getErrMsg());
} else {
info.add(snapshotName);
@@ -604,8 +605,8 @@ public class Repository implements Writable {
if (!st.ok()) {
info.add(snapshotName);
info.add(timestamp);
- info.add("N/A");
- info.add("N/A");
+ info.add(FeConstants.null_string);
+ info.add(FeConstants.null_string);
info.add("Failed to get info: " + st.getErrMsg());
} else {
try {
@@ -618,8 +619,8 @@ public class Repository implements Writable {
} catch (IOException e) {
info.add(snapshotName);
info.add(timestamp);
- info.add("N/A");
- info.add("N/A");
+ info.add(FeConstants.null_string);
+ info.add(FeConstants.null_string);
info.add("Failed to read info from local file: " + e.getMessage());
}
}
diff --git a/fe/src/main/java/org/apache/doris/catalog/DynamicPartitionProperty.java b/fe/src/main/java/org/apache/doris/catalog/DynamicPartitionProperty.java
index 0eca48c..3c898ed 100644
--- a/fe/src/main/java/org/apache/doris/catalog/DynamicPartitionProperty.java
+++ b/fe/src/main/java/org/apache/doris/catalog/DynamicPartitionProperty.java
@@ -18,6 +18,7 @@
package org.apache.doris.catalog;
import org.apache.doris.analysis.TimestampArithmeticExpr.TimeUnit;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.util.DynamicPartitionUtil.StartOfDate;
import org.apache.doris.common.util.TimeUtils;
@@ -124,7 +125,7 @@ public class DynamicPartitionProperty {
} else if (getTimeUnit().equalsIgnoreCase(TimeUnit.MONTH.toString())) {
return startOfMonth.toDisplayInfo();
} else {
- return "N/A";
+ return FeConstants.null_string;
}
}
diff --git a/fe/src/main/java/org/apache/doris/catalog/MetadataViewer.java b/fe/src/main/java/org/apache/doris/catalog/MetadataViewer.java
index 0e5ada8..de9eddf 100644
--- a/fe/src/main/java/org/apache/doris/catalog/MetadataViewer.java
+++ b/fe/src/main/java/org/apache/doris/catalog/MetadataViewer.java
@@ -25,6 +25,7 @@ import org.apache.doris.catalog.MaterializedIndex.IndexExtState;
import org.apache.doris.catalog.Replica.ReplicaStatus;
import org.apache.doris.catalog.Table.TableType;
import org.apache.doris.common.DdlException;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.system.Backend;
import org.apache.doris.system.SystemInfoService;
@@ -136,8 +137,8 @@ public class MetadataViewer {
row.add("-1");
row.add("-1");
row.add("-1");
- row.add("N/A");
- row.add("N/A");
+ row.add(FeConstants.null_string);
+ row.add(FeConstants.null_string);
row.add(ReplicaStatus.MISSING.name());
result.add(row);
}
diff --git a/fe/src/main/java/org/apache/doris/clone/DynamicPartitionScheduler.java b/fe/src/main/java/org/apache/doris/clone/DynamicPartitionScheduler.java
index d10f543..a40d936 100644
--- a/fe/src/main/java/org/apache/doris/clone/DynamicPartitionScheduler.java
+++ b/fe/src/main/java/org/apache/doris/clone/DynamicPartitionScheduler.java
@@ -36,6 +36,7 @@ import org.apache.doris.catalog.Table;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.Config;
import org.apache.doris.common.DdlException;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.Pair;
import org.apache.doris.common.util.DynamicPartitionUtil;
import org.apache.doris.common.util.MasterDaemon;
@@ -72,7 +73,7 @@ public class DynamicPartitionScheduler extends MasterDaemon {
public static final String CREATE_PARTITION_MSG = "createPartitionMsg";
public static final String DROP_PARTITION_MSG = "dropPartitionMsg";
- private final String DEFAULT_RUNTIME_VALUE = "N/A";
+ private final String DEFAULT_RUNTIME_VALUE = FeConstants.null_string;
private Map<String, Map<String, String>> runtimeInfos = Maps.newConcurrentMap();
private Set<Pair<Long, Long>> dynamicPartitionTableInfo = Sets.newConcurrentHashSet();
diff --git a/fe/src/main/java/org/apache/doris/clone/TabletSchedCtx.java b/fe/src/main/java/org/apache/doris/clone/TabletSchedCtx.java
index 75ddbbc..059306f 100644
--- a/fe/src/main/java/org/apache/doris/clone/TabletSchedCtx.java
+++ b/fe/src/main/java/org/apache/doris/clone/TabletSchedCtx.java
@@ -28,6 +28,7 @@ import org.apache.doris.catalog.Tablet;
import org.apache.doris.catalog.Tablet.TabletStatus;
import org.apache.doris.clone.SchedException.Status;
import org.apache.doris.clone.TabletScheduler.PathSlot;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.Pair;
import org.apache.doris.common.util.TimeUtils;
import org.apache.doris.persist.ReplicaPersistInfo;
@@ -969,8 +970,8 @@ public class TabletSchedCtx implements Comparable<TabletSchedCtx> {
List<String> result = Lists.newArrayList();
result.add(String.valueOf(tabletId));
result.add(type.name());
- result.add(storageMedium == null ? "N/A" : storageMedium.name());
- result.add(tabletStatus == null ? "N/A" : tabletStatus.name());
+ result.add(storageMedium == null ? FeConstants.null_string : storageMedium.name());
+ result.add(tabletStatus == null ? FeConstants.null_string : tabletStatus.name());
result.add(state.name());
result.add(origPriority.name());
result.add(dynamicPriority.name());
@@ -983,7 +984,7 @@ public class TabletSchedCtx implements Comparable<TabletSchedCtx> {
result.add(TimeUtils.longToTimeString(lastSchedTime));
result.add(TimeUtils.longToTimeString(lastVisitedTime));
result.add(TimeUtils.longToTimeString(finishedTime));
- result.add(copyTimeMs > 0 ? String.valueOf(copySize / copyTimeMs / 1000.0) : "N/A");
+ result.add(copyTimeMs > 0 ? String.valueOf(copySize / copyTimeMs / 1000.0) : FeConstants.null_string);
result.add(String.valueOf(failedSchedCounter));
result.add(String.valueOf(failedRunningCounter));
result.add(TimeUtils.longToTimeString(lastAdjustPrioTime));
diff --git a/fe/src/main/java/org/apache/doris/common/FeConstants.java b/fe/src/main/java/org/apache/doris/common/FeConstants.java
index 86ae36b..7542ad6 100644
--- a/fe/src/main/java/org/apache/doris/common/FeConstants.java
+++ b/fe/src/main/java/org/apache/doris/common/FeConstants.java
@@ -51,4 +51,7 @@ public class FeConstants {
// general model
// Current meta data version. Use this version to write journals and image
public static int meta_version = FeMetaVersion.VERSION_CURRENT;
+
+ // use \N to indicate NULL
+ public static String null_string = "\\N";
}
diff --git a/fe/src/main/java/org/apache/doris/common/proc/IndexSchemaProcNode.java b/fe/src/main/java/org/apache/doris/common/proc/IndexSchemaProcNode.java
index 570ccc4..73b1f79 100644
--- a/fe/src/main/java/org/apache/doris/common/proc/IndexSchemaProcNode.java
+++ b/fe/src/main/java/org/apache/doris/common/proc/IndexSchemaProcNode.java
@@ -19,6 +19,7 @@ package org.apache.doris.common.proc;
import org.apache.doris.catalog.Column;
import org.apache.doris.common.AnalysisException;
+import org.apache.doris.common.FeConstants;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
@@ -71,7 +72,7 @@ public class IndexSchemaProcNode implements ProcNodeInterface {
column.isAllowNull() ? "Yes" : "No",
((Boolean) column.isKey()).toString(),
column.getDefaultValue() == null
- ? "N/A" : column.getDefaultValue(),
+ ? FeConstants.null_string : column.getDefaultValue(),
extraStr);
result.addRow(rowList);
}
diff --git a/fe/src/main/java/org/apache/doris/common/proc/TablesProcDir.java b/fe/src/main/java/org/apache/doris/common/proc/TablesProcDir.java
index 68f0c53..415d102 100644
--- a/fe/src/main/java/org/apache/doris/common/proc/TablesProcDir.java
+++ b/fe/src/main/java/org/apache/doris/common/proc/TablesProcDir.java
@@ -25,6 +25,7 @@ import org.apache.doris.catalog.RangePartitionInfo;
import org.apache.doris.catalog.Table.TableType;
import org.apache.doris.catalog.Table;
import org.apache.doris.common.AnalysisException;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.util.ListComparator;
import org.apache.doris.common.util.TimeUtils;
@@ -98,7 +99,7 @@ public class TablesProcDir implements ProcDirInterface {
int partitionNum = 1;
long replicaCount = 0;
- String partitionKey = "N/A";
+ String partitionKey = FeConstants.null_string;
if (table.getType() == TableType.OLAP) {
OlapTable olapTable = (OlapTable) table;
if (olapTable.getPartitionInfo().getType() == PartitionType.RANGE) {
@@ -125,10 +126,10 @@ public class TablesProcDir implements ProcDirInterface {
} else {
tableInfo.add(table.getId());
tableInfo.add(table.getName());
- tableInfo.add("N/A");
+ tableInfo.add(FeConstants.null_string);
tableInfo.add(partitionKey);
tableInfo.add(partitionNum);
- tableInfo.add("N/A");
+ tableInfo.add(FeConstants.null_string);
tableInfo.add(table.getType());
}
diff --git a/fe/src/main/java/org/apache/doris/common/proc/TabletsProcDir.java b/fe/src/main/java/org/apache/doris/common/proc/TabletsProcDir.java
index 3c4bd74..eb7731a 100644
--- a/fe/src/main/java/org/apache/doris/common/proc/TabletsProcDir.java
+++ b/fe/src/main/java/org/apache/doris/common/proc/TabletsProcDir.java
@@ -24,6 +24,7 @@ import org.apache.doris.catalog.Replica;
import org.apache.doris.catalog.Tablet;
import org.apache.doris.catalog.TabletInvertedIndex;
import org.apache.doris.common.AnalysisException;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.util.ListComparator;
import org.apache.doris.common.util.TimeUtils;
import org.apache.doris.system.Backend;
@@ -75,7 +76,7 @@ public class TabletsProcDir implements ProcDirInterface {
tabletInfo.add(-1); // replica id
tabletInfo.add(-1); // backend id
tabletInfo.add(-1); // schema hash
- tabletInfo.add("N/A"); // host name
+ tabletInfo.add(FeConstants.null_string); // host name
tabletInfo.add(-1); // version
tabletInfo.add(-1); // version hash
tabletInfo.add(-1); // lst success version
@@ -85,14 +86,14 @@ public class TabletsProcDir implements ProcDirInterface {
tabletInfo.add(-1); // lst failed time
tabletInfo.add(-1); // data size
tabletInfo.add(-1); // row count
- tabletInfo.add("N/A"); // state
+ tabletInfo.add(FeConstants.null_string); // state
tabletInfo.add(-1); // lst consistency check time
tabletInfo.add(-1); // check version
tabletInfo.add(-1); // check version hash
tabletInfo.add(-1); // version count
tabletInfo.add(-1); // path hash
- tabletInfo.add("N/A"); // meta url
- tabletInfo.add("N/A"); // compaction status
+ tabletInfo.add(FeConstants.null_string); // meta url
+ tabletInfo.add(FeConstants.null_string); // compaction status
tabletInfos.add(tabletInfo);
} else {
diff --git a/fe/src/main/java/org/apache/doris/common/util/DynamicPartitionUtil.java b/fe/src/main/java/org/apache/doris/common/util/DynamicPartitionUtil.java
index 0ba6544..9b7ab36 100644
--- a/fe/src/main/java/org/apache/doris/common/util/DynamicPartitionUtil.java
+++ b/fe/src/main/java/org/apache/doris/common/util/DynamicPartitionUtil.java
@@ -34,6 +34,7 @@ import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.DdlException;
import org.apache.doris.common.ErrorCode;
import org.apache.doris.common.ErrorReport;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.FeNameFormat;
import com.google.common.base.Preconditions;
@@ -489,7 +490,7 @@ public class DynamicPartitionUtil {
} else if (isStartOfYear()) {
return Month.of(month) + " " + Util.ordinal(day);
} else {
- return "N/A";
+ return FeConstants.null_string;
}
}
diff --git a/fe/src/main/java/org/apache/doris/common/util/TimeUtils.java b/fe/src/main/java/org/apache/doris/common/util/TimeUtils.java
index 8678458..267355c 100644
--- a/fe/src/main/java/org/apache/doris/common/util/TimeUtils.java
+++ b/fe/src/main/java/org/apache/doris/common/util/TimeUtils.java
@@ -23,6 +23,7 @@ import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.DdlException;
import org.apache.doris.common.ErrorCode;
import org.apache.doris.common.ErrorReport;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.qe.ConnectContext;
import org.apache.doris.qe.VariableMgr;
@@ -138,7 +139,7 @@ public class TimeUtils {
public static String longToTimeString(long timeStamp, SimpleDateFormat dateFormat) {
if (timeStamp <= 0L) {
- return "N/A";
+ return FeConstants.null_string;
}
return dateFormat.format(new Date(timeStamp));
}
diff --git a/fe/src/main/java/org/apache/doris/load/EtlStatus.java b/fe/src/main/java/org/apache/doris/load/EtlStatus.java
index c7ffd39..cdb3552 100644
--- a/fe/src/main/java/org/apache/doris/load/EtlStatus.java
+++ b/fe/src/main/java/org/apache/doris/load/EtlStatus.java
@@ -17,6 +17,7 @@
package org.apache.doris.load;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.io.Text;
import org.apache.doris.common.io.Writable;
import org.apache.doris.thrift.TEtlState;
@@ -31,7 +32,7 @@ import java.util.Map;
import java.util.Map.Entry;
public class EtlStatus implements Writable {
- public static final String DEFAULT_TRACKING_URL = "N/A";
+ public static final String DEFAULT_TRACKING_URL = FeConstants.null_string;
private TEtlState state;
private String trackingUrl;
diff --git a/fe/src/main/java/org/apache/doris/load/ExportMgr.java b/fe/src/main/java/org/apache/doris/load/ExportMgr.java
index b90a4a8..533e22f 100644
--- a/fe/src/main/java/org/apache/doris/load/ExportMgr.java
+++ b/fe/src/main/java/org/apache/doris/load/ExportMgr.java
@@ -22,6 +22,7 @@ import org.apache.doris.analysis.TableName;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Database;
import org.apache.doris.common.Config;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.util.ListComparator;
import org.apache.doris.common.util.OrderByPair;
import org.apache.doris.common.util.TimeUtils;
@@ -204,7 +205,7 @@ public class ExportMgr {
ExportFailMsg failMsg = job.getFailMsg();
jobInfo.add("type:" + failMsg.getCancelType() + "; msg:" + failMsg.getMsg());
} else {
- jobInfo.add("N/A");
+ jobInfo.add(FeConstants.null_string);
}
exportJobInfos.add(jobInfo);
diff --git a/fe/src/main/java/org/apache/doris/load/Load.java b/fe/src/main/java/org/apache/doris/load/Load.java
index ccbc23a..197b809 100644
--- a/fe/src/main/java/org/apache/doris/load/Load.java
+++ b/fe/src/main/java/org/apache/doris/load/Load.java
@@ -70,6 +70,7 @@ import org.apache.doris.common.Config;
import org.apache.doris.common.DdlException;
import org.apache.doris.common.ErrorCode;
import org.apache.doris.common.ErrorReport;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.FeMetaVersion;
import org.apache.doris.common.FeNameFormat;
import org.apache.doris.common.LabelAlreadyUsedException;
@@ -1887,7 +1888,7 @@ public class Load {
// etl info
EtlStatus status = loadJob.getEtlJobStatus();
if (status == null || status.getState() == TEtlState.CANCELLED) {
- jobInfo.add("N/A");
+ jobInfo.add(FeConstants.null_string);
} else {
Map<String, String> counters = status.getCounters();
List<String> info = Lists.newArrayList();
@@ -1901,7 +1902,7 @@ public class Load {
}
} // end for counters
if (info.isEmpty()) {
- jobInfo.add("N/A");
+ jobInfo.add(FeConstants.null_string);
} else {
jobInfo.add(StringUtils.join(info, "; "));
}
@@ -1917,7 +1918,7 @@ public class Load {
FailMsg failMsg = loadJob.getFailMsg();
jobInfo.add("type:" + failMsg.getCancelType() + "; msg:" + failMsg.getMsg());
} else {
- jobInfo.add("N/A");
+ jobInfo.add(FeConstants.null_string);
}
// create time
diff --git a/fe/src/main/java/org/apache/doris/load/LoadJob.java b/fe/src/main/java/org/apache/doris/load/LoadJob.java
index ef0e26c..d56b9cc 100644
--- a/fe/src/main/java/org/apache/doris/load/LoadJob.java
+++ b/fe/src/main/java/org/apache/doris/load/LoadJob.java
@@ -28,6 +28,7 @@ import org.apache.doris.analysis.StringLiteral;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Replica;
import org.apache.doris.common.Config;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.FeMetaVersion;
import org.apache.doris.common.io.Text;
import org.apache.doris.common.io.Writable;
@@ -435,7 +436,7 @@ public class LoadJob implements Writable {
if (etlJobType == EtlJobType.HADOOP) {
return ((HadoopEtlJobInfo) etlJobInfo).getCluster();
}
- return "N/A";
+ return FeConstants.null_string;
}
public DppConfig getHadoopDppConfig() {
diff --git a/fe/src/main/java/org/apache/doris/load/loadv2/LoadJob.java b/fe/src/main/java/org/apache/doris/load/loadv2/LoadJob.java
index 3afadb7..3b0bb52 100644
--- a/fe/src/main/java/org/apache/doris/load/loadv2/LoadJob.java
+++ b/fe/src/main/java/org/apache/doris/load/loadv2/LoadJob.java
@@ -28,6 +28,7 @@ import org.apache.doris.common.DuplicatedRequestException;
import org.apache.doris.common.ErrorCode;
import org.apache.doris.common.ErrorReport;
import org.apache.doris.common.FeMetaVersion;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.LabelAlreadyUsedException;
import org.apache.doris.common.MetaNotFoundException;
import org.apache.doris.common.UserException;
@@ -715,7 +716,7 @@ public abstract class LoadJob extends AbstractTxnStateChangeCallback implements
// etl info
if (loadingStatus.getCounters().size() == 0) {
- jobInfo.add("N/A");
+ jobInfo.add(FeConstants.null_string);
} else {
jobInfo.add(Joiner.on("; ").withKeyValueSeparator("=").join(loadingStatus.getCounters()));
}
@@ -726,7 +727,7 @@ public abstract class LoadJob extends AbstractTxnStateChangeCallback implements
// error msg
if (failMsg == null) {
- jobInfo.add("N/A");
+ jobInfo.add(FeConstants.null_string);
} else {
jobInfo.add("type:" + failMsg.getCancelType() + "; msg:" + failMsg.getMsg());
}
diff --git a/fe/src/main/java/org/apache/doris/mysql/privilege/PaloAuth.java b/fe/src/main/java/org/apache/doris/mysql/privilege/PaloAuth.java
index 2565b66..19610c7 100644
--- a/fe/src/main/java/org/apache/doris/mysql/privilege/PaloAuth.java
+++ b/fe/src/main/java/org/apache/doris/mysql/privilege/PaloAuth.java
@@ -35,6 +35,7 @@ import org.apache.doris.cluster.ClusterNamespace;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.Config;
import org.apache.doris.common.DdlException;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.Pair;
import org.apache.doris.common.io.Writable;
import org.apache.doris.load.DppConfig;
@@ -1117,14 +1118,14 @@ public class PaloAuth implements Writable {
// This may happen when we grant non global privs to a non exist user via GRANT stmt.
LOG.warn("user identity does not have global priv entry: {}", userIdent);
userAuthInfo.add(userIdent.toString());
- userAuthInfo.add("N/A");
- userAuthInfo.add("N/A");
+ userAuthInfo.add(FeConstants.null_string);
+ userAuthInfo.add(FeConstants.null_string);
} else {
// this is a domain user identity and fall in here, which means this user identity does not
// have global priv, we need to check user property to see if it has password.
userAuthInfo.add(userIdent.toString());
userAuthInfo.add(propertyMgr.doesUserHasPassword(userIdent) ? "No" : "Yes");
- userAuthInfo.add("N/A");
+ userAuthInfo.add(FeConstants.null_string);
}
}
@@ -1139,7 +1140,7 @@ public class PaloAuth implements Writable {
+ " (" + entry.isSetByDomainResolver() + ")");
}
if (dbPrivs.isEmpty()) {
- userAuthInfo.add("N/A");
+ userAuthInfo.add(FeConstants.null_string);
} else {
userAuthInfo.add(Joiner.on("; ").join(dbPrivs));
}
@@ -1156,7 +1157,7 @@ public class PaloAuth implements Writable {
+ " (" + entry.isSetByDomainResolver() + ")");
}
if (tblPrivs.isEmpty()) {
- userAuthInfo.add("N/A");
+ userAuthInfo.add(FeConstants.null_string);
} else {
userAuthInfo.add(Joiner.on("; ").join(tblPrivs));
}
@@ -1172,7 +1173,7 @@ public class PaloAuth implements Writable {
+ " (" + entry.isSetByDomainResolver() + ")");
}
if (resourcePrivs.isEmpty()) {
- userAuthInfo.add("N/A");
+ userAuthInfo.add(FeConstants.null_string);
} else {
userAuthInfo.add(Joiner.on("; ").join(resourcePrivs));
}
diff --git a/fe/src/main/java/org/apache/doris/mysql/privilege/RoleManager.java b/fe/src/main/java/org/apache/doris/mysql/privilege/RoleManager.java
index 54f8767..ab486b4 100644
--- a/fe/src/main/java/org/apache/doris/mysql/privilege/RoleManager.java
+++ b/fe/src/main/java/org/apache/doris/mysql/privilege/RoleManager.java
@@ -21,6 +21,7 @@ import org.apache.doris.analysis.ResourcePattern;
import org.apache.doris.analysis.TablePattern;
import org.apache.doris.analysis.UserIdentity;
import org.apache.doris.common.DdlException;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.io.Writable;
import org.apache.doris.mysql.privilege.PaloAuth.PrivLevel;
@@ -142,7 +143,7 @@ public class RoleManager implements Writable {
}
}
if (!hasGlobal) {
- info.add("N/A");
+ info.add(FeConstants.null_string);
}
// db
@@ -153,7 +154,7 @@ public class RoleManager implements Writable {
}
}
if (tmp.isEmpty()) {
- info.add("N/A");
+ info.add(FeConstants.null_string);
} else {
info.add(Joiner.on("; ").join(tmp));
}
@@ -167,7 +168,7 @@ public class RoleManager implements Writable {
}
}
if (tmp.isEmpty()) {
- info.add("N/A");
+ info.add(FeConstants.null_string);
} else {
info.add(Joiner.on("; ").join(tmp));
}
@@ -180,7 +181,7 @@ public class RoleManager implements Writable {
}
}
if (tmp.isEmpty()) {
- info.add("N/A");
+ info.add(FeConstants.null_string);
} else {
info.add(Joiner.on("; ").join(tmp));
}
diff --git a/fe/src/main/java/org/apache/doris/qe/ShowExecutor.java b/fe/src/main/java/org/apache/doris/qe/ShowExecutor.java
index 81bf5c9..f7bf43b 100644
--- a/fe/src/main/java/org/apache/doris/qe/ShowExecutor.java
+++ b/fe/src/main/java/org/apache/doris/qe/ShowExecutor.java
@@ -97,6 +97,7 @@ import org.apache.doris.common.ConfigBase;
import org.apache.doris.common.DdlException;
import org.apache.doris.common.ErrorCode;
import org.apache.doris.common.ErrorReport;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.MetaNotFoundException;
import org.apache.doris.common.PatternMatcher;
import org.apache.doris.common.proc.BackendsProcDir;
@@ -930,7 +931,7 @@ public class ShowExecutor {
int limit = 100;
while (reader.ready() && limit > 0) {
String line = reader.readLine();
- rows.add(Lists.newArrayList("-1", "N/A", line));
+ rows.add(Lists.newArrayList("-1", FeConstants.null_string, line));
limit--;
}
}
diff --git a/fe/src/main/java/org/apache/doris/qe/StmtExecutor.java b/fe/src/main/java/org/apache/doris/qe/StmtExecutor.java
index 876f2f6..1df96e0 100644
--- a/fe/src/main/java/org/apache/doris/qe/StmtExecutor.java
+++ b/fe/src/main/java/org/apache/doris/qe/StmtExecutor.java
@@ -47,6 +47,7 @@ import org.apache.doris.common.Config;
import org.apache.doris.common.DdlException;
import org.apache.doris.common.ErrorCode;
import org.apache.doris.common.ErrorReport;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.MetaNotFoundException;
import org.apache.doris.common.NotImplementedException;
import org.apache.doris.common.UserException;
@@ -854,7 +855,7 @@ public class StmtExecutor {
for (List<String> row : resultSet.getResultRows()) {
serializer.reset();
for (String item : row) {
- if (item == null) {
+ if (item == null || item.equals(FeConstants.null_string)) {
serializer.writeNull();
} else {
serializer.writeLenEncodedString(item);
diff --git a/fe/src/main/java/org/apache/doris/service/FrontendOptions.java b/fe/src/main/java/org/apache/doris/service/FrontendOptions.java
index b2f5a59..ef08299 100644
--- a/fe/src/main/java/org/apache/doris/service/FrontendOptions.java
+++ b/fe/src/main/java/org/apache/doris/service/FrontendOptions.java
@@ -19,6 +19,7 @@ package org.apache.doris.service;
import org.apache.doris.common.CIDR;
import org.apache.doris.common.Config;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.util.NetUtils;
import com.google.common.base.Strings;
@@ -101,7 +102,7 @@ public class FrontendOptions {
}
public static String getHostnameByIp(String ip) {
- String hostName = "N/A";
+ String hostName = FeConstants.null_string;
try {
InetAddress address = InetAddress.getByName(ip);
hostName = address.getHostName();
diff --git a/fe/src/main/java/org/apache/doris/system/Backend.java b/fe/src/main/java/org/apache/doris/system/Backend.java
index a95f7bb..83d4514 100644
--- a/fe/src/main/java/org/apache/doris/system/Backend.java
+++ b/fe/src/main/java/org/apache/doris/system/Backend.java
@@ -21,6 +21,7 @@ import org.apache.doris.alter.DecommissionBackendJob.DecommissionType;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.DiskInfo;
import org.apache.doris.catalog.DiskInfo.DiskState;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.FeMetaVersion;
import org.apache.doris.common.io.Text;
import org.apache.doris.common.io.Writable;
@@ -647,7 +648,7 @@ public class Backend implements Writable {
* status.newItem = xxx;
*/
public class BackendStatus {
- public String lastSuccessReportTabletsTime = "N/A";
+ public String lastSuccessReportTabletsTime = FeConstants.null_string;
}
}
diff --git a/fe/src/test/java/org/apache/doris/common/proc/DbsProcDirTest.java b/fe/src/test/java/org/apache/doris/common/proc/DbsProcDirTest.java
index fa63789..aa9930a 100644
--- a/fe/src/test/java/org/apache/doris/common/proc/DbsProcDirTest.java
+++ b/fe/src/test/java/org/apache/doris/common/proc/DbsProcDirTest.java
@@ -22,6 +22,7 @@ import mockit.Mocked;
import org.apache.doris.catalog.Catalog;
import org.apache.doris.catalog.Database;
import org.apache.doris.common.AnalysisException;
+import org.apache.doris.common.FeConstants;
import com.google.common.collect.Lists;
@@ -186,8 +187,8 @@ public class DbsProcDirTest {
Assert.assertEquals(Lists.newArrayList("DbId", "DbName", "TableNum", "Quota", "LastConsistencyCheckTime", "ReplicaQuota"),
result.getColumnNames());
List<List<String>> rows = Lists.newArrayList();
- rows.add(Arrays.asList(String.valueOf(db1.getId()), db1.getFullName(), "0", "1024.000 GB", "N/A", "1073741824"));
- rows.add(Arrays.asList(String.valueOf(db2.getId()), db2.getFullName(), "0", "1024.000 GB", "N/A", "1073741824"));
+ rows.add(Arrays.asList(String.valueOf(db1.getId()), db1.getFullName(), "0", "1024.000 GB", FeConstants.null_string, "1073741824"));
+ rows.add(Arrays.asList(String.valueOf(db2.getId()), db2.getFullName(), "0", "1024.000 GB", FeConstants.null_string, "1073741824"));
Assert.assertEquals(rows, result.getRows());
}
@@ -218,4 +219,4 @@ public class DbsProcDirTest {
List<List<String>> rows = Lists.newArrayList();
Assert.assertEquals(rows, result.getRows());
}
-}
\ No newline at end of file
+}
diff --git a/fe/src/test/java/org/apache/doris/common/util/TimeUtilsTest.java b/fe/src/test/java/org/apache/doris/common/util/TimeUtilsTest.java
index 218c0ba..4290f81 100644
--- a/fe/src/test/java/org/apache/doris/common/util/TimeUtilsTest.java
+++ b/fe/src/test/java/org/apache/doris/common/util/TimeUtilsTest.java
@@ -23,6 +23,7 @@ import org.apache.doris.analysis.DateLiteral;
import org.apache.doris.catalog.PrimitiveType;
import org.apache.doris.catalog.ScalarType;
import org.apache.doris.common.AnalysisException;
+import org.apache.doris.common.FeConstants;
import org.apache.doris.common.DdlException;
import org.junit.Assert;
@@ -145,7 +146,7 @@ public class TimeUtilsTest {
@Test
public void testDateTrans() throws AnalysisException {
- Assert.assertEquals("N/A", TimeUtils.longToTimeString(-2));
+ Assert.assertEquals(FeConstants.null_string, TimeUtils.longToTimeString(-2));
long timestamp = 1426125600000L;
Assert.assertEquals("2015-03-12 10:00:00", TimeUtils.longToTimeString(timestamp));
diff --git a/fe/src/test/java/org/apache/doris/qe/StmtExecutorTest.java b/fe/src/test/java/org/apache/doris/qe/StmtExecutorTest.java
index 4a2f1f1..c87bbf6 100644
--- a/fe/src/test/java/org/apache/doris/qe/StmtExecutorTest.java
+++ b/fe/src/test/java/org/apache/doris/qe/StmtExecutorTest.java
@@ -154,7 +154,7 @@ public class StmtExecutorTest {
ctx.getDatabase();
minTimes = 0;
- result = "testDb";
+ result = "testCluster:testDb";
ctx.getSessionVariable();
minTimes = 0;
@@ -665,7 +665,7 @@ public class StmtExecutorTest {
useStmt.getDatabase();
minTimes = 0;
- result = "testDb";
+ result = "testCluster:testDb";
useStmt.getRedirectStatus();
minTimes = 0;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org