You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by xu...@apache.org on 2014/10/22 04:44:59 UTC

svn commit: r1633508 - in /hive/branches/spark: ./ hbase-handler/pom.xml ql/src/java/org/apache/hadoop/hive/ql/optimizer/SkewJoinOptimizer.java

Author: xuefu
Date: Wed Oct 22 02:44:59 2014
New Revision: 1633508

URL: http://svn.apache.org/r1633508
Log:
HIVE-8518: Compile time skew join optimization returns duplicated results (Rui via Xuefu) merged from trunk r1633422

Modified:
    hive/branches/spark/   (props changed)
    hive/branches/spark/hbase-handler/pom.xml   (props changed)
    hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SkewJoinOptimizer.java

Propchange: hive/branches/spark/
------------------------------------------------------------------------------
  Merged /hive/trunk:r1633422

Propchange: hive/branches/spark/hbase-handler/pom.xml
------------------------------------------------------------------------------
  Merged /hive/trunk/hbase-handler/pom.xml:r1633422

Modified: hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SkewJoinOptimizer.java
URL: http://svn.apache.org/viewvc/hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SkewJoinOptimizer.java?rev=1633508&r1=1633507&r2=1633508&view=diff
==============================================================================
--- hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SkewJoinOptimizer.java (original)
+++ hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SkewJoinOptimizer.java Wed Oct 22 02:44:59 2014
@@ -171,15 +171,17 @@ public class SkewJoinOptimizer implement
         joinOpClone = (JoinOperator)currOpClone;
       }
 
+      List<TableScanOperator> tableScanCloneOpsForJoin =
+          new ArrayList<TableScanOperator>();
+      if (!getTableScanOpsForJoin(joinOpClone, tableScanCloneOpsForJoin)) {
+        LOG.debug("Operator tree not properly cloned!");
+        return null;
+      }
+
       // Put the filter "skewed column = skewed keys" in op
       // and "skewed columns != skewed keys" in selectOpClone
       insertSkewFilter(tableScanOpsForJoin, skewedValues, true);
 
-      List<TableScanOperator> tableScanCloneOpsForJoin =
-        new ArrayList<TableScanOperator>();
-      assert
-        getTableScanOpsForJoin(joinOpClone, tableScanCloneOpsForJoin);
-
       insertSkewFilter(tableScanCloneOpsForJoin, skewedValues, false);
 
       // Update the topOps appropriately