You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Marc Prud'hommeaux (JIRA)" <ji...@apache.org> on 2015/09/16 23:35:45 UTC

[jira] [Created] (CALCITE-887) MySQL error when concatenating: "java.lang.Long cannot be cast to java.lang.String"

Marc Prud'hommeaux created CALCITE-887:
------------------------------------------

             Summary: MySQL error when concatenating: "java.lang.Long cannot be cast to java.lang.String"
                 Key: CALCITE-887
                 URL: https://issues.apache.org/jira/browse/CALCITE-887
             Project: Calcite
          Issue Type: Bug
    Affects Versions: 1.5.0-incubating
         Environment: MySQL
            Reporter: Marc Prud'hommeaux
            Assignee: Julian Hyde


{noformat}
0: jdbc:calcite:model=inline:{"version":1.0,"> select "name" from "category"; 
               
+--------------+
|     name     |
+--------------+
| Action       |
| Animation    |
| Children     |
...

16 rows selected (0.055 seconds)
0: jdbc:calcite:model=inline:{"version":1.0,"> select "name"||"name" from "category";
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String
	at org.apache.calcite.avatica.util.AbstractCursor$StringAccessor.getString(AbstractCursor.java:689)
	at org.apache.calcite.avatica.AvaticaResultSet.getString(AvaticaResultSet.java:233)
	at sqlline.SqlLine$Rows$Row.<init>(Unknown Source)
	at sqlline.SqlLine$BufferedRows.<init>(Unknown Source)
	at sqlline.SqlLine.print(Unknown Source)
	at sqlline.SqlLine$Commands.execute(Unknown Source)
	at sqlline.SqlLine$Commands.sql(Unknown Source)
	at sqlline.SqlLine.dispatch(Unknown Source)
	at sqlline.SqlLine.begin(Unknown Source)
	at sqlline.SqlLine.mainWithInputRedirection(Unknown Source)
	at sqlline.SqlLine.main(Unknown Source)
{noformat}


FTR, a similar concat function works fine with Derby:

{noformat}
0: jdbc:derby:jar:(/opt/src/glimpse/glimpse/G> select "sales_region"||"sales_region" from "SA"."region";

+-------------------------------+
|               1               |
+-------------------------------+
| No RegionNo Region            |
| Central WestCentral West      |
| Mexico CentralMexico Central  |
...
{noformat}


Putting aside the question of why Calcite is getting back a Long, I don't think a JDBC driver should ever throw a java.lang.ClassCastException. Perhaps it could just stringify whatever the result is, or else return null if it can't.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)