[ https://issues.apache.org/jira/browse/HIVE-17405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16150009#comment-16150009 ]
Sahil Takiar commented on HIVE-17405: ------------------------------------- [~lirui] updated patch with better comments. I think the call to constant propagation was probably originally added just for DPP, but there are benefits to running it after all the operator optimizations have run in the {{SparkCompiler}}. Some of the optimizations (such as DPP) may have modified the operator tree such that additional constants can be propagated. The modifications to the skew join qtests are one example. > HoS DPP ConstantPropagate should use ConstantPropagateOption.SHORTCUT > --------------------------------------------------------------------- > > Key: HIVE-17405 > URL: https://issues.apache.org/jira/browse/HIVE-17405 > Project: Hive > Issue Type: Sub-task > Components: Spark > Reporter: Sahil Takiar > Assignee: Sahil Takiar > Attachments: HIVE-17405.1.patch, HIVE-17405.2.patch, > HIVE-17405.3.patch, HIVE-17405.4.patch, HIVE-17405.5.patch, > HIVE-17405.6.patch, HIVE-17405.7.patch > > > In {{SparkCompiler#runDynamicPartitionPruning}} we should change {{new > ConstantPropagate().transform(parseContext)}} to {{new > ConstantPropagate(ConstantPropagateOption.SHORTCUT).transform(parseContext)}} > Hive-on-Tez does the same thing. > Running the full constant propagation isn't really necessary, we just want to > eliminate any {{and true}} predicates that were introduced by > {{SyntheticJoinPredicate}} and {{DynamicPartitionPruningOptimization}}. The > {{SyntheticJoinPredicate}} will introduce dummy filter predicates into the > operator tree, and {{DynamicPartitionPruningOptimization}} will replace them. > The predicates introduced via {{SyntheticJoinPredicate}} are necessary to > help {{DynamicPartitionPruningOptimization}} determine if DPP can be used or > not. -- This message was sent by Atlassian JIRA (v6.4.14#64029)