[ 
https://issues.apache.org/jira/browse/CALCITE-665?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14576613#comment-14576613
 ] 

Piers commented on CALCITE-665:
-------------------------------

As a test I hacked in this change:

{code}
diff --git 
a/avatica/src/main/java/org/apache/calcite/avatica/util/AbstractCursor.java 
b/avatica/src/main/java/org/apache/calcite/avatica/util/AbstractCursor.java
index 9786c7a..88b252c 100644
--- a/avatica/src/main/java/org/apache/calcite/avatica/util/AbstractCursor.java
+++ b/avatica/src/main/java/org/apache/calcite/avatica/util/AbstractCursor.java
@@ -501,7 +501,12 @@ public LongAccessor(Getter getter) {
     }
 
     public long getLong() {
-      Long o = (Long) super.getObject();
+      Long o = null;
+      if (super.getObject() instanceof Long) {
+        o = (Long) super.getObject();
+      } else if (super.getObject() instanceof Integer) {
+        o = new Long((Integer) super.getObject());
+      }
       return o == null ? 0 : o;
     }
   }
{code}

Which works - it seems like it is something to do with the return type on the 
{code} count(*) {code} , but I haven't been able to figure that out yet.



> Issue when using with mondrian 
> -------------------------------
>
>                 Key: CALCITE-665
>                 URL: https://issues.apache.org/jira/browse/CALCITE-665
>             Project: Calcite
>          Issue Type: Bug
>    Affects Versions: 1.1.0-incubating
>         Environment: Windows x64, MongoDB , JDK 1.7
>            Reporter: Naresh Jois
>            Assignee: Julian Hyde
>            Priority: Minor
>             Fix For: next
>
>
> When using with Mondrian 4.2 and With MongoDB (foodmart data), 
> The following exception is raised. 
> Exception in thread "main" java.lang.ClassCastException: java.lang.Integer 
> cannot be cast to java.lang.Long
>       at 
> org.apache.calcite.avatica.util.AbstractCursor$LongAccessor.getLong(AbstractCursor.java:483)
>       at 
> org.apache.calcite.avatica.util.AbstractCursor$AccessorImpl.getInt(AbstractCursor.java:252)
>       at 
> org.apache.calcite.avatica.AvaticaResultSet.getInt(AvaticaResultSet.java:248)
>       at 
> org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:225)
>       at 
> org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:225)
>       at 
> mondrian.spi.impl.SqlStatisticsProvider.getTableCardinality(SqlStatisticsProvider.java:52)
>       at 
> mondrian.rolap.RolapSchema$PhysStatistic.getTableCardinality(RolapSchema.java:2888)
>       at 
> mondrian.rolap.RolapSchema$PhysStatistic.getRelationCardinality(RolapSchema.java:2860)
>       at 
> mondrian.rolap.RolapSchema$PhysTable.populateColumns(RolapSchema.java:1859)
>       at 
> mondrian.rolap.RolapSchema$PhysRelationImpl.ensurePopulated(RolapSchema.java:1519)
>       at 
> mondrian.rolap.RolapSchema$PhysTable.ensurePopulated(RolapSchema.java:1729)
>       at 
> mondrian.rolap.RolapSchemaUpgrader.toPhysRelation(RolapSchemaUpgrader.java:1866)
>       at 
> mondrian.rolap.RolapSchemaUpgrader.convertCube(RolapSchemaUpgrader.java:179)
>       at 
> mondrian.rolap.RolapSchemaUpgrader.convertSchema(RolapSchemaUpgrader.java:2208)
>       at 
> mondrian.rolap.RolapSchemaUpgrader.upgrade(RolapSchemaUpgrader.java:125)
>       at 
> mondrian.rolap.RolapSchemaLoader.loadStage0(RolapSchemaLoader.java:254)
>       at 
> mondrian.rolap.RolapSchemaLoader.createSchema(RolapSchemaLoader.java:4303)
>       at mondrian.rolap.RolapSchemaPool.get(RolapSchemaPool.java:210)
>       at mondrian.rolap.RolapSchemaPool.get(RolapSchemaPool.java:62)
>       at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:160)
>       at mondrian.rolap.RolapConnection.<init>(RolapConnection.java:84)
>       at mondrian.olap.DriverManager.getConnection(DriverManager.java:112)
>       at mondrian.olap.DriverManager.getConnection(DriverManager.java:68)
>       at mondrian.olap.DriverManager.getConnection(DriverManager.java:50)
>       at ....



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

Reply via email to