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/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 60ca5b0bad [Improvement](statistics)Return meaningful error message 
when show column stats column name doesn't exist (#22458)
60ca5b0bad is described below

commit 60ca5b0badc121e894c343d889712cef1ffd4416
Author: Jibing-Li <64681310+jibing...@users.noreply.github.com>
AuthorDate: Thu Aug 3 16:35:14 2023 +0800

    [Improvement](statistics)Return meaningful error message when show column 
stats column name doesn't exist (#22458)
    
    The error message was not good for not exist column while show column stats:
    ```
    MySQL [hive.tpch100]> show column stats `lineitem` (l_extendedpric);
    ERROR 1105 (HY000): errCode = 2, detailMessage = Unexpected exception: null
    ```
    
    This pr show a meaningful message:
    ```
    mysql> show column stats `lineitem` (l_extendedpric);
    ERROR 1105 (HY000): errCode = 2, detailMessage = Column: l_extendedpric not 
exists
    ```
---
 .../org/apache/doris/analysis/ShowColumnStatsStmt.java | 18 +++++++-----------
 .../apache/doris/common/profile/SummaryProfile.java    |  2 ++
 2 files changed, 9 insertions(+), 11 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowColumnStatsStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowColumnStatsStmt.java
index 982480cb00..f82c644b53 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowColumnStatsStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowColumnStatsStmt.java
@@ -39,8 +39,6 @@ import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 
 import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -91,15 +89,15 @@ public class ShowColumnStatsStmt extends ShowStmt {
         }
         CatalogIf<DatabaseIf> catalog = 
Env.getCurrentEnv().getCatalogMgr().getCatalog(tableName.getCtl());
         if (catalog == null) {
-            ErrorReport.reportAnalysisException("Catalog: {} not exists", 
tableName.getCtl());
+            ErrorReport.reportAnalysisException("Catalog: %s not exists", 
tableName.getCtl());
         }
         DatabaseIf<TableIf> db = catalog.getDb(tableName.getDb()).orElse(null);
         if (db == null) {
-            ErrorReport.reportAnalysisException("DB: {} not exists", 
tableName.getDb());
+            ErrorReport.reportAnalysisException("DB: %s not exists", 
tableName.getDb());
         }
         table = db.getTable(tableName.getTbl()).orElse(null);
         if (table == null) {
-            ErrorReport.reportAnalysisException("Table: {} not exists", 
tableName.getTbl());
+            ErrorReport.reportAnalysisException("Table: %s not exists", 
tableName.getTbl());
         }
 
         if (!Env.getCurrentEnv().getAccessManager()
@@ -110,12 +108,10 @@ public class ShowColumnStatsStmt extends ShowStmt {
         }
 
         if (columnNames != null) {
-            Optional<Column> nullColumn = columnNames.stream()
-                    .map(table::getColumn)
-                    .filter(Objects::isNull)
-                    .findFirst();
-            if (nullColumn.isPresent()) {
-                ErrorReport.reportAnalysisException("Column: {} not exists", 
nullColumn.get());
+            for (String name : columnNames) {
+                if (table.getColumn(name) == null) {
+                    ErrorReport.reportAnalysisException("Column: %s not 
exists", name);
+                }
             }
         }
     }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/common/profile/SummaryProfile.java 
b/fe/fe-core/src/main/java/org/apache/doris/common/profile/SummaryProfile.java
index ceb35f7cd7..e98fec285e 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/common/profile/SummaryProfile.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/common/profile/SummaryProfile.java
@@ -81,6 +81,8 @@ public class SummaryProfile {
             WRITE_RESULT_TIME, WAIT_FETCH_RESULT_TIME, DORIS_VERSION, 
IS_NEREIDS, IS_PIPELINE,
             IS_CACHED, TOTAL_INSTANCES_NUM, INSTANCES_NUM_PER_BE, 
PARALLEL_FRAGMENT_EXEC_INSTANCE, TRACE_ID);
 
+    // Ident of each item. Default is 0, which doesn't need to present in this 
Map.
+    // Please set this map for new profile items if they need ident.
     public static ImmutableMap<String, Integer> 
EXECUTION_SUMMARY_KEYS_IDENTATION = ImmutableMap.of();
 
     {


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

Reply via email to