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 52343f4d69..01acfb0858 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.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Objects; import java.util.Set; import java.util.TreeMap; @@ -1338,7 +1339,8 @@ private static boolean compareOperator(ParseContext pctx, Operator op1, Opera && 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; diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/TableScanDesc.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/TableScanDesc.java index 192c04c661..55f7f9ab68 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/plan/TableScanDesc.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/TableScanDesc.java @@ -541,7 +541,8 @@ public boolean isSame(OperatorDesc other) { return Objects.equals(getQualifiedTable(), otherDesc.getQualifiedTable()) && ExprNodeDescUtils.isSame(getFilterExpr(), otherDesc.getFilterExpr()) && getRowLimit() == otherDesc.getRowLimit() && - isGatherStats() == otherDesc.isGatherStats(); + isGatherStats() == otherDesc.isGatherStats() && + Objects.equals(getOpProps(), otherDesc.getOpProps()); } return false; }