We come to the conclusion that fileds for tables and columns of the target 
class must be public, and those not for tables and columns must not be public, 
are we right?




------------------ Original ------------------
From:  "xiaobo ";<guxiaobo1...@qq.com>;
Send time: Saturday, Feb 12, 2022 9:57 AM
To: "dev"<dev@calcite.apache.org>; 

Subject:  Unable to implement EnumerableAggregate(group=[{}], 
EXPR$0=[COUNT($0)]) with ReflectiveSchema



Simple count sql against ReflectiveSchema failed with :


Error while executing SQL "select count(a.PA01AI01) from p.PRH_PA01 as a
": Unable to implement EnumerableAggregate(group=[{}], EXPR$0=[COUNT($0)]): 
rowcount = 10.0, cumulative cost = {111.25 rows, 101.0 cpu, 0.0 io}, id = 37
 EnumerableTableScan(table=[[p, PRH_PA01]]): rowcount = 100.0, cumulative cost 
= {100.0 rows, 101.0 cpu, 0.0 io}, id = 26

 at 
com.xsmartware.javatest.pbc2p.CalciteBaseVarGenerator.generateVariable(CalciteBaseVarGenerator.java:61)
 at com.xsmartware.javatest.pbc2p.PBC2PTestRunner.test1(PBC2PTestRunner.java:68)
 at com.xsmartware.javatest.pbc2p.PBC2PTestRunner.run(PBC2PTestRunner.java:54)
 at 
org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:758)
 at 
org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:748)
 at org.springframework.boot.SpringApplication.run(SpringApplication.java:309)
 at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)
 at org.springframework.boot.SpringApplication.run(SpringApplication.java:1290)
 at com.xsmartware.javatest.JavaTestApplication.main(JavaTestApplication.java:9)
Caused by: java.sql.SQLException: Error while executing SQL "select 
count(a.PA01AI01) from p.PRH_PA01 as a
": Unable to implement EnumerableAggregate(group=[{}], EXPR$0=[COUNT($0)]): 
rowcount = 10.0, cumulative cost = {111.25 rows, 101.0 cpu, 0.0 io}, id = 37
 EnumerableTableScan(table=[[p, PRH_PA01]]): rowcount = 100.0, cumulative cost 
= {100.0 rows, 101.0 cpu, 0.0 io}, id = 26

 at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
 at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
 at 
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:163)
 at 
org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:227)
 at com.xsmartware.common.util.SQLUtil.exeGetLong(SQLUtil.java:42)
 at 
com.xsmartware.javatest.pbc2p.CalciteBaseVarGenerator.generateVariable(CalciteBaseVarGenerator.java:39)
 ... 8 more
Caused by: java.lang.IllegalStateException: Unable to implement 
EnumerableAggregate(group=[{}], EXPR$0=[COUNT($0)]): rowcount = 10.0, 
cumulative cost = {111.25 rows, 101.0 cpu, 0.0 io}, id = 37
 EnumerableTableScan(table=[[p, PRH_PA01]]): rowcount = 100.0, cumulative cost 
= {100.0 rows, 101.0 cpu, 0.0 io}, id = 26

 at 
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:114)
 at 
org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:114)
 at 
org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1130)
 at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:324)
 at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:220)
 at 
org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:647)
 at 
org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:513)
 at 
org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:483)
 at 
org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:249)
 at 
org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:623)
 at 
org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:674)
 at 
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)
 ... 11 more
 Suppressed: java.lang.NullPointerException: relFieldType.getComponentType() 
for JavaType(interface java.util.List)
 at java.base/java.util.Objects.requireNonNull(Objects.java:347)
 at 
org.apache.calcite.adapter.enumerable.EnumerableTableScan.fieldExpression(EnumerableTableScan.java:269)
 at 
org.apache.calcite.adapter.enumerable.EnumerableTableScan.toRows(EnumerableTableScan.java:252)
 at 
org.apache.calcite.adapter.enumerable.EnumerableTableScan.getExpression(EnumerableTableScan.java:209)
 at 
org.apache.calcite.adapter.enumerable.EnumerableTableScan.implement(EnumerableTableScan.java:340)
 at 
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:104)
 at 
org.apache.calcite.adapter.enumerable.EnumerableAggregate.implement(EnumerableAggregate.java:105)
 at 
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:111)
 ... 22 more

Reply via email to