You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Jesus Camacho Rodriguez (Jira)" <ji...@apache.org> on 2021/01/28 04:54:00 UTC
[jira] [Updated] (HIVE-24564) Extend PPD filter transitivity to be
able to discover new opportunities
[ https://issues.apache.org/jira/browse/HIVE-24564?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jesus Camacho Rodriguez updated HIVE-24564:
-------------------------------------------
Fix Version/s: 4.0.0
> Extend PPD filter transitivity to be able to discover new opportunities
> -----------------------------------------------------------------------
>
> Key: HIVE-24564
> URL: https://issues.apache.org/jira/browse/HIVE-24564
> Project: Hive
> Issue Type: Improvement
> Components: Logical Optimizer
> Reporter: Krisztian Kasa
> Assignee: Krisztian Kasa
> Priority: Major
> Labels: pull-request-available
> Fix For: 4.0.0
>
> Time Spent: 1h 40m
> Remaining Estimate: 0h
>
> If a predicate references a value column of one of the parent ReduceSink operators of a Join the predicate can not be copied and pushed down to the other side of the join. However if we a parent equijoin exists in the branch of the RS where
> 1. the referenced value column is a key column of that join
> 2. and the other side of that join expression is the key column of the RS
> the column in the predicate can be replaced and the new predicate can be pushed down.
> {code:java}
> Join(... = wr_on)
> / \
> ... RS(key: wr_on)
> |
> Join(ws1.ws_on = ws2.ws_on)
> (ws1.ws_on, ws2.ws_on, wr_on)
> / \
> RS(key:ws_on) RS(key:ws_on)
> (value: wr_on)
> | |
> Join(ws1.ws_on = wr.wr_on) TS(ws2)
> / \
> RS(key:ws_on) RS(key:wr_on)
> | |
> TS(ws1) TS(wr)
> {code}
> A predicate like
> {code}
> (wr_on in (...))
> {code}
> can not be pushed to TS(ws2) because wr_on is not a key column in Join(ws1.ws_on = ws2.ws_on). But we know that wr_on is equals to ws_on because the join from the left branch.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)