[
https://issues.apache.org/jira/browse/CALCITE-1628?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Maryann Xue resolved CALCITE-1628.
----------------------------------
Resolution: Fixed
Fixed in
https://git1-us-west.apache.org/repos/asf?p=calcite.git;a=commit;h=824d7e7.
> Add an alternative match pattern for SemiJoinRule
> -------------------------------------------------
>
> Key: CALCITE-1628
> URL: https://issues.apache.org/jira/browse/CALCITE-1628
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Affects Versions: 1.11.0
> Reporter: Maryann Xue
> Assignee: Maryann Xue
> Priority: Minor
> Fix For: 1.12.0
>
>
> SemiJoinRule looks for an INNER or LEFT OUTER Join with its right child as an
> Aggregate. It also tries to match a Project as the parent of the Join so that
> it can abort if any columns from the right child of the Join is referenced.
> There is another situation though, where the right child is an empty
> Aggregate that returns 0 columns and thus we don't need to look for a
> Project. So an alternative match pattern for SemiJoinRule would be just a
> Join over an Aggregate without a Project. For example, the following query
> can match the alternative pattern and fire the rule:
> {code}
> select e."deptno" from "hr"."emps" as e left join (select count(*) from
> "hr"."depts") on true
> {code}
> , where after field trimming the inner query will become an empty Aggregate.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)