[
https://issues.apache.org/jira/browse/CALCITE-580?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Julian Hyde resolved CALCITE-580.
---------------------------------
Resolution: Fixed
Fix Version/s: 1.1.0-incubating
Fixed in
http://git-wip-us.apache.org/repos/asf/incubator-calcite/commit/cca42158.
> Average aggregation on an Integer column throws java.lang.ClassCastException
> ----------------------------------------------------------------------------
>
> Key: CALCITE-580
> URL: https://issues.apache.org/jira/browse/CALCITE-580
> Project: Calcite
> Issue Type: Bug
> Reporter: Low Chin Wei
> Assignee: Julian Hyde
> Fix For: 1.1.0-incubating
>
>
> There are 2 Integer columns: a, c in table abc.
> While running the following sql, it throw the ClassCastException:
> select a, avg(c) as agg from abc group by a
> Exception in thread "main" java.lang.ClassCastException: java.lang.Long
> incompatible with java.lang.Integer
> at
> org.apache.calcite.avatica.util.AbstractCursor$IntAccessor.getInt(AbstractCursor.java:460)
> at
> org.apache.calcite.avatica.AvaticaResultSet.getInt(AvaticaResultSet.java:311)
> The generated code that I think causing the issue, it try to cast the result
> to long.
> public Object current() {
> final Object[] current = (Object[]) inputEnumerator.current();
> return new Object[] {
> current[0],
> (long) org.apache.calcite.runtime.SqlFunctions.toInt(current[1]) /
> org.apache.calcite.runtime.SqlFunctions.toLong(current[2])};
> }
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)