Caizhi Weng created CALCITE-4365:
------------------------------------

             Summary: SEARCHes in ANDs and ORs cannot be simplified if the 
complexity of its SARG can actually be reduced to 1
                 Key: CALCITE-4365
                 URL: https://issues.apache.org/jira/browse/CALCITE-4365
             Project: Calcite
          Issue Type: Bug
          Components: core
            Reporter: Caizhi Weng


Consider the following test case in {{RexProgramTest}}.

{code:java}
@Test void testSimplifySearch() {
  // (deptno <> 20 OR deptno IS NULL) AND deptno = 10
  //   ==>
  // deptno = 10
  final RexNode e =
    and(
      in(vInt(), literal(10), literal(20)),
      eq(vInt(), literal(10)));
  checkSimplify2(e, "=(?0.int0, 10)", "=(?0.int0, 10)");
}
{code}

We expect that {{AND(SEARCH(?0, [10, 20], =(?0, 10)))}} can be simplified to 
{{=(?0, 10)}} but fails. This is because {{RexSimplify#simplifyAnd}} and 
{{RexSimplify#simplifyOrs}} does not deal with the case when the complexity of 
{{SargCollector}} is 1.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to