You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Julian Hyde (JIRA)" <ji...@apache.org> on 2015/02/08 18:31:34 UTC

[jira] [Resolved] (CALCITE-569) ArrayIndexOutOfBoundsException when deducing collation

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

Julian Hyde resolved CALCITE-569.
---------------------------------
       Resolution: Fixed
    Fix Version/s: 1.1.0-incubating

Fixed in http://git-wip-us.apache.org/repos/asf/incubator-calcite/commit/2709896e. Test case in http://git-wip-us.apache.org/repos/asf/incubator-calcite/commit/c0120dd8.

> ArrayIndexOutOfBoundsException when deducing collation
> ------------------------------------------------------
>
>                 Key: CALCITE-569
>                 URL: https://issues.apache.org/jira/browse/CALCITE-569
>             Project: Calcite
>          Issue Type: Bug
>    Affects Versions: 1.0.0-incubating
>            Reporter: Aman Sinha
>            Assignee: Julian Hyde
>             Fix For: 1.1.0-incubating
>
>         Attachments: 0001-CALCITE-569-ArrayIndexOutOfBoundsException-from-subq.patch, 0001-CALCITE-569-Create-a-Project-with-empty-collation-if.patch, 0001-Properly-track-collation-trait-for-select-a-from-.-o.patch, 0001-Properly-track-collation-trait-for-select-a-from-.-o.patch, PlanTest.java.diff
>
>
> If a subquery has an ORDER BY on a column that is not in the SELECT list and the outer query does another ORDER BY,  Calcite encounters an ArrayIndexOutOfBoundException when deducing collation. 
> In PlannerTest, I created a simple test by first adding the following traits: 
>  {code}
> 	    List<RelTraitDef> traitDefs = new ArrayList<RelTraitDef>();
> 	    traitDefs.add(ConventionTraitDef.INSTANCE);
> 	    traitDefs.add(RelCollationTraitDef.INSTANCE);
> {code}
> And ran the following query: 
> {code}
> select t.psPartkey from (select ps.psPartkey from `tpch`.`partsupp` ps order by ps.psSupplyCost) t order by t.psPartkey"
> {code}
> {code}
> java.lang.ArrayIndexOutOfBoundsException: -1
> 	at org.apache.calcite.rex.RexProgram.deduceCollations(RexProgram.java:589)
> 	at org.apache.calcite.rex.RexProgram.getCollations(RexProgram.java:558)
> 	at org.apache.calcite.plan.RelOptUtil.createProject(RelOptUtil.java:2685)
> 	at org.apache.calcite.plan.RelOptUtil.createProject(RelOptUtil.java:2623)
> 	at org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectList(SqlToRelConverter.java:3571)
> 	at org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectImpl(SqlToRelConverter.java:613)
> 	at org.apache.calcite.sql2rel.SqlToRelConverter.convertSelect(SqlToRelConverter.java:568)
> 	at org.apache.calcite.sql2rel.SqlToRelConverter.convertQueryRecursive(SqlToRelConverter.java:2929)
> 	at org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:526)
> 	at org.apache.calcite.prepare.PlannerImpl.convert(PlannerImpl.java:189)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)