[
https://issues.apache.org/jira/browse/CALCITE-516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14266398#comment-14266398
]
Julian Hyde commented on CALCITE-516:
-------------------------------------
It's not in general possible to test asserts. The cause of an assert failure is
an internal error - a mistake in the code. End-user errors cannot trigger them,
and neither can unit tests unless they access internals.
This particular assert is saying that it thinks the validator did not do its
job, the statement is invalid, and it should never have been submitted for
sql-to-rel translation.
> GROUP BY on a CASE expression containing IN predicate fails
> -----------------------------------------------------------
>
> Key: CALCITE-516
> URL: https://issues.apache.org/jira/browse/CALCITE-516
> Project: Calcite
> Issue Type: Bug
> Affects Versions: 0.9.1-incubating
> Reporter: Aman Sinha
> Assignee: Julian Hyde
> Labels: newbie
> Fix For: 1.0.0-incubating
>
> Attachments:
> 0001-CALCITE-516-Replace-subqueries-in-group-by-expressio.patch
>
>
> The following query which does a Group-By on a CASE expression that contains
> IN predicate fails. If I replace the IN with an equality or <, > the query
> succeeds. I am not on latest Calcite master but I suspect the same problem
> exists there.
> {code:sql}
> select (case when emp.empno in (3) then 0 else 1 end)
> from emp
> group by (case when emp.empno in (3) then 0 else 1 end);
> java.lang.AssertionError: Internal error: while converting CASE WHEN
> `EMP`.`EMPNO` IN (3) THEN 0 ELSE 1 END
> at org.eigenbase.util.Util.newInternal(Util.java:750)
> at
> org.eigenbase.sql2rel.ReflectiveConvertletTable$1.convertCall(ReflectiveConvertletTable.java:93)
> at
> org.eigenbase.sql2rel.SqlNodeToRexConverterImpl.convertCall(SqlNodeToRexConverterImpl.java:52)
> at
> org.eigenbase.sql2rel.SqlToRelConverter$Blackboard.visit(SqlToRelConverter.java:4093)
> at
> org.eigenbase.sql2rel.SqlToRelConverter$Blackboard.visit(SqlToRelConverter.java:1)
> at org.eigenbase.sql.SqlCall.accept(SqlCall.java:125)
> at
> org.eigenbase.sql2rel.SqlToRelConverter$Blackboard.convertExpression(SqlToRelConverter.java:3988)
> at
> org.eigenbase.sql2rel.SqlToRelConverter$AggConverter.addGroupExpr(SqlToRelConverter.java:4314)
> at
> org.eigenbase.sql2rel.SqlToRelConverter.createAggImpl(SqlToRelConverter.java:2240)
> at
> org.eigenbase.sql2rel.SqlToRelConverter.convertAgg(SqlToRelConverter.java:2191)
> at
> org.eigenbase.sql2rel.SqlToRelConverter.convertSelectImpl(SqlToRelConverter.java:514)
> at
> org.eigenbase.sql2rel.SqlToRelConverter.convertSelect(SqlToRelConverter.java:474)
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)