You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2012/06/15 23:23:34 UTC
svn commit: r1350807 -
/hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java
Author: hashutosh
Date: Fri Jun 15 21:23:33 2012
New Revision: 1350807
URL: http://svn.apache.org/viewvc?rev=1350807&view=rev
Log:
HIVE-2796 [jira] Support auto completion for hive configs in CliDriver
(Navis Ryu via Ashutosh Chauhan)
Summary:
DPAL-747 Support auto completion for hive configs in CliDriver
It's very cumbersome to memorize hive conf vars.
Test Plan: EMPTY
Reviewers: JIRA, ashutoshc
Reviewed By: ashutoshc
Differential Revision: https://reviews.facebook.net/D1689
Modified:
hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.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=1350807&r1=1350806&r2=1350807&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 Fri Jun 15 21:23:33 2012
@@ -512,7 +512,7 @@ public class CliDriver {
}
}
- public static Completor getCommandCompletor () {
+ public static Completor[] getCommandCompletor () {
// SimpleCompletor matches against a pre-defined wordlist
// We start with an empty wordlist and build it up
SimpleCompletor sc = new SimpleCompletor(new String[0]);
@@ -575,7 +575,32 @@ public class CliDriver {
}
};
- return completor;
+ HiveConf.ConfVars[] confs = HiveConf.ConfVars.values();
+ String[] vars = new String[confs.length];
+ for (int i = 0; i < vars.length; i++) {
+ vars[i] = confs[i].varname;
+ }
+ SimpleCompletor conf = new SimpleCompletor(vars);
+ conf.setDelimiter(".");
+
+ SimpleCompletor set = new SimpleCompletor("set") {
+ @Override
+ public int complete(String buffer, int cursor, List clist) {
+ return buffer != null && buffer.equals("set") ? super.complete(buffer, cursor, clist) : -1;
+ }
+ };
+ ArgumentCompletor propCompletor = new ArgumentCompletor(new Completor[]{set, conf}) {
+ @Override
+ @SuppressWarnings("unchecked")
+ public int complete(String buffer, int offset, List completions) {
+ int ret = super.complete(buffer, offset, completions);
+ if (completions.size() == 1) {
+ completions.set(0, ((String)completions.get(0)).trim());
+ }
+ return ret;
+ }
+ };
+ return new Completor[] {propCompletor, completor};
}
public static void main(String[] args) throws Exception {
@@ -682,7 +707,9 @@ public class CliDriver {
ConsoleReader reader = new ConsoleReader();
reader.setBellEnabled(false);
// reader.setDebug(new PrintWriter(new FileWriter("writer.debug", true)));
- reader.addCompletor(getCommandCompletor());
+ for (Completor completor : getCommandCompletor()) {
+ reader.addCompletor(completor);
+ }
String line;
final String HISTORYFILE = ".hivehistory";