[
https://issues.apache.org/jira/browse/CALCITE-3373?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Viggo Chen updated CALCITE-3373:
--------------------------------
Description:
The current approach to generate semi-join from IN/EXISTS is as below (except
the green path):
!image-2025-03-10-19-19-59-437.png!
A more straightforward approach is to generate the semi-join or anti-join right
in SubQueryRemoveRule (the green path).
For example,
This one is related to CALCITE-3367
was:
The current approach to generate semi-join from IN/EXISTS is as below:
# Decorrelation
# Transforming by SemiJoinRule to get a semi-join
A more straightforward approach is to generate the semi-join right in
Decorrelation.
What's more, we should also have an approach to generate anti-join right in
Decorrelation.(Currently there's no analogous rule to SemiJoinRule for
anti-join)
This one is related to CALCITE-3367
> Decorrelate boolean context IN or existential subquery directly into
> SEMI/ANTI join
> -----------------------------------------------------------------------------------
>
> Key: CALCITE-3373
> URL: https://issues.apache.org/jira/browse/CALCITE-3373
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Reporter: Jin Xing
> Assignee: Viggo Chen
> Priority: Major
> Attachments: image-2025-03-02-17-04-54-608.png,
> image-2025-03-10-19-19-59-437.png
>
>
> The current approach to generate semi-join from IN/EXISTS is as below (except
> the green path):
> !image-2025-03-10-19-19-59-437.png!
> A more straightforward approach is to generate the semi-join or anti-join
> right in SubQueryRemoveRule (the green path).
> For example,
>
>
> This one is related to CALCITE-3367
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)