You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Aman Sinha (JIRA)" <ji...@apache.org> on 2015/01/26 01:11:34 UTC

[jira] [Created] (CALCITE-569) ArrayIndexOutOfBoundException when deducing collation

Aman Sinha created CALCITE-569:
----------------------------------

             Summary: ArrayIndexOutOfBoundException 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


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)