[ https://issues.apache.org/jira/browse/CALCITE-2198?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16385565#comment-16385565 ]
Hequn Cheng commented on CALCITE-2198: -------------------------------------- OK, Thanks for your reply and suggestions. And would you please give me the contributor permissions? User profile of my jira: {code:java} Username: hequn8128 Full name: Hequn Cheng Email: chenghequn at gmail dot com{code} Thanks, Hequn > ClassCastException in RexBuilder when makeLiteral for BINARY and VARBINARY > -------------------------------------------------------------------------- > > Key: CALCITE-2198 > URL: https://issues.apache.org/jira/browse/CALCITE-2198 > Project: Calcite > Issue Type: Bug > Components: core > Reporter: Hequn Cheng > Assignee: Julian Hyde > Priority: Major > > Currently, makeLiteral for {{BINARY}} and {{VARBINARY}} will throw > {{ClassCastException}} when value type is {{byte[]}}: > {code:java} > java.lang.ClassCastException: [B cannot be cast to > org.apache.calcite.avatica.util.ByteString > at org.apache.calcite.rex.RexBuilder.makeLiteral(RexBuilder.java:1336) > at > org.apache.calcite.test.RexProgramTest.testSimplifyCastLiteral(RexProgramTest.java:1567){code} > The exception can be reproduced by the following test case(in > RexProgramTest.testSimplifyCastLiteral()): > {code:java} > literals.add((RexLiteral) > rexBuilder.makeLiteral(new byte[] {1, 2, -34, 0, -128}, > typeFactory.createSqlType(SqlTypeName.BINARY, 5), false));{code} > To avoid this exception we have to add support for type of {{byte[]}}. One > choice is to convert {{byte[]}} to {{ByteString}} in {{RexBuilder.clean()}}. -- This message was sent by Atlassian JIRA (v7.6.3#76005)