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 598cb81  HIVE-21236: SharedWorkOptimizer should check table properties 
(Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)
598cb81 is described below

commit 598cb819a4ead4d2400ce14e79651275a15cebe5
Author: Jesus Camacho Rodriguez <[email protected]>
AuthorDate: Mon Feb 11 16:21:48 2019 -0800

    HIVE-21236: SharedWorkOptimizer should check table properties (Jesus 
Camacho Rodriguez, reviewed by Ashutosh Chauhan)
---
 .../org/apache/hadoop/hive/ql/optimizer/SharedWorkOptimizer.java  | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

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 52343f4..c953e03 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
@@ -31,6 +31,7 @@ import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Objects;
 import java.util.Set;
 import java.util.TreeMap;
 
@@ -801,6 +802,10 @@ public class SharedWorkOptimizer extends Transform {
     if (tsOp1.getConf().getRowLimit() != tsOp2.getConf().getRowLimit()) {
       return false;
     }
+    // If table properties do not match, we currently do not merge
+    if (!Objects.equals(tsOp1.getConf().getOpProps(), 
tsOp2.getConf().getOpProps())) {
+      return false;
+    }
     // If partitions do not match, we currently do not merge
     PrunedPartitionList prevTsOpPPList = pctx.getPrunedPartitions(tsOp1);
     PrunedPartitionList tsOpPPList = pctx.getPrunedPartitions(tsOp2);
@@ -1338,7 +1343,8 @@ public class SharedWorkOptimizer extends Transform {
           && StringUtils.equals(op1Conf.getFilterExprString(), 
op2Conf.getFilterExprString())
           && pctx.getPrunedPartitions(tsOp1).getPartitions().equals(
               pctx.getPrunedPartitions(tsOp2).getPartitions())
-          && op1Conf.getRowLimit() == op2Conf.getRowLimit()) {
+          && op1Conf.getRowLimit() == op2Conf.getRowLimit()
+          && Objects.equals(op1Conf.getOpProps(), op2Conf.getOpProps())) {
         return true;
       } else {
         return false;

Reply via email to