Repository: hive Updated Branches: refs/heads/branch-2 43f1d7791 -> 812e78956
HIVE-14389: Beeline should not output query and prompt to stdout (Vihang Karajgaonkar, reviewed by Peter Vary, Thejas M Nair and Yongzhi Chen) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/812e7895 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/812e7895 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/812e7895 Branch: refs/heads/branch-2 Commit: 812e789565d0ad3699d086232c5d4dbc0e87a336 Parents: 43f1d77 Author: Yongzhi Chen <[email protected]> Authored: Fri May 12 14:10:10 2017 -0400 Committer: Yongzhi Chen <[email protected]> Committed: Fri May 12 14:27:46 2017 -0400 ---------------------------------------------------------------------- .../src/java/org/apache/hive/beeline/BeeLine.java | 9 +++++++-- .../org/apache/hive/beeline/cli/TestHiveCli.java | 8 ++++---- .../apache/hive/beeline/TestBeeLineWithArgs.java | 16 +++++++++++----- 3 files changed, 22 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/812e7895/beeline/src/java/org/apache/hive/beeline/BeeLine.java ---------------------------------------------------------------------- diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java index 11526a7..4090897 100644 --- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java +++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java @@ -138,6 +138,7 @@ public class BeeLine implements Closeable { private OutputFile recordOutputFile = null; private PrintStream outputStream = new PrintStream(System.out, true); private PrintStream errorStream = new PrintStream(System.err, true); + private InputStream inputStream = System.in; private ConsoleReader consoleReader; private List<String> batch = null; private final Reflector reflector = new Reflector(this); @@ -1216,10 +1217,10 @@ public class BeeLine implements Closeable { // by appending a newline to the end of inputstream InputStream inputStreamAppendedNewline = new SequenceInputStream(inputStream, new ByteArrayInputStream((new String("\n")).getBytes())); - consoleReader = new ConsoleReader(inputStreamAppendedNewline, getOutputStream()); + consoleReader = new ConsoleReader(inputStreamAppendedNewline, getErrorStream()); consoleReader.setCopyPasteDetection(true); // jline will detect if <tab> is regular character } else { - consoleReader = new ConsoleReader(); + consoleReader = new ConsoleReader(getInputStream(), getErrorStream()); } //disable the expandEvents for the purpose of backward compatibility @@ -2348,6 +2349,10 @@ public class BeeLine implements Closeable { return errorStream; } + InputStream getInputStream() { + return inputStream; + } + ConsoleReader getConsoleReader() { return consoleReader; } http://git-wip-us.apache.org/repos/asf/hive/blob/812e7895/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java ---------------------------------------------------------------------- diff --git a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java index d306e29..8eaa683 100644 --- a/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java +++ b/beeline/src/test/org/apache/hive/beeline/cli/TestHiveCli.java @@ -112,7 +112,7 @@ public class TestHiveCli { @Test public void testSetPromptValue() { - verifyCMD("set hive.cli.prompt=MYCLI;SHOW\nTABLES;", "MYCLI> ", os, null, + verifyCMD("set hive.cli.prompt=MYCLI;SHOW\nTABLES;", "MYCLI> ", errS, null, ERRNO_OK, true); } @@ -213,21 +213,21 @@ public class TestHiveCli { public void testUseCurrentDB1() { verifyCMD( "create database if not exists testDB; set hive.cli.print.current.db=true;use testDB;\n" - + "use default;drop if exists testDB;", "hive (testDB)>", os, null, ERRNO_OTHER, true); + + "use default;drop if exists testDB;", "hive (testDB)>", errS, null, ERRNO_OTHER, true); } @Test public void testUseCurrentDB2() { verifyCMD( "create database if not exists testDB; set hive.cli.print.current.db=true;use\ntestDB;\nuse default;drop if exists testDB;", - "hive (testDB)>", os, null, ERRNO_OTHER, true); + "hive (testDB)>", errS, null, ERRNO_OTHER, true); } @Test public void testUseCurrentDB3() { verifyCMD( "create database if not exists testDB; set hive.cli.print.current.db=true;use testDB;\n" - + "use default;drop if exists testDB;", "hive (testDB)>", os, null, ERRNO_OTHER, true); + + "use default;drop if exists testDB;", "hive (testDB)>", errS, null, ERRNO_OTHER, true); } @Test http://git-wip-us.apache.org/repos/asf/hive/blob/812e7895/itests/hive-unit/src/test/java/org/apache/hive/beeline/TestBeeLineWithArgs.java ---------------------------------------------------------------------- diff --git a/itests/hive-unit/src/test/java/org/apache/hive/beeline/TestBeeLineWithArgs.java b/itests/hive-unit/src/test/java/org/apache/hive/beeline/TestBeeLineWithArgs.java index 75f46ec..983db48 100644 --- a/itests/hive-unit/src/test/java/org/apache/hive/beeline/TestBeeLineWithArgs.java +++ b/itests/hive-unit/src/test/java/org/apache/hive/beeline/TestBeeLineWithArgs.java @@ -439,7 +439,8 @@ public class TestBeeLineWithArgs { final String SCRIPT_TEXT = "CREATE\tTABLE IF NOT EXISTS testTabInScriptFile\n(id\tint);\nSHOW TABLES;" + "\ndrop table testTabInScriptFile"; final String EXPECTED_PATTERN = "testTabInScriptFile"; - testScriptFile(SCRIPT_TEXT, argList, EXPECTED_PATTERN, true); + testScriptFile(SCRIPT_TEXT, argList, OutStream.ERR, EXPECTED_PATTERN, true); + testScriptFile(SCRIPT_TEXT, argList, OutStream.OUT, EXPECTED_PATTERN, false); } @Test @@ -482,7 +483,7 @@ public class TestBeeLineWithArgs { public void testGetVariableValue() throws Throwable { final String SCRIPT_TEXT = "set env:TERM;"; final String EXPECTED_PATTERN = "env:TERM"; - testScriptFile(SCRIPT_TEXT, getBaseArgs(miniHS2.getBaseJdbcURL()), EXPECTED_PATTERN, true); + testScriptFile(SCRIPT_TEXT, getBaseArgs(miniHS2.getBaseJdbcURL()), OutStream.ERR, EXPECTED_PATTERN, true); } /** @@ -1002,10 +1003,15 @@ public class TestBeeLineWithArgs { @Test public void testQueryNonEscapedSemiColon() throws Throwable { String SCRIPT_TEXT = "drop table if exists nonEscapedSemiColon;create table nonEscapedSemiColon " - + "(key int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ';';show tables;"; - final String EXPECTED_PATTERN = " nonEscapedSemiColon "; + + "(key int, value int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ';';show tables;"; + String EXPECTED_PATTERN = "nonescapedsemicolon"; List<String> argList = getBaseArgs(miniHS2.getBaseJdbcURL()); testScriptFile(SCRIPT_TEXT, argList, EXPECTED_PATTERN, true); + //look for the " nonEscapedSemiColon " in the query text not the table name which comes + //in the result + EXPECTED_PATTERN = " nonEscapedSemiColon "; + testScriptFile(SCRIPT_TEXT, argList, OutStream.ERR, EXPECTED_PATTERN, true); + testScriptFile(SCRIPT_TEXT, argList, OutStream.OUT, EXPECTED_PATTERN, false); } @Test @@ -1032,7 +1038,7 @@ public class TestBeeLineWithArgs { argList.add(miniHS2.getBaseJdbcURL() + ";user=hivetest;password=hive"); String SCRIPT_TEXT = "select current_user();"; - testScriptFile(SCRIPT_TEXT, argList, EXPECTED_PATTERN, true); + testScriptFile(SCRIPT_TEXT, argList, OutStream.ERR, EXPECTED_PATTERN, true); } @Test
