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
