You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by zs...@apache.org on 2010/02/05 23:49:34 UTC
svn commit: r907120 - in /hadoop/hive/trunk: ./
cli/src/java/org/apache/hadoop/hive/cli/
hwi/src/java/org/apache/hadoop/hive/hwi/
ql/src/java/org/apache/hadoop/hive/ql/
ql/src/java/org/apache/hadoop/hive/ql/processors/
ql/src/test/org/apache/hadoop/hiv...
Author: zshao
Date: Fri Feb 5 22:49:34 2010
New Revision: 907120
URL: http://svn.apache.org/viewvc?rev=907120&view=rev
Log:
HIVE-862. CommandProcessor should return DriverResponse. (Bill Graham via zshao)
Added:
hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessorResponse.java
Modified:
hadoop/hive/trunk/CHANGES.txt
hadoop/hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java
hadoop/hive/trunk/hwi/src/java/org/apache/hadoop/hive/hwi/HWISessionItem.java
hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/AddResourceProcessor.java
hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessor.java
hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/DeleteResourceProcessor.java
hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/DfsProcessor.java
hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java
hadoop/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java
hadoop/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/history/TestHiveHistory.java
hadoop/hive/trunk/service/src/java/org/apache/hadoop/hive/service/HiveServer.java
Modified: hadoop/hive/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/CHANGES.txt?rev=907120&r1=907119&r2=907120&view=diff
==============================================================================
--- hadoop/hive/trunk/CHANGES.txt (original)
+++ hadoop/hive/trunk/CHANGES.txt Fri Feb 5 22:49:34 2010
@@ -61,6 +61,9 @@
HIVE-1120. In ivy offline mode, don't delete downloaded jars.
(John Sichi via zshao)
+ HIVE-862. CommandProcessor should return DriverResponse.
+ (Bill Graham via zshao)
+
OPTIMIZATIONS
BUG FIXES
Modified: hadoop/hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java?rev=907120&r1=907119&r2=907120&view=diff
==============================================================================
--- hadoop/hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java (original)
+++ hadoop/hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java Fri Feb 5 22:49:34 2010
@@ -137,7 +137,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;
@@ -173,7 +173,7 @@
}
} else {
- ret = proc.run(cmd_1);
+ ret = proc.run(cmd_1).getResponseCode();
}
}
}
Modified: hadoop/hive/trunk/hwi/src/java/org/apache/hadoop/hive/hwi/HWISessionItem.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/hwi/src/java/org/apache/hadoop/hive/hwi/HWISessionItem.java?rev=907120&r1=907119&r2=907120&view=diff
==============================================================================
--- hadoop/hive/trunk/hwi/src/java/org/apache/hadoop/hive/hwi/HWISessionItem.java (original)
+++ hadoop/hive/trunk/hwi/src/java/org/apache/hadoop/hive/hwi/HWISessionItem.java Fri Feb 5 22:49:34 2010
@@ -330,7 +330,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()));
ArrayList<String> res = new ArrayList<String>();
try {
while (qp.getResults(res)) {
@@ -355,7 +355,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
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java?rev=907120&r1=907119&r2=907120&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java Fri Feb 5 22:49:34 2010
@@ -18,14 +18,8 @@
package org.apache.hadoop.hive.ql;
-import java.beans.XMLDecoder;
-import java.beans.XMLEncoder;
import java.io.DataInput;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -76,6 +70,7 @@
import org.apache.hadoop.hive.ql.plan.TableDesc;
import org.apache.hadoop.hive.ql.plan.PlanUtils.ExpressionTypes;
import org.apache.hadoop.hive.ql.processors.CommandProcessor;
+import org.apache.hadoop.hive.ql.processors.CommandProcessorResponse;
import org.apache.hadoop.hive.ql.session.SessionState;
import org.apache.hadoop.hive.ql.session.SessionState.LogHelper;
import org.apache.hadoop.hive.serde2.ByteStream;
@@ -98,7 +93,7 @@
private Context ctx;
private QueryPlan plan;
private Schema schema;
-
+
private String errorMessage;
private String SQLState;
@@ -155,17 +150,17 @@
return cs;
}
-
+
public Schema getSchema() {
return schema;
}
-
+
/**
* Get a Schema with fields represented with native Hive types
*/
public static Schema getSchema(BaseSemanticAnalyzer sem, HiveConf conf) {
Schema schema = null;
-
+
// If we have a plan, prefer its logical result schema if it's
// available; otherwise, try digging out a fetch task; failing that,
// give up.
@@ -198,7 +193,7 @@
lst = MetaStoreUtils.getFieldsFromDeserializer(
tableName, td.getDeserializer());
} catch (Exception e) {
- LOG.warn("Error getting schema: " +
+ LOG.warn("Error getting schema: " +
org.apache.hadoop.util.StringUtils.stringifyException(e));
}
if (lst != null) {
@@ -325,10 +320,10 @@
if (sem.getFetchTask() != null) {
sem.getFetchTask().initialize(conf, plan, null);
}
-
+
// get the output schema
schema = getSchema(sem, conf);
-
+
return (0);
} catch (SemanticException e) {
errorMessage = "FAILED: Error in semantic analysis: " + e.getMessage();
@@ -358,59 +353,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);
- }
-
- /**
- * Encapsulates the basic response info returned by the Driver. Typically
- * <code>errorMessage</code> and <code>SQLState</code> will only be set if the
- * <code>responseCode</code> is not 0.
- */
- public class DriverResponse {
- private final int responseCode;
- private final String errorMessage;
- private final 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;
- }
+ return new CommandProcessorResponse(ret);
}
private List<PreExecute> getPreExecHooks() throws Exception {
@@ -603,7 +560,7 @@
}
}
console.printInfo("OK");
-
+
return (0);
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/AddResourceProcessor.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/AddResourceProcessor.java?rev=907120&r1=907119&r2=907120&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/AddResourceProcessor.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/AddResourceProcessor.java Fri Feb 5 22:49:34 2010
@@ -33,7 +33,7 @@
public void init() {
}
- public int run(String command) {
+ public CommandProcessorResponse run(String command) {
SessionState ss = SessionState.get();
String[] tokens = command.split("\\s+");
SessionState.ResourceType t;
@@ -42,12 +42,12 @@
console.printError("Usage: add ["
+ StringUtils.join(SessionState.ResourceType.values(), "|")
+ "] <value> [<value>]*");
- 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);
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessor.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessor.java?rev=907120&r1=907119&r2=907120&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessor.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessor.java Fri Feb 5 22:49:34 2010
@@ -21,5 +21,5 @@
public interface CommandProcessor {
public void init();
- public int run(String command);
+ public CommandProcessorResponse run(String command);
}
Added: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessorResponse.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessorResponse.java?rev=907120&view=auto
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessorResponse.java (added)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/CommandProcessorResponse.java Fri Feb 5 22:49:34 2010
@@ -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
+ * <code>CommandProcessor</code> interfaace. Typically <code>errorMessage</code>
+ * and <code>SQLState</code> will only be set if the <code>responseCode</code>
+ * 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; }
+}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/DeleteResourceProcessor.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/DeleteResourceProcessor.java?rev=907120&r1=907119&r2=907120&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/DeleteResourceProcessor.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/DeleteResourceProcessor.java Fri Feb 5 22:49:34 2010
@@ -33,7 +33,7 @@
public void init() {
}
- public int run(String command) {
+ public CommandProcessorResponse run(String command) {
SessionState ss = SessionState.get();
String[] tokens = command.split("\\s+");
@@ -43,7 +43,7 @@
console.printError("Usage: delete ["
+ StringUtils.join(SessionState.ResourceType.values(), "|")
+ "] <value> [<value>]*");
- return 1;
+ return new CommandProcessorResponse(1);
}
if (tokens.length >= 2) {
@@ -54,6 +54,6 @@
ss.delete_resource(t);
}
- return 0;
+ return new CommandProcessorResponse(0);
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/DfsProcessor.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/DfsProcessor.java?rev=907120&r1=907119&r2=907120&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/DfsProcessor.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/DfsProcessor.java Fri Feb 5 22:49:34 2010
@@ -41,7 +41,7 @@
public void init() {
}
- public int run(String command) {
+ public CommandProcessorResponse run(String command) {
String[] tokens = command.split("\\s+");
try {
@@ -58,13 +58,13 @@
}
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);
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java?rev=907120&r1=907119&r2=907120&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/processors/SetProcessor.java Fri Feb 5 22:49:34 2010
@@ -61,18 +61,18 @@
public void init() {
}
- 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];
@@ -81,7 +81,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] = "";
@@ -99,8 +99,8 @@
}
} catch (IllegalArgumentException err) {
ss.err.println(err.getMessage());
- return 1;
+ return new CommandProcessorResponse(1);
}
- return 0;
+ return new CommandProcessorResponse(0);
}
}
Modified: hadoop/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java?rev=907120&r1=907119&r2=907120&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java (original)
+++ hadoop/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java Fri Feb 5 22:49:34 2010
@@ -250,7 +250,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);
@@ -261,7 +261,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);
@@ -485,7 +485,7 @@
}
public int execute(String tname) {
- return drv.run(qMap.get(tname));
+ return drv.run(qMap.get(tname)).getResponseCode();
}
public int executeClient(String tname) {
Modified: hadoop/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/history/TestHiveHistory.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/history/TestHiveHistory.java?rev=907120&r1=907119&r2=907120&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/history/TestHiveHistory.java (original)
+++ hadoop/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/history/TestHiveHistory.java Fri Feb 5 22:49:34 2010
@@ -130,7 +130,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");
}
Modified: hadoop/hive/trunk/service/src/java/org/apache/hadoop/hive/service/HiveServer.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/service/src/java/org/apache/hadoop/hive/service/HiveServer.java?rev=907120&r1=907119&r2=907120&view=diff
==============================================================================
--- hadoop/hive/trunk/service/src/java/org/apache/hadoop/hive/service/HiveServer.java (original)
+++ hadoop/hive/trunk/service/src/java/org/apache/hadoop/hive/service/HiveServer.java Fri Feb 5 22:49:34 2010
@@ -32,6 +32,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.session.SessionState;
import org.apache.hadoop.mapred.ClusterStatus;
import org.apache.hadoop.mapred.JobTracker;
@@ -88,7 +89,7 @@
/**
* Executes a query.
- *
+ *
* @param cmd
* HiveQL query to execute
*/
@@ -106,17 +107,19 @@
try {
CommandProcessor proc = CommandProcessorFactory.get(tokens[0]);
+ CommandProcessorResponse response = null;
if (proc != null) {
if (proc instanceof Driver) {
isHiveQuery = true;
- Driver.DriverResponse response = driver.runCommand(cmd);
- ret = response.getResponseCode();
- SQLState = response.getSQLState();
- errorMessage = response.getErrorMessage();
+ response = driver.run(cmd);
} else {
isHiveQuery = false;
- ret = proc.run(cmd_1);
+ response = proc.run(cmd_1);
}
+
+ ret = response.getResponseCode();
+ SQLState = response.getSQLState();
+ errorMessage = response.getErrorMessage();
}
} catch (Exception e) {
HiveServerException ex = new HiveServerException();
@@ -219,7 +222,7 @@
/**
* Fetches the next row in a query result set.
- *
+ *
* @return the next row in a query result set. null if there is no more row
* to fetch.
*/
@@ -248,7 +251,7 @@
/**
* Fetches numRows rows.
- *
+ *
* @param numRows
* Number of rows to fetch.
* @return A list of rows. The size of the list is numRows if there are at
@@ -284,10 +287,10 @@
/**
* Fetches all the rows in a result set.
- *
+ *
* @return All the rows in a result set of a query executed using execute
* method.
- *
+ *
* TODO: Currently the server buffers all the rows before returning
* them to the client. Decide whether the buffering should be done
* in the client.