[ 
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)

Reply via email to