You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by he...@apache.org on 2010/02/09 00:19:01 UTC
svn commit: r907843 - in /hadoop/hive/trunk: CHANGES.txt
ql/src/java/org/apache/hadoop/hive/ql/exec/FetchOperator.java
Author: heyongqiang
Date: Mon Feb 8 23:19:01 2010
New Revision: 907843
URL: http://svn.apache.org/viewvc?rev=907843&view=rev
Log:
HIVE-1141. Remove recursive call in FetchOperator.getNextRow. (Zheng Shao via He Yongqiang)
Modified:
hadoop/hive/trunk/CHANGES.txt
hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchOperator.java
Modified: hadoop/hive/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/CHANGES.txt?rev=907843&r1=907842&r2=907843&view=diff
==============================================================================
--- hadoop/hive/trunk/CHANGES.txt (original)
+++ hadoop/hive/trunk/CHANGES.txt Mon Feb 8 23:19:01 2010
@@ -144,6 +144,9 @@
HIVE-1129. Fix assertion in ExecDriver.execute. (John Sichi via zshao)
+ HIVE-1141. Remove recursive call in FetchOperator.getNextRow.
+ (Zheng Shao via He Yongqiang)
+
Release 0.5.0 - Unreleased
INCOMPATIBLE CHANGES
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchOperator.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchOperator.java?rev=907843&r1=907842&r2=907843&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchOperator.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchOperator.java Mon Feb 8 23:19:01 2010
@@ -252,30 +252,26 @@
**/
public InspectableObject getNextRow() throws IOException {
try {
- if (currRecReader == null) {
- currRecReader = getRecordReader();
+ while (true) {
if (currRecReader == null) {
- return null;
+ currRecReader = getRecordReader();
+ if (currRecReader == null) {
+ return null;
+ }
}
- }
-
- boolean ret = currRecReader.next(key, value);
- if (ret) {
- if (tblDataDone) {
- Object obj = serde.deserialize(value);
- return new InspectableObject(obj, serde.getObjectInspector());
- } else {
- rowWithPart[0] = serde.deserialize(value);
- return new InspectableObject(rowWithPart, rowObjectInspector);
- }
- } else {
- currRecReader.close();
- currRecReader = null;
- currRecReader = getRecordReader();
- if (currRecReader == null) {
- return null;
+
+ boolean ret = currRecReader.next(key, value);
+ if (ret) {
+ if (tblDataDone) {
+ Object obj = serde.deserialize(value);
+ return new InspectableObject(obj, serde.getObjectInspector());
+ } else {
+ rowWithPart[0] = serde.deserialize(value);
+ return new InspectableObject(rowWithPart, rowObjectInspector);
+ }
} else {
- return getNextRow();
+ currRecReader.close();
+ currRecReader = null;
}
}
} catch (Exception e) {