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)