diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java index f2aeac5..69e9418 100644 --- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java +++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java @@ -727,6 +727,7 @@ int initArgs(String[] args) { if (cl.hasOption("help")) { usage(); + getOpts().setHelpAsked(true); return 0; } @@ -844,6 +845,9 @@ public int begin(String[] args, InputStream inputStream) throws IOException { defaultConnect(false); } + 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 8e1d11b..7a6ee5f 100644 --- a/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java +++ b/beeline/src/java/org/apache/hive/beeline/BeeLineOpts.java @@ -100,6 +100,7 @@ private Map hiveVariables = new HashMap(); private Map hiveConfVariables = new HashMap(); + private boolean helpAsked; public BeeLineOpts(BeeLine beeLine, Properties props) { this.beeLine = beeLine; @@ -558,5 +559,13 @@ public void setDelimiterForDSV(char delimiterForDSV) { public HiveConf getConf() { return conf; } + + 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 702805f..e529057 100644 --- a/beeline/src/test/org/apache/hive/beeline/TestBeelineArgParsing.java +++ b/beeline/src/test/org/apache/hive/beeline/TestBeelineArgParsing.java @@ -206,6 +206,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()); } /**