[ 
https://issues.apache.org/jira/browse/CALCITE-2842?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16768641#comment-16768641
 ] 

Julian Hyde commented on CALCITE-2842:
--------------------------------------

Sure, you can push this change. As I said, you need to comment 
SIMPLE_BINARY_OPS.

But I strongly believe that Hive needs to stop using IN in Rex-land. If there 
are too many alternative representations of the same thing, we miss 
opportunities for optimization and the surface area to test is higher, 
therefore we have more bugs.

If you need to represent a large IN-list inline then use {{RexSubQuery(IN, 
Values)}}.

> 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: 0.5h
>  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)

Reply via email to