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 <lichaoyong...@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-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org