[ 
https://issues.apache.org/jira/browse/HIVE-13353?focusedWorklogId=819683&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-819683
 ]

ASF GitHub Bot logged work on HIVE-13353:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 24/Oct/22 13:12
            Start Date: 24/Oct/22 13:12
    Worklog Time Spent: 10m 
      Work Description: deniskuzZ commented on code in PR #3608:
URL: https://github.com/apache/hive/pull/3608#discussion_r1003296971


##########
ql/src/java/org/apache/hadoop/hive/ql/ddl/process/show/compactions/ShowCompactionsAnalyzer.java:
##########
@@ -40,20 +43,53 @@ public ShowCompactionsAnalyzer(QueryState queryState) 
throws SemanticException {
 
   @Override
   public void analyzeInternal(ASTNode root) throws SemanticException {
+    ctx.setResFile(ctx.getLocalTmpPath());
     String poolName = null;
-    Tree pool = root.getChild(0);
-    if (pool != null) {
-      if (pool.getType() != HiveParser.TOK_COMPACT_POOL) {
-        throw new SemanticException("Unknown token, 'POOL' expected.");
-      } else {
-        poolName = unescapeSQLString(pool.getChild(0).getText());
+    String dbName = null;
+    String tbName = null;
+    String compactionType = null;
+    String compactionStatus = null;
+    long compactionId = 0;
+    Map<String, String> partitionSpec = null;
+    if (root.getChildCount() > 6) {
+      throw new 
SemanticException(ErrorMsg.INVALID_AST_TREE.getMsg(root.toStringTree()));
+    }
+    if (root.getType() == HiveParser.TOK_SHOW_COMPACTIONS) {
+      for (int i = 0; i < root.getChildCount(); i++) {
+        ASTNode child = (ASTNode) root.getChild(i);
+        switch (child.getType()) {
+          case HiveParser.TOK_TABTYPE:
+            tbName = child.getChild(0).getText();
+            if (child.getChildCount() == 2) {
+              if (child.getChild(0).getChildCount() == 2) {
+                dbName = DDLUtils.getFQName((ASTNode) 
child.getChild(0).getChild(0));
+                tbName = DDLUtils.getFQName((ASTNode) 
child.getChild(0).getChild(1));
+              }
+              ASTNode partitionSpecNode = (ASTNode) child.getChild(1);
+              partitionSpec = getValidatedPartSpec(getTable(dbName, tbName, 
true), partitionSpecNode, conf, false);
+            }
+            break;
+          case HiveParser.TOK_COMPACT_POOL:
+            poolName = unescapeSQLString(child.getChild(0).getText());
+            break;
+          case HiveParser.TOK_COMPACTION_TYPE:
+            compactionType = unescapeSQLString(child.getChild(0).getText());
+            break;
+          case HiveParser.TOK_COMPACTION_STATUS:
+            compactionStatus = unescapeSQLString(child.getChild(0).getText());
+            break;
+          case HiveParser.TOK_COMPACT_ID:
+           compactionId = Long.parseLong(child.getChild(0).getText());
+           break;
+          default:
+            dbName = child.getText();

Review Comment:
   TOK_TABTYPE won't handle provided SCHEMA, Identity will





Issue Time Tracking
-------------------

    Worklog Id:     (was: 819683)
    Time Spent: 11h  (was: 10h 50m)

> SHOW COMPACTIONS should support filtering options
> -------------------------------------------------
>
>                 Key: HIVE-13353
>                 URL: https://issues.apache.org/jira/browse/HIVE-13353
>             Project: Hive
>          Issue Type: Improvement
>          Components: Transactions
>    Affects Versions: 1.3.0, 4.0.0
>            Reporter: Eugene Koifman
>            Assignee: KIRTI RUGE
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 4.0.0
>
>         Attachments: HIVE-13353.01.patch
>
>          Time Spent: 11h
>  Remaining Estimate: 0h
>
> Since we now have historical information in SHOW COMPACTIONS the output can 
> easily become unwieldy. (e.g. 1000 partitions with 3 lines of history each)
> this is a significant usability issue
> Need to add ability to filter by db/table/partition
> Perhaps would also be useful to filter by status



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to