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)

Reply via email to