You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by na...@apache.org on 2014/08/11 03:16:30 UTC

svn commit: r1617189 - in /hive/trunk: cli/src/java/org/apache/hadoop/hive/cli/ common/src/java/org/apache/hadoop/hive/conf/ ql/src/java/org/apache/hadoop/hive/ql/processors/

Author: navis
Date: Mon Aug 11 01:16:30 2014
New Revision: 1617189

URL: http://svn.apache.org/r1617189
Log:
HIVE-7592 : List Jars or Files are not supported by Beeline (Navis reviewed by Szehon Ho)

Added:
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/ListResourceProcessor.java
Modified:
    hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java
    hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessor.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessorFactory.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/HiveCommand.java

Modified: hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java
URL: http://svn.apache.org/viewvc/hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java?rev=1617189&r1=1617188&r2=1617189&view=diff
==============================================================================
--- hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java (original)
+++ hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java Mon Aug 11 01:16:30 2014
@@ -32,7 +32,6 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 import jline.ArgumentCompletor;
 import jline.ArgumentCompletor.AbstractArgumentDelimiter;
@@ -150,24 +149,6 @@ public class CliDriver {
             stringifyException(e));
         ret = 1;
       }
-    } else if (tokens[0].toLowerCase().equals("list")) {
-
-      SessionState.ResourceType t;
-      if (tokens.length < 2 || (t = SessionState.find_resource_type(tokens[1])) == null) {
-        console.printError("Usage: list ["
-            + StringUtils.join(SessionState.ResourceType.values(), "|") + "] [<value> [<value>]*]");
-        ret = 1;
-      } else {
-        List<String> filter = null;
-        if (tokens.length >= 3) {
-          System.arraycopy(tokens, 2, tokens, 0, tokens.length - 2);
-          filter = Arrays.asList(tokens);
-        }
-        Set<String> s = ss.list_resource(t, filter);
-        if (s != null && !s.isEmpty()) {
-          ss.out.println(StringUtils.join(s, "\n"));
-        }
-      }
     } else if (ss.isRemoteMode()) { // remote mode -- connecting to remote hive server
       HiveClient client = ss.getClient();
       PrintStream out = ss.out;

Modified: hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
URL: http://svn.apache.org/viewvc/hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java?rev=1617189&r1=1617188&r2=1617189&view=diff
==============================================================================
--- hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java (original)
+++ hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java Mon Aug 11 01:16:30 2014
@@ -1551,7 +1551,7 @@ public class HiveConf extends Configurat
     HIVE_SERVER2_SSL_KEYSTORE_PATH("hive.server2.keystore.path", "", ""),
     HIVE_SERVER2_SSL_KEYSTORE_PASSWORD("hive.server2.keystore.password", "", ""),
 
-    HIVE_SECURITY_COMMAND_WHITELIST("hive.security.command.whitelist", "set,reset,dfs,add,delete,compile",
+    HIVE_SECURITY_COMMAND_WHITELIST("hive.security.command.whitelist", "set,reset,dfs,add,list,delete,compile",
         "Comma separated list of non-SQL Hive commands users are authorized to execute"),
 
     HIVE_CONF_RESTRICTED_LIST("hive.conf.restricted.list",

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessor.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessor.java?rev=1617189&r1=1617188&r2=1617189&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessor.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessor.java Mon Aug 11 01:16:30 2014
@@ -21,7 +21,8 @@ package org.apache.hadoop.hive.ql.proces
 import org.apache.hadoop.hive.ql.CommandNeedRetryException;
 
 public interface CommandProcessor {
-  public void init();
 
-  public CommandProcessorResponse run(String command) throws CommandNeedRetryException;
+  void init();
+
+  CommandProcessorResponse run(String command) throws CommandNeedRetryException;
 }

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessorFactory.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessorFactory.java?rev=1617189&r1=1617188&r2=1617189&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessorFactory.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessorFactory.java Mon Aug 11 01:16:30 2014
@@ -74,6 +74,8 @@ public final class CommandProcessorFacto
         return new DfsProcessor(ss.getConf());
       case ADD:
         return new AddResourceProcessor();
+      case LIST:
+        return new ListResourceProcessor();
       case DELETE:
         return new DeleteResourceProcessor();
       case COMPILE:

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/HiveCommand.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/HiveCommand.java?rev=1617189&r1=1617188&r2=1617189&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/HiveCommand.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/HiveCommand.java Mon Aug 11 01:16:30 2014
@@ -30,6 +30,7 @@ public enum HiveCommand {
   RESET(),
   DFS(),
   ADD(),
+  LIST(),
   DELETE(),
   COMPILE();
   private static final Set<String> COMMANDS = new HashSet<String>();

Added: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/ListResourceProcessor.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/ListResourceProcessor.java?rev=1617189&view=auto
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/ListResourceProcessor.java (added)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/ListResourceProcessor.java Mon Aug 11 01:16:30 2014
@@ -0,0 +1,70 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.ql.processors;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.hadoop.hive.metastore.api.FieldSchema;
+import org.apache.hadoop.hive.metastore.api.Schema;
+import org.apache.hadoop.hive.ql.CommandNeedRetryException;
+import org.apache.hadoop.hive.ql.session.SessionState;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+
+import static org.apache.hadoop.hive.serde.serdeConstants.SERIALIZATION_NULL_FORMAT;
+import static org.apache.hadoop.hive.serde.serdeConstants.STRING_TYPE_NAME;
+import static org.apache.hadoop.hive.serde2.MetadataTypedColumnsetSerDe.defaultNullString;
+
+public class ListResourceProcessor implements CommandProcessor {
+
+  private static final String LIST_COLUMN_NAME = "resource";
+  private static final Schema SCHEMA;
+
+  static {
+    SCHEMA = new Schema();
+    SCHEMA.addToFieldSchemas(new FieldSchema(LIST_COLUMN_NAME, STRING_TYPE_NAME, null));
+    SCHEMA.putToProperties(SERIALIZATION_NULL_FORMAT, defaultNullString);
+  }
+
+  @Override
+  public void init() {
+  }
+
+  @Override
+  public CommandProcessorResponse run(String command) throws CommandNeedRetryException {
+    SessionState ss = SessionState.get();
+    String[] tokens = command.split("\\s+");
+    SessionState.ResourceType t;
+    if (tokens.length < 1 || (t = SessionState.find_resource_type(tokens[0])) == null) {
+      String message = "Usage: list ["
+          + StringUtils.join(SessionState.ResourceType.values(), "|") + "] [<value> [<value>]*]";
+      return new CommandProcessorResponse(1, message, null);
+    }
+    List<String> filter = null;
+    if (tokens.length > 1) {
+      filter = Arrays.asList(Arrays.copyOfRange(tokens, 1, tokens.length));
+    }
+    Set<String> s = ss.list_resource(t, filter);
+    if (s != null && !s.isEmpty()) {
+      ss.out.println(StringUtils.join(s, "\n"));
+    }
+    return new CommandProcessorResponse(0, null, null, SCHEMA);
+  }
+}