You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "xzh_dz (Jira)" <ji...@apache.org> on 2021/09/23 05:57:00 UTC

[jira] [Created] (CALCITE-4794) Arithmetic remainder operator should be simplified

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   0.3sec, org.apache.calcite.rex.RexProgramTest > testSimplifyMod()
    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)