[ 
https://issues.apache.org/jira/browse/CALCITE-3373?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17932518#comment-17932518
 ] 

Julian Hyde edited comment on CALCITE-3373 at 3/6/25 12:09 AM:
---------------------------------------------------------------

[~julianhyde] I'm glad to work on it, you can assign it to me.

To add this logic into {{SubQueryRemoveRule}}, I think we can add a 
{{rewrite_to_semi_join}} option in {{SubQueryRemoveRule.Config}}. If it's 
enabled, we try to rewrite the SubQuery to Semi/Anti Join, and fallback to 
existing logic if it can not be rewritten


was (Author: JIRAUSER300637):
[~julianhyde] I'm glad to work on it, you can assign it to me.

To add this logic into {{SubQueryRemoveRule, I think we can add a 
`rewrite_to_semi_join` option in }}{{SubQueryRemoveRule.Config. If it's 
enabled, we try to rewrite the SubQuery to Semi/Anti Join, and fallback to 
existing logic if it can not be rewritten}}

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



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

Reply via email to