[
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)