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)