You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jc...@apache.org on 2019/07/23 04:47:08 UTC

[hive] branch master updated: HIVE-22003: Shared work optimizer may leave semijoin branches in plan that are not used (Jesus Camacho Rodriguez, reviewed by Vineet Garg) (addendum)

This is an automated email from the ASF dual-hosted git repository.

jcamacho pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new 11c79af  HIVE-22003: Shared work optimizer may leave semijoin branches in plan that are not used (Jesus Camacho Rodriguez, reviewed by Vineet Garg) (addendum)
11c79af is described below

commit 11c79af48b2a0a901f541436b2d4669d635ff750
Author: Jesus Camacho Rodriguez <jc...@apache.org>
AuthorDate: Mon Jul 22 21:46:54 2019 -0700

    HIVE-22003: Shared work optimizer may leave semijoin branches in plan that are not used (Jesus Camacho Rodriguez, reviewed by Vineet Garg) (addendum)
---
 .../org/apache/hadoop/hive/ql/optimizer/SharedWorkOptimizer.java | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SharedWorkOptimizer.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SharedWorkOptimizer.java
index 4c27c5b..b9c1094 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SharedWorkOptimizer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SharedWorkOptimizer.java
@@ -510,6 +510,15 @@ public class SharedWorkOptimizer extends Transform {
     return mergedExecuted;
   }
 
+  /**
+   * When we call this method, we have already verified that the SJ expressions targeting
+   * two TS operators are the same.
+   * Since we already had a method to push the filter expressions on top of the discardable
+   * TS (pushFilterToTopOfTableScan), here we remove the old SJ expressions from the
+   * discardable TS (and follow-up Filters if present) and we add the SJ expressions
+   * from the retainable TS. That way the SJ expressions will be pushed on top of the
+   * discardable TS by pushFilterToTopOfTableScan.
+   */
   private static void replaceSemijoinExpressions(TableScanOperator tsOp, List<ExprNodeDesc> semijoinExprNodes) {
     ExprNodeDesc constNode = new ExprNodeConstantDesc(
         TypeInfoFactory.booleanTypeInfo, Boolean.TRUE);