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/04/20 07:58:30 UTC

[incubator-doris] branch master updated: [New Stmt] Add SHOW KEYS gramma (#3342)

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 c69bf9a  [New Stmt] Add SHOW KEYS gramma (#3342)
c69bf9a is described below

commit c69bf9ac449336e69e6859c40aca8c1e340c38ba
Author: wutiangan <wu...@gmail.com>
AuthorDate: Mon Apr 20 15:58:20 2020 +0800

    [New Stmt] Add SHOW KEYS gramma (#3342)
    
    support `SHOW KEYS FROM table` for the data connector of mainstream BI tools
    like PowerBI/FineBI
    
    #3334
---
 .../cn/sql-reference/sql-statements/Administration/SHOW INDEX.md  | 4 +++-
 .../sql-reference/sql-statements/Administration/SHOW INDEX_EN.md  | 8 ++++++--
 fe/src/main/cup/sql_parser.cup                                    | 3 ++-
 fe/src/main/java/org/apache/doris/analysis/ShowIndexStmt.java     | 2 +-
 fe/src/main/jflex/sql_scanner.flex                                | 1 +
 5 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/docs/documentation/cn/sql-reference/sql-statements/Administration/SHOW INDEX.md b/docs/documentation/cn/sql-reference/sql-statements/Administration/SHOW INDEX.md
index 8bad66b..d29a5df 100644
--- a/docs/documentation/cn/sql-reference/sql-statements/Administration/SHOW INDEX.md	
+++ b/docs/documentation/cn/sql-reference/sql-statements/Administration/SHOW INDEX.md	
@@ -23,7 +23,9 @@ under the License.
 
     该语句用于展示一个表中索引的相关信息,目前只支持bitmap 索引
     语法:
-        SHOW INDEX[ES] FROM [db_name.]table_name;
+        SHOW INDEX[ES] FROM [db_name.]table_name [FROM database];
+        或者
+        SHOW KEY[S] FROM [db_name.]table_name [FROM database];
 
 ## example
 
diff --git a/docs/documentation/en/sql-reference/sql-statements/Administration/SHOW INDEX_EN.md b/docs/documentation/en/sql-reference/sql-statements/Administration/SHOW INDEX_EN.md
index bae48c7..996d518 100644
--- a/docs/documentation/en/sql-reference/sql-statements/Administration/SHOW INDEX_EN.md	
+++ b/docs/documentation/en/sql-reference/sql-statements/Administration/SHOW INDEX_EN.md	
@@ -22,8 +22,12 @@ under the License.
 ## description
 
     This statement is used to show all index(only bitmap index in current version) of a table
-    语法:
-        SHOW INDEX[ES] FROM [db_name.]table_name;
+    Grammar:
+        SHOW INDEX[ES] FROM [db_name.]table_name [FROM database];
+        
+        OR
+
+        SHOW KEY[S] FROM [db_name.]table_name [FROM database];
 
 ## example
 
diff --git a/fe/src/main/cup/sql_parser.cup b/fe/src/main/cup/sql_parser.cup
index 69c1a6f..0f6740d 100644
--- a/fe/src/main/cup/sql_parser.cup
+++ b/fe/src/main/cup/sql_parser.cup
@@ -241,7 +241,7 @@ terminal String KW_ADD, KW_ADMIN, KW_AFTER, KW_AGGREGATE, KW_ALL, KW_ALTER, KW_A
     KW_IDENTIFIED, KW_IF, KW_IN, KW_INDEX, KW_INDEXES, KW_INFILE, KW_INSTALL,
     KW_INNER, KW_INSERT, KW_INT, KW_INTERMEDIATE, KW_INTERSECT, KW_INTERVAL, KW_INTO, KW_IS, KW_ISNULL, KW_ISOLATION,
     KW_JOIN,
-    KW_KEY, KW_KILL,
+    KW_KEY, KW_KEYS, KW_KILL,
     KW_LABEL, KW_LARGEINT, KW_LAST, KW_LEFT, KW_LESS, KW_LEVEL, KW_LIKE, KW_LIMIT, KW_LINK, KW_LOAD,
     KW_LOCAL, KW_LOCATION,
     KW_MAX, KW_MAX_VALUE, KW_MERGE, KW_MIN, KW_MINUTE, KW_MINUS, KW_MIGRATE, KW_MIGRATIONS, KW_MODIFY, KW_MONTH,
@@ -2241,6 +2241,7 @@ opt_tmp ::=
 
 keys_or_index ::=
     KW_KEY
+    | KW_KEYS
     | KW_INDEX
     | KW_INDEXES
     ;
diff --git a/fe/src/main/java/org/apache/doris/analysis/ShowIndexStmt.java b/fe/src/main/java/org/apache/doris/analysis/ShowIndexStmt.java
index e025b2c..1f2499f 100644
--- a/fe/src/main/java/org/apache/doris/analysis/ShowIndexStmt.java
+++ b/fe/src/main/java/org/apache/doris/analysis/ShowIndexStmt.java
@@ -77,7 +77,7 @@ public class ShowIndexStmt extends ShowStmt {
         if (!Catalog.getCurrentCatalog().getAuth().checkDbPriv(ConnectContext.get(), dbName, PrivPredicate.SHOW)) {
             ErrorReport.reportAnalysisException(ErrorCode.ERR_DB_ACCESS_DENIED, analyzer.getQualifiedUser(), dbName);
         }
-        if (!Catalog.getCurrentCatalog().getAuth().checkTblPriv(ConnectContext.get(), dbName, dbName,
+        if (!Catalog.getCurrentCatalog().getAuth().checkTblPriv(ConnectContext.get(), dbName, tableName.getTbl(),
                 PrivPredicate.SHOW)) {
             ErrorReport.reportAnalysisException(ErrorCode.ERR_TABLEACCESS_DENIED_ERROR, analyzer.getQualifiedUser(),
                     tableName.toString());
diff --git a/fe/src/main/jflex/sql_scanner.flex b/fe/src/main/jflex/sql_scanner.flex
index e5f31c7..ec53bea 100644
--- a/fe/src/main/jflex/sql_scanner.flex
+++ b/fe/src/main/jflex/sql_scanner.flex
@@ -225,6 +225,7 @@ import org.apache.doris.qe.SqlModeHelper;
         keywordMap.put("install", new Integer(SqlParserSymbols.KW_INSTALL));
         keywordMap.put("join", new Integer(SqlParserSymbols.KW_JOIN));
         keywordMap.put("key", new Integer(SqlParserSymbols.KW_KEY));
+        keywordMap.put("keys", new Integer(SqlParserSymbols.KW_KEYS));
         keywordMap.put("kill", new Integer(SqlParserSymbols.KW_KILL));
         keywordMap.put("label", new Integer(SqlParserSymbols.KW_LABEL));
         keywordMap.put("largeint", new Integer(SqlParserSymbols.KW_LARGEINT));


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