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