Regarding
> if you're pushing down
​
aggregations, you should just make sure that you convert
> the result your adapter returns to a Long. (e.g.
Long.valueOf(count.longValue()))
​
Where to apply the conversion? Inside the GeodeAggregateRel rule?

Thanks

On 9 November 2017 at 17:21, Christian Tzolov <[email protected]> wrote:

> Hi Michael,
>
> You can find current version  in my branch here: https://github.com/
> tzolov/calcite/tree/geode-1.3
>
> I still have not added geode to the calcite-test-dataset so reproduce the
> problem you need to do this:
>
> 1. Download geode-sample-bootstrap-0.0.1-SNAPSHOT.jar from:
> https://drive.google.com/file/d/0Bw0P8rbcmBaJaGlVZWVEaWE4Tmc
> It is a single-node, self-contained SpringBoot app that embeds apache
> geode populates some sample data.
> Run it like this:
> java -Xmx128M -Dgemfire.name=server1 -Dgemfire.server.port=40405
> -Dgemfire.jmx-manager-port=1199 -Dgemfire.jmx-manager=true
> -Dgemfire.jmx-manager-start=true -Dgemfire.locators=localhost[10334]
> -Dgemfire.start-locator=localhost[10334] 
> -Dgemfire.use-cluster-configuration=false
> -jar ./geode-sample-bootstrap-0.0.1-SNAPSHOT.jar
>
> 2. Start the sqlline and connect to Geode using the
> geode/src/test/resources/model-rel2.json model:
>
> sqlline> !connect jdbc:calcite:model=/Users/ctzolov/Dev/projects/apache-
> calcite-tzolov/geode/src/test/resources/model-rel2.json admin admin
>
> 0: sqlline> SELECT SUM("retailCost") FROM "BookMaster" GROUP BY
> "retailCost";
>
> +--------+
> | EXPR$0 |
> +--------+
> | 59.99  |
> | 11.99  |
> | 34.99  |
> +--------+
>
> 0: sqlline> SELECT COUNT(*) FROM "BookMaster";
>
> java.lang.ClassCastException: java.lang.Integer cannot be cast to
> java.lang.Long
> at org.apache.calcite.avatica.util.AbstractCursor$LongAccessor.getLong(
> AbstractCursor.java:550)
> at org.apache.calcite.avatica.AvaticaSite.get(AvaticaSite.java:306)
> at org.apache.calcite.avatica.AvaticaResultSet.getObject(
> AvaticaResultSet.java:409)
> at sqlline.Rows$Row.<init>(Rows.java:157)
>
>
> Cheers,
> Christian
>
> On 9 November 2017 at 16:45, Michael Mior <[email protected]> wrote:
>
>> Christian,
>>
>> Are you able to share your code for the adapter? This would be helpful in
>> understanding the problem. In short however, if you're pushing down
>> aggregations, you should just make sure that you convert the result your
>> adapter returns to a Long. (e.g. Long.valueOf(count.longValue()))
>>
>> --
>> Michael Mior
>> [email protected]
>>
>> 2017-11-09 10:41 GMT-05:00 Christian Tzolov <[email protected]>:
>>
>> > ​(Calcite 1.15.0-SNASHOT and Avalitca 1.10.0)​
>> >
>> > ​I'm
>> >  workin on an adapter for in-memory NoSql
>> > ​data ​
>> > system
>> > ​. The implementations tries to push down all supported aggregation
>> > operations, such as AVG, MAX and COUNT. It works for most of them but
>> fails
>> > for COUNT:
>> >
>> >
>> > 0: jdbc:calcite:model=
>> > ​...
>> > > SELECT COUNT(*) FROM "BookMaster";
>> >
>> > java.lang.ClassCastException: java.lang.Integer cannot be cast to
>> > java.lang.Long
>> > at
>> > org.apache.calcite.avatica.util.AbstractCursor$LongAccessor.getLong(
>> > AbstractCursor.java:550)
>> > at org.apache.calcite.avatica.AvaticaSite.get(AvaticaSite.java:306)
>> > at
>> > org.apache.calcite.avatica.AvaticaResultSet.getObject(
>> > AvaticaResultSet.java:409)
>> > at sqlline.Rows$Row.<init>(Rows.java:157)
>> >
>> > ​P
>> > roblem IMO is that the
>> > ​COUNT result form the ​
>> > underlaying system
>> > ​is of type
>> >  Integer while
>> > ​C
>> > alcite expects Long
>> > ​ (e.g. BIGINT) as
>> > hardcoded in SqlCountAggFunction
>> > ​.java.
>> >
>> > ​I can't alter the ​SqlCountAggFunction so I wonder what is the right
>> place
>> > in Calcite to implement/configure this type conversion? ​
>> >
>> > ​This issue looks very similar (
>> > https://issues.apache.org/jira/browse/CALCITE-665)​ but i am not sure i
>> > completely understand the resolution?
>> >
>> > Thanks,
>> > Christian​
>> >
>>
>
>
>
> --
> Christian Tzolov <http://www.linkedin.com/in/tzolov> | Principle Software
> Engineer | Pivotal <http://pivotal.io/> | [email protected] |+31610285517
>



-- 
Christian Tzolov <http://www.linkedin.com/in/tzolov> | Principle Software
Engineer | Pivotal <http://pivotal.io/> | [email protected] |+31610285517

Reply via email to