[ https://issues.apache.org/jira/browse/CALCITE-2841?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Zoltan Haindrich reassigned CALCITE-2841: ----------------------------------------- Assignee: Zoltan Haindrich (was: Julian Hyde) > Simplification: push negation into Case expression > -------------------------------------------------- > > Key: CALCITE-2841 > URL: https://issues.apache.org/jira/browse/CALCITE-2841 > Project: Calcite > Issue Type: Improvement > Reporter: Zoltan Haindrich > Assignee: Zoltan Haindrich > Priority: Major > > Why would this be usefull? > * right now a boolean CASE expressions are translated into AND/ORs in most > cases ; "disjunction of conjuctions" > * AND/OR simplification could "push" the NOT into them; but only after the > CASE conversion; so the expression becames a "conjunction of disjunctions" > and all the other simplification rules are working hard to restore order.... > * if the push of NOT would happen earlier it would be better because it could > address complex cases better > {code:java} > @Test public void testNotIntoCase() { > checkSimplify( > not( > case_( > isTrue(vBool()), vBool(1), > vBool(2))), > "CASE(IS TRUE(?0.bool0), NOT(?0.bool1), NOT(?0.bool2))"); > } > {code} > actually NOT right now stops the simplification recursion so it would be best > to also enable that as well; in case NOT is not is not pushed/handled - > unknownAs need to be negated. > {code} > @Test public void testNotRecursion() { > checkSimplify( > not(coalesce(nullBool, trueLiteral)), > "false"); > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)