xzh_dz created CALCITE-4794: ------------------------------- Summary: Arithmetic remainder operator should be simplified Key: CALCITE-4794 URL: https://issues.apache.org/jira/browse/CALCITE-4794 Project: Calcite Issue Type: Improvement Reporter: xzh_dz
When I simplify `MOD` operator in my project , an exception is thrown. Exceptions can be reproduced as below. {code:java} // code placeholder @Test void testSimplifyMod() { RexNode caseNode = case_( gt(mod(vIntNotNull(), literal(1)), literal(1)), falseLiteral, trueLiteral); checkSimplify(caseNode, ""); } protected RexNode mod(RexNode n1, RexNode n2) { return rexBuilder.makeCall(SqlStdOperatorTable.MOD, n1, n2); } {code} {code:java} // code placeholder Exception : [0;31;1mFAILURE[0m 0.3sec, org.apache.calcite.rex.[0;1mRexProgramTest[0m > [0;1mtestSimplifyMod()[0m java.lang.IllegalArgumentException: unbound: MOD(?0.notNullInt0, 1) at org.apache.calcite.rex.RexInterpreter.unbound(RexInterpreter.java:92) at org.apache.calcite.rex.RexInterpreter.visitCall(RexInterpreter.java:227) at org.apache.calcite.rex.RexInterpreter.visitCall(RexInterpreter.java:58) at org.apache.calcite.rex.RexCall.accept(RexCall.java:189) at org.apache.calcite.rex.RexVisitor.visitList(RexVisitor.java:63) at org.apache.calcite.rex.RexVisitor.visitList(RexVisitor.java:71) at org.apache.calcite.rex.RexInterpreter.visitCall(RexInterpreter.java:148) at org.apache.calcite.rex.RexInterpreter.visitCall(RexInterpreter.java:58) at org.apache.calcite.rex.RexCall.accept(RexCall.java:189) at org.apache.calcite.rex.RexVisitor.visitList(RexVisitor.java:63) at org.apache.calcite.rex.RexVisitor.visitList(RexVisitor.java:71) at org.apache.calcite.rex.RexInterpreter.visitCall(RexInterpreter.java:148) at org.apache.calcite.rex.RexInterpreter.visitCall(RexInterpreter.java:58) at org.apache.calcite.rex.RexCall.accept(RexCall.java:189) {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)