[ https://issues.apache.org/jira/browse/CALCITE-2842?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16766406#comment-16766406 ]
Zoltan Haindrich commented on CALCITE-2842: ------------------------------------------- [~julianhyde] that is true; however Hive uses it; mostly to collapse expanded ORs. But I still think that IN should not be listed as a "binary operator" > 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 > Priority: Major > Labels: pull-request-available > Time Spent: 20m > Remaining Estimate: 0h > > 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)