[ https://issues.apache.org/jira/browse/CALCITE-5036?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17934061#comment-17934061 ]
xiong duan commented on CALCITE-5036: ------------------------------------- Sorry for causing this inconvenience. Next time, I will create a new ISSUE record to document such problems. In the previous PR [a81cfb2|https://github.com/apache/calcite/commit/a81cfb2ad001589929e190939cf4db928ebac386], performance issues might arise by executing RexSimplify in RelMdPredicates#getPredicates to transform a IS NOT DISTINCT FROM b. Therefore, in the subsequent PR submitted later [d9363a9|https://github.com/apache/calcite/commit/d9363a952ce2e1905cca62cdee66076424267503], I removed the RexSimplify method in RelMdPredicates#getPredicates and instead transformed a IS NOT DISTINCT FROM b in advance by adding `CoreRules.FILTER_REDUCE_EXPRESSIONS`. Since `CoreRules.FILTER_REDUCE_EXPRESSIONS` is an existing optimization, no new optimization was introduced here. It changed the implementation. > `RelMetadataQuery#getPulledUpPredicates` support to analyze constant key for > the operator of IS_NOT_DISTINCT_FROM > ----------------------------------------------------------------------------------------------------------------- > > Key: CALCITE-5036 > URL: https://issues.apache.org/jira/browse/CALCITE-5036 > Project: Calcite > Issue Type: Improvement > Reporter: Xurenhe > Assignee: Xurenhe > Priority: Major > Labels: pull-request-available > Fix For: 1.31.0 > > Time Spent: 2h 40m > Remaining Estimate: 0h > > As we know, `IS NOT DISTINCT FROM` is NULL-Safe equal operator. > The expression of "{*}`a` IS NOT DISTINCT FROM 10{*}" is equal to "{*}(`a` = > 10) IS TRUE{*}". > Currently, `RelMetadataQuery#getPulledUpPredicates` could analyze the > constant from the constant's equal condition in the filter, not support `IS > NOT DISTINCT FROM` > {code:java} > -- sql > SELECT deptno, > mgr, > ename > FROM emp > WHERE deptno IS NOT DISTINCT FROM 10{code} > By the way, `deptno` need be rewritten to the constant project with number of > 10, when applying the rule of {*}CoreRules#PROJECT_REDUCE_EXPRESSION{*}S -- This message was sent by Atlassian Jira (v8.20.10#820010)