Index: ql/src/java/org/apache/hadoop/hive/ql/processors/AddResourceProcessor.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/processors/AddResourceProcessor.java (revision 821095) +++ ql/src/java/org/apache/hadoop/hive/ql/processors/AddResourceProcessor.java Fri Oct 02 16:04:01 PDT 2009 @@ -29,7 +29,7 @@ public static final Log LOG = LogFactory.getLog(AddResourceProcessor.class.getName()); public static final LogHelper console = new LogHelper(LOG); - public int run(String command) { + public CommandProcessorResponse run(String command) { SessionState ss = SessionState.get(); String[] tokens = command.split("\\s+"); SessionState.ResourceType t; @@ -37,12 +37,12 @@ console.printError("Usage: add [" + StringUtils.join(SessionState.ResourceType.values(),"|") + "] []*"); - return 1; + return new CommandProcessorResponse(1); } for (int i = 1; i < tokens.length; i++) { ss.add_resource(t, tokens[i]); } - return 0; + return new CommandProcessorResponse(0); } } Index: hwi/src/java/org/apache/hadoop/hive/hwi/HWISessionItem.java =================================================================== --- hwi/src/java/org/apache/hadoop/hive/hwi/HWISessionItem.java (revision 821095) +++ hwi/src/java/org/apache/hadoop/hive/hwi/HWISessionItem.java Fri Oct 02 16:04:01 PDT 2009 @@ -325,7 +325,7 @@ if (proc !=null){ if (proc instanceof Driver) { Driver qp = (Driver) proc; - queryRet.add ( new Integer(qp.run(cmd))); + queryRet.add ( new Integer(qp.run(cmd).getResponseCode())); Vector res = new Vector(); try { while (qp.getResults(res)) { @@ -348,7 +348,7 @@ } qp.close(); } else { - queryRet.add( new Integer(proc.run(cmd_1) ) ); + queryRet.add( new Integer(proc.run(cmd_1).getResponseCode() ) ); } } else { //processor was null Index: service/src/java/org/apache/hadoop/hive/service/HiveServer.java =================================================================== --- service/src/java/org/apache/hadoop/hive/service/HiveServer.java (revision 821095) +++ service/src/java/org/apache/hadoop/hive/service/HiveServer.java Fri Oct 02 16:04:01 PDT 2009 @@ -44,6 +44,7 @@ import org.apache.hadoop.hive.ql.plan.api.QueryPlan; import org.apache.hadoop.hive.ql.processors.CommandProcessor; import org.apache.hadoop.hive.ql.processors.CommandProcessorFactory; +import org.apache.hadoop.hive.ql.processors.CommandProcessorResponse; import org.apache.hadoop.hive.ql.Driver; import org.apache.hadoop.hive.metastore.api.*; import org.apache.hadoop.hive.metastore.*; @@ -115,17 +116,20 @@ try { CommandProcessor proc = CommandProcessorFactory.get(tokens[0]); if(proc != null) { + + CommandProcessorResponse response = null; if (proc instanceof Driver) { isHiveQuery = true; - Driver.DriverResponse response = driver.runCommand(cmd); + response = driver.run(cmd); + } else { + isHiveQuery = false; + response = proc.run(cmd_1); + } + - ret = response.getResponseCode(); - SQLState = response.getSQLState(); - errorMessage = response.getErrorMessage(); + ret = response.getResponseCode(); + SQLState = response.getSQLState(); + errorMessage = response.getErrorMessage(); - } else { - isHiveQuery = false; - ret = proc.run(cmd_1); - } + } - } } catch (Exception e) { HiveServerException ex = new HiveServerException(); ex.setMessage("Error running query: " + e.toString()); Index: ql/src/test/org/apache/hadoop/hive/ql/history/TestHiveHistory.java =================================================================== --- ql/src/test/org/apache/hadoop/hive/ql/history/TestHiveHistory.java (revision 821095) +++ ql/src/test/org/apache/hadoop/hive/ql/history/TestHiveHistory.java Fri Oct 02 16:04:01 PDT 2009 @@ -129,7 +129,7 @@ String cmd = "select a.key from src a"; Driver d = new Driver(); - int ret = d.run(cmd); + int ret = d.run(cmd).getResponseCode(); if (ret != 0) { fail("Failed"); } Index: ql/src/java/org/apache/hadoop/hive/ql/processors/DeleteResourceProcessor.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/processors/DeleteResourceProcessor.java (revision 821095) +++ ql/src/java/org/apache/hadoop/hive/ql/processors/DeleteResourceProcessor.java Fri Oct 02 16:04:01 PDT 2009 @@ -30,7 +30,7 @@ public static final Log LOG = LogFactory.getLog(DeleteResourceProcessor.class.getName()); public static final LogHelper console = new LogHelper(LOG); - public int run(String command) { + public CommandProcessorResponse run(String command) { SessionState ss = SessionState.get(); String[] tokens = command.split("\\s+"); @@ -39,7 +39,7 @@ console.printError("Usage: delete [" + StringUtils.join(SessionState.ResourceType.values(),"|") + "] []*"); - return 1; + return new CommandProcessorResponse(1); } if (tokens.length >= 2) { @@ -50,6 +50,6 @@ ss.delete_resource(t); } - return 0; + return new CommandProcessorResponse(0); } } Index: ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessor.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessor.java (revision 821095) +++ ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessor.java Fri Oct 02 16:04:01 PDT 2009 @@ -19,5 +19,6 @@ package org.apache.hadoop.hive.ql.processors; public interface CommandProcessor { - public int run(String command); + public CommandProcessorResponse run(String command); } + \ No newline at end of file Index: ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java =================================================================== --- ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java (revision 821095) +++ ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java Fri Oct 02 16:04:01 PDT 2009 @@ -252,7 +252,7 @@ private void runLoadCmd(String loadCmd) throws Exception { int ecode = 0; - ecode = drv.run(loadCmd); + ecode = drv.run(loadCmd).getResponseCode(); if(ecode != 0) { throw new Exception("load command: " + loadCmd + " failed with exit code= " + ecode); } @@ -262,7 +262,7 @@ private void runCreateTableCmd(String createTableCmd) throws Exception { int ecode = 0; - ecode = drv.run(createTableCmd); + ecode = drv.run(createTableCmd).getResponseCode(); if(ecode != 0) { throw new Exception("create table command: " + createTableCmd + " failed with exit code= " + ecode); } @@ -453,7 +453,7 @@ } public int execute(String tname) { - return drv.run(qMap.get(tname)); + return drv.run(qMap.get(tname)).getResponseCode(); } public int executeClient(String tname) { Index: ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessorResponse.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessorResponse.java Thu Oct 01 16:19:18 PDT 2009 +++ ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessorResponse.java Thu Oct 01 16:19:18 PDT 2009 @@ -0,0 +1,45 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hadoop.hive.ql.processors; + +/** + * Encapsulates the basic response info returned by classes the implement the + * CommandProcessor interfaace. Typically errorMessage + * and SQLState will only be set if the responseCode + * is not 0. + */ +public class CommandProcessorResponse { + private int responseCode; + private String errorMessage; + private String SQLState; + + public CommandProcessorResponse(int responseCode) { + this(responseCode, null, null); + } + + public CommandProcessorResponse(int responseCode, String errorMessage, String SQLState) { + this.responseCode = responseCode; + this.errorMessage = errorMessage; + this.SQLState = SQLState; + } + + public int getResponseCode() { return responseCode; } + public String getErrorMessage() { return errorMessage; } + public String getSQLState() { return SQLState; } +} Index: ql/src/java/org/apache/hadoop/hive/ql/processors/DfsProcessor.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/processors/DfsProcessor.java (revision 821095) +++ ql/src/java/org/apache/hadoop/hive/ql/processors/DfsProcessor.java Fri Oct 02 16:04:01 PDT 2009 @@ -38,7 +38,7 @@ dfs = new FsShell(conf); } - public int run(String command) { + public CommandProcessorResponse run(String command) { String[] tokens = command.split("\\s+"); try { @@ -55,12 +55,12 @@ } System.setOut(oldOut); - return (ret); + return new CommandProcessorResponse(ret); } catch (Exception e) { console.printError("Exception raised from DFSShell.run " + e.getLocalizedMessage(), org.apache.hadoop.util.StringUtils.stringifyException(e)); - return 1; + return new CommandProcessorResponse(1); } } Index: cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java =================================================================== --- cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java (revision 821095) +++ cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java Fri Oct 02 16:04:01 PDT 2009 @@ -120,7 +120,7 @@ PrintStream out = ss.out; long start = System.currentTimeMillis(); - ret = qp.run(cmd); + ret = qp.run(cmd).getResponseCode(); if (ret != 0) { qp.close(); return ret; @@ -155,7 +155,7 @@ } } else { - ret = proc.run(cmd_1); + ret = proc.run(cmd_1).getResponseCode(); } } } Index: ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java (revision 821095) +++ ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java Fri Oct 02 16:04:01 PDT 2009 @@ -55,18 +55,18 @@ } } - public int run(String command) { + public CommandProcessorResponse run(String command) { SessionState ss = SessionState.get(); String nwcmd = command.trim(); if(nwcmd.equals("")) { dumpOptions(ss.getConf().getChangedProperties()); - return 0; + return new CommandProcessorResponse(0); } if(nwcmd.equals("-v")) { dumpOptions(ss.getConf().getAllProperties()); - return 0; + return new CommandProcessorResponse(0); } String[] part = new String [2]; @@ -75,7 +75,7 @@ if(eqIndex == -1) { // no equality sign - print the property out dumpOption(ss.getConf().getAllProperties(), nwcmd); - return (0); + return new CommandProcessorResponse(0); } else if (eqIndex == nwcmd.length()-1) { part[0] = nwcmd.substring(0, nwcmd.length()-1); part[1] = ""; @@ -93,8 +93,8 @@ } } catch (IllegalArgumentException err) { ss.err.println(err.getMessage()); - return 1; + return new CommandProcessorResponse(1); } - return 0; + return new CommandProcessorResponse(0); } } Index: ql/src/java/org/apache/hadoop/hive/ql/Driver.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/Driver.java (revision 821095) +++ ql/src/java/org/apache/hadoop/hive/ql/Driver.java Fri Oct 02 16:04:01 PDT 2009 @@ -48,6 +48,7 @@ import org.apache.hadoop.hive.ql.history.HiveHistory.Keys; import org.apache.hadoop.hive.ql.processors.CommandProcessor; +import org.apache.hadoop.hive.ql.processors.CommandProcessorResponse; import org.apache.hadoop.hive.ql.plan.tableDesc; import org.apache.hadoop.hive.serde2.ByteStream; import org.apache.hadoop.hive.conf.HiveConf; @@ -287,51 +288,21 @@ return plan; } - public int run(String command) { - DriverResponse response = runCommand(command); - return response.getResponseCode(); - } - - public DriverResponse runCommand(String command) { + public CommandProcessorResponse run(String command) { errorMessage = null; SQLState = null; int ret = compile(command); if (ret != 0) - return new DriverResponse(ret, errorMessage, SQLState); + return new CommandProcessorResponse(ret, errorMessage, SQLState); ret = execute(); if (ret != 0) - return new DriverResponse(ret, errorMessage, SQLState); + return new CommandProcessorResponse(ret, errorMessage, SQLState); - return new DriverResponse(ret); + return new CommandProcessorResponse(ret); } - /** - * Encapsulates the basic response info returned by the Driver. Typically - * errorMessage and SQLState will only be set if - * the responseCode is not 0. - */ - public class DriverResponse { - private int responseCode; - private String errorMessage; - private String SQLState; - - public DriverResponse(int responseCode) { - this(responseCode, null, null); - } - - public DriverResponse(int responseCode, String errorMessage, String SQLState) { - this.responseCode = responseCode; - this.errorMessage = errorMessage; - this.SQLState = SQLState; - } - - public int getResponseCode() { return responseCode; } - public String getErrorMessage() { return errorMessage; } - public String getSQLState() { return SQLState; } - } - private List getPreExecHooks() throws Exception { ArrayList pehooks = new ArrayList(); String pestr = conf.getVar(HiveConf.ConfVars.PREEXECHOOKS);