You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2016/12/02 21:32:56 UTC

[3/3] hive git commit: HIVE-15278 : PTF+MergeJoin = NPE (Sergey Shelukhin, reviewed by Gunther Hagleitner)

HIVE-15278 : PTF+MergeJoin = NPE (Sergey Shelukhin, reviewed by Gunther Hagleitner)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/2feaa5dc
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/2feaa5dc
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/2feaa5dc

Branch: refs/heads/master
Commit: 2feaa5dc99febb8fd0367d8bfa4fe20d44930adc
Parents: 12130c3
Author: Sergey Shelukhin <se...@apache.org>
Authored: Fri Dec 2 13:24:35 2016 -0800
Committer: Sergey Shelukhin <se...@apache.org>
Committed: Fri Dec 2 13:32:28 2016 -0800

----------------------------------------------------------------------
 .../apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java  | 8 ++++++--
 ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java     | 8 ++++++--
 2 files changed, 12 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/2feaa5dc/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java
index 002e49b..0b8eae8 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java
@@ -384,11 +384,15 @@ public class CommonMergeJoinOperator extends AbstractMapJoinOperator<CommonMerge
       this.nextKeyWritables[t] = null;
     }
   }
+  
+  @Override
+  public void close(boolean abort) throws HiveException {
+    joinFinalLeftData(); // Do this WITHOUT checking for parents
+    super.close(abort);
+  }
 
   @Override
   public void closeOp(boolean abort) throws HiveException {
-    joinFinalLeftData();
-
     super.closeOp(abort);
 
     // clean up

http://git-wip-us.apache.org/repos/asf/hive/blob/2feaa5dc/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java
index 20f9d64..8b04cd4 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java
@@ -667,6 +667,9 @@ public abstract class Operator<T extends OperatorDesc> implements Serializable,C
   // since it is called by its parents' main thread, so no
   // more than 1 thread should call this close() function.
   public void close(boolean abort) throws HiveException {
+    if (isLogDebugEnabled) {
+      LOG.debug("close called for operator " + this);
+    }
 
     if (state == State.CLOSE) {
       return;
@@ -683,12 +686,13 @@ public abstract class Operator<T extends OperatorDesc> implements Serializable,C
     // set state as CLOSE as long as all parents are closed
     // state == CLOSE doesn't mean all children are also in state CLOSE
     state = State.CLOSE;
-    if (isLogDebugEnabled) {
-      LOG.debug(id + " finished. closing... ");
+    if (isLogInfoEnabled) {
+      LOG.info("Closing operator " + this);
     }
 
     abort |= abortOp.get();
 
+
     // call the operator specific close routine
     closeOp(abort);