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)

Reply via email to