Zoltan Haindrich created CALCITE-2842:
-----------------------------------------
Summary: Computing digest of IN expressions leads to Exceptions
Key: CALCITE-2842
URL: https://issues.apache.org/jira/browse/CALCITE-2842
Project: Calcite
Issue Type: Bug
Reporter: Zoltan Haindrich
Assignee: Julian Hyde
Testcase:
{code}
/* RexProgramTest */
@Test public void testInDigest() {
RexNode e = in(vInt(), literal(1), literal(2));
assertThat(e.toString(), is("IN(?0.int0, 1, 2)"));
}
/* RexProgramBuilder */
protected RexNode in(Iterable<? extends RexNode> nodes) {
return rexBuilder.makeCall(SqlStdOperatorTable.IN,
ImmutableList.copyOf(nodes));
}
{code}
The exception is due to that it tries to look at the other operand
https://github.com/apache/calcite/blob/883666929478aabe07ee5b9e572c43a6f1a703e2/core/src/main/java/org/apache/calcite/rex/RexCall.java#L115
[SIMPLE_BINARY_OPS|https://github.com/apache/calcite/blob/883666929478aabe07ee5b9e572c43a6f1a703e2/core/src/main/java/org/apache/calcite/rex/RexCall.java#L64]
contains
[COMPARISION|https://github.com/apache/calcite/blob/883666929478aabe07ee5b9e572c43a6f1a703e2/core/src/main/java/org/apache/calcite/sql/SqlKind.java#L1248]
which also contains "IN"
this was introduced in CALCITE-2454 a few days ago; bug not released
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)