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