diff --git beeline/src/java/org/apache/hive/beeline/BeeLine.java beeline/src/java/org/apache/hive/beeline/BeeLine.java index 4ae2e3f..860d36e 100644 --- beeline/src/java/org/apache/hive/beeline/BeeLine.java +++ beeline/src/java/org/apache/hive/beeline/BeeLine.java @@ -1256,12 +1256,15 @@ private int executeFile(String fileName) { private int execute(ConsoleReader reader, boolean exitOnError) { int lastExecutionResult = ERRNO_OK; + Character mask = (System.getProperty("jline.terminal", "").equals("jline.UnsupportedTerminal")) ? null + : ConsoleReader.NULL_MASK; + while (!exit) { try { // Execute one instruction; terminate on executing a script if there is an error // in silent mode, prevent the query and prompt being echoed back to terminal String line = (getOpts().isSilent() && getOpts().getScriptFile() != null) ? reader - .readLine(null, ConsoleReader.NULL_MASK) : reader.readLine(getPrompt()); + .readLine(null, mask) : reader.readLine(getPrompt()); // trim line if (line != null) { diff --git beeline/src/java/org/apache/hive/beeline/Commands.java beeline/src/java/org/apache/hive/beeline/Commands.java index 4d654d4..f4dd586 100644 --- beeline/src/java/org/apache/hive/beeline/Commands.java +++ beeline/src/java/org/apache/hive/beeline/Commands.java @@ -1074,6 +1074,9 @@ private boolean executeInternal(String sql, boolean call) { public String handleMultiLineCmd(String line) throws IOException { int[] startQuote = {-1}; line = HiveStringUtils.removeComments(line, startQuote); + Character mask = (System.getProperty("jline.terminal", "").equals("jline.UnsupportedTerminal")) ? null + : jline.console.ConsoleReader.NULL_MASK; + while (isMultiLine(line) && beeLine.getOpts().isAllowMultiLineCommand()) { StringBuilder prompt = new StringBuilder(beeLine.getPrompt()); if (!beeLine.getOpts().isSilent()) { @@ -1090,7 +1093,7 @@ public String handleMultiLineCmd(String line) throws IOException { + "is a multi-line command using -e option and which requires further reading from console"); } if (beeLine.getOpts().isSilent() && beeLine.getOpts().getScriptFile() != null) { - extra = beeLine.getConsoleReader().readLine(null, jline.console.ConsoleReader.NULL_MASK); + extra = beeLine.getConsoleReader().readLine(null, mask); } else { extra = beeLine.getConsoleReader().readLine(prompt.toString()); }