[ 
https://issues.apache.org/jira/browse/CALCITE-6458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17866025#comment-17866025
 ] 

xiong duan commented on CALCITE-6458:
-------------------------------------

[~corvinkuebler] Hi, My preliminary judgment is that it was caused by rewriting 
SQL in SubQueryRemoveRule:Join when generate the condition. The RexInputRef 
which in condition don't have a proper offset shift.

> RexPermuteInputsShuttle produces ArrayIndexOutOfBoundsException for join 
> conditions with subselect
> --------------------------------------------------------------------------------------------------
>
>                 Key: CALCITE-6458
>                 URL: https://issues.apache.org/jira/browse/CALCITE-6458
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.37.0
>            Reporter: Corvin Kuebler
>            Priority: Major
>
> Hey!
> Running the following unit test in JdbcAdapterTest fails with
> {code:java}
>   @Test void testAioob() {
>     CalciteAssert.model(JdbcTest.SCOTT_MODEL)
>         .query("select job\n"
>                + "from scott.emp e left join scott.dept d\n"
>                + "on e.deptno = d.deptno and e.job not in (select distinct 
> job from scott.bonus b)")
>         .runs();
>   }
> {code}
> {code:java}
> Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds 
> for length 5
>     at 
> org.apache.calcite.util.mapping.Mappings$PartialMapping.getTargetOpt(Mappings.java:1324)
>     at 
> org.apache.calcite.util.mapping.Mappings$AbstractMapping.getTarget(Mappings.java:943)
>     at 
> org.apache.calcite.rex.RexPermuteInputsShuttle.visitInputRef(RexPermuteInputsShuttle.java:87)
>     at 
> org.apache.calcite.rex.RexPermuteInputsShuttle.visitInputRef(RexPermuteInputsShuttle.java:35)
>  {code}



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

Reply via email to