[
https://issues.apache.org/jira/browse/CALCITE-2551?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16611724#comment-16611724
]
Julian Hyde commented on CALCITE-2551:
--------------------------------------
Review comments:
* You only deal with 3-clause case: {{sqlCase.setOperand(3, elseNode)}}. Can
you generalize to handle all forms, and test at least one of the other forms?
* Don't modify the SqlCase node. Create a new one.
* Consider refactoring the code to use {{switch (childNode.getKind())}} rather
than {{if (childNode instanceof ...) ... else if (childNode.getOperator() == )
... }}
> ClassCastException in SqlToRelConverter#pushDownNotForIn
> --------------------------------------------------------
>
> Key: CALCITE-2551
> URL: https://issues.apache.org/jira/browse/CALCITE-2551
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.17.0
> Reporter: pengzhiwei
> Assignee: Julian Hyde
> Priority: Critical
> Attachments: 屏幕快照 2018-09-12 上午11.12.11.png
>
>
> In the sql as follow:
> {code:java}
> select empno from emp
> where not case when true then deptno in (10,20) else true end
> {code}
> A ClassCastException was thrown out as follow:
> {code:java}
> java.lang.ClassCastException: org.apache.calcite.sql.fun.SqlCase cannot be
> cast to org.apache.calcite.sql.SqlBasicCall
> at
> org.apache.calcite.sql2rel.SqlToRelConverter.pushDownNotForIn(SqlToRelConverter.java:987)
> at
> org.apache.calcite.sql2rel.SqlToRelConverter.convertWhere(SqlToRelConverter.java:1070)
> at
> {code}
> The reason for this issue is that the SqlToRelConverter#pushDownNotForIn
> method missing consideration
> for SqlCase as the code shown below:
> !屏幕快照 2018-09-12 上午11.12.11.png!
> I have made a PR for this issue which push not down through SqlCase.Anybody
> can have a check for me? Thanks!
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)