hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sahil Takiar (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HIVE-17405) HoS DPP ConstantPropagate should use ConstantPropagateOption.SHORTCUT
Date Fri, 01 Sep 2017 04:04:00 GMT

    [ 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)

Mime
View raw message