diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/SkewJoinOptimizer.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/SkewJoinOptimizer.java index 54afbfe..e87c41b 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/SkewJoinOptimizer.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/SkewJoinOptimizer.java @@ -171,15 +171,17 @@ public Object process(Node nd, Stack stack, NodeProcessorCtx procCtx, joinOpClone = (JoinOperator)currOpClone; } + List tableScanCloneOpsForJoin = + new ArrayList(); + 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 tableScanCloneOpsForJoin = - new ArrayList(); - assert - getTableScanOpsForJoin(joinOpClone, tableScanCloneOpsForJoin); - insertSkewFilter(tableScanCloneOpsForJoin, skewedValues, false); // Update the topOps appropriately