Index: cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java =================================================================== --- cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java (revision 724682) +++ cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java (working copy) @@ -56,25 +56,26 @@ public int processCmd(String cmd) { SessionState ss = SessionState.get(); - - String[] tokens = cmd.split("\\s+"); - String cmd_1 = cmd.substring(tokens[0].length()); + + String cmd_trimmed = cmd.trim(); + String[] tokens = cmd_trimmed.split("\\s+"); + String cmd_1 = cmd_trimmed.substring(tokens[0].length()); int ret = 0; if(tokens[0].toLowerCase().equals("set")) { ret = sp.run(cmd_1); - } else if (cmd.toLowerCase().equals("quit") || cmd.toLowerCase().equals("exit")) { + } else if (cmd_trimmed.toLowerCase().equals("quit") || cmd_trimmed.toLowerCase().equals("exit")) { // if we have come this far - either the previous commands // are all successful or this is command line. in either case // this counts as a successful run System.exit(0); - } else if (cmd.startsWith("!")) { + } else if (cmd_trimmed.startsWith("!")) { - String shell_cmd = cmd.substring(1); + String shell_cmd = cmd_trimmed.substring(1); //shell_cmd = "/bin/bash -c \'" + shell_cmd + "\'"; try { @@ -197,7 +198,6 @@ public int processLine(String line) { int ret = 0; for(String oneCmd: line.split(";")) { - oneCmd = oneCmd.trim(); if(oneCmd.equals("")) continue; @@ -212,13 +212,18 @@ public int processReader(BufferedReader r) throws IOException { String line; + StringBuffer qsb = new StringBuffer(); int ret = 0; + while((line = r.readLine()) != null) { - ret = processLine(line); - if(ret != 0) { - return ret; - } + qsb.append(line + "\n"); } + + ret = processLine(qsb.toString()); + if (ret != 0) { + return ret; + } + return 0; }