You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by Sanjay Prasad <sa...@kalkitech.in> on 2016/05/21 15:34:36 UTC
Correlated scalar select fails with assert error and null pointer
exception in calcite 1.7
Hi guys,
Correlated scalar selects fails with assert error for an SQL
statement like the one given below. Sorry for the noise in the SQL, it
is generated by our generic SQL processor for json that takes a much
simpler SQL.
SELECT
(SELECT "input"."type" AS "type" FROM "input" WHERE "ip"."name" =
'test') AS "uid_1"
FROM
(SELECT "input"."name" AS "name", "input"."type" AS "type",
"input"."enabled" AS "enabled",
"input"."speed" AS "speed", "input"."temperature" AS
"temperature", "input"."time" AS "time",
"input"."water.temperature" AS "water.temperature",
"input"."water.pressure" AS "water.pressure"
FROM "input") "ip"
java.lang.AssertionError: Correlation variable $cor0 should be defined
at
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.getCorrelVariableGetter(EnumerableRelImplementor.java:450)
at
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor$1.apply(EnumerableRelImplementor.java:79)
at
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor$1.apply(EnumerableRelImplementor.java:77)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:502)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateList(RexToLixTranslator.java:655)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateList(RexToLixTranslator.java:645)
at
org.apache.calcite.adapter.enumerable.RexImpTable.implementNullSemantics0(RexImpTable.java:737)
at
org.apache.calcite.adapter.enumerable.RexImpTable.access$900(RexImpTable.java:180)
at
org.apache.calcite.adapter.enumerable.RexImpTable$3.implement(RexImpTable.java:409)
at
org.apache.calcite.adapter.enumerable.RexImpTable$CastOptimizedImplementor.implement(RexImpTable.java:1738)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:535)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:208)
at
org.apache.calcite.adapter.enumerable.RexImpTable.implementNullSemantics(RexImpTable.java:800)
at
org.apache.calcite.adapter.enumerable.RexImpTable.implementNullSemantics0(RexImpTable.java:754)
at
org.apache.calcite.adapter.enumerable.RexImpTable.access$900(RexImpTable.java:180)
at
org.apache.calcite.adapter.enumerable.RexImpTable$3.implement(RexImpTable.java:409)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:535)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:208)
at
org.apache.calcite.adapter.enumerable.RexImpTable$IsXxxImplementor.implement(RexImpTable.java:1887)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:535)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:208)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCondition(RexToLixTranslator.java:727)
at
org.apache.calcite.adapter.enumerable.EnumerableCalc.implement(EnumerableCalc.java:161)
at
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
at
org.apache.calcite.adapter.enumerable.EnumerableAggregate.implement(EnumerableAggregate.java:102)
at
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
at
org.apache.calcite.adapter.enumerable.EnumerableJoin.implement(EnumerableJoin.java:190)
at
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
at
org.apache.calcite.adapter.enumerable.EnumerableCalc.implement(EnumerableCalc.java:119)
at
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:102)
at
org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:92)
at
org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1172)
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:294)
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:193)
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:720)
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:587)
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:557)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:214)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:194)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:184)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:85)
at
org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:153)
at
com.kalkitech.k11.core.sql.calcite.CalciteQueryExecutor.execute(CalciteQueryExecutor.java:43)
at
com.kalkitech.k11.core.calcite.CalciteSqlTest.executeTest(CalciteSqlTest.java:143)
at
com.kalkitech.k11.core.calcite.CalciteSqlTest.basicTest(CalciteSqlTest.java:84)
at
com.kalkitech.k11.core.calcite.CalciteSqlTest.selectCorrelatedScalar(CalciteSqlTest.java:170)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:673)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:842)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1166)
at
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Another one fails with a NullPointerException.
SELECT
(SELECT DISTINCT "rs"."time" AS "time" FROM "input" WHERE
"input"."time" = "rs"."time") AS "x",
(SELECT "input"."value" AS "value" FROM "input" WHERE
"input"."time" = "rs"."time" AND "input"."pointId" = 5) AS "y1"
FROM (SELECT DISTINCT "input"."time" AS "time" FROM "input") "rs"
java.sql.SQLException: Error while preparing statement [SELECT
(SELECT DISTINCT "rs"."time" AS "time" FROM "input" WHERE "input"."time"
= "rs"."time") AS "x", (SELECT "input"."value" AS "value" FROM "input"
WHERE "input"."time" = "rs"."time" AND "input"."pointId" = 5) AS "y1"
FROM (SELECT DISTINCT "input"."time" AS "time" FROM "input") "rs"]
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:203)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:184)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:85)
at
org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:153)
at
com.kalkitech.k11.core.sql.calcite.CalciteQueryExecutor.execute(CalciteQueryExecutor.java:43)
at
com.kalkitech.k11.core.ds.DataSourceQueryManager.executeSql(DataSourceQueryManager.java:88)
at
com.kalkitech.k11.core.ds.DataSourceServlet.sendDataSourceData(DataSourceServlet.java:367)
at
com.kalkitech.k11.core.ds.DataSourceServlet.doGet(DataSourceServlet.java:152)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
at
org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
at
org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
at
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
at
org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
at
org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
at
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
at
org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
at
org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
at
org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
at
org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
at
org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
at
org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
at
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
com.kalkitech.k11.core.servlet.CorsFilter.handleNonCORS(CorsFilter.java:391)
at
com.kalkitech.k11.core.servlet.CorsFilter.doFilter(CorsFilter.java:126)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:504)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateList(RexToLixTranslator.java:655)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateList(RexToLixTranslator.java:645)
at
org.apache.calcite.adapter.enumerable.RexImpTable.implementNullSemantics0(RexImpTable.java:737)
at
org.apache.calcite.adapter.enumerable.RexImpTable.access$900(RexImpTable.java:180)
at
org.apache.calcite.adapter.enumerable.RexImpTable$3.implement(RexImpTable.java:409)
at
org.apache.calcite.adapter.enumerable.RexImpTable$CastOptimizedImplementor.implement(RexImpTable.java:1738)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:535)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:208)
at
org.apache.calcite.adapter.enumerable.RexImpTable.implementNullSemantics(RexImpTable.java:800)
at
org.apache.calcite.adapter.enumerable.RexImpTable.implementNullSemantics0(RexImpTable.java:754)
at
org.apache.calcite.adapter.enumerable.RexImpTable.access$900(RexImpTable.java:180)
at
org.apache.calcite.adapter.enumerable.RexImpTable$3.implement(RexImpTable.java:409)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:535)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:208)
at
org.apache.calcite.adapter.enumerable.RexImpTable$IsXxxImplementor.implement(RexImpTable.java:1887)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:535)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:208)
at
org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCondition(RexToLixTranslator.java:727)
at
org.apache.calcite.adapter.enumerable.EnumerableCalc.implement(EnumerableCalc.java:161)
at
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
at
org.apache.calcite.adapter.enumerable.EnumerableAggregate.implement(EnumerableAggregate.java:102)
at
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
at
org.apache.calcite.adapter.enumerable.EnumerableAggregate.implement(EnumerableAggregate.java:102)
at
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
at
org.apache.calcite.adapter.enumerable.EnumerableJoin.implement(EnumerableJoin.java:190)
at
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
at
org.apache.calcite.adapter.enumerable.EnumerableJoin.implement(EnumerableJoin.java:185)
at
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
at
org.apache.calcite.adapter.enumerable.EnumerableCalc.implement(EnumerableCalc.java:119)
at
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:102)
at
org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:92)
at
org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1172)
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:294)
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:193)
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:720)
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:587)
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:557)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:214)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:194)
... 52 more
The both of them work fine in calcite 1.5 and does not work in
calcite 1.6 or 1.7. Is this a know issue or am I doing something wrong?
-Regards
-SP
"Disclaimer: This message is being sent from Kalki Communication Technologies
Pvt Ltd (KALKITECH). and may contain information which is confidential or
privileged. If you are not the intended recipient, please advise the sender
immediately by reply e-mail and delete this message and any attachments
without retaining a copy. Any unauthorized use of the content of this message
can expose the responsible party to civil and/or criminal penalties,
and may constitute a more serious offense. Further the company does not accept
liability for any errors, omissions, viruses or computer problems
experienced as a result of this transmission. If you have received this
message in error, notice is hereby given that no representation, contract or
other binding obligation shall be created by this e-mail."
Re: Correlated scalar select fails with assert error and null pointer
exception in calcite 1.7
Posted by Sanjay Prasad <sa...@kalkitech.in>.
I am not able to reproduce the same issue with the scott hsql db
connected to from sqlline, but I am getting a new exception now in 1.7
and 1.6. This works fine in 1.5.
---------------------------------------------------------------------------------------------------
-- With calcite 1.5.0
---------------------------------------------------------------------------------------------------
sqlline version 1.1.9
sqlline> !connect jdbc:calcite:model=hsqldb-model.json SA ''
May 22, 2016 12:42:32 PM org.hsqldb.persist.Logger logInfoEvent
INFO: open start - state modified
May 22, 2016 12:42:32 PM org.hsqldb.persist.Logger logInfoEvent
INFO: Checkpoint start
May 22, 2016 12:42:32 PM org.hsqldb.persist.Logger logInfoEvent
INFO: Checkpoint end - txts: 25
0: jdbc:calcite:model=hsqldb-model.json> select (select ename from emp
where empno = en.empno) from (select empno from emp) en;
+------------+
| EXPR$0 |
+------------+
| SMITH |
| ALLEN |
| WARD |
| JONES |
| MARTIN |
| BLAKE |
| CLARK |
| SCOTT |
| KING |
| TURNER |
| ADAMS |
| JAMES |
| FORD |
| MILLER |
+------------+
14 rows selected (0.788 seconds)
--------------------------------------------------------------------------------------------------------
With calcite 1.7.0
--------------------------------------------------------------------------------------------------------
sqlline version 1.1.9
sqlline> !connect jdbc:calcite:model=hsqldb-model.json SA ''
May 22, 2016 12:43:41 PM org.hsqldb.persist.Logger logInfoEvent
INFO: open start - state modified
May 22, 2016 12:43:41 PM org.hsqldb.persist.Logger logInfoEvent
INFO: Checkpoint start
May 22, 2016 12:43:41 PM org.hsqldb.persist.Logger logInfoEvent
INFO: Checkpoint end - txts: 25
0: jdbc:calcite:model=hsqldb-model.json> !connect
jdbc:calcite:model=hsqldb-model.json SA ''
1: jdbc:calcite:model=hsqldb-model.json> select (select ename from emp
where empno = en.empno) from (select empno from emp) en;
java.lang.AssertionError: Internal error: While invoking method 'public
org.apache.calcite.rel.rel2sql.SqlImplementor$Result
org.apache.calcite.rel.rel2sql.RelToSqlConverter.visit(org.apache.calcite.rel.core.Filter)'
at org.apache.calcite.util.Util.newInternal(Util.java:792)
at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:534)
at
org.apache.calcite.rel.rel2sql.RelToSqlConverter.dispatch(RelToSqlConverter.java:80)
at
org.apache.calcite.rel.rel2sql.RelToSqlConverter.visitChild(RelToSqlConverter.java:84)
at
org.apache.calcite.adapter.jdbc.JdbcToEnumerableConverter.generateSql(JdbcToEnumerableConverter.java:298)
at
org.apache.calcite.adapter.jdbc.JdbcToEnumerableConverter.implement(JdbcToEnumerableConverter.java:91)
at
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
at
org.apache.calcite.adapter.enumerable.EnumerableAggregate.implement(EnumerableAggregate.java:102)
at
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
at
org.apache.calcite.adapter.enumerable.EnumerableJoin.implement(EnumerableJoin.java:190)
at
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
at
org.apache.calcite.adapter.enumerable.EnumerableCalc.implement(EnumerableCalc.java:119)
at
org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:102)
at
org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:92)
at
org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1172)
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:294)
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:193)
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:720)
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:587)
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:557)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:214)
at
org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:573)
at
org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:581)
at
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:135)
at
org.apache.calcite.avatica.AvaticaStatement.execute(AvaticaStatement.java:177)
at sqlline.Commands.execute(Commands.java:822)
at sqlline.Commands.sql(Commands.java:732)
at sqlline.SqlLine.dispatch(SqlLine.java:807)
at sqlline.SqlLine.begin(SqlLine.java:681)
at sqlline.SqlLine.start(SqlLine.java:398)
at sqlline.SqlLine.main(SqlLine.java:292)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:531)
... 29 more
Caused by: java.lang.ClassCastException:
org.apache.calcite.rex.RexFieldAccess cannot be cast to
org.apache.calcite.rex.RexCall
at
org.apache.calcite.rel.rel2sql.SqlImplementor$Context.toSql(SqlImplementor.java:517)
at
org.apache.calcite.rel.rel2sql.SqlImplementor$Context.toSql(SqlImplementor.java:586)
at
org.apache.calcite.rel.rel2sql.SqlImplementor$Context.toSql(SqlImplementor.java:519)
at
org.apache.calcite.rel.rel2sql.RelToSqlConverter.visit(RelToSqlConverter.java:119)
... 34 more
On Sunday 22 May 2016 06:11 AM, Julian Hyde wrote:
> Ah, I like a nice gnarly SQL statement! Please log a JIRA case.
>
> If you are able to rewrite either query in terms of one of the
> standard schemas (e.g. the "SCOTT" schema in hsqldb-model.json) and
> still reproduce the same error, that would be awesome.
>
> On Sat, May 21, 2016 at 8:34 AM, Sanjay Prasad
> <sa...@kalkitech.in> wrote:
>> Hi guys,
>> Correlated scalar selects fails with assert error for an SQL
>> statement like the one given below. Sorry for the noise in the SQL, it is
>> generated by our generic SQL processor for json that takes a much simpler
>> SQL.
>>
>> SELECT
>> (SELECT "input"."type" AS "type" FROM "input" WHERE "ip"."name" =
>> 'test') AS "uid_1"
>> FROM
>> (SELECT "input"."name" AS "name", "input"."type" AS "type",
>> "input"."enabled" AS "enabled",
>> "input"."speed" AS "speed", "input"."temperature" AS
>> "temperature", "input"."time" AS "time",
>> "input"."water.temperature" AS "water.temperature",
>> "input"."water.pressure" AS "water.pressure"
>> FROM "input") "ip"
>>
>> java.lang.AssertionError: Correlation variable $cor0 should be defined
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.getCorrelVariableGetter(EnumerableRelImplementor.java:450)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor$1.apply(EnumerableRelImplementor.java:79)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor$1.apply(EnumerableRelImplementor.java:77)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:502)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateList(RexToLixTranslator.java:655)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateList(RexToLixTranslator.java:645)
>> at
>> org.apache.calcite.adapter.enumerable.RexImpTable.implementNullSemantics0(RexImpTable.java:737)
>> at
>> org.apache.calcite.adapter.enumerable.RexImpTable.access$900(RexImpTable.java:180)
>> at
>> org.apache.calcite.adapter.enumerable.RexImpTable$3.implement(RexImpTable.java:409)
>> at
>> org.apache.calcite.adapter.enumerable.RexImpTable$CastOptimizedImplementor.implement(RexImpTable.java:1738)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:535)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:208)
>> at
>> org.apache.calcite.adapter.enumerable.RexImpTable.implementNullSemantics(RexImpTable.java:800)
>> at
>> org.apache.calcite.adapter.enumerable.RexImpTable.implementNullSemantics0(RexImpTable.java:754)
>> at
>> org.apache.calcite.adapter.enumerable.RexImpTable.access$900(RexImpTable.java:180)
>> at
>> org.apache.calcite.adapter.enumerable.RexImpTable$3.implement(RexImpTable.java:409)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:535)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:208)
>> at
>> org.apache.calcite.adapter.enumerable.RexImpTable$IsXxxImplementor.implement(RexImpTable.java:1887)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:535)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:208)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCondition(RexToLixTranslator.java:727)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableCalc.implement(EnumerableCalc.java:161)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableAggregate.implement(EnumerableAggregate.java:102)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableJoin.implement(EnumerableJoin.java:190)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableCalc.implement(EnumerableCalc.java:119)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:102)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:92)
>> at
>> org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1172)
>> at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:294)
>> at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:193)
>> at
>> org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:720)
>> at
>> org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:587)
>> at
>> org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:557)
>> at
>> org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:214)
>> at
>> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:194)
>> at
>> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:184)
>> at
>> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:85)
>> at
>> org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:153)
>> at
>> com.kalkitech.k11.core.sql.calcite.CalciteQueryExecutor.execute(CalciteQueryExecutor.java:43)
>> at
>> com.kalkitech.k11.core.calcite.CalciteSqlTest.executeTest(CalciteSqlTest.java:143)
>> at
>> com.kalkitech.k11.core.calcite.CalciteSqlTest.basicTest(CalciteSqlTest.java:84)
>> at
>> com.kalkitech.k11.core.calcite.CalciteSqlTest.selectCorrelatedScalar(CalciteSqlTest.java:170)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:497)
>> at
>> org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
>> at org.testng.internal.Invoker.invokeMethod(Invoker.java:673)
>> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:842)
>> at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1166)
>> at
>> org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
>> at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
>> at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>> at java.lang.Thread.run(Thread.java:745)
>>
>> Another one fails with a NullPointerException.
>>
>> SELECT
>> (SELECT DISTINCT "rs"."time" AS "time" FROM "input" WHERE "input"."time"
>> = "rs"."time") AS "x",
>> (SELECT "input"."value" AS "value" FROM "input" WHERE "input"."time" =
>> "rs"."time" AND "input"."pointId" = 5) AS "y1"
>> FROM (SELECT DISTINCT "input"."time" AS "time" FROM "input") "rs"
>>
>> java.sql.SQLException: Error while preparing statement [SELECT (SELECT
>> DISTINCT "rs"."time" AS "time" FROM "input" WHERE "input"."time" =
>> "rs"."time") AS "x", (SELECT "input"."value" AS "value" FROM "input" WHERE
>> "input"."time" = "rs"."time" AND "input"."pointId" = 5) AS "y1" FROM (SELECT
>> DISTINCT "input"."time" AS "time" FROM "input") "rs"]
>> at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
>> at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
>> at
>> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:203)
>> at
>> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:184)
>> at
>> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:85)
>> at
>> org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:153)
>> at
>> com.kalkitech.k11.core.sql.calcite.CalciteQueryExecutor.execute(CalciteQueryExecutor.java:43)
>> at
>> com.kalkitech.k11.core.ds.DataSourceQueryManager.executeSql(DataSourceQueryManager.java:88)
>> at
>> com.kalkitech.k11.core.ds.DataSourceServlet.sendDataSourceData(DataSourceServlet.java:367)
>> at
>> com.kalkitech.k11.core.ds.DataSourceServlet.doGet(DataSourceServlet.java:152)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>> at
>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>> at
>> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
>> at
>> org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
>> at
>> org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
>> at
>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>> at
>> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
>> at
>> org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
>> at
>> org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
>> at
>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>> at
>> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
>> at
>> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
>> at
>> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
>> at
>> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
>> at
>> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
>> at
>> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
>> at
>> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
>> at
>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>> at
>> com.kalkitech.k11.core.servlet.CorsFilter.handleNonCORS(CorsFilter.java:391)
>> at
>> com.kalkitech.k11.core.servlet.CorsFilter.doFilter(CorsFilter.java:126)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>> at
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
>> at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
>> at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
>> at
>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
>> at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
>> at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>> at
>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
>> at
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>> at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
>> at
>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
>> at
>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
>> at
>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
>> at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>> at
>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>> at java.lang.Thread.run(Thread.java:745)
>> Caused by: java.lang.NullPointerException
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:504)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateList(RexToLixTranslator.java:655)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateList(RexToLixTranslator.java:645)
>> at
>> org.apache.calcite.adapter.enumerable.RexImpTable.implementNullSemantics0(RexImpTable.java:737)
>> at
>> org.apache.calcite.adapter.enumerable.RexImpTable.access$900(RexImpTable.java:180)
>> at
>> org.apache.calcite.adapter.enumerable.RexImpTable$3.implement(RexImpTable.java:409)
>> at
>> org.apache.calcite.adapter.enumerable.RexImpTable$CastOptimizedImplementor.implement(RexImpTable.java:1738)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:535)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:208)
>> at
>> org.apache.calcite.adapter.enumerable.RexImpTable.implementNullSemantics(RexImpTable.java:800)
>> at
>> org.apache.calcite.adapter.enumerable.RexImpTable.implementNullSemantics0(RexImpTable.java:754)
>> at
>> org.apache.calcite.adapter.enumerable.RexImpTable.access$900(RexImpTable.java:180)
>> at
>> org.apache.calcite.adapter.enumerable.RexImpTable$3.implement(RexImpTable.java:409)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:535)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:208)
>> at
>> org.apache.calcite.adapter.enumerable.RexImpTable$IsXxxImplementor.implement(RexImpTable.java:1887)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:535)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:208)
>> at
>> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCondition(RexToLixTranslator.java:727)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableCalc.implement(EnumerableCalc.java:161)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableAggregate.implement(EnumerableAggregate.java:102)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableAggregate.implement(EnumerableAggregate.java:102)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableJoin.implement(EnumerableJoin.java:190)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableJoin.implement(EnumerableJoin.java:185)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableCalc.implement(EnumerableCalc.java:119)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:102)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:92)
>> at
>> org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1172)
>> at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:294)
>> at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:193)
>> at
>> org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:720)
>> at
>> org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:587)
>> at
>> org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:557)
>> at
>> org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:214)
>> at
>> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:194)
>> ... 52 more
>>
>> The both of them work fine in calcite 1.5 and does not work in calcite
>> 1.6 or 1.7. Is this a know issue or am I doing something wrong?
>>
>> -Regards
>> -SP
>>
>> "Disclaimer: This message is being sent from Kalki Communication
>> Technologies
>> Pvt Ltd (KALKITECH). and may contain information which is confidential or
>> privileged. If you are not the intended recipient, please advise the sender
>> immediately by reply e-mail and delete this message and any attachments
>> without retaining a copy. Any unauthorized use of the content of this
>> message
>> can expose the responsible party to civil and/or criminal penalties,
>> and may constitute a more serious offense. Further the company does not
>> accept
>> liability for any errors, omissions, viruses or computer problems
>> experienced as a result of this transmission. If you have received this
>> message in error, notice is hereby given that no representation, contract or
>> other binding obligation shall be created by this e-mail."
"Disclaimer: This message is being sent from Kalki Communication Technologies
Pvt Ltd (KALKITECH). and may contain information which is confidential or
privileged. If you are not the intended recipient, please advise the sender
immediately by reply e-mail and delete this message and any attachments
without retaining a copy. Any unauthorized use of the content of this message
can expose the responsible party to civil and/or criminal penalties,
and may constitute a more serious offense. Further the company does not accept
liability for any errors, omissions, viruses or computer problems
experienced as a result of this transmission. If you have received this
message in error, notice is hereby given that no representation, contract or
other binding obligation shall be created by this e-mail."
Re: Correlated scalar select fails with assert error and null pointer
exception in calcite 1.7
Posted by Julian Hyde <jh...@apache.org>.
Ah, I like a nice gnarly SQL statement! Please log a JIRA case.
If you are able to rewrite either query in terms of one of the
standard schemas (e.g. the "SCOTT" schema in hsqldb-model.json) and
still reproduce the same error, that would be awesome.
On Sat, May 21, 2016 at 8:34 AM, Sanjay Prasad
<sa...@kalkitech.in> wrote:
> Hi guys,
> Correlated scalar selects fails with assert error for an SQL
> statement like the one given below. Sorry for the noise in the SQL, it is
> generated by our generic SQL processor for json that takes a much simpler
> SQL.
>
> SELECT
> (SELECT "input"."type" AS "type" FROM "input" WHERE "ip"."name" =
> 'test') AS "uid_1"
> FROM
> (SELECT "input"."name" AS "name", "input"."type" AS "type",
> "input"."enabled" AS "enabled",
> "input"."speed" AS "speed", "input"."temperature" AS
> "temperature", "input"."time" AS "time",
> "input"."water.temperature" AS "water.temperature",
> "input"."water.pressure" AS "water.pressure"
> FROM "input") "ip"
>
> java.lang.AssertionError: Correlation variable $cor0 should be defined
> at
> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.getCorrelVariableGetter(EnumerableRelImplementor.java:450)
> at
> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor$1.apply(EnumerableRelImplementor.java:79)
> at
> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor$1.apply(EnumerableRelImplementor.java:77)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:502)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateList(RexToLixTranslator.java:655)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateList(RexToLixTranslator.java:645)
> at
> org.apache.calcite.adapter.enumerable.RexImpTable.implementNullSemantics0(RexImpTable.java:737)
> at
> org.apache.calcite.adapter.enumerable.RexImpTable.access$900(RexImpTable.java:180)
> at
> org.apache.calcite.adapter.enumerable.RexImpTable$3.implement(RexImpTable.java:409)
> at
> org.apache.calcite.adapter.enumerable.RexImpTable$CastOptimizedImplementor.implement(RexImpTable.java:1738)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:535)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:208)
> at
> org.apache.calcite.adapter.enumerable.RexImpTable.implementNullSemantics(RexImpTable.java:800)
> at
> org.apache.calcite.adapter.enumerable.RexImpTable.implementNullSemantics0(RexImpTable.java:754)
> at
> org.apache.calcite.adapter.enumerable.RexImpTable.access$900(RexImpTable.java:180)
> at
> org.apache.calcite.adapter.enumerable.RexImpTable$3.implement(RexImpTable.java:409)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:535)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:208)
> at
> org.apache.calcite.adapter.enumerable.RexImpTable$IsXxxImplementor.implement(RexImpTable.java:1887)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:535)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:208)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCondition(RexToLixTranslator.java:727)
> at
> org.apache.calcite.adapter.enumerable.EnumerableCalc.implement(EnumerableCalc.java:161)
> at
> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
> at
> org.apache.calcite.adapter.enumerable.EnumerableAggregate.implement(EnumerableAggregate.java:102)
> at
> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
> at
> org.apache.calcite.adapter.enumerable.EnumerableJoin.implement(EnumerableJoin.java:190)
> at
> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
> at
> org.apache.calcite.adapter.enumerable.EnumerableCalc.implement(EnumerableCalc.java:119)
> at
> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:102)
> at
> org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:92)
> at
> org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1172)
> at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:294)
> at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:193)
> at
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:720)
> at
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:587)
> at
> org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:557)
> at
> org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:214)
> at
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:194)
> at
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:184)
> at
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:85)
> at
> org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:153)
> at
> com.kalkitech.k11.core.sql.calcite.CalciteQueryExecutor.execute(CalciteQueryExecutor.java:43)
> at
> com.kalkitech.k11.core.calcite.CalciteSqlTest.executeTest(CalciteSqlTest.java:143)
> at
> com.kalkitech.k11.core.calcite.CalciteSqlTest.basicTest(CalciteSqlTest.java:84)
> at
> com.kalkitech.k11.core.calcite.CalciteSqlTest.selectCorrelatedScalar(CalciteSqlTest.java:170)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at
> org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
> at org.testng.internal.Invoker.invokeMethod(Invoker.java:673)
> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:842)
> at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1166)
> at
> org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
> at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
>
> Another one fails with a NullPointerException.
>
> SELECT
> (SELECT DISTINCT "rs"."time" AS "time" FROM "input" WHERE "input"."time"
> = "rs"."time") AS "x",
> (SELECT "input"."value" AS "value" FROM "input" WHERE "input"."time" =
> "rs"."time" AND "input"."pointId" = 5) AS "y1"
> FROM (SELECT DISTINCT "input"."time" AS "time" FROM "input") "rs"
>
> java.sql.SQLException: Error while preparing statement [SELECT (SELECT
> DISTINCT "rs"."time" AS "time" FROM "input" WHERE "input"."time" =
> "rs"."time") AS "x", (SELECT "input"."value" AS "value" FROM "input" WHERE
> "input"."time" = "rs"."time" AND "input"."pointId" = 5) AS "y1" FROM (SELECT
> DISTINCT "input"."time" AS "time" FROM "input") "rs"]
> at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
> at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
> at
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:203)
> at
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:184)
> at
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:85)
> at
> org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:153)
> at
> com.kalkitech.k11.core.sql.calcite.CalciteQueryExecutor.execute(CalciteQueryExecutor.java:43)
> at
> com.kalkitech.k11.core.ds.DataSourceQueryManager.executeSql(DataSourceQueryManager.java:88)
> at
> com.kalkitech.k11.core.ds.DataSourceServlet.sendDataSourceData(DataSourceServlet.java:367)
> at
> com.kalkitech.k11.core.ds.DataSourceServlet.doGet(DataSourceServlet.java:152)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at
> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
> at
> org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
> at
> org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
> at
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
> at
> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
> at
> org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
> at
> org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
> at
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
> at
> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
> at
> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
> at
> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
> at
> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
> at
> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
> at
> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
> at
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
> at
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at
> com.kalkitech.k11.core.servlet.CorsFilter.handleNonCORS(CorsFilter.java:391)
> at
> com.kalkitech.k11.core.servlet.CorsFilter.doFilter(CorsFilter.java:126)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
> at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
> at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
> at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
> at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.NullPointerException
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:504)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateList(RexToLixTranslator.java:655)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateList(RexToLixTranslator.java:645)
> at
> org.apache.calcite.adapter.enumerable.RexImpTable.implementNullSemantics0(RexImpTable.java:737)
> at
> org.apache.calcite.adapter.enumerable.RexImpTable.access$900(RexImpTable.java:180)
> at
> org.apache.calcite.adapter.enumerable.RexImpTable$3.implement(RexImpTable.java:409)
> at
> org.apache.calcite.adapter.enumerable.RexImpTable$CastOptimizedImplementor.implement(RexImpTable.java:1738)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:535)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:208)
> at
> org.apache.calcite.adapter.enumerable.RexImpTable.implementNullSemantics(RexImpTable.java:800)
> at
> org.apache.calcite.adapter.enumerable.RexImpTable.implementNullSemantics0(RexImpTable.java:754)
> at
> org.apache.calcite.adapter.enumerable.RexImpTable.access$900(RexImpTable.java:180)
> at
> org.apache.calcite.adapter.enumerable.RexImpTable$3.implement(RexImpTable.java:409)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:535)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:208)
> at
> org.apache.calcite.adapter.enumerable.RexImpTable$IsXxxImplementor.implement(RexImpTable.java:1887)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:535)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:208)
> at
> org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCondition(RexToLixTranslator.java:727)
> at
> org.apache.calcite.adapter.enumerable.EnumerableCalc.implement(EnumerableCalc.java:161)
> at
> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
> at
> org.apache.calcite.adapter.enumerable.EnumerableAggregate.implement(EnumerableAggregate.java:102)
> at
> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
> at
> org.apache.calcite.adapter.enumerable.EnumerableAggregate.implement(EnumerableAggregate.java:102)
> at
> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
> at
> org.apache.calcite.adapter.enumerable.EnumerableJoin.implement(EnumerableJoin.java:190)
> at
> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
> at
> org.apache.calcite.adapter.enumerable.EnumerableJoin.implement(EnumerableJoin.java:185)
> at
> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97)
> at
> org.apache.calcite.adapter.enumerable.EnumerableCalc.implement(EnumerableCalc.java:119)
> at
> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:102)
> at
> org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:92)
> at
> org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1172)
> at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:294)
> at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:193)
> at
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:720)
> at
> org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:587)
> at
> org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:557)
> at
> org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:214)
> at
> org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:194)
> ... 52 more
>
> The both of them work fine in calcite 1.5 and does not work in calcite
> 1.6 or 1.7. Is this a know issue or am I doing something wrong?
>
> -Regards
> -SP
>
> "Disclaimer: This message is being sent from Kalki Communication
> Technologies
> Pvt Ltd (KALKITECH). and may contain information which is confidential or
> privileged. If you are not the intended recipient, please advise the sender
> immediately by reply e-mail and delete this message and any attachments
> without retaining a copy. Any unauthorized use of the content of this
> message
> can expose the responsible party to civil and/or criminal penalties,
> and may constitute a more serious offense. Further the company does not
> accept
> liability for any errors, omissions, viruses or computer problems
> experienced as a result of this transmission. If you have received this
> message in error, notice is hereby given that no representation, contract or
> other binding obligation shall be created by this e-mail."