Author: vikram
Date: Thu Jan 30 22:43:06 2014
New Revision: 1563006

URL: http://svn.apache.org/r1563006
Log:
HIVE-6104: Join-key logging in join operator (Steven Wong via Vikram Dixit)

Modified:
    
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinOperator.java

Modified: 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java?rev=1563006&r1=1563005&r2=1563006&view=diff
==============================================================================
--- 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java 
(original)
+++ 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonJoinOperator.java 
Thu Jan 30 22:43:06 2014
@@ -113,6 +113,7 @@ public abstract class CommonJoinOperator
   int joinEmitInterval = -1;
   int joinCacheSize = 0;
   long nextSz = 0;
+  transient Byte lastAlias = null;
 
   transient boolean handleSkewJoin = false;
 
@@ -244,7 +245,6 @@ public abstract class CommonJoinOperator
 
     joinEmitInterval = HiveConf.getIntVar(hconf,
         HiveConf.ConfVars.HIVEJOINEMITINTERVAL);
-    nextSz = joinEmitInterval;
     joinCacheSize = HiveConf.getIntVar(hconf,
         HiveConf.ConfVars.HIVEJOINCACHESIZE);
 

Modified: 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinOperator.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinOperator.java?rev=1563006&r1=1563005&r2=1563006&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinOperator.java 
(original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/JoinOperator.java Thu 
Jan 30 22:43:06 2014
@@ -71,9 +71,13 @@ public class JoinOperator extends Common
     try {
       reportProgress();
 
-      // get alias
+      lastAlias = alias;
       alias = (byte) tag;
 
+      if (!alias.equals(lastAlias)) {
+        nextSz = joinEmitInterval;
+      }
+
       List<Object> nr = getFilteredValue(alias, row);
 
       if (handleSkewJoin) {


Reply via email to