diff --git cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java index 2b52826..c29060d 100644 --- cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java +++ cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java @@ -157,6 +157,9 @@ public class CliDriver { Driver qp = (Driver) proc; PrintStream out = ss.out; long start = System.currentTimeMillis(); + if (ss.getIsVerbose()) { + out.println(cmd); + } ret = qp.run(cmd).getResponseCode(); if (ret != 0) { @@ -208,6 +211,9 @@ public class CliDriver { } } else { + if (ss.getIsVerbose()) { + ss.out.println(tokens[0] + " " + cmd_1); + } ret = proc.run(cmd_1).getResponseCode(); } } diff --git cli/src/java/org/apache/hadoop/hive/cli/OptionsProcessor.java cli/src/java/org/apache/hadoop/hive/cli/OptionsProcessor.java index 93a7c95..bf4b055 100644 --- cli/src/java/org/apache/hadoop/hive/cli/OptionsProcessor.java +++ cli/src/java/org/apache/hadoop/hive/cli/OptionsProcessor.java @@ -47,7 +47,7 @@ public class OptionsProcessor { private final Parser parser = new Parser(); private final Option confOptions, initFilesOption, isSilentOption, - execOption, fileOption, isHelpOption; + execOption, fileOption, isHelpOption, isVerboseOption; /** * Shamelessly cloned from Hadoop streaming take in multiple -hiveconf x=y parameters. @@ -150,6 +150,9 @@ public class OptionsProcessor { // -S isSilentOption = createBoolOption(builder, "silent", "S", "silent mode"); + // -v + isVerboseOption = createBoolOption(builder, "verbose", "v", "verbose mode"); + // -help isHelpOption = createBoolOption(builder, "help", "h", "help"); @@ -164,7 +167,8 @@ public class OptionsProcessor { Group allOptions = new GroupBuilder().withOption(confOptions).withOption(initFilesOption) .withOption(isSilentOption).withOption(isHelpOption) - .withOption(execOption).withOption(fileOption).create(); + .withOption(execOption).withOption(fileOption) + .withOption(isVerboseOption).create(); parser.setGroup(allOptions); } @@ -196,6 +200,8 @@ public class OptionsProcessor { ss.execString = (String) cmdLine.getValue(execOption); // -f ss.fileName = (String) cmdLine.getValue(fileOption); + // -v + ss.setIsVerbose(cmdLine.hasOption(isVerboseOption)); // -i List initFiles = (List) cmdLine.getValue(initFilesOption); if (null != initFiles) { @@ -229,12 +235,13 @@ public class OptionsProcessor { System.err.println(""); System.err.println( "Usage: hive [--config confdir] [-hiveconf x=y]* [-i ]*" - + " [-f |-e ] [-S]"); + + " [-f |-e ] [-S] [-v]"); System.err.println(""); System.err.println(" -i init Sql file"); System.err.println(" -e 'quoted query string' Sql from command line"); System.err.println(" -f Sql from files"); System.err.println(" -S Silent mode in interactive shell"); + System.err.println(" -v Verbose mode (echo executed Sql to the console)"); System.err.println(""); System.err.println("-e and -f cannot be specified together. In the absence of these"); System.err.println(" options, interactive shell is started."); diff --git ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java index 2b0dba8..6cec20e 100644 --- ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java +++ ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java @@ -68,6 +68,11 @@ public class SessionState { */ protected boolean isSilent; + /** + * verbose mode + */ + protected boolean isVerbose; + /* * HiveHistory Object */ @@ -127,6 +132,14 @@ public class SessionState { this.isSilent = isSilent; } + public boolean getIsVerbose() { + return isVerbose; + } + + public void setIsVerbose(boolean isVerbose) { + this.isVerbose = isVerbose; + } + public SessionState() { this(null); }