[
https://issues.apache.org/jira/browse/CALCITE-2201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16759319#comment-16759319
]
Vladimir Sitnikov commented on CALCITE-2201:
--------------------------------------------
{quote}No one has asked for RelDecorrelator to work on anything but logical
{{RelNode}}s.{quote}
[~julianhyde], can you please clarify if
{{LogicalProject(input=JdbcTableScan)}} is supposed to happen?
I've tried adding an assertion into {{LogicalProject}} constructor and fails
{{JdbcTest#testJdbcSchemaDirectConnection}} as follows.
As I read it, at SqlToRel phase it already sees {{JdbcTableScan}} which is due
to {{org.apache.calcite.adapter.jdbc.JdbcTable#toRel}} that generates a
non-logical rel.
Should it generate a logical rel instead somehow?
Does that mean LogicalProject(input=JdbcTableScan) is a valid rel plan?
{noformat}java.lang.AssertionError: Input #0 JdbcTableScan#19948 of
LogicalProject#19949 does not satisfy required trait NONE
at org.apache.calcite.util.Litmus$1.fail(Litmus.java:31)
at
org.apache.calcite.rel.AbstractRelNode.inputsSatisfy(AbstractRelNode.java:191)
at
org.apache.calcite.rel.logical.LogicalProject.<init>(LogicalProject.java:65)
at
org.apache.calcite.rel.logical.LogicalProject.create(LogicalProject.java:114)
at
org.apache.calcite.rel.logical.LogicalProject.create(LogicalProject.java:102)
at
org.apache.calcite.rel.core.RelFactories$ProjectFactoryImpl.createProject(RelFactories.java:149)
at org.apache.calcite.tools.RelBuilder.project(RelBuilder.java:1265)
at
org.apache.calcite.tools.RelBuilder.projectNamed(RelBuilder.java:1321)
at
org.apache.calcite.sql2rel.SqlToRelConverter.createAggImpl(SqlToRelConverter.java:2785)
at
org.apache.calcite.sql2rel.SqlToRelConverter.convertAgg(SqlToRelConverter.java:2690)
at
org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectImpl(SqlToRelConverter.java:663)
at
org.apache.calcite.sql2rel.SqlToRelConverter.convertSelect(SqlToRelConverter.java:625)
at
org.apache.calcite.sql2rel.SqlToRelConverter.convertQueryRecursive(SqlToRelConverter.java:3064)
at
org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:561)
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:265)
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:231)
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:772)
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:636)
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:606)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:229)
at
org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:550)
at
org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:675)
at
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)
at
org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:227)
at
org.apache.calcite.test.JdbcTest.checkJdbcSchemaDirectConnection(JdbcTest.java:5186){noformat}
> Allow passing custom RelBuilder into RelDecorrelator and
> RelStructuredTypeFlattener
> -----------------------------------------------------------------------------------
>
> Key: CALCITE-2201
> URL: https://issues.apache.org/jira/browse/CALCITE-2201
> Project: Calcite
> Issue Type: Task
> Reporter: Volodymyr Vysotskyi
> Assignee: Julian Hyde
> Priority: Major
> Fix For: 1.17.0
>
>
> When {{RelDecorrelator.decorrelateQuery()}} method is called,
> {{RelDecorrelator}} instance with {{RelFactories.LOGICAL_BUILDER}} is
> created. We should modify this method to allow usage of custom {{RelBuilder}}.
> Also, {{RelStructuredTypeFlattener}} class should be modified in a similar
> way.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)