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[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)