[ 
https://issues.apache.org/jira/browse/IMPALA-15430?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zoltán Borók-Nagy reassigned IMPALA-15430:
------------------------------------------

    Assignee: Zoltán Borók-Nagy

> Enable ENABLE_OUTER_JOIN_TO_INNER_TRANSFORMATION by default
> -----------------------------------------------------------
>
>                 Key: IMPALA-15430
>                 URL: https://issues.apache.org/jira/browse/IMPALA-15430
>             Project: IMPALA
>          Issue Type: Improvement
>          Components: Frontend
>            Reporter: Zoltán Borók-Nagy
>            Assignee: Zoltán Borók-Nagy
>            Priority: Major
>              Labels: performance
>
> IMPALA-5022 (2020) added outer join simplification. When a WHERE predicate 
> rejects NULLs
> coming from the nullable side of an outer join, the join is turned into an 
> inner join, or
> into a narrower outer join. The option has been off by default since then
> (common/thrift/Query.thrift:540):
> {code}
> 114: optional bool enable_outer_join_to_inner_transformation = false;
> {code}
> Without it, queries such as TPC-DS q93 keep the large fact table on the 
> preserved side of
> a LEFT OUTER JOIN, so no runtime filter can reach its scan:
> {code:sql}
> ... FROM store_sales LEFT OUTER JOIN store_returns
>       ON (sr_item_sk = ss_item_sk AND sr_ticket_number = ss_ticket_number),
>     reason
> WHERE sr_reason_sk = r_reason_sk AND r_reason_desc = 'reason 28'
> {code}
> In the checked-in plan (PlannerTest/tpcds/tpcds-q93.test), the store_sales 
> scan reads all
> 2.88M rows and has no runtime filters. {{sr_reason_sk = r_reason_sk}} rejects 
> NULLs, so
> the rewrite turns the join into an inner join. store_returns, already 
> filtered by the
> reason join, can then send filters to store_sales.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to