Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
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`
-- sql SELECT deptno, mgr, ename FROM emp WHERE deptno IS NOT DISTINCT FROM 10
By the way, `deptno` need be rewritten to the constant project with number of 10, when applying the rule of CoreRules#PROJECT_REDUCE_EXPRESSIONS
Attachments
Issue Links
- fixes
-
CALCITE-4663 And predicate in one subtree of Join causes JoinPushTransitivePredicatesRule pulls up predicates infinitely and StackOverflowError
- Closed
- is related to
-
CALCITE-6467 Performance of RelMdUtil.checkInputForCollationAndLimit when using `where col in (large literal set)`
- Open
- relates to
-
CALCITE-6649 Enhance RelMdPredicates pull up predicate from PROJECT
- Resolved
- links to