diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java index d40dae0..e1d1e07 100644 --- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java +++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java @@ -653,6 +653,7 @@ int initArgs(String[] args) { if (cl.hasOption("help")) { usage(); + getOpts().setHelpAsked(true); return 0; } @@ -755,6 +756,9 @@ public int begin(String[] args, InputStream inputStream) throws IOException { return code; } + if (getOpts().isHelpAsked()) { + return 0; + } if (getOpts().getScriptFile() != null) { return executeFile(getOpts().getScriptFile()); } diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java b/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java index c1ec82a..aba2387 100644 --- a/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java +++ b/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java @@ -96,6 +96,7 @@ private Map hiveVariables = new HashMap(); private Map hiveConfVariables = new HashMap(); + private boolean helpAsked; public BeeLineOpts(BeeLine beeLine, Properties props) { this.beeLine = beeLine; @@ -520,5 +521,13 @@ public char getDelimiterForDSV() { public void setDelimiterForDSV(char delimiterForDSV) { this.delimiterForDSV = delimiterForDSV; } + + public void setHelpAsked(boolean helpAsked) { + this.helpAsked = helpAsked; + } + + public boolean isHelpAsked() { + return helpAsked; + } } diff --git a/beeline/src/test/org/apache/hive/beeline/TestBeelineArgParsing.java b/beeline/src/test/org/apache/hive/beeline/TestBeelineArgParsing.java index e54fe32..b9b7206 100644 --- a/beeline/src/test/org/apache/hive/beeline/TestBeelineArgParsing.java +++ b/beeline/src/test/org/apache/hive/beeline/TestBeelineArgParsing.java @@ -157,6 +157,7 @@ public void testHelp() throws Exception { TestBeeline bl = new TestBeeline(); String args[] = new String[] {"--help"}; Assert.assertEquals(0, bl.initArgs(args)); + Assert.assertEquals(true, bl.getOpts().isHelpAsked()); } /**