[ 
https://issues.apache.org/jira/browse/FLINK-38709?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dian Fu updated FLINK-38709:
----------------------------
    Description: 
For the following query:
{code}
SELECT func1(e.f.h) from MyTable
{code}
where the schema of MyTable is as following:
{code}
CREATE TABLE MyTable (
    a int,
    b bigint,
    c string,
    d ARRAY<INT NOT NULL>,
    e ROW<f ROW<h int, i double>, g string>
) WITH (
    'connector' = 'test-simple-table-source'
)
{code}

The following exception will be thrown:
{code}
java.lang.AssertionError: RexInputRef index 5 out of range 0..4
        at 
org.apache.calcite.rex.RexProgramBuilder$RegisterInputShuttle.visitInputRef(RexProgramBuilder.java:947)
        at 
org.apache.calcite.rex.RexProgramBuilder$RegisterInputShuttle.visitInputRef(RexProgramBuilder.java:932)
        at org.apache.calcite.rex.RexInputRef.accept(RexInputRef.java:125)
        at 
org.apache.calcite.rex.RexShuttle.visitFieldAccess(RexShuttle.java:203)
        at 
org.apache.calcite.rex.RexProgramBuilder$RegisterShuttle.visitFieldAccess(RexProgramBuilder.java:912)
        at 
org.apache.calcite.rex.RexProgramBuilder$RegisterShuttle.visitFieldAccess(RexProgramBuilder.java:895)
        at org.apache.calcite.rex.RexFieldAccess.accept(RexFieldAccess.java:94)
        at 
org.apache.calcite.rex.RexProgramBuilder.registerInput(RexProgramBuilder.java:303)
        at 
org.apache.calcite.rex.RexProgramBuilder.addProject(RexProgramBuilder.java:213)
        at org.apache.calcite.rex.RexProgram.create(RexProgram.java:235)
        at 
org.apache.flink.table.planner.plan.rules.logical.RemoteCalcSplitRuleBase.onMatch(RemoteCalcSplitRule.scala:111)
{code}

  was:
For the following query:
{code}
SELECT func1(e.f.h) from MyTable
{code}
where the schema of MyTable is as following:
{code}
CREATE TABLE MyTable (
    a int,
    b bigint,
    c string,
    d ARRAY<INT NOT NULL>,
    e ROW<f ROW<h int, i double>, g string>
) WITH (
    'connector' = 'test-simple-table-source'
)
{code}

The following exception will be thrown:
{code}
java.lang.AssertionError: RexInputRef index 5 out of range 0..4
        at 
org.apache.calcite.rex.RexProgramBuilder$RegisterInputShuttle.visitInputRef(RexProgramBuilder.java:947)
        at 
org.apache.calcite.rex.RexProgramBuilder$RegisterInputShuttle.visitInputRef(RexProgramBuilder.java:932)
        at org.apache.calcite.rex.RexInputRef.accept(RexInputRef.java:125)
        at 
org.apache.calcite.rex.RexShuttle.visitFieldAccess(RexShuttle.java:203)
        at 
org.apache.calcite.rex.RexProgramBuilder$RegisterShuttle.visitFieldAccess(RexProgramBuilder.java:912)
        at 
org.apache.calcite.rex.RexProgramBuilder$RegisterShuttle.visitFieldAccess(RexProgramBuilder.java:895)
        at org.apache.calcite.rex.RexFieldAccess.accept(RexFieldAccess.java:94)
        at 
org.apache.calcite.rex.RexProgramBuilder.registerInput(RexProgramBuilder.java:303)
        at 
org.apache.calcite.rex.RexProgramBuilder.addProject(RexProgramBuilder.java:213)
        at org.apache.calcite.rex.RexProgram.create(RexProgram.java:235)
        at 
org.apache.flink.table.planner.plan.rules.logical.RemoteCorrelateSplitRule.createNewLeftCalc(RemoteCorrelateSplitRule.java:198)
        at 
org.apache.flink.table.planner.plan.rules.logical.RemoteCorrelateSplitRule.onMatch(RemoteCorrelateSplitRule.java:301)
{code}


> PythonFunction & AsyncFunction doesn't work well when taking the recursive 
> field of composite type as input
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-38709
>                 URL: https://issues.apache.org/jira/browse/FLINK-38709
>             Project: Flink
>          Issue Type: Bug
>            Reporter: Dian Fu
>            Assignee: Dian Fu
>            Priority: Major
>
> For the following query:
> {code}
> SELECT func1(e.f.h) from MyTable
> {code}
> where the schema of MyTable is as following:
> {code}
> CREATE TABLE MyTable (
>     a int,
>     b bigint,
>     c string,
>     d ARRAY<INT NOT NULL>,
>     e ROW<f ROW<h int, i double>, g string>
> ) WITH (
>     'connector' = 'test-simple-table-source'
> )
> {code}
> The following exception will be thrown:
> {code}
> java.lang.AssertionError: RexInputRef index 5 out of range 0..4
>       at 
> org.apache.calcite.rex.RexProgramBuilder$RegisterInputShuttle.visitInputRef(RexProgramBuilder.java:947)
>       at 
> org.apache.calcite.rex.RexProgramBuilder$RegisterInputShuttle.visitInputRef(RexProgramBuilder.java:932)
>       at org.apache.calcite.rex.RexInputRef.accept(RexInputRef.java:125)
>       at 
> org.apache.calcite.rex.RexShuttle.visitFieldAccess(RexShuttle.java:203)
>       at 
> org.apache.calcite.rex.RexProgramBuilder$RegisterShuttle.visitFieldAccess(RexProgramBuilder.java:912)
>       at 
> org.apache.calcite.rex.RexProgramBuilder$RegisterShuttle.visitFieldAccess(RexProgramBuilder.java:895)
>       at org.apache.calcite.rex.RexFieldAccess.accept(RexFieldAccess.java:94)
>       at 
> org.apache.calcite.rex.RexProgramBuilder.registerInput(RexProgramBuilder.java:303)
>       at 
> org.apache.calcite.rex.RexProgramBuilder.addProject(RexProgramBuilder.java:213)
>       at org.apache.calcite.rex.RexProgram.create(RexProgram.java:235)
>       at 
> org.apache.flink.table.planner.plan.rules.logical.RemoteCalcSplitRuleBase.onMatch(RemoteCalcSplitRule.scala:111)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to