diff --git cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java index 2b52826..bbb17b5 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) { 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 common/src/java/org/apache/hadoop/hive/conf/HiveConf.java common/src/java/org/apache/hadoop/hive/conf/HiveConf.java index a091b95..06b1aac 100644 --- common/src/java/org/apache/hadoop/hive/conf/HiveConf.java +++ common/src/java/org/apache/hadoop/hive/conf/HiveConf.java @@ -191,6 +191,8 @@ public class HiveConf extends Configuration { HIVESESSIONID("hive.session.id", ""), // whether session is running in silent mode or not HIVESESSIONSILENT("hive.session.silent", false), + // whether session is running in verbose mode or not + HIVESESSIONVERBOSE("hive.session.verbose", false), // query being executed (multiple per session) HIVEQUERYSTRING("hive.query.string", ""), 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..b4878eb 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,21 @@ public class SessionState { this.isSilent = isSilent; } + public boolean getIsVerbose() { + if(conf != null) { + return conf.getBoolVar(HiveConf.ConfVars.HIVESESSIONVERBOSE); + } else { + return isSilent; + } + } + + public void setIsVerbose(boolean isVerbose) { + if(conf != null) { + conf.setBoolVar(HiveConf.ConfVars.HIVESESSIONVERBOSE, isVerbose); + } + this.isVerbose = isVerbose; + } + public SessionState() { this(null); }